西門子: | LOGO擴展模塊 |
LOGO: | 6ED1055-1MM00-0BA2 |
中國: | 凈重0.132KG |
單價: | 550.00元/臺 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 直轄市 上海 |
有效期至: | 長期有效 |
發(fā)布時間: | 2024-10-07 15:57 |
最后更新: | 2024-10-07 15:57 |
瀏覽次數(shù): | 20 |
采購咨詢: |
請賣家聯(lián)系我
|
位序列的組合與分解(LAD和SCL)包括如圖1所示4個指令:
圖1 指令位置
其中SCATTER(_BLK)是將位序列(數(shù)組)分解成若干Bool變量,GATHER(_BLK)是將若干Bool變量組合成位序列(數(shù)組)。
版本:
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數(shù)組,其中Byte分解成8Bool元素的數(shù)組,Word分解成16Bool元素的數(shù)組,DWord分解成32Bool元素的數(shù)組。LAD需要在下拉框“???”選擇輸入類型(Byte、Word、DWord),SCL無需選擇。IN是待分解的位序列變量,OUT是Bool數(shù)組名,元素數(shù)量必須正好符合要求。
V1.1版本:OUT除Bool數(shù)組之外,可以是Struct、UDT類型的變量,變量內(nèi)是連續(xù)的8Bool、16Bool、32Bool,OUT處填寫Struct、UDT類型的變量名。
注:LAD版本的SCATTER,如果調(diào)用該塊的OB\FB\FC如果沒有激活I(lǐng)EC檢查,IN變量支持整數(shù)、字符、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)數(shù)組分解成Bool數(shù)組。LAD需要在下拉框選擇輸入數(shù)組IN的類型(Byte、Word、DWord),COUNT_IN的類型(USInt、UInt、UDInt),SCL無需選擇。IN是待分解的位序列數(shù)組起始元素,COUNT_IN是待分解的位序列數(shù)組元素個數(shù),OUT是接收的Bool數(shù)組起始元素。
V1.1版本:OUT除Bool數(shù)組之外,可以是Struct、UDT類型的變量,變量內(nèi)是連續(xù)的Bool變量,OUT處填寫Struct、UDT類型內(nèi)的接收的Bool起始變量。
注意:
1. 當COUNT_IN超過了位序列數(shù)組元素個數(shù),將不執(zhí)行指令。如果激活指令的ENO功能,則ENO=False。
2. 當所需的Boo數(shù)量超過了已有的Bool數(shù)量,指令正常執(zhí)行,多余部分被舍棄。
3. 當Bool數(shù)組起始
使用舉例,如圖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數(shù)組合并成位序列(Byte、Word、DWord),其中8Bool元素的數(shù)組合并成Byte,16Bool元素的數(shù)組合并成Word,32Bool元素的數(shù)組合并成DWord。LAD需要在下拉框選擇輸出類型(Byte、Word、DWord),SCL無需選擇。IN是Bool數(shù)組名,元素數(shù)量必須正好符合要求,OUT是合并后的位序列變量。
V1.1版本:IN除Bool數(shù)組之外,可以是Struct、UDT類型的變量,變量內(nèi)是連續(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數(shù)組合并成位序列(Byte、Word、DWord)數(shù)組。LAD需要在下拉框選擇輸出數(shù)組OUT的類型(Byte、Word、DWord),COUNT_IN的類型(USInt、UInt、UDInt),SCL無需選擇。IN是待合并的Bool數(shù)組起始元素,COUNT_IN是合并后的位序列數(shù)組元素個數(shù),OUT是位序列數(shù)組起始元素。
V1.1版本:IN除Bool數(shù)組之外,可以是Struct、UDT類型的變量,變量內(nèi)是連續(xù)的Bool變量,IN處填寫Struct、UDT類型內(nèi)的接收的Bool起始變量。
注意:
2. 當所需的Boo數(shù)量超過了已有的Bool數(shù)量,將不執(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中的定義