说明
指令“将位序列解析为单个位”用于将数据类型为 BYTE、WORD、DWORD 或 LWORD 的变量解析为单个位,并保存在 ARRAY of BOOL、匿名 STRUCT 或仅包含有布尔型元素的 PLC 数据类型中。
说明 多维 ARRAY of BOOL 使用“将位序列解析为单个位”指令时,不支持多维 ARRAY of BOOL。 |
说明 ARRAY、STRUCT 或 PLC 数据类型的长度 ARRAY、匿名 STRUCT 或 PLC 数据类型中包含的元素数目必须恰好等于位序列指定的数量。 例如,如果数据类型为 BYTE,则 ARRAY、STRUCT 或 PLC 数据类型中必须恰好包含 8 个元素(WORD = 16、DWORD = 32、LWORD = 64)。 |
说明 该指令的可用性 该指令可用于固件版本为 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本为 V2.1 及以上版本的 S7-1500 系列 CPU。 |
例如,通过这种方式您可以解析状态字,并使用索引读取和改变单个位的状态。使用 GATHER,可再次将各个位组合为位序列。
如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”:
使能输入 EN 的信号状态为“0”。
ARRAY、STRUCT 或 PLC 数据类型中包含的 BOOL 元素数目不足。
参数 | 声明 | 数据类型 | 存储区 | 说明 | |
---|---|---|---|---|---|
S7-1200 | S7-1500 | ||||
IN | Input | BYTE, WORD, DWORD | BYTE, WORD, DWORD, LWORD | I、Q、M、D、L | 所解析的位序列 这些值不得位于的 I/O 区域或工艺对象的 DB 内。 |
OUT | Output | ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型 *:8、16、32 或 64 个元素 | ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型 *:8、16、32 或 64 个元素 | I、Q、M、D、L | 保存 |
ARRAY 的使用示例
在块接口中创建以下变量:
变量 | 区域 | 数据类型 |
---|---|---|
SourceWord | Input | WORD |
DestinationArray | Output | ARRAY[0..15] of BOOL |
以下示例说明了该指令的工作原理:
SCL |
---|
SCATTER(IN := #SourceWord, |
OUT => #DestinationArray); |
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数 | 操作数 | 数据类型 |
---|---|---|
IN | SourceWord | WORD(16 位) |
OUT | DestinationArray | 操作数“DestinationArray”的数据类型为 ARRAY[0..15] of BOOL。其中包含 16 个元素,因此与待解析 WORD 的长度相同。 |
数据类型为 WORD 的操作数 #SourceWord 解析为单个位 (16),并将其分配给操作数 #DestinationArray 的各个元素。
PLC 数据类型 (UDT) 的使用示例
创建以下 PLC 数据类型“myBits”:
在块接口中创建以下变量:
变量 | 区域 | 数据类型 |
---|---|---|
SourceWord | Input | WORD |
DestinationUDT | Output | “myBits” |
以下示例说明了该指令的工作原理:
SCL |
---|
SCATTER(IN := #SourceWord, |
OUT => #DestinationUDT); |
下表将通过具体的操作数值对该指令的工作原理进行说明:
参数 | 操作数 | 数据类型 |
---|---|---|
IN | SourceWord | WORD(16 位) |
OUT | DestinationUDT | 操作数“DestinationUDT”为 PLC 数据类型 (UDT),其中包含 16 个元素,因此与待解析 WORD 的长度相同。 |
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !