西门子CM1241通讯模块RS485/422,西门子CM1241通讯模块,通讯模块RS485/422,西门子RS485/422模块,西门子S7-1200RS485/422模块
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类型的变量,变量内是连续的Bool变量,IN处填写Struct、UDT类型内的接收的Bool起始变量。
注意:
1. 当COUNT_IN超过了位序列数组元素个数,将不执行指令。如果激活指令的ENO功能,则ENO=False。
2. 当所需的Boo数量超过了已有的Bool数量,将不执行指令,如果激活指令的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变量
. 在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME(后面四个从TIA博途V11开始)类型变量,在程序中将功能框定时器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。对于线圈型指令,这是**方法。
(1) DB块中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图5~图7。
图5 DB块中的定义
图6 功能框定时器使用
图7 线圈型定时器使用
(2) FB的静态变量中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,参见图8。
图8 静态变量中定义
(3) FC和FB的INOUT变量中新建IEC_TIMER等类型变量(LAD/FBD),如果是IEC_TIMER等类型变量的数组,S7-1200从V2.0版本开始支持,从TIA博途V14开始支持IEC_TIMER等类型变量的变长数组(ARRAY[#]),参见图9。
图9 INOUT中定义
(4) 以上三种方法的SCL版本,从TIA博途V14开始支持,参见图10。
图10 SCL中使用
从以上4个示例可以看出,IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME五种数据类型没有本质的区别,可以互换使用,为使得程序明确,建议只使用定时器对应名字的数据类型。
西门子CM1241通讯模块RS485/422,西门子CM1241通讯模块,通讯模块RS485/422,西门子RS485/422模块,西门子S7-1200RS485/422模块