西門子: | LOGO擴展模塊 |
LOGO: | 6ED1055-1MM00-0BA2 |
中國: | 凈重0.132KG |
單價: | 550.00元/臺 |
發(fā)貨期限: | 自買家付款之日起 天內發(fā)貨 |
所在地: | 直轄市 上海 |
有效期至: | 長期有效 |
發(fā)布時間: | 2024-10-07 15:57 |
最后更新: | 2024-10-07 15:57 |
瀏覽次數: | 53 |
采購咨詢: |
請賣家聯系我
|
位序列的組合與分解(LAD和SCL)包括如圖1所示4個指令:
圖1 指令位置
其中SCATTER(_BLK)是將位序列(數組)分解成若干Bool變量,GATHER(_BLK)是將若干Bool變量組合成位序列(數組)。
版本:
1. TIA 博途 V14SP1開始,S7-1200 V4.2支持V1.0版本
2. TIA 博途 V15開始,S7-1200 V4.2支持V1.1版本
圖2 SCATTER指令詳情
V1.0版本:SCATTER指令是將位序列(Byte、Word、DWord)分解成Bool數組,其中Byte分解成8Bool元素的數組,Word分解成16Bool元素的數組,DWord分解成32Bool元素的數組。LAD需要在下拉框“???”選擇輸入類型(Byte、Word、DWord),SCL無需選擇。IN是待分解的位序列變量,OUT是Bool數組名,元素數量必須正好符合要求。
V1.1版本:OUT除Bool數組之外,可以是Struct、UDT類型的變量,變量內是連續(xù)的8Bool、16Bool、32Bool,OUT處填寫Struct、UDT類型的變量名。
注:LAD版本的SCATTER,如果調用該塊的OB\FB\FC如果沒有激活IEC檢查,IN變量支持整數、字符、TIME、DATE、TOD類型。
使用舉例,如圖3-5所示:
1. 將Word變量"DB66".Static_1分解成Array[0..15] of Bool變量"DB66".Static_2,將Byte變量"DB66".Static_3分解成UDT中的連續(xù)8個Bool變量Tag_3
圖3 DB66的定義
圖4 Q點在PLC變量表的定義
圖5 程序詳情
圖6 SCATTER_BLK指令詳情
V1.0版本:SCATTER_BLK指令是將位序列(Byte、Word、DWord)數組分解成Bool數組。LAD需要在下拉框選擇輸入數組IN的類型(Byte、Word、DWord),COUNT_IN的類型(USInt、UInt、UDInt),SCL無需選擇。IN是待分解的位序列數組起始元素,COUNT_IN是待分解的位序列數組元素個數,OUT是接收的Bool數組起始元素。
V1.1版本:OUT除Bool數組之外,可以是Struct、UDT類型的變量,變量內是連續(xù)的Bool變量,OUT處填寫Struct、UDT類型內的接收的Bool起始變量。
注意:
1. 當COUNT_IN超過了位序列數組元素個數,將不執(zhí)行指令。如果激活指令的ENO功能,則ENO=False。
2. 當所需的Boo數量超過了已有的Bool數量,指令正常執(zhí)行,多余部分被舍棄。
3. 當Bool數組起始
使用舉例,如圖7-8所示:
1. 將"DB67".Static_1,從第3個元素開始的2個Byte變量分解成"DB67".Static_2,從第1個元素開始
2. 將"DB67".Static_3,從第1個元素開始的2個Byte變量變量分解成"DB67".Static_4,從這個Struct個變量開始
圖7 DB67中的定義
圖8 程序詳情
圖9 GATHER指令詳情
V1.0版本:GATHER指令是將Bool數組合并成位序列(Byte、Word、DWord),其中8Bool元素的數組合并成Byte,16Bool元素的數組合并成Word,32Bool元素的數組合并成DWord。LAD需要在下拉框選擇輸出類型(Byte、Word、DWord),SCL無需選擇。IN是Bool數組名,元素數量必須正好符合要求,OUT是合并后的位序列變量。
V1.1版本:IN除Bool數組之外,可以是Struct、UDT類型的變量,變量內是連續(xù)的8Bool、16Bool、32Bool,OUT處填寫Struct、UDT類型的變量名。
使用舉例,如圖10-12所示:
1. 將Array[0..15] of Bool變量"DB68".Static_1合并成Word變量"DB68".Static_2,將UDT中的連續(xù)8個Bool變量Tag_4合并成Byte變量"DB68".Static_3
圖10 DB68中的定義
圖11 I點在PLC變量表的定義
圖12 程序詳情
圖13 GATHER_BLK指令詳情
V1.0版本:GATHER_BLK指令是將Bool數組合并成位序列(Byte、Word、DWord)數組。LAD需要在下拉框選擇輸出數組OUT的類型(Byte、Word、DWord),COUNT_IN的類型(USInt、UInt、UDInt),SCL無需選擇。IN是待合并的Bool數組起始元素,COUNT_IN是合并后的位序列數組元素個數,OUT是位序列數組起始元素。
V1.1版本:IN除Bool數組之外,可以是Struct、UDT類型的變量,變量內是連續(xù)的Bool變量,IN處填寫Struct、UDT類型內的接收的Bool起始變量。
注意:
2. 當所需的Boo數量超過了已有的Bool數量,將不執(zhí)行指令,如果激活指令的ENO功能,則ENO=False。
使用舉例,如圖14-15所示:
1. 將"DB69".Static_2,從第1個Bool元素開始合并成"DB69".Static_1,從第3個元素開始的2個Byte變量
2. 將"DB69".Static_4,從Struct第1個元素開始合并成"DB69".Static_3,從第1個元素開始的2個Byte變量
圖14 DB69中的定義