0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

博途SCL指令SCATTER:将位序列解析为单个位

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-06-07 10:47 次阅读

说明

指令“将位序列解析为单个位”用于将数据类型为 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”:

a57aaad6-04d8-11ee-90ce-dac502259ad0.png

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

变量 区域 数据类型
SourceWord Input WORD
DestinationUDT Output “myBits”

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

SCL
SCATTER(IN := #SourceWord,
OUT => #DestinationUDT);

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

参数 操作数 数据类型
IN SourceWord WORD(16 位)
OUT DestinationUDT 操作数“DestinationUDT”为 PLC 数据类型 (UDT),其中包含 16 个元素,因此与待解析 WORD 的长度相同。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • plc
    plc
    +关注

    关注

    5008

    文章

    13150

    浏览量

    462055
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10825

    浏览量

    211140
  • 指令
    +关注

    关注

    1

    文章

    606

    浏览量

    35650
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13608
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17036

原文标题:博途SCL指令SCATTER:将位序列解析为单个位

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SCL语言FOR循环的用法及典型案例

    SCL
    YS YYDS
    发布于 :2023年06月25日 00:06:13

    请教软件安装顺序

    `如图是V14软件,大多文件了,不知道装那个文件夹的文件先`
    发表于 07-29 21:37

    IIC软件协议的操作序列

    寻址)。这7个数据被放置在一个字节的上7,而LSB(最低有效)被用来存储读/写 (R/W) 。这个位让从器件知道是对其进行写入操作(
    发表于 05-29 07:58

    TIAS7-1200学习笔记指令

    本文章对S7-1200plc在软件梯形图方式编程中使用的指令进行了总结和俗语化描述。
    发表于 07-01 09:20

    TIAS7-1200学习笔记

    西门子S7-1200数据类型总结笔记,来源于帮助文档。
    发表于 07-01 11:51

    西门子SCL编程:滚动数据记录

    责任编辑:xj 原文标题:SCL编程实例:滚动数据记录 文章出处:【微信公众号:PLC技术圈】欢迎添加关注!文章转载请注明出处。  
    的头像 发表于 12-28 09:16 4077次阅读
    西门子<b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>SCL</b>编程:滚动数据记录

    如何使用S7-SCL中的“AT”指令

    什么是“AT”指令,如何使用? AT指令是S7-SCL中特有的一个指令,初学者可能会忽略此指令,或者对其理解不够深刻。AT
    的头像 发表于 04-04 18:14 1.1w次阅读
    如何使用S7-<b class='flag-5'>SCL</b>中的“AT”<b class='flag-5'>指令</b>?

    序列的组合与分解

    V1.0版本:SCATTER_BLK指令序列(Byte、Word、DWord)数组分解成Bool数组。LAD需要在下拉框选择输入数组I
    的头像 发表于 10-12 17:08 1989次阅读

    西门子S7-1200使用SCL语言实现双重循环

    在TIA Portal(图)软件中,利用SCL语言实现如下算法。
    的头像 发表于 03-03 09:13 6458次阅读

    用中文编写的SCL程序

    师妹: 师兄,我昨天貌似看到你在玩扫雷游戏?这玩的是游戏还是怀旧青春呀? 布道师: 这你就不懂了吧~这是网路上某位大神用中文写的途程序哦! 师妹: 用做的小游戏我页看过几个,这还能全中文编写
    的头像 发表于 05-29 09:31 1026次阅读
    用中文编写的<b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>SCL</b>程序

    西门子SCL的GOTO跳转指令

    跳转标签和“跳转”指令必须在同一个块中。在一个块中,跳转标签的名称只能指定一次。每个跳转标签可以是多个跳转指令的目标
    发表于 07-03 14:53 7977次阅读

    西门子SCL:TOF:关断延时

    可以使用“关断延时”指令 Q 参数的复位延时 PT 指定的一段时间。当参数 IN 的逻辑运算结果 (RLO) 从“0”变为“1”(信号上升沿)时,置参数 Q。
    的头像 发表于 07-10 18:24 5289次阅读
    西门子<b class='flag-5'>博</b><b class='flag-5'>途</b>:<b class='flag-5'>SCL</b>:TOF:关断延时

    西门子SHL左移指令详解

    使用“左移”指令,可以参数 IN 的内容逐向左移动,并将结果作为函数值返回。参数 N 用于指定应将特定值移位的位数。
    的头像 发表于 07-11 10:37 4668次阅读
    西门子<b class='flag-5'>博</b><b class='flag-5'>途</b>SHL左移<b class='flag-5'>指令</b>详解

    西门子SCL:REGION:构建程序代码的步骤

    可以使用指令“构建程序代码”,在 SCL 块中构建程序代码并将其分为几个不同区域。
    的头像 发表于 07-31 09:09 5974次阅读

    西门子SCL:ROR:循环右移的方法

    使用“循环右移”指令参数 IN 的内容逐向右循环移位,并将结果赋值给指定的操作数。
    的头像 发表于 07-31 09:10 3660次阅读
    西门子<b class='flag-5'>博</b><b class='flag-5'>途</b><b class='flag-5'>SCL</b>:ROR:循环右移的方法