金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上,金年会 金字招牌诚信至上

西門(mén)子LOGO 6ED1055-1MA00-0BA2 擴展模塊

西門(mén)子: LOGO擴展模塊
LOGO: 6ED1055-1MA00-0BA2
中國: 凈重0.132KG
單價(jià): 380.00元/臺
發(fā)貨期限: 自買(mǎi)家付款之日起 天內發(fā)貨
所在地: 直轄市 上海
有效期至: 長(cháng)期有效
發(fā)布時(shí)間: 2024-10-07 15:56
最后更新: 2024-10-07 15:56
瀏覽次數: 21
采購咨詢(xún):
請賣(mài)家聯(lián)系我
發(fā)布企業(yè)資料
詳細說(shuō)明

MOVE 系列指令

本文檔將介紹幾個(gè)常用 MOVE 系列指令,鏈接如下:

MOVE

LAD為MOVE指令,SCL使用":="表達式可以完成MOVE的功能(“:=”還可以有其他功能)。

MOVE指令是當EN條件滿(mǎn)足時(shí),實(shí)現相同數據類(lèi)型(不包括位、字符串、Variant類(lèi)型)的變量間的傳送。

圖1 指令位置

注意:

(1)LAD傳送字符串需要使用S_MOVE指令(SCL使用“:=”),但是傳送字符串中的字符需要使用MOVE指令。

(2)支持通過(guò)一個(gè)MOVE指令將一個(gè)變量傳送到多個(gè)變量,但是該功能不支持傳送復雜數據類(lèi)型(DTL、結構、數組等)或字符串中的字符。

(3)傳送數組時(shí),要求元素數據類(lèi)型以及元素個(gè)數必須完全一樣,數組限值可以不同,例如Array[0..1] of Byte可以MOVE到Array[1..2] of Byte。

(4)如果MOVE兩邊是基本數據類(lèi)型,則可以在滿(mǎn)足以下兼容條件時(shí)傳送,參見(jiàn)表1。

表1 MOVE的傳送條件

傳送源 (IN)

傳送目標 (OUT1)

進(jìn)行 IEC 檢查

不進(jìn)行 IEC 檢查

BYTEBYTE、WORD、DWORDBYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、TIME、DATE、TOD、CHAR
WORDWORD、DWORDBYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、TIME、DATE、TOD、CHAR

DWORD

DWORD

BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、REAL、TIME、DATE、TOD、CHAR

SINT

SINT

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD

USINT

USINT, UINT, UDINT

INT

INT

UINT

USINT, UINT

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD

DINTDINT

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD

UDINTUDINT

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD

REAL

REAL

DWORD, REAL

LREAL

LREAL

LREAL

TIME

TIME

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME

DATE

DATE

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, DATE

TOD

TOD

BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TOD

CHAR

CHAR, String中的字符

BYTE, WORD, DWORD,CHAR,String中的字符

WCHAR

WCHAR, WString中的字符

BYTE,WORD,DWORD,CHAR,WCHAR,WString中的字符

String中的字符CHAR, String中的字符CHAR, String中的字符

WString中的字符

WCHAR, WString中的字符

WCHAR, WString中的字符

注意:
1.如果輸入 IN 數據類(lèi)型的位長(cháng)度超出輸出 OUT 數據類(lèi)型的位長(cháng)度,則源值的高位會(huì )丟失。如果輸入 IN 數據類(lèi)型的位長(cháng)度低于輸出 OUT 數據類(lèi)型的位長(cháng)度,則目標值的高位會(huì )被改寫(xiě)為 0。
2.REAL傳送至DWORD時(shí)是按位傳送,不是取整。如果需要取整,可以使用ROUND、CONVERT_REAL_TO_DINT等指令。
3.(不)進(jìn)行IEC檢查是指,在MOVE指令所在的OB/FC/FB屬性中的"IEC檢查"選項,僅在此塊中生效。默認的"IEC檢查"不激活。設置如圖2所示。

圖2 IEC檢查的設置

MOVE的使用

圖3 DB25

1. 單個(gè)基本類(lèi)型變量的傳送

圖4 單個(gè)基本類(lèi)型變量的傳送

2. 數組的傳送

圖5 數組的傳送

3. UDT的傳送

圖6 UDT的傳送

4. String中的字符的傳送

圖7 String中的字符的傳送

5. DTL中的變量的傳送

圖8 DTL中的變量的傳送

6. DB整體之間的傳送

條件:DB塊為非優(yōu)化塊,或者將優(yōu)化DB塊的存儲器預留區域與預留可保持性存儲器設置為0字節(如圖9所示),并且兩個(gè)DB塊結構完全相同。

1. IN和OUT的DB必須同時(shí)為優(yōu)化DB或者非優(yōu)化DB。

2. 不允許同時(shí)輸出到多個(gè)DB,即圖4的形式。

圖9 存儲器預留區域設置

圖10 DB整體傳送

圖11 DB整體傳送程序

(U)MOVE_BLK

LAD和SCL均為(U)MOVE_BLK指令。

(U)MOVE_BLK指令是當EN條件滿(mǎn)足時(shí),實(shí)現相同數組之間部分元素的傳送。MOVE_BLK和UMOVE_BLK的區別是UMOVE_BLK不會(huì )被中斷打斷,并且多16kB的數據量。

圖12 程序位置

圖13 指令詳情

注意:

1. IN和OUT必須是數組的一個(gè)元素,例如"DB26".Static_1[0],不能是常數、常量、普通變量,也不能是數組名。

2. IN和OUT類(lèi)型必須完全相同,并且必須是基本數據類(lèi)型,不能是UDT、Struct等的數組。

3. IN是源數組中傳送的起始元素,OUT是目的數組中接收的起始元素。

4. COUNT是傳輸個(gè)數,可以是正整數的常數,如果是變量,數據類(lèi)型支持USINT、UINT、UDINT。

5. 如果目的數組接收區域小于源數組的傳送區域,則只傳送目的數組可接收的區域的數據。如果激活指令的ENO功能,則ENO=False。

(U)MOVE_BLK的使用

實(shí)現功能:將"DB26".Static_1[0]開(kāi)始的4個(gè)元素傳送至"DB26".Static_2[4]開(kāi)始的數組中。

圖14 程序使用

圖15 運行結果

MOVE_BLK_VARIANT

LAD和SCL均為MOVE_BLK_VARIANT指令。

MOVE_BLK_VARIANT的基本功能是數組之間部分元素的傳送,并且是可以處理Variant類(lèi)型的變量的指令之一,適合處理Variant指向的變長(cháng)數組。

從TIA V13SP1,S7-1200 V4.0開(kāi)始支持該指令。

圖16 指令位置

圖17 指令詳情

表2 參數說(shuō)明

參數聲明數據類(lèi)型
SRCInputVariant、Array、其他(不包括Bool,Array of Bool)
COUNTInputUDINT
SRC_INDEXInputDINT
DEST_INDEXInputDINT
DESTOutputVariant、Array、其他(不包括Bool,Array of Bool)
RET_VALReturnINT

MOVE_BLK_VARIANT指令通常用于將源數組SRC的部分元素傳送至目的數組DEST的部分元素中,SRC與DEST數組元素必須完全相同。COUNT是傳送的元素個(gè)數,SRC_INDEX是待傳送的源數組的起始編號,DEST_INDEX是目的數組接收的起始編號,此處用編號不是下標的意思是,SRC_INDEX和DEST_INDEX都從0開(kāi)始,對應SRC和DEST的個(gè)元素。

同樣是傳送部分數組元素的指令,MOVE_BLK_VARIANT相對MOVE_BLK有以下優(yōu)點(diǎn):

1. SRC和DEST不可以是Bool數組,但可以是Struct、UDT等復雜數據類(lèi)型數組

2. SRC和DEST都可以是普通的單個(gè)變量,例如SRC為一個(gè)INT變量,DEST作為一個(gè)INT數組,此時(shí)需要設置COUNT=1,SRC_INDEX=0,然后根據DEST_INDEX的值,傳入DEST的指定位置。

3. SRC和DEST填寫(xiě)的通常是數組名,也可以是普通的單個(gè)變量,或者數組的一個(gè)元素,后兩種情況都需要像(2)一樣處理。

4. SRC和DEST可以是參數類(lèi)型Variant的變量,也就是可以直接填寫(xiě)P#指針的格式,指令將會(huì )把P#指針看做數組處理(原因)。即使是SRC和DEST都指向Variant類(lèi)型,其指向的形參的數組元素數據類(lèi)型也需要相同,所以通常需要在使用指令之前用E檢查其中元素的數據類(lèi)型。

使用MOVE_BLK_VARIANT指令的注意:

(1)COUNT>=1,否則報錯并且不傳送任何數據。

(2) COUNT+SRC_INDEX與COUNT+DEST_INDEX決定了SRC與DEST數組元素編號上限,超出范圍將報錯并且不傳送任何數據。

使用舉例:

1. 實(shí)現功能將結構完全一樣的M區數據送入DB區

圖18 運行結果

需要注意的是將DB塊改為非優(yōu)化,M區和DB區均是16Byte,SRC和DEST可以是P#BYTE 16,P#WORD 8,P#DWORD 4等都可以,但是要注意COUNT和元素數相同(P#BYTE 16,COUNT=16;P#WORD 8,COUNT=8;P#DWORD 4,COUNT=4),SRC和DEST結構一致即可。

圖19 程序詳情

2. 實(shí)現變長(cháng)數組的處理

功能:FC15處理MBV類(lèi)型變量,該變量作為InOut,FC14中輸入MBV類(lèi)型變量的變長(cháng)數組,在其內部判斷數組大小,然后數組元素逐個(gè)執行FC15指令,后送回變長(cháng)數組。


相關(guān)西門(mén)子產(chǎn)品
相關(guān)西門(mén)子產(chǎn)品
相關(guān)產(chǎn)品
 
湄潭县| 两当县| 郑州市| 延长县| 隆子县| 湄潭县| 营口市| 左云县| 南部县| 塘沽区| 林州市| 剑河县| 屏东县| 扎兰屯市| 射阳县| 汪清县| 苏尼特右旗| 叶城县| 南木林县| 贵阳市| 简阳市| 浦城县| 盐山县| 永兴县| 满洲里市| 潮安县| 舟曲县| 阿克| 镶黄旗| 新巴尔虎左旗| 郯城县| 北安市| 晋中市| 陇西县| 舞钢市| 霸州市| 辰溪县| 平谷区| 丹阳市| 驻马店市| 武胜县|