在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

介紹幾個常用MOVE系列指令

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 作者:機器人及PLC自動化 ? 2022-07-07 10:48 ? 次閱讀

MOVE 系列指令

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

MOVE

(U)MOVE_BLK

MOVE_BLK_VARIANT

MOVE

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

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

459a7102-fd34-11ec-ba43-dac502259ad0.jpg

圖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的傳送條件

傳送源 (IN) 傳送目標 (OUT1)
進行 IEC 檢查 不進行 IEC 檢查
BYTE BYTE、WORD、DWORD BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、UDINT、TIME、DATE、TOD、CHAR
WORD WORD、DWORD BYTE、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 BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD
INT INT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD
UINT USINT, UINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD
DINT DINT BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, TIME, DATE, TOD
UDINT UDINT 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 數據類型的位長度超出輸出 OUT 數據類型的位長度,則源值的高位會丟失。如果輸入 IN 數據類型的位長度低于輸出 OUT 數據類型的位長度,則目標值的高位會被改寫為 0。
2.REAL傳送至DWORD時是按位傳送,不是取整。如果需要取整,可以使用ROUND、CONVERT_REAL_TO_DINT等指令。
3.(不)進行IEC檢查是指,在MOVE指令所在的OB/FC/FB屬性中的"IEC檢查"選項,僅在此塊中生效。默認的"IEC檢查"不激活。設置如圖2所示。

45afcdea-fd34-11ec-ba43-dac502259ad0.jpg

圖2 IEC檢查的設置

MOVE的使用

45ce7100-fd34-11ec-ba43-dac502259ad0.jpg

圖3 DB25

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

45f7caaa-fd34-11ec-ba43-dac502259ad0.jpg

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

2. 數組的傳送

46194a2c-fd34-11ec-ba43-dac502259ad0.jpg

圖5 數組的傳送

3. UDT的傳送

46363092-fd34-11ec-ba43-dac502259ad0.jpg

圖6 UDT的傳送

4. String中的字符的傳送

465498c0-fd34-11ec-ba43-dac502259ad0.jpg

圖7 String中的字符的傳送

5. DTL中的變量的傳送

46650d86-fd34-11ec-ba43-dac502259ad0.jpg

圖8 DTL中的變量的傳送

6. DB整體之間的傳送

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

467e1e98-fd34-11ec-ba43-dac502259ad0.jpg

1. IN和OUT的DB必須同時為優化DB或者非優化DB。

2. 不允許同時輸出到多個DB,即圖4的形式。

46962510-fd34-11ec-ba43-dac502259ad0.jpg

圖9 存儲器預留區域設置

46af5a80-fd34-11ec-ba43-dac502259ad0.jpg

圖10 DB整體傳送

46dc4252-fd34-11ec-ba43-dac502259ad0.jpg

圖11 DB整體傳送程序

(U)MOVE_BLK

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

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

46f3f834-fd34-11ec-ba43-dac502259ad0.jpg

圖12 程序位置

47272196-fd34-11ec-ba43-dac502259ad0.jpg

圖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]開始的數組中。

47390136-fd34-11ec-ba43-dac502259ad0.jpg

圖14 程序使用

47568ea4-fd34-11ec-ba43-dac502259ad0.jpg

圖15 運行結果

MOVE_BLK_VARIANT

LAD和SCL均為MOVE_BLK_VARIANT指令。

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

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

4770e006-fd34-11ec-ba43-dac502259ad0.jpg

圖16 指令位置

477d9814-fd34-11ec-ba43-dac502259ad0.jpg

圖17 指令詳情

表2 參數說明

參數 聲明 數據類型
SRC Input Variant、Array、其他(不包括Bool,Array of Bool)
COUNT Input UDINT
SRC_INDEX Input DINT
DEST_INDEX Input DINT
DEST Output Variant、Array、其他(不包括Bool,Array of Bool)
RET_VAL Return INT

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區

47918dc4-fd34-11ec-ba43-dac502259ad0.jpg

圖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結構一致即可。

47af11a0-fd34-11ec-ba43-dac502259ad0.jpg

圖19 程序詳情

2. 實現變長數組的處理

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

47c4bfe6-fd34-11ec-ba43-dac502259ad0.jpg

圖20 指令詳情

------------------------END-----------------------

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28413
  • move
    +關注

    關注

    0

    文章

    12

    瀏覽量

    7479
  • SCL
    SCL
    +關注

    關注

    1

    文章

    239

    瀏覽量

    17111

原文標題:博途: MOVE 系列指令

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    VR的常用comand指令介紹

    VR 中的常用指令設置及介紹
    發表于 02-13 10:08

    常用ARM指令的功能介紹

    就做個筆記寫下自己復習的東西,當然里面很多資料都是網上參考的,不過自己動手輸入的,主要是加深印象,雖然這種方法不一定管用呵呵常用ARM指令的功能介紹1.匯編偽指令(1)ENTRYENT
    發表于 05-13 07:45

    幾個常用電路

    本文將介紹幾個常用電路,詳情請看下文。
    的頭像 發表于 03-04 15:02 ?1.7w次閱讀
    <b class='flag-5'>幾個</b><b class='flag-5'>常用</b>電路

    GSM模塊常用AT指令詳解

    本文首先介紹了AT指令的概念和AT指令的用法,其次闡述了AT的命令格式,最后對GSM模塊常用AT指令進行了匯總。
    的頭像 發表于 05-15 11:16 ?2.6w次閱讀
    GSM模塊<b class='flag-5'>常用</b>AT<b class='flag-5'>指令</b>詳解

    西門子S7-1200PLC移動操作移動值指令MOVE

    在S7-1200PLC中,常用MOVE指令進行對存儲器進行賦值或是把一個存儲器的數據復制到另外一個存儲器中。
    的頭像 發表于 04-06 09:25 ?6488次閱讀

    西門子S7-1200PLC塊移動指令MOVE_BLK操作

    在S7-1200PLC中,l利用MOVE_BLK指令可以將一個存儲區(源范圍)的數據移動到另一個存儲區(目標范圍)中。
    的頭像 發表于 04-06 10:29 ?6581次閱讀

    三菱FX系列PLC常用指令大全來了

    想學好三菱FX 系列的plc,需要掌握哪些常用指令呢?作為一名PLC發燒友,這些指令你都掌握了嗎?
    的頭像 發表于 04-10 11:38 ?8366次閱讀

    西門子PLC程序中常用幾個指令介紹

    兩個或兩個以上的接點串聯連接的電路叫串聯電路塊。串聯電路塊并聯連接時,分支開始用LD、LDN指令,分支結束用OLD指令。OLD指令與后述的ALD指令均為無目標元件
    的頭像 發表于 04-13 16:52 ?6743次閱讀

    SIMATIC S7-1500 PLC移動值指令(MOVE)簡述

    當允許輸入端的狀態為“1”時,啟動此指令,將IN端的數值輸送到OUT端的目的地地址中,IN和OUTx(x為1、2、3)有相同的信號狀態,移動值的指令MOVE)及參數見下圖1。
    的頭像 發表于 05-08 09:33 ?1.6w次閱讀
    SIMATIC S7-1500 PLC移動值<b class='flag-5'>指令</b>(<b class='flag-5'>MOVE</b>)簡述

    博途使用STL中的MOVE指令

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

    工業機器人ABB編程常用指令

    在之前的文章中,相信你已經對ABB機器人的MOVE指令以及常用專屬名詞有一定的了解了,而從這篇文章開始,繼續學習新的 編程常用指令
    的頭像 發表于 10-19 10:40 ?2238次閱讀
    工業機器人ABB編程<b class='flag-5'>常用</b><b class='flag-5'>指令</b>

    PLC中Move指令可以實現什么功能?

     Move指令是PLC編程中的基本指令之一,常用于在程序中對數據進行移動和傳輸。在使用Move指令
    發表于 01-10 15:13 ?1.2w次閱讀

    介紹一下MOVE_BLK_VARIANT指令在使用中應注意的問題

    塊移動指令包括兩個:MOVE_BLK和MOVE_BLK_VARIANT,實際項目中都經常被用到。
    的頭像 發表于 03-04 10:51 ?2633次閱讀
    <b class='flag-5'>介紹</b>一下<b class='flag-5'>MOVE</b>_BLK_VARIANT<b class='flag-5'>指令</b>在使用中應注意的問題

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

    對于優化的DB塊,可使用FILL_BLK指令或創建相同的UDT結構類型的DB塊,使用MOVE指令清零DB塊數據。
    發表于 04-15 09:34 ?1270次閱讀
    部分TIA集成<b class='flag-5'>指令</b>處理的方法<b class='flag-5'>介紹</b>

    abb機器人常用指令大全

    ABB機器人是一種廣泛應用于工業自動化領域的智能設備,其指令系統豐富多樣,能夠滿足各種復雜場景的需求。 基本指令 1.1 Move指令 Move
    的頭像 發表于 06-17 09:35 ?6973次閱讀
    主站蜘蛛池模板: 日本aaaa级毛片在线看| 欧洲亚洲一区| 欧美hh| 久久精品国产免费看久久精品| 欧美影欧美影院免费观看视频| 欧美黑人黄色片| 国产精品久久久久久久久免费| 在线免费视频网站| 亚洲免费观看视频| 伊人久久大| 天堂网在线播放| 免费人成年激情视频在线观看| 国模论坛| 午夜视频你懂的| 加勒比在线一区| 欧美色图日韩色图| 美女国产在线观看免费观看| 国产伦子一区二区三区四区| 亚洲天天干| 黄黄网址| 757福利影院合集3000| 福利一区二区在线观看| 特黄特色大片免费视频播放| 你懂的网址在线观看| 成人在线精品| 国产亚洲美女| 夜夜爱夜夜做| 国产伦精品一区二区三区网站| 在线99热| 性夜影院午夜看片| 一级毛片aaaaaa视频免费看| 日本一区高清视频| 亚洲视频一二三| 亚洲大香伊人蕉在人依线| 一级毛片一级毛片| 人与禽交免费网站视频| 国产精品三级视频| 又长又大又粗又硬3p免费视频| 成人久久网| 男女激情做爰叫床声视频偷拍| 久久婷五月综合|