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

    关注

    5011

    文章

    13290

    浏览量

    463261

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

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

收藏 人收藏

    评论

    相关推荐

    模态分解合集matlab代码

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

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

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

    继电器组合组合架的作用

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

    【「时间序列与机器学习」阅读体验】时间序列的信息提取

    本章主讲时间序列的信息提取,章节中有许多概念定义和数学公式,并配有Python代码演示,细细品读与理解动手演练,还是很开拓思维视野的。下面以笔记形式进行展开。 时间序列的信息提取是时间序列分析的一
    发表于 08-17 21:12

    【《时间序列与机器学习》阅读体验】+ 时间序列的信息提取

    之前对《时间序列与机器学习》一书进行了整体浏览,并且非常轻松愉快的完成了第一章的学习,今天开始学习第二章“时间序列的信息提取”。 先粗略的翻阅第二章,内容复杂,充斥了大量的定义、推导计算、代码,好在
    发表于 08-14 18:00

    量子计算场景实用秘籍:开物SDK之subQUBO算法分解

    subQUBO算法是一种将大规模组合优化问题分解为若干个小规模问题以便能在当前中小规模量子计算机上实现求解的方法。
    的头像 发表于 08-13 11:05 1179次阅读
    量子计算场景实用秘籍:开物SDK之subQUBO算法<b class='flag-5'>分解</b>

    【《时间序列与机器学习》阅读体验】+ 了解时间序列

    收到《时间序列与机器学习》一书,彩色印刷,公式代码清晰,非常精美。感谢作者,感谢电子发烧友提供了一个让我学习时间序列及应用的机会! 前言第一段描述了编写背景: 由此可知,这是一本关于时间序列进行大数
    发表于 08-11 17:55

    数字信号是什么信号的组合

    数字信号是一种由数字值序列组成的信号,它在通信、计算机、电子和自动化等领域具有广泛的应用。数字信号的组合涉及到许多方面,包括数字信号的产生、传输、处理和应用等。 数字信号的基本概念 数字信号是一种
    的头像 发表于 08-11 10:47 833次阅读

    【「时间序列与机器学习」阅读体验】全书概览与时间序列概述

    本帖最后由 1653149838.791300 于 2024-8-12 20:18 编辑 [/td] [td]收到《时间序列与机器学习》这本书,很是欣喜,书籍内容很详实也是自己很感兴趣
    发表于 08-07 23:03

    传感器,你选对了吗?

    一流液传感器系列产品与应用分解
    的头像 发表于 08-07 14:52 3137次阅读
    液<b class='flag-5'>位</b>传感器,你选对了吗?

    深度学习中的时间序列分类方法

    时间序列分类(Time Series Classification, TSC)是机器学习和深度学习领域的重要任务之一,广泛应用于人体活动识别、系统监测、金融预测、医疗诊断等多个领域。随着深度学习威廉希尔官方网站
    的头像 发表于 07-09 15:54 914次阅读

    名单公布!【书籍评测活动NO.35】如何用「时间序列与机器学习」解锁未来?

    重要意义。 比如,你是一家超市的经理,已经获得了数百种产品的每日销售历史数据,需要寻找一种时间序列预测算法来预测未来几周的销售情况。 再比如,你是一运维工程师,想要知道当前的业务运转是否正常,在未来
    发表于 06-25 15:00

    数字序列信号发生器如何测量

    数字序列信号发生器(Digital Sequence Signal Generator,简称DSSG)是一种用于生成数字序列信号的设备。它广泛应用于通信、雷达、电子对抗等领域。本文将详细介绍数字序列
    的头像 发表于 06-03 14:04 417次阅读

    时间序列分析的异常检测综述

    时间序列是在不同时点记录一个或多个变量值的数据。例如,每天访问网站的人数、每月城市的 average 温度、每小时的股票价格等。时间序列非常重要,因为它们允许我们分析过去,理解现在,并预测未来。
    的头像 发表于 03-11 09:36 623次阅读
    时间<b class='flag-5'>序列</b>分析的异常检测综述

    TSMaster 序列发送模块在汽车开发测试中的应用

    众所周知,序列发送模块可以不需要脚本代码实现测试中特定控制报文序列的发送,该模块多用于循环顺序控制的测试案例中。序列发送模块的常用场景,主要是针对一些新开发的产品需要通过该模块来验证产品功能等等
    的头像 发表于 02-19 14:00 677次阅读
    TSMaster <b class='flag-5'>序列</b>发送模块在汽车开发测试中的应用