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
    +关注

    关注

    5045

    文章

    14443

    浏览量

    483638

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    TPS38700S-Q1多通道电压序列发生器技术解析

    Texas Instruments TPS38700S-Q1集成式多通道电压序列发生器配有窗口看门狗、I^2^C可编程,采用24引脚4mm x 4mm VQFN封装。该多通道电压序列发生器非常适合
    的头像 发表于 08-18 15:50 705次阅读
    TPS38700S-Q1多通道电压<b class='flag-5'>序列</b>发生器技术解析

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

    计,可与多通道电压监控器连接。该器件默认为预编程的OTP选项,但I2C可以根据需要对上电和断电序列、看门狗设置和序列时序选项进行重新编程。
    的头像 发表于 08-18 15:17 764次阅读
    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

    求助,关于ad7616序列器模式+crc的两个问题求解

    我在使用序列器模式+CRC时,发现只有序列器最后一组 通道会出crc数据,比如序列器配置为2组数据,第二组数据出来后会跟出crc寄存器 0x1138,而图表上是每个通道都会出crc,这个现象
    发表于 04-15 08:23

    用于LEGIC Advant UID/序列号的NFC读卡器,为什么无法读取这些卡的UID/序列号?

    我目前正在开发一个小展示柜,其中 LEGIC Advant 卡 (CTC) 的 UID/序列号应由 NFC 阅读器读取。在当前的设置中,我有一个使用 MFRC522 芯片的 ESP32。不幸
    发表于 04-02 08:07

    仪表包括哪些?

    仪表
    jzyb
    发布于 :2025年03月18日 20:06:55

    求助,关于DLP LightCrafter6500 EVM添加图片的问题求解

    24-bit composite image” 也就是说输入24幅1图片GUI会组合成一张24的图片?请问这是怎么做到的,那24张的一图片和24
    发表于 03-03 08:23

    DS2411硅序列号技术手册

    DS2411硅序列号是可由外部供电的低成本、电子注册码芯片。它能用最少的电子接口(例如:微控制器的一个端口)提供绝对唯一的电子身份标识。DS2411的注册码是由工厂激光刻制的64ROM码,其中包括
    的头像 发表于 02-26 17:16 963次阅读
    DS2411硅<b class='flag-5'>序列</b>号技术手册

    使用BP神经网络进行时间序列预测

    使用BP(Backpropagation)神经网络进行时间序列预测是一种常见且有效的方法。以下是一个基于BP神经网络进行时间序列预测的详细步骤和考虑因素: 一、数据准备 收集数据 : 收集用于训练
    的头像 发表于 02-12 16:44 1270次阅读

    光电组合滑环的特点与应用分析

    光电组合滑环是现代工程和工业领域中的一种关键技术组件,它融合了传统滑环和光纤传输技术的优势。光电组合滑环的设计目的在于实现高效、稳定的电信号和光信号传输,为各种需要高精度和长寿命的应用提供支持。
    的头像 发表于 02-06 17:05 647次阅读

    具有128序列号和增强型写保护的4Mb SPI串行EEPROM

    电子发烧友网站提供《具有128序列号和增强型写保护的4Mb SPI串行EEPROM.pdf》资料免费下载
    发表于 01-21 13:56 0次下载
    具有128<b class='flag-5'>位</b><b class='flag-5'>序列</b>号和增强型写保护的4Mb SPI串行EEPROM

    模态分解合集matlab代码

    run_decomp运行其他算法run_multivariate 运行mvmdmemdrun_wpd运行wpdrun_dwt运行dwtEMD(经验模态分解,Empirical Mode
    发表于 12-20 17:36 2次下载