一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹一下MOVE_BLK_VARIANT指令在使用中應(yīng)注意的問題

jf_61nrsJTz ? 來源:方正智芯 ? 2024-03-04 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

塊移動(dòng)指令包括兩個(gè):MOVE_BLK和MOVE_BLK_VARIANT,實(shí)際項(xiàng)目中都經(jīng)常被用到。比如設(shè)備作業(yè)結(jié)果的存儲(chǔ)及顯示功能就需要用到塊移動(dòng)指令。通常采用這種邏輯:首先創(chuàng)建一個(gè)數(shù)據(jù)塊,在其中創(chuàng)建一個(gè)定長數(shù)組(比如可存放100條記錄)。每次設(shè)備作業(yè)流程結(jié)束后,將流程結(jié)果的數(shù)據(jù)作為一條記錄存放到數(shù)組中。

當(dāng)需要查看某次作業(yè)結(jié)果的數(shù)據(jù)時(shí),從數(shù)組中讀取相關(guān)的數(shù)據(jù)拷貝到臨時(shí)變量或某個(gè)特定變量中即可。這類存儲(chǔ)功能一般使用MOVE_BLK_VARIANT指令,因?yàn)樗梢钥截惤Y(jié)構(gòu)體數(shù)據(jù)類型(設(shè)備流程結(jié)果一般內(nèi)容比較多,比如包括壓力、溫度、時(shí)間等等,多數(shù)采用結(jié)構(gòu)體變量存儲(chǔ)),而MOVE_BLK指令只能拷貝基礎(chǔ)數(shù)據(jù)類型(整數(shù)、實(shí)數(shù)等)。數(shù)據(jù)的寫入及讀取要設(shè)定相應(yīng)的指針變量,實(shí)際應(yīng)用中經(jīng)常因?yàn)橹羔樺e(cuò)誤導(dǎo)致讀寫錯(cuò)誤。今天這篇文章我們介紹一下MOVE_BLK_VARIANT指令在使用中應(yīng)注意的問題。

b55c8a18-d823-11ee-a297-92fbcf53809c.png

MOVE_BLK_VARIANT指令位于【指令】任務(wù)卡的【基本指令】→【移動(dòng)操作】中,使用梯形圖或功能塊圖編程時(shí)可以在這個(gè)位置將其拖放到函數(shù)或函數(shù)塊中。使用SCL語言編程時(shí),可以直接輸入"MOVE"編輯器會(huì)自動(dòng)提示,如下圖所示:

b56f1ad4-d823-11ee-a297-92fbcf53809c.png

指令添加后的初始狀態(tài)如下圖所示:

b576b172-d823-11ee-a297-92fbcf53809c.png

指令參數(shù)含義如下:

SRC:可變(Variant)數(shù)據(jù)類型。源數(shù)據(jù),可以是數(shù)組或結(jié)構(gòu)體復(fù)雜數(shù)據(jù)類型;

COUNT:無符號(hào)雙整數(shù)(UDINT),要拷貝的記錄條數(shù);

SRC_INDEX:雙整數(shù)(DINT),源數(shù)據(jù)的索引;

DEST_INDEX:雙整數(shù)(DINT),目標(biāo)數(shù)據(jù)的索引;

DEST:可變(Variant)數(shù)據(jù)類型。目標(biāo)數(shù)據(jù),即源數(shù)據(jù)要拷貝到的目標(biāo)區(qū)域;

說明:

無論數(shù)組的上、下限是如何定義,源數(shù)據(jù)和目標(biāo)數(shù)據(jù)的索引都是從0開始計(jì)算的;

如果源數(shù)據(jù)或目標(biāo)參數(shù)不是數(shù)組,則其相應(yīng)的索引值應(yīng)為0;

舉個(gè)例子:

假設(shè)存儲(chǔ)數(shù)組data的定義如下:

data[1..100] of typeResult
//typeResult是用戶自定義數(shù)據(jù)類型

假設(shè)過程結(jié)果存放在變量tmpResult中。第一次將過程結(jié)果存放到存儲(chǔ)區(qū)數(shù)組中的代碼如下:

#return_value:=MOVE_BLK_VARIANT(SRC := #tmpResult,
                 COUNT := 1,
                 SRC_INDEX := 0,
                 DEST_INDEX := 0,
                 DEST => "db_storage".data);

注意這里“DEST_INDEX”的值為0,而數(shù)據(jù)則存放在數(shù)組的第一個(gè)元素中。由于該數(shù)組的下限為1,所以存放在data[1]中。假設(shè)定義的存放數(shù)據(jù)為data[10..110],則存放第一條記錄的“DEST_INDEX”的值仍然為0,由于該數(shù)組的下限為10,因此數(shù)據(jù)存放在data[10]中。

實(shí)際應(yīng)用中需要定義寫指針變量,隨著存入次數(shù)的變化修改寫指針的值,從而存放到數(shù)組的不同位置中。為了防止數(shù)據(jù)重復(fù)寫入,存儲(chǔ)應(yīng)在沿信號(hào)時(shí)進(jìn)行。

基于上述描述我寫了一個(gè)簡單的數(shù)據(jù)寫入代碼,變量定義如下圖所示:

b5815dca-d823-11ee-a297-92fbcf53809c.png

代碼如下圖所示:

b58cef3c-d823-11ee-a297-92fbcf53809c.png

這段代碼我已經(jīng)測試過了,包括數(shù)據(jù)寫滿后的情況,如下圖所示:

b59d58ea-d823-11ee-a297-92fbcf53809c.png

b5a8fbe6-d823-11ee-a297-92fbcf53809c.png

這篇文章最核心的內(nèi)容就是大家在使用MOVE_BLK_VARIANT指令時(shí)要記住其SRC_INDEX和DEST_INDEX的計(jì)算是從0開始的。感興趣的小伙伴可以把上述的代碼進(jìn)行完善,然后完成數(shù)據(jù)讀取的代碼。

好吧,就先聊到這里。


審核編輯:劉清
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • SRC
    SRC
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    18410
  • SCL
    SCL
    +關(guān)注

    關(guān)注

    1

    文章

    243

    瀏覽量

    17562

原文標(biāo)題:西門子SCL編程入門教程連載(22)——塊移動(dòng)指令

文章出處:【微信號(hào):方正智芯,微信公眾號(hào):方正智芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    變頻器的基礎(chǔ)知識(shí)及使用應(yīng)注意的問題

    變頻器是利用電力半導(dǎo)體器件的通斷作用將工頻電源變換為另頻率的電能控制裝置。本文主要介紹了變頻器的基本知識(shí),包括它的分類、組成、應(yīng)用范圍、使用應(yīng)
    發(fā)表于 05-13 09:10

    音樂集成電路使用應(yīng)注意事項(xiàng)

    音樂集成電路使用應(yīng)注意事項(xiàng)音樂集成電路使用應(yīng)
    發(fā)表于 09-19 16:28 ?753次閱讀

    ATmega128開發(fā)應(yīng)用應(yīng)注意的問題

    ATmega128開發(fā)應(yīng)用應(yīng)注意的問題 ATmega128是AVR系列功能最強(qiáng)的單片機(jī),具有如下主要特點(diǎn):   (1)先進(jìn)的RI
    發(fā)表于 10-26 09:06 ?3272次閱讀

    大型矩陣工程使用應(yīng)注意的問題

    大型矩陣工程使用應(yīng)注意的問題   大型矩陣均采用統(tǒng)的模塊化設(shè)計(jì),其好處包括:更換與維修方便;輸入/輸出組合靈活
    發(fā)表于 02-09 11:47 ?359次閱讀

    大型矩陣工程使用應(yīng)注意的問題

    大型矩陣工程使用應(yīng)注意的問題 大型矩陣均采用統(tǒng)的模塊化設(shè)計(jì),其好處包括:更換與維修方便;輸入/輸出組合靈活;輸入/
    發(fā)表于 02-21 13:36 ?675次閱讀

    Variant類型的變量指令說明

    SCL指令:TypeOf(操作數(shù)),操作數(shù)是FC/FB的Input/Output/InOut/Temp定義為Variant類型的參數(shù),該語句輸出是數(shù)據(jù)類型,程序
    的頭像 發(fā)表于 03-30 15:13 ?3303次閱讀

    介紹幾個(gè)常用MOVE系列指令

    支持通過個(gè)MOVE指令個(gè)變量傳送到多個(gè)變量,但是該功能不支持傳送復(fù)雜數(shù)據(jù)類型(DTL、結(jié)構(gòu)、數(shù)組等)或字符串的字符。
    的頭像 發(fā)表于 07-07 10:48 ?1.3w次閱讀

    支持處理Variant類型的變量的指令說明

    從TIA V13SP1 開始,S7-1200 V4.0開始,支持以下處理Variant類型的變量的指令。
    的頭像 發(fā)表于 01-03 16:56 ?3014次閱讀

    S7-1200填充塊指令(U)FILL_BLK使用說明

    (U)FILL_BLK指令是當(dāng)EN條件滿足時(shí),實(shí)現(xiàn)用輸入變量批量填充輸出區(qū)域的功能。
    的頭像 發(fā)表于 01-13 10:33 ?4243次閱讀

    西門子S7-1200PLC塊移動(dòng)指令MOVE_BLK操作

    S7-1200PLC,l利用MOVE_BLK指令可以將個(gè)存儲(chǔ)區(qū)(源范圍)的數(shù)據(jù)移動(dòng)到另個(gè)
    的頭像 發(fā)表于 04-06 10:29 ?8346次閱讀

    SIMATIC S7-1500 PLC存儲(chǔ)區(qū)移動(dòng)指令與交換指令簡述

    個(gè)存儲(chǔ)區(qū)(源區(qū)域)的數(shù)據(jù)移動(dòng)到另個(gè)存儲(chǔ)區(qū)(目標(biāo)區(qū)域)。使用輸入COUNT可以指定將移動(dòng)到目標(biāo)區(qū)域中的元素個(gè)數(shù)??赏ㄟ^輸入IN中元素的寬度來定義元素待移動(dòng)的寬度。存儲(chǔ)區(qū)移動(dòng)指令(
    的頭像 發(fā)表于 05-08 11:14 ?5227次閱讀
    SIMATIC S7-1500 PLC存儲(chǔ)區(qū)移動(dòng)<b class='flag-5'>指令</b>與交換<b class='flag-5'>指令</b>簡述

    博途使用STLMOVE指令

    現(xiàn)在, S7-1500 CPU 上可使用 STL MOVE 指令進(jìn)行編程。
    的頭像 發(fā)表于 06-06 11:10 ?8412次閱讀
    博途使用STL<b class='flag-5'>中</b>的<b class='flag-5'>MOVE</b><b class='flag-5'>指令</b>

    移動(dòng)數(shù)據(jù)的編程示例

    編程示例 在此編程示例,將移動(dòng)在生產(chǎn)班次期間為示例收集的數(shù)據(jù)值以作進(jìn)步處理。收集的數(shù)據(jù)放在 ARRAY 。通過“MOVE_BLK_VARIANT:移動(dòng)塊”(
    的頭像 發(fā)表于 08-23 10:10 ?1928次閱讀
    移動(dòng)數(shù)據(jù)的編程示例

    PLCMove指令可以實(shí)現(xiàn)什么功能?

     Move指令是PLC編程的基本指令,常用于程序
    發(fā)表于 01-10 15:13 ?1.4w次閱讀

    部分TIA集成指令處理的方法介紹

    對(duì)于優(yōu)化的DB塊,可使用FILL_BLK指令或創(chuàng)建相同的UDT結(jié)構(gòu)類型的DB塊,使用MOVE指令清零DB塊數(shù)據(jù)。
    發(fā)表于 04-15 09:34 ?1936次閱讀
    部分TIA集成<b class='flag-5'>指令</b>處理的方法<b class='flag-5'>介紹</b>