科创梦想,节效未来
INEWS / 新闻中心

PLC编程开发的技能,让编好的程序更加优化

来源: | 作者:何先生 | 发布时间: 1035天前 | 871 次浏览 | 分享到:

PLC编程开发过程中,怎么样优化程序让程序运行更高效呢,接下来让我们一起来了解下程序优化的方法,从而提高程序的运行速度。

1.根据项目的实际需要,规划功能块,编写子程序。PLC中的子程序是为了某些特定的控制目的而编译的相对独立的程序。执行子程序调用指令调用等。如果条件不满足子程序调用,程序的扫描将只在主程序中进行,这个子程序将不再被扫描,从而减少不必要的扫描时间。

2.在PLC的应用中,通常有大量的输出控制是用字或双字数据做点来控制输出。用字或双字数据做点控制输出可以加快速度。只要合理分配输出地址,根据实际应用要求改变输出控制字,就可以大大减少PLC程序执行的步数,从而加快PLC程序的运行速度。

3.在脉冲触发的置位和复位PLC中,置位命令只能执行一次,不需要每次扫描都执行该命令,非常适合与PLS/PLF命令配合使用。有些工程师忽略了这个问题,用常规方法驱动SET指令,无意中增加了PLC程序的扫描运行时间。

4.方法如下:以SmartS7-200为例,它的内存格式正好和我们常用的PC相反,前高后低。所以我们可以把变量这个词放在最后两个字节,在程序初始化的时候把前两个字节清零(这两个字节不应该用在程序的其他地方)。比如我们在定义符号的时候,把单词变量定义为VW2,同时保持VW0的值为零。在程序中,该变量可以通过VW2的字体和VD0的双字体来访问,从而避免了类型转换。为了避免使用上的混乱,最好区分有明确符号定义的字型和双字型。使用英文单词有意义首字母的组合作变量名。如以下词缀:b - byte变量(byte) W-font变量(word) D-double变量(double) R-real变量(real) F - bit变量(flag)BTN-自复位按钮输入(button) SW-switch或自锁按钮输入(switch) SIG-sensor、等电平信号输入(signal)RLY-输出继电器bit (relay)...当然这个根据个人习惯是没有规定的,主要是有利于自我辨别:程序初始化时,清除VW0(如果是不需要记忆的变量,也可以直接清除dVarName)或者在数据块中将VW0置零。以后需要访问word类型的变量时用wwarname,需要访问double word类型的变量时用dVarName。根本不需要类型转换。这种方法可以大大减少程序语句的数量,使程序更加简洁,可读性更强,并且由于不需要耗时的类型转换,提高了程序运行效率。而且数学运算量越大,效率提升越明显。缺点是多占用了两个字节的内存,所以VW0在以后的程序中无法使用。但是S7-200的RAM空间很大,一般用不完。以226为例,它有10K RAM那么多,我从来不超过1K。这些公羊都是用钱买的,也不是白用,也是浪费。同样,如果有字节变量经常需要和字变量进行转换,那就让字节变量占用一个字的内存宽度,浪费一个字节,避免类型转换。关于第三点,“可以只执行一次SET指令,但是不需要每次扫描都执行这个指令。”有些工程师忽略了这个问题,用常规的方法驱动SET指令,无意中增加了PLC程序的扫描运行时间。我不太明白。能不能具体一点?

1:如果在ob中写子程序段,会被扫描,但是如果写为FC调用,在不满足FC的调用条件时,FC中的程序会暂时不执行。这也意味着节省时间。

2.PLC的执行步骤会根据程序的长度不同,扫描时间也会根据执行步骤不同。如果用一条mov指令来完成8路数字输出的控制,当然,完成8路数字输出的控制所需的程序步数要少于8条mov指令。你可以从这些PLC编程优化技巧中学习一下,看看是否可以改进!