(2) 在中断处理程序INT_0中不能使用等于比较指令
由于在一个中断处理程序INT_0中判断处理多个预置值。需要比较指令和计数方向来判断目前高速计数器计数当前值在哪个阶段,根据判断来决定执行那一段指令。但是,判断不能使用等于比较指令,应该使用大于或小于指令判断。
尽管中断事件(计数器当前值=计数器预置值)发生时,PLC立即中断当前主程序、子程序,执行中断处理程序INT_0中的指令。但是,在中断处理程序 INT_0中,PLC仍然是按照逐条逐行的扫描机制执行。而高速变化的计数值不可能和中断处理程序执行同步,如果采用等于比较指令,PLC在执行中断处理程序时,可能会错过等于值,使PLC在中断处理程序中无法判断设备运行到哪个阶段。
(3) 在自动运行时,高速计数器的初始值寄存器写入必须禁止由于多点定位需要多次装载预置值,写入预置值必须执行HSC指令。
执行HSC写入指令,不单单是写入预置值,如果在控制字节中不加以限制,初始值寄存器SMD38中的值同样写入。而SMD38=0,这样,就会使高速计数器计数当前值置0。因此,在自动运行时,必须设置控制字节SMB37的第七位SM37.6为0,在装载预置值时,禁止写入初始值。
但是,在高速计数器初始设置和返回原点重新开始运行时,又必须写入初始值,使初始值置0,避免机械原因带来的误差。因此,控制字节必须多次修改。遵循的原则是:允许写入初始值、执行HSC指令后,必须马上修改控制字节,禁止初始值写入,并再次执行HSC指令,中间不能有其它指令存在。因为,PLC是逐条逐行执行指令,中间没有其它指令,就不会产生不必要的影响。
(4) 多点定位的输出线圈尽量采用立即指令
采用高速计数器进行多点定位,主要为了精确定位。定位精度既决定于高速计数器的测量,同时也决定于执行机构的执行快速性 。
如果采用普通输出指令,在一个扫描周期的程序执行阶段,改变的仅仅是输出映像存储器,PLC的输出点不会立即刷新,只有在程序执行完毕后,PLC的输出映像存储器才能对输出点刷新,执行输出。
上一篇:CNC编程一般注意事项