扫描周期是PLC的一个重要指标。小型PLC的扫描周期一般为十几毫秒到几十毫秒。 PLC扫描周期的长度取决于扫描速度和用户程序的长度。一般工业设备通常允许毫秒级的扫描时间,并且PLC输入中的短滞后也是允许的。但对于一些对I/O响应较快的设备,则应采取相应的措施。例如,选择高速CPU,提高扫描速度;选择快速响应模块、高速计数模块以及不同的中断处理等措施来减少滞后时间。
如何缩短PLC扫描周期,提高PLC运行效率,在完成相同任务时缩短执行时间?
01 能用“字”的时候尽量避免用“双字”,能用整数的时候尽量避免用实数。
02 优先使用剩余的(硬件连接除外)IB、IW、ID、QB、QW、QD,其次是M、S;
03 尽量避免数据类型转换。必要时,尽量使用AC来存储中间变量,以减少转换次数。或者编程时先预留存储空间。例如:使用VW2存储整数时,如果VW0留空,则可以直接以VD0的形式访问VW2中的数据;
04 减少不必要的网络扫描,将可条件执行的网络(尤其是AIW和AQW)分类为子程序,以供条件调用(如定时中断);
05 使用XOR指令对任意位取反(该指令难度稍大,调试时需要仔细对齐位,建议编程时使用二进制数);
06 在保证工艺要求的前提下,适当减少中断频率;
07 子程序应尽量减少条件判断次数,规范子程序导入导出参数,减少代码冗余。
08 对于重复性、耗时的工作,应采取周期性处理;包括:将初始化工作分配到多个周期。使多个PID循环的采样时间略有不同,以避免同一周期内多次中断调用,使扫描周期更加均匀和稳定。
09 对于输入数据较少的子程序调用,可以先判断输入数据是否发生变化。如果没有变化(比较方法请参考48楼),可以直接跳过子程序,从而减少扫描周期。
10 尽量将V511.7中的位变量布置在V区,将常用的VB/VW/VD变量布置在V4095中,以缩短程序扫描周期。
11 如果SM0.0与其他信号串联,只会增加程序大小和执行时间,并无其他影响(如果网络已满足左侧必要的触点,则无需连接SM0 .0 系列);
12 当不需要共享信号时,多条指令放在同一个网络上会产生额外的堆栈操作(具体可以转换成STL进行分析),如果不是逻辑要求,应避免横向串联,至少可以减少一个“AND”命令。优点只是将其放在一个网络中让人感觉更加紧凑。
13、合理使用立即数IO指令(尽量少用),以节省PLC处理立即数指令的转换时间。
14 计算时尽量使用计算结果存储器而不是过渡存储器。
编辑:黄飞