作为工控技术人员,我们都知道编程是一件非常严谨的事情,思维要缜密,逻辑性要强。而严谨的逻辑更是程序正确性的基本保证。
分享本人亲历的一个案例:
棒材启停式飞剪系统采用FM350高速计数模块产生飞剪剪切指令控制飞剪输出剪切动作,指令时序为:
1、先执行计数值软件清零;
3、再将比较值写入FM350比较值缓存BD1.DBD18中;
3、最后执行比较器1的比较值写入指令,将BD1.DBD18中的值写入FM350内部的地址中。
以上时序在系统运行过程中,偶尔会发生“不剪切”的情况发生。


经过分析,认为这种情况的发生与PLC控制器程序执行过程的特点有关,因为程序在循环执行的过程中,当有中断事件发生时,系统会中断当前执行的程序去处理优先级高的中断事件,返回时,现场实际工况已经发生变化,尽管这种变化很微小,但是对于时序控制要求比较高,响应时间要求高,速度变化快的飞剪系统来说,就容易发生异常情况。
因此,将原时序进行改进:
1、先将比较值写入FM350比较值缓存BD1.DBD18中;
2、再执行比较器1的比较值写入指令,将BD1.DBD18中的值写入FM350内部的地址中;
3、最后执行计数值软件清零。