1、西门子PLC在实时性问题上有没有相关的策略,
2、如何保证在一个扫描周期中执行完所有的用户程序。
最佳答案
1、西门子PLC在实时性问题上有没有相关的策略?我个人的看法是这个应该是取决于编程者对逻辑程序的安排吧? 比如OB100这样的只在启动时调用一次,那他就只会在启动时执行1次,以后就不会再调用,这样我们可以将初始化数据写在OB100中,再比如OB35,它可以设置为固定一个周期执行一次,比如100ms,那OB35中的程序就会每100Ms执行1次(这个就是我们常讲的中断程序),再比如OB1,是连续扫描执行的,我的理解是当OB1一个扫描周期完成后,立马就会再次进入下一个周期扫描。
2、如何保证在一个扫描周期中执行完所有的用户程序。第一:一般来讲,程序的扫描周期是几毫秒到100多豪秒(我只见过这个范围的,有没有更长的不知道),如果是扫描时间过长,会触发监控报警(看门狗),这时我们要么精减程序,要么延长监控时间。第二:用户程序的执行,我想是根据PLC扫描到你的逻辑结果来执行的,比如:
A M0.0
= M0.1
如果在一个扫描周期中,M0.0为1,则执行 = M0.1这句,如果在下一周期M0.0为0,则系统不会扫描= M0.1这句,M0.1状态在这个周期不会改变。
以上仅是我个人的看法。
提问者对于答案的评价:
谢谢你,我主要想了解一下西门子PLC的扫描周期的保证机制。我是不是可以这样理解,如果用户的程序比较多,而扫描周期比较短以至于不能扫描所有的用户程序,此时PLC会触发警报,解决办法只有两种:一是精简程序;而是将扫描周期设置的更长一点。我这样理解对吗?
专家置评
已阅,最佳答案正确。在S7-1500里,可以使用RT_INFO功能块来查看OB块的执行时间。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc142223.html