其他分享
首页 > 其他分享> > 西门子博图功能指令位序列 ARRAY 的元素解析为单个位

西门子博图功能指令位序列 ARRAY 的元素解析为单个位

作者:互联网

位序列 ARRAY 的元素解析为单个位

在这里插入图片描述

位序列 ARRAY 的元素解析为单个位

功能描述

将 BYTE、WORD、DWORD 或 LWORD 数据类型的 ARRAY 分解为单个位,并保存在元素类型仅为布尔型的 ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中。

在 COUNT_IN 参数中,可指定待解析源 ARRAY 中的元素数目。

IN 参数中源 ARRAY 的元素数量可能多于 COUNT_IN 参数中的指定数量。

要保存所解析位序列的各个位,ARRAY of BOOL、匿名 STRUCT 或 PLC 数据类型中必须包含足够的元素数量。即OUT实参数据长度要大于或者等于需要解析位序列的数据长度。具体请参看仿真情况

在这里插入图片描述

执行条件

  1. 使能输入 EN 的信号状态不能为“0”。
  2. 源 ARRAY 中的元素数量不能少于 COUNT_IN 参数中的指定数量。
  3. 目标 ARRAY 的索引以 BYTE、WORD、DWORD 或 LWORD 限制开始。

接口参数

参数声明数据类型(1200)数据类型(1500)存储区说明
ENInputBOOLBOOLI、Q、M、D、L 或常量使能输入
ENOOutputBOOLBOOLI、Q、M、D、L使能输出
INInputARRAY[*] of <位序列> 的元素ARRAY[*] of <位序列> 的元素I、Q、M、D、L所解析的 ARRAY of <位序列>
COUNT_INInputUSINT, UINT, UDINTUSINT, UINT, UDINT, ULINTI、Q、M、D、L用于对要解析的源 ARRAY 的元素数量进行计数
OUTOutputARRAY[*] of BOOL、STRUCT 或 PLC 数据类型 *:8、16、32 或 64 个元素ARRAY[*] of BOOL、STRUCT 或 PLC 数据类型 *:8、16、32 或 64 个元素I、Q、M、D、L保存 ARRAY、STRUCT 或 PLC 数据类型中的各个位

其中IN接口的实参可以是ARRAY[*] of <位序列> 的第n个 元素,比如 例子中的**“DataClass2”.Data3.ArrayByte[2]**,OUT接口处的实参也是一样。

另外IN接口处的实参不能直接是ARRAY[*] of <位序列>, 而是在Struct结构下创建此数据结构
在这里插入图片描述

程序举例

1.创建DB块,添加数据结构

在这里插入图片描述

2.创建FB块,添加功能指令,并在OB1调用

在这里插入图片描述

程序演示

在这里插入图片描述

将操作数的前两个字节Byte解析为单个位bool(16)。第一个字节为16进制的2,转换为二进制为0100 0000.第二个字节为16进制的13,转换为二进制为1100 1000

标签:16,西门子,元素,数据类型,博图,PLC,ARRAY,解析
来源: https://blog.csdn.net/yue008/article/details/118575935