回复:1200PLC 字转换位是啥指令啊

已锁定

手机用户20200715159278

  • 帖子

    8
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2020-07-15

普通 普通 如何晋级?

发布于 2020-09-29 10:10:47

2楼

展开查看
以下是引用398374947在2020-09-29 08:37:22的发言 >

V14 SP1以上版本可以使用SCATTER指令把一个字转换成一个16位的数组

SCATTER:将位序列解析为单个位    

   

说明

“将位序列解析为单个位”指令用于将 BYTE、WORD、DWORD 或 LWORD 数据类型的变量分解为单个位,并保存在 ARRAY of BOOL 中。

说明

ARRAY 的长度

ARRAY of BOOL 的元素数量必须恰好等于位序列指定的数量。

例如,如果数据类型为 BYTE,则 ARRAY 中必须恰好包含 8 个元素(WORD = 16、DWORD = 32、LWORD = 64)。

   

说明

S7-1500 CPU 中指令的可用性

该指令可用于固件版本为 V4.2 及以上版本的 S7-1200 系列 CPU 和固件版本为 V2.1 及以上版本的 S7-1500 系列 CPU。

   

例如,通过这种方式您可以解析状态字,并使用索引读取和改变单个位的状态。您可以使用 GATHER 再次将各个位组合为位序列。

如果满足下列条件之一,使能输出 ENO 将返回信号状态“0”:

使能输入 EN 的信号状态为“0”。

如果 ARRAY 未提供足够的 BOOL 元素。

参数

下表列出了该指令的参数:

参数              声明                      数据类型                           存储区                                  说明

EN                 输入                      BOOL                           I、Q、M、D、L                   使能输入


ENO              输出                       BOOL                          I、Q、M、D、L                   使能输出

  

IN                  输入               BYTE、WORD、                 I、Q、M、D、L                   解析的位序列

                                          DWORD、LWORD

       

OUT               输出              ARRAY[*] of BOOL              I、Q、M、D、L                  保存单个位的 

                                      *:8、16、32 或 64 个元素                                                   ARRAY

示例

在块接口中创建以下变量:

变量                                             区域                                          数据类型         


启用                                                                                               BOOL

                                                    输入

SourceWord                                                                                  WORD



EnableOut                                                                                     BOOL

                                                    输出

DestinationArray                                                                          ARRAY[0..15] of BOOL

   


   

以下示例说明了该指令的工作原理:

下表将通过具体的操作数值对该指令的工作原理进行说明:

参数                         操作数                               数据类型


IN                       SourceWord                         WORD(16 位)

   

OUT                   DestinationArray                   操作数“DestinationArray”的数据类型为                                                                                            ARRAY[0..15] of BOOL。其中包含 16 个元素,因此与                                                                          待解析 WORD 的长度相同。

   

如果操作数 #Enable 在使能输入 EN 返回信号状态“1”,则将执行该指令。数据类型为 WORD 的操作数 #SourceWord 解析为单个位 (16),并将其分配给操作数 #DestinationArray 的各个元素。如果在指令执行期间出现错误,操作数 #EnableOut 将在使能输出 ENO 处返回信号状态“0”。



太给力了  完全可以实现

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15105条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。