柳絮飞花
无产工程师
级别: 论坛先锋
精华主题: 0
发帖数量: 499 个
工控威望: 1210 点
下载积分: 7779 分
在线时间: 102(小时)
注册时间: 2017-06-27
最后登录: 2023-11-06
查看柳絮飞花的 主题 / 回贴
楼主  发表于: 2020-08-20 08:47
如何提高PLC的运行效率,扫描周期是一个重要的判断标准。选择高速CUP能提高扫描速度,选择快速响应模块、高速计数模块以及不同的中断处理等措施也能减少滞后时间。这是硬件方面的优化。程序方面通过减少程序语句表使程序更简洁,因为不需要做耗时的共型转换,所以也有提高效率的效果。那下面就让我们展开来讲:

1、合理使用立即IO指令(尽量减少使用)节约PLC处理立即指令的转换时间。

2、计算中尽量使用计算结果存储器,而不用过渡存储器。

3、优先使用富余的(硬件连接以外的)IB、IW、ID、QB、QW、QD,其次是M,S;

4、如果网络已经满足了左侧必须的触点,没必要再串接SM0.0;

5、没必要共享信号时,放置在同一网络里的多条指令,会产生额外的进出栈操作。

6、尽量避免数据类型转换,不得不用时,尽量用AC存放中间变量,减少转换次数。或者编程时先预留出存储空间;

7、可以用“字”的时候尽量避免用“双字”,可以用整数时,尽量避免用实数。

8、减少非必要网络扫描,把可以设条件执行的网络(特别是AIW、AQW),归类到子程序中作条件调用(例如定时中断);

9、子程序应该尽量减少条件判断的次数,规格化子程序进出口参数,从而减少代码冗余。

10、对于有重复性、耗时的任务,应采用分周期处理;

11、用XOR指令实现任意位取反(这指令略有难度,调试中更需要认真对位,编程时建议用二进制数);

12、在保证工艺要求前提下,适当减小发生中断的频率;

13、对于输入数据较少的子程序调用,可以先判断输入数据是否有变化,如果没有变化(比较方法可参考48楼),可以直接跳过子程序,从而减少扫描周期。

14、尽量把在V区的位变量安排在V511.7内,把使用频率高的VB/VW/VD变量,安排在V4095内,可以缩短程序扫描周期。
工控普通人,学习在路上
柳絮飞花
无产工程师
级别: 论坛先锋
精华主题: 0
发帖数量: 499 个
工控威望: 1210 点
下载积分: 7779 分
在线时间: 102(小时)
注册时间: 2017-06-27
最后登录: 2023-11-06
查看柳絮飞花的 主题 / 回贴
1楼  发表于: 2020-08-20 08:52
支持,dingyixia
工控普通人,学习在路上
试问卷帘
级别: 探索解密
精华主题: 0
发帖数量: 31 个
工控威望: 152 点
下载积分: 771 分
在线时间: 35(小时)
注册时间: 2014-02-13
最后登录: 2023-11-23
查看试问卷帘的 主题 / 回贴
2楼  发表于: 2020-08-21 13:23
有任何意义么 , 你能剩下多少时间,  这点时间分辨率对设备有意义
dayuczj
平常心 VX17676212715
级别: 工控侠客
精华主题: 0
发帖数量: 539 个
工控威望: 2036 点
下载积分: 10432 分
在线时间: 163(小时)
注册时间: 2014-06-22
最后登录: 2024-04-08
查看dayuczj的 主题 / 回贴
3楼  发表于: 2020-08-21 13:37
有什么意义
平常心!平常心!
好大的小西瓜
没有个性的签名
级别: 略有小成
精华主题: 0
发帖数量: 177 个
工控威望: 356 点
下载积分: 446 分
在线时间: 116(小时)
注册时间: 2017-11-01
最后登录: 2024-04-19
查看好大的小西瓜的 主题 / 回贴
4楼  发表于: 2020-08-21 13:43
没有意义,现在都是nm级别的
Mov#loveD9
dayuczj
平常心 VX17676212715
级别: 工控侠客
精华主题: 0
发帖数量: 539 个
工控威望: 2036 点
下载积分: 10432 分
在线时间: 163(小时)
注册时间: 2014-06-22
最后登录: 2024-04-08
查看dayuczj的 主题 / 回贴
5楼  发表于: 2020-08-21 13:44
把PLC用STM32代替就还有意义
平常心!平常心!