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

    关注

    5037

    文章

    14110

    浏览量

    477028

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

    spartan 6 14LVDS 反序列

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

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

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

    求助,关于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 ?593次阅读
    DS2411硅<b class='flag-5'>序列</b>号技术手册

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

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

    具有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 ?1次下载

    时空引导下的时间序列自监督学习框架

    【导读】最近,香港科技大学、上海AI Lab等多个组织联合发布了一篇时间序列无监督预训练的文章,相比原来的TS2Vec等时间序列表示学习工作,核心在于提出了将空间信息融入到预训练阶段,即在预训练阶段
    的头像 发表于 11-15 11:41 ?857次阅读
    时空引导下的时间<b class='flag-5'>序列</b>自监督学习框架

    如何使用RNN进行时间序列预测

    时间序列预测在金融、气象、销售预测等领域有着广泛的应用。传统的时间序列分析方法,如ARIMA和指数平滑,虽然在某些情况下表现良好,但在处理非线性和复杂模式时可能不够灵活。递归神经网络(RNN)提供了
    的头像 发表于 11-15 09:45 ?1058次阅读

    LSTM神经网络在时间序列预测中的应用

    时间序列预测是数据分析中的一个重要领域,它涉及到基于历史数据预测未来值。随着深度学习技术的发展,长短期记忆(LSTM)神经网络因其在处理序列数据方面的优势而受到广泛关注。 LSTM神经网络简介
    的头像 发表于 11-13 09:54 ?2269次阅读

    TSC2000/2200/230x应用的编程序列和技巧

    电子发烧友网站提供《TSC2000/2200/230x应用的编程序列和技巧.pdf》资料免费下载
    发表于 10-23 10:11 ?0次下载
    TSC2000/2200/230x应用的编程<b class='flag-5'>序列</b>和技巧

    继电器组合组合架的作用

    继电器组合组合架是电气控制系统中的重要组成部分,它们在电路中起到保护、控制和信号传递的作用。继电器组合组合架的设计和应用对于确保电气系统的稳定运行至关重要。 1. 继电器的基本概念
    的头像 发表于 09-27 14:35 ?1592次阅读

    如何访问UCD90XXX序列器GPIO

    电子发烧友网站提供《如何访问UCD90XXX序列器GPIO.pdf》资料免费下载
    发表于 09-13 09:17 ?0次下载
    如何访问UCD90XXX<b class='flag-5'>序列</b>器GPIO