[西门子] 西门子博途变量监控引发的问题分析

[复制链接]
查看107 | 回复0 | 2024-5-24 19:44:13 | 显示全部楼层 |阅读模式
平时觉得简单,没有注意的问题,在极端的情况下就会显现出来。测试程序就像一个放大镜,可以有效地仿真极端情况,透过现象可以更好地了解或者猜测背后的本质。
做一个小的测试程序,用于测试TRACE的触发问题,结果还没有测试又发现一个小问题,先看一下在OB1中编写的测试程序如图1所示。

图1
程序比较简单,就是让变量 "数据块_1".A 自加1,每次相加后等待2ms,使用FOR循环20个周期,执行完成之后,程序再等待1s后执行完一个周期。然后在变量表中监视变量 "数据块_1".A,问题出来了,每一次值的变化都是40的倍数而不是期望的20的倍数,为了验证程序的正确性,使用trace进行跟踪,发现确实是到20的倍数后等待1s,说明程序没有问题。把第一个FOR循环程序放到周期设置为1s的OB30中,删除OB1的程序,然后在变量表中监视变量 "数据块_1".A,这次值的变化都是20的倍数了,真是搞不清,有时问题没有想通真的很烧脑。
再次回退的OB1中执行程序,在线监控程序,发现变量值也是以20的倍数进行变化的,原因是在线值就是采集程序当前执行完后的结果,是不是变量表采样的时机有问题?带着这样的问题,修改一下采样的时机,如图2所示,例如选择“永久,扫描周期开始时”。

图2
再次使用变量表监控变量,这次值的变化正常了。使用“永久,扫描周期结束时”触发监控,值的变化也正常。
变量监控缺省的采样设置的是“永久”,我们可以查看一下在线帮助什么是“永久”?
手册是这样描述的:
监视时:在周期结束时监视输入,而在周期开始时监视输出。
修改时:在周期开始时修改输入,而在周期结束时修改输出。
帮助中只是涉及到了输入和输出,好像与中间的变量没有关系,通过上述的现象只能猜测或者推理了,就是变量的采样是随机的,如图3所示。

图3
采集时可能不能中断FOR循环,只有在两个FOR循环中间或者扫描开始前、扫描结束后时刻采集才能得到期望的结果,其中的一次采样可能不能中断FOR循环而没有采集到。使用OB30调用是中断处理,程序执行大约40ms,空闲960ms,在空闲这段时间可以采集到值的变化。OB1中的等待是程序执行而不是空闲。上述是猜测的,可能会有疑问,例如怎么这么巧,都是2次循环采集一次值而不是3次或者4次?有别的看法可以在回帖中说明,大家受益!
监视有触发时机,同样修改变量也有触发时机,那么触发时机对变量的修改有什么影响呢?看一个简单程序,编写一个FC块,参考图4。

图4
在FC中声明一个INOUT参数,在程序的开始读出,然后延时1s,经过计算在程序的结尾再写回去。然后在OB1中调用该FC块,赋值一个变量给FC块的INOUT参数,在变量表中使用缺省的“立即一次修改所有选定值”按钮修改该变量的值,发现修改多次而不能修改,次数多了可能会修改成功,这是什么原因呢?参考图5。

图5
变量的修改也是随机的,如果在运行FC程序时正好修改变量的值,修改后的值在FC执行完成后又被原值覆盖了,那么为什么还有写成功的时候?就是修改变量的时机正好在其他程序执行时,这样调用FC时才能将修改的值读出,经过延时再写回去,这样就修改成功了,改小FC中的延时时间就会增加写成功的概率。这里可以设置修改时机,一次修改成功,如图6所示,设置使用触发器进行修改为“仅一次,扫描周期开始时”或者“仅一次,扫描周期结束时”,然后使用“使用触发器修改”按钮触发修改变量,这样可以避开在执行FC调用时修改变量的值。

图6
注意:以上CPU程序是使用PLC SIM ADV 2.0 版本测试的
NO.1 硬件篇


更多系列S7-1500更换新硬件
了解V18的同学会知道,当时随着软件发布,也发布了一大批新硬件——具有双核的S7-1500系列CPU。当然肯定也会有有心人注意到有些产品没有出现,那就是1500C系列以及ET 200pro系列CPU没有换新型号。


图 1 1500C 与 ET 200pro CPU


V19发布的同时会带来这两个系列的双核新硬件,具有全新订货号。这两种类型的新硬件相比老硬件程序存储器与数据存储器最多提升达到了100%,处理性能最多提升到了之前的两倍,选型使用更加灵活!


图2 参数对比


图 3 新老版本订货号对照


新固件
S7-1500每次伴随TIA Portal大版本发布都会带来固件更新,这次来到了V3.1版本,之前发布的新硬件,和CPU1516T(F)以上的CPU以及驱动型控制器都可以免费升级至该版本,部分性能参数得以提升:


不停机情况下可加载程序消息最大数量
·CPU 1510SP 到 1513:5000
·CPU 1514SP 到 1518:10000


这样当加载大批量程序消息(Program_alarm、Prodiag等)无需停机,减少停机需求。


CPU 1517、CPU 1518 的文本列表内部存储器增加至10MB。CPU 1518 OPC UA 服务器接口最大节点数量增加至50000,同时可订阅的标签最大数量也增加至50000。


对最顶配的S7-1500系列CPU性能提升标志着S7-1500整个系列上限的提升,非常有利于大项目的使用。其余功能变化参见软件篇章节。
S7-1500 R/H新变化 满足更多场景
S7-1500冗余系列的CPU在V19的更新中变化是比较大的。
(特别注意:冗余新固件及所需的TIA Portal V19 Update1还有相关的硬件支持包(HSP)需要等到2024年1月底才能使用)


具体变化包括:
1. 支持OPC UA 冗余服务器,支持服务器接口配置、数据访问、服务器方法等功能
2. 主机架支持CP1543-1扩展以太网接口,其中S7-1500H(F)还支持使用有源背板连接实现热插拔
3. 支持冗余方式连接IE PB LINK HA网关以方便访问Profibus DP 从站
4. 支持Web 服务器
5. 支持安全开放式用户通信
6. 支持数据日志


图4 S7-1500H OPC UA 冗余服务器




NO.2 软件篇


软件升级


允许平行安装V13SP1/SP2到V19的所有软件,以便访问所有版本项目。
V19授权可应用于V11开始的所有TIA Portal版本。


图 5 软件升级


命名值数据类型
(Data types with named values )


TIA Portal V19带来了一个新的PLC数据类型:命名值数据类型(NVTs),该数据类型需要在软件单元的PLC数据类型中定义,功能类似于高级语言中的枚举。该类型包含一系列的基本数据类型常量,省去了在每个块中单独定义常量,并且符合IEC61131-3标准,可以使得程序可读性更高,更加容易维护。


图6 命名值数据类型




长期轨迹更新


TIA Portal V18当时的一个新的功能:长期轨迹,在V19中得以提升,包括:
1. 支持R/H CPU
2. 支持记录时监视变量
3. 项目中支持最多5个CPU 的记录
4. 支持组合测量


改进的共享设备
早期的共享设备,无论是分布式IO还是CPU作为智能设备,需要复制出多个同样的设备,分配给不同的控制器,从TIA Portal V18开始可以用一个GSD分配给多个控制器(S7-1500 V3.0),这种方式同样较为麻烦。


从TIA Portal V19开始,最符合直观的配置方式出现了,软件集成的分布式IO或者是设置为智能设备的CPU可以直接作为共享设备分配给多个控制器,简化了配置,提高了效率。


图7 共享设备


新指令
S7-1500系列将增加Random(随机数)、SHA2(哈希算法)、Filter_Universal(数字滤波)、GetSymbolForReference(获取间接寻址对象名称)等指令






TIA Portal V19 开始,软件支持高分辨率屏幕,尤其适合现下开始流行的4K分辨率的屏幕,无需特殊设置即可自动实现。可以在高分屏下获得更好的使用效果,不论是文字、图像还是图标。


NO.3 运动控制篇


S7-1500 升级到了V3.1,运动控制工艺对象版本也来到了V8.0,让我们来看一下V8.0主要有哪些改变。


解释器(Interpreter)
S7-1500T迎来了三个新的工艺对象
TO_Interpreter
TO_InterpreterMapping
TO_InterpreterProgramm
三个配合在一起可以实现解释器的功能。
简单的说解释器是使用另一种语言(MCL),可以非常简单的编写运动控制的顺控功能,而不需要调整PLC其他程序。
图12 解释器编程


扭矩预控制
工艺对象控制回路页面增加扭矩预控制功能,配合750报文,实现在加减速的过程中更好的减小跟随误差。
图13 扭矩预控制


测量输入变化
使用Timer DIDQ模块,或者SINAMICS中央测量输入的一个输入点可以同时对多个轴进行测量获取实际位置。此外,现在也可以使用SINAMICS中央测量输入进行循环测量而非之前只有的单次测量。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则