新四季網

s7-1200指令中文對照(S7-1200MOVE指令的講解)

2023-04-15 09:27:29

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

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

圖1 指令位置

注意:

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

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

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

(4)如果MOVE兩邊是基本數據類型,則可以在滿足以下兼容條件時傳送,參見表1。

表1 MOVE的傳送條件

注意:

1.如果輸入 IN 數據類型的位長度超出輸出 OUT 數據類型的位長度,則源值的高位會丟失。如果輸入 IN 數據類型的位長度低於輸出 OUT 數據類型的位長度,則目標值的高位會被改寫為 0。

2.REAL傳送至DWORD時是按位傳送,不是取整。如果需要取整,可以使用ROUND、CONVERT_REAL_TO_DINT等指令。

3.(不)進行IEC檢查是指,在MOVE指令所在的OB/FC/FB屬性中的"IEC檢查"選項,僅在此塊中生效。默認的"IEC檢查"不激活。設置如圖2所示。

圖2 IEC檢查的設置

MOVE的使用

圖3 DB25

1. 單個基本類型變量的傳送

圖4 單個基本類型變量的傳送

2. 數組的傳送

3. UDT的傳送

4. String中的字符的傳送

5. DTL中的變量的傳送

6. DB整體之間的傳送

條件:DB塊為非優化塊,或者將優化DB塊的存儲器預留區域與預留可保持性存儲器設置為0位元組(如圖9所示),並且兩個DB塊結構完全相同。

圖9 存儲器預留區域設置

圖10 DB整體傳送

圖11 DB整體傳送程序

(U)MOVE_BLK

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

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

圖12 程序位置

圖13 指令詳情

注意:

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

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

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

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

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

(U)MOVE_BLK的使用

實現功能:將"DB26".Static_1[0]開始的4個元素傳送至"DB26".Static_2[4]開始的數組中。

圖14 程序使用

圖15 運行結果

MOVE_BLK_VARIANT

LAD和SCL均為MOVE_BLK_VARIANT指令。

MOVE_BLK_VARIANT的基本功能是數組之間部分元素的傳送,並且是可以處理Variant類型的變量的指令之一,適合處理Variant指向的變長數組。

從TIA V13SP1,S7-1200 V4.0開始支持該指令。

圖16 指令位置

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

同樣是傳送部分數組元素的指令,MOVE_BLK_VARIANT相對MOVE_BLK有以下優點:

1. SRC和DEST不可以是Bool數組,但可以是Struct、UDT等複雜數據類型數組

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

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

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

使用MOVE_BLK_VARIANT指令的注意:

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

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

使用舉例:

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

圖18 運行結果

需要注意的是將DB塊改為非優化,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 程序詳情

電氣相關知識和經驗是用來分享,希望本文能對你有幫助。與人玫瑰,手留餘香。

歡迎大家關注,點讚,評論及轉發。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了