SM1231模拟量输入模块,西门子S7-1200SM1231,SM1231价格,SM1231参数,SM1231型号,西门子S7-1200SM1231模拟量输入模块
6ES72314HD320XB0 | SM1231 模拟量输入模块 4AI 13位分辩率 |
6ES72315ND320XB0 | SM1231 模拟量输入模块 4AI 16位分辩率 |
6ES72314HF320XB0 | SM1231 模拟量输入模块 8AI 13位分辩率 |
6ES72315PD320XB0 | SM1231 热电阻模块 4RTD 16位分辩率 |
6ES72315QD320XB0 | SM1231 热电偶模块 4TC 16位分辩率 |
6ES72315PF320XB0 | SM1231 热电阻模块 8RTD 16位分辩率 |
6ES72315QF320XB0 | SM1231 热电偶模块 8TC 16位分辩率 |
SM1231模拟量输入模块,西门子S7-1200SM1231,SM1231价格,SM1231参数,SM1231型号,西门子S7-1200SM1231模拟量输入模块
S7-1200将Byte数组(即Byte流)看做是序列,也就是标准数组。与之相反,其他所有格式都是非序列的,通常程序使用的都是非序列的,例如Struct,UDT,或其他格式。序列化和反序列化指令的作用就是在实现标准数组和其他格式的转换。对于某些标准功能块,*方便处理的是Byte数组,但处理对象往往是多样的例如Struct、UDT或者其他格式,这时**的方法就是先将各类对象统一序列化成Byte数组,然后执行相关功能块,*后在执行反序列化返回初始对象。如图1所示,为这两个指令实现的结果。
从TIA V13SP1,S7-1200 V4.0开始支持这两个指令。
图1 指令实现的功能
图2 指令位置
图3 指令详情
对于Deserialize(反序列化)、Serialize(序列化),目前出了2个版本的指令:
1. TIA 博途 V13SP1开始,S7-1200 V4.0、V4.1支持V1版本,以下为V1版本说明:
Deserialize:参数参见表1
表1 Deserialize参数
SRC_ARRAY | Input | Variant或Array of Byte | 标准Byte数组 |
POS | InOut | DInt | 见下面注意4 |
Ret_Val | Return | Int | 错误代码 |
DEST_VARIABLE | Output | Variant或Struct、UDT、Array等 | 反序列化后的输出变量 |
Serialize:参数参见表2
表2 Serialize参数
SRC_VARIABLE | Input | Variant或Struct、UDT、Array等 | 待序列化的输入变量 |
POS | InOut | DInt | 见下面注意4 |
Ret_Val | Return | Int | 错误代码 |
DEST_ARRAY | Output | Variant或Array of Byte | 标准Byte数组 |
注意:
(1) V1版本中标准Byte数组不能是优化数据块的数组,可以是诸如P#M100.0 Byte 10这种看做是数组的(原因)。所以Deserialize的SRC_ARRAY与Serialize的DEST_ARRAY支持的Variant类型其实指向的就是P#指针这种,指向其他类型都不可以。
(2)同样是Variant类型,Deserialize的DEST_VARIABLE与Serialize的SRC_VARIABLE是真正的支持Variant类型,并且是可以处理Variant类型的变量的指令之二。
(3) SRC_ARRAY/DEST_ARRAY的数组大小要大于DEST_VARIABLE/SRC_VARIABLE的空间占用
(4)DEST_VARIABLE/SRC_VARIABLE空间占用的计算规则:
位变量位于另一位变量后则地址连续排布,如果位于其他变量类型的后面,则需要从整字节地址开始;
字节大小的变量从整字节地址开始;
字、双字、四字的变量从偶数字节地址开始;
例子:如图4所示,虽然总数上是5个字节,但是因为整形变量从偶数字节地址开始所以空出了一个字节,因此这种排布需要占6个字节。
图4 6个字节的排布
(4)POS变量
POS变量声明是InOut,用在Byte数组的下标变量,有输入有输出。
Deserialize:POS的初始输入作为待转化的Byte数组的起始元素,指令结束后,POS的输出=初始输入+DEST_VARIABLE占据的字节数
也可以看做指针,初始指针指向Byte数组所在的POS位置,转化后,指针移动了DEST_VARIABLE占据的字节数。
注意:POS>=0,当POS=0时,为Byte数组的第一个元素,所以建议Byte数组使用Array[0..x] of Byte,这样Byte数组下标可以和POS对应上。
例子:POS实例,如图5所示。