您现在的位置是:首页 > PLC技术 > PLC技术

S7-200 PLC主程序与中断程序间的数据共享

来源:艾特贸易2017-06-05

简介主程序与一个或数个中断程序之间可实现数据的共享。例如,主程序中的一部分可提供一些数据供中断程序使用,反之亦然。当编制这种共享数据的程序时,必须考虑到中断事件的异步

    主程序与一个或数个中断程序之间可实现数据的共享。例如,主程序中的一部分可提供一些数据供中断程序使用,反之亦然。当编制这种共享数据的程序时,必须考虑到中断事件的“异步性质”,即中断事件可以在主程序执行中的任何一点产生,共享数据的一致性可能因为主程序中的指令正在执行时被中断事件所中断而受到破坏。    以下是几项保证数据正确共享的技术,包括限制共享数据区的存取方式及使共享数据区不被中断的方法。    1)若程序是用指令表(STL)来编写的,共享数据只是单个变量(单个字节、单个字或单个双字),则正确的访问共享数据的方法是:从非共享数据区或累加器取数后,其结果存入共享数据区。    2)若程序是用梯形图(LAD)编写的,共享数据只是单个变量(单个字节、单个字或单个双字),则应建立一个良好的习惯,只用MOVE指令(MOV_ BMOV_ WMOV_ DWMOV_ R)访问共享数据区。因为许多梯形图指令是由几条STL指令组成的,而MOVE指令是由一条STL指令组成,其执行不会受中断的影响。    3)如果共享数据为多个变量,不论用LAD或用STL编程均可用开中断指令ENI、关中断指令DISI来控制中断程序的执行。在主程序中,开始处理共享数据区时写上关中断指令DISI等影响共享数据区的程序完成后再开中断(ENI)。在关中断期间,中断程序不被执行,因而不会影响共享数据的一致性,但会延迟中断事件的响应。