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

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

3天内不再提示

位序列的组合与分解

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-10-12 17:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

位序列的组合与分解

位序列的组合与分解(LAD和SCL)包括如图1所示4个指令:

3918d5f4-3c0e-11ed-9e49-dac502259ad0.jpg

图1 指令位置

其中SCATTER(_BLK)是将位序列(数组)分解成若干Bool变量,GATHER(_BLK)是将若干Bool变量组合成位序列(数组)。

版本:

1. TIA 博途 V14SP1开始,S7-1200 V4.2支持V1.0版本

2. TIA 博途 V15开始,S7-1200 V4.2支持V1.1版本

SCATTER

3944e96e-3c0e-11ed-9e49-dac502259ad0.jpg

图2 SCATTER指令详情

V1.0版本:SCATTER指令是将位序列(Byte、Word、DWord)分解成Bool数组,其中Byte分解成8Bool元素的数组,Word分解成16Bool元素的数组,DWord分解成32Bool元素的数组。LAD需要在下拉框“???”选择输入类型(Byte、Word、DWord),SCL无需选择。IN是待分解的位序列变量,OUT是Bool数组名,元素数量必须正好符合要求。

V1.1版本:OUT除Bool数组之外,可以是Struct、UDT类型的变量,变量内是连续的8Bool、16Bool、32Bool,OUT处填写Struct、UDT类型的变量名。

注:LAD版本的SCATTER,如果调用该块的OBFBFC如果没有激活IEC检查,IN变量支持整数、字符、TIME、DATE、TOD类型。

使用举例,如图3-5所示:

1. 将Word变量"DB66".Static_1分解成Array[0..15] of Bool变量"DB66".Static_2,将Byte变量"DB66".Static_3分解成UDT中的连续8个Bool变量Tag_3

3956e9d4-3c0e-11ed-9e49-dac502259ad0.jpg

图3 DB66的定义

3972eda0-3c0e-11ed-9e49-dac502259ad0.jpg

图4 Q点在PLC变量表的定义

39914f66-3c0e-11ed-9e49-dac502259ad0.jpg

图5 程序详情

SCATTER_BLK

39b65ed2-3c0e-11ed-9e49-dac502259ad0.jpg

图6 SCATTER_BLK指令详情

V1.0版本:SCATTER_BLK指令是将位序列(Byte、Word、DWord)数组分解成Bool数组。LAD需要在下拉框选择输入数组IN的类型(Byte、Word、DWord),COUNT_IN的类型(USInt、UInt、UDInt),SCL无需选择。IN是待分解的位序列数组起始元素,COUNT_IN是待分解的位序列数组元素个数,OUT是接收的Bool数组起始元素。

V1.1版本:OUT除Bool数组之外,可以是Struct、UDT类型的变量,变量内是连续的Bool变量,OUT处填写Struct、UDT类型内的接收的Bool起始变量。

注意:

1. 当COUNT_IN超过了位序列数组元素个数,将不执行指令。如果激活指令的ENO功能,则ENO=False。

2. 当所需的Boo数量超过了已有的Bool数量,指令正常执行,多余部分被舍弃。

3. 当Bool数组起始

使用举例,如图7-8所示:

1. 将"DB67".Static_1,从第3个元素开始的2个Byte变量分解成"DB67".Static_2,从第1个元素开始

2. 将"DB67".Static_3,从第1个元素开始的2个Byte变量变量分解成"DB67".Static_4,从这个Struct第一个变量开始

39c87e96-3c0e-11ed-9e49-dac502259ad0.jpg

图7 DB67中的定义

39e20a1e-3c0e-11ed-9e49-dac502259ad0.jpg

图8 程序详情

GATHER

39ee98ec-3c0e-11ed-9e49-dac502259ad0.jpg

图9 GATHER指令详情

V1.0版本:GATHER指令是将Bool数组合并成位序列(Byte、Word、DWord),其中8Bool元素的数组合并成Byte,16Bool元素的数组合并成Word,32Bool元素的数组合并成DWord。LAD需要在下拉框选择输出类型(Byte、Word、DWord),SCL无需选择。IN是Bool数组名,元素数量必须正好符合要求,OUT是合并后的位序列变量。

V1.1版本:IN除Bool数组之外,可以是Struct、UDT类型的变量,变量内是连续的8Bool、16Bool、32Bool,OUT处填写Struct、UDT类型的变量名。

使用举例,如图10-12所示:

1. 将Array[0..15] of Bool变量"DB68".Static_1合并成Word变量"DB68".Static_2,将UDT中的连续8个Bool变量Tag_4合并成Byte变量"DB68".Static_3

3a07b35e-3c0e-11ed-9e49-dac502259ad0.jpg

图10 DB68中的定义

3a1f1b66-3c0e-11ed-9e49-dac502259ad0.jpg

图11 I点在PLC变量表的定义

3a3b15e6-3c0e-11ed-9e49-dac502259ad0.jpg

图12 程序详情

GATHER_BLK

3a5be212-3c0e-11ed-9e49-dac502259ad0.jpg

图13 GATHER_BLK指令详情

V1.0版本:GATHER_BLK指令是将Bool数组合并成位序列(Byte、Word、DWord)数组。LAD需要在下拉框选择输出数组OUT的类型(Byte、Word、DWord),COUNT_IN的类型(USInt、UInt、UDInt),SCL无需选择。IN是待合并的Bool数组起始元素,COUNT_IN是合并后的位序列数组元素个数,OUT是位序列数组起始元素。

V1.1版本:IN除Bool数组之外,可以是Struct、UDT类型的变量,变量内是连续的Bool变量,IN处填写Struct、UDT类型内的接收的Bool起始变量。

注意:

1. 当COUNT_IN超过了位序列数组元素个数,将不执行指令。如果激活指令的ENO功能,则ENO=False。

2. 当所需的Boo数量超过了已有的Bool数量,将不执行指令,如果激活指令的ENO功能,则ENO=False。

使用举例,如图14-15所示:

1. 将"DB69".Static_2,从第1个Bool元素开始合并成"DB69".Static_1,从第3个元素开始的2个Byte变量

2. 将"DB69".Static_4,从Struct第1个元素开始合并成"DB69".Static_3,从第1个元素开始的2个Byte变量

3a729d86-3c0e-11ed-9e49-dac502259ad0.jpg

图14 DB69中的定义

3a91c120-3c0e-11ed-9e49-dac502259ad0.jpg

图15 程序详情

审核编辑:郭婷

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

    关注

    5052

    文章

    14763

    浏览量

    488355

原文标题:位序列的组合与分解

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索DS28CM00:I²C/SMBus硅序列号芯片的奥秘

    和SMBus接口来确定。其注册编号是一个工厂激光刻录的64ROM,包含一个独特的48序列号、一个8CRC和一个
    的头像 发表于 04-01 15:55 220次阅读

    全面解析DS2411硅序列号芯片:特性、应用与设计要点

    DS2411的各项特性、工作原理以及设计应用中的关键要点。 文件下载: DS2411P+.pdf 一、DS2411芯片特性 1. 唯一序列号 DS2411具有独一无二的64注册号码,由8家族代码、48
    的头像 发表于 04-01 15:30 126次阅读

    探索DS2401:独特硅序列号芯片的卓越性能与应用

    景,成为了众多工程师的首选。今天,我们就来深入了解一下DS2401芯片。 文件下载: DS2401+.pdf 一、DS2401的核心特性 1. 唯一的64ROM ID DS2401拥有绝对唯一的64注册号码,由8家族代码、
    的头像 发表于 04-01 15:30 117次阅读

    ADM1064 超序列器:多电源系统的理想解决方案

    ADM1064 超序列器:多电源系统的理想解决方案 在电子设备的设计中,多电源系统的监控和排序是一个关键问题。ADM1064 超序列器作为一款高度集成的设备,为多电源系统提供了完整的监控和排序
    的头像 发表于 02-28 13:45 198次阅读

    JSON:简洁代码高效搞定序列化与反序列

    面对频繁的数据交互需求,用最简方式实现JSON序列化与反序列化已成为开发者必备技能,借助主流库,轻松实现零负担数据转换。JSON(JavaScriptObjectNotation)是一种轻量级
    的头像 发表于 02-25 19:04 210次阅读
    JSON:简洁代码高效搞定<b class='flag-5'>序列</b>化与反<b class='flag-5'>序列</b>化

    极简代码,搞定JSON序列化与反序列

    快速实现JSON数据的生成(序列化)与解析(反序列化)。 目前json库已全面支持LuatOS开发系列产品,开发者可根据项目实际需求,灵活选用并进行快速集成与开发。 一、 JSON基础要点 在
    的头像 发表于 02-23 21:46 428次阅读
    极简代码,搞定JSON<b class='flag-5'>序列</b>化与反<b class='flag-5'>序列</b>化

    脉冲序列幅值的提取

    请教各位大佬,如图这种脉冲序列,怎么把每个脉冲的幅值提取出来? *附件:脉冲序列幅值提取.rar
    发表于 02-09 11:35

    SN74AHC139双2到4解码器/多路分解器深度解析

    SN74AHC139双2到4解码器/多路分解器深度解析 在电子设计的领域中,解码器/多路分解器是非常基础且实用的器件,它们在数据传输、地址解码等方面发挥着关键作用。今天我们来深入探讨德州仪器(TI
    的头像 发表于 01-16 17:10 1084次阅读

    组合导航核心问题解答

    组合导航的信息感知核心—基于MEMS技术的微型化传感器 MEMS微机电技术,可将MEMS陀螺仪与MEMS加速度计集成在毫米级芯片上,使组合导航体重、数量缩小几个级别,这是组合导航能被轻松集成于狭小
    的头像 发表于 01-06 17:40 656次阅读

    深入解析LM2512A:高性能RGB显示接口序列化器

    深入解析LM2512A:高性能RGB显示接口序列化器 在电子设备的显示领域,如何高效、稳定地传输高质量的图像数据是一个关键问题。TI的LM2512A作为一款专门的移动像素链路(MPL - 1)24
    的头像 发表于 12-26 11:30 548次阅读

    ATA-D60090功率放大器在时间调制序列生成中的应用

    利用计算机生成波束扫描所需的的波束扫描的时间编码序列。根据时间编码序列,任意信号发生器产生的方波信号通过功率放大器产生控制电压信号。
    的头像 发表于 11-30 14:27 500次阅读
    ATA-D60090功率放大器在时间调制<b class='flag-5'>序列</b>生成中的应用

    请问如何使用ICP编程工具写出序列号?

    如何使用ICP编程工具写出序列号?
    发表于 08-19 07:01

    TPS38700-Q1 电源供应序列器总结

    计,可与多通道电压监控器连接。该器件默认为预编程的OTP选项,但I2C可以根据需要对上电和断电序列、看门狗设置和序列时序选项进行重新编程。
    的头像 发表于 08-18 15:17 1016次阅读
    TPS38700-Q1 电源供应<b class='flag-5'>序列</b>器总结

    VirtualLab Fusion应用:多反射系统的非序列建模

    序列光学系统,特别是那些非序列性来自组件内部多次内部反射的系统,具有一系列特定的挑战。将这样的系统分解成一个顺序等价的系统通常非常不方便,而且总是不切实际的。因此,拥有一个稳定的非序列
    发表于 06-12 08:49

    spartan 6 14LVDS 反序列

    spartan 6系列的FPGA 与14ADC 输出LVDS信号 怎么实现1:14的串转并呢?iserdes2 在ise里面最高只能实现8
    发表于 04-25 15:20