工控智汇

工控智汇

怎样认识、理解和应用西门子S7-1200/1500PLC的OB组织块?

admin 4 5

西门子S7-1200/1500PLC的程序组成之OB块的应用

西门子1200PLC的程序组成包括:输入输出变量、M变量、OB块、FB块、FC块、DB块。

其中OB(程序组织块)是整个程序的基础,其他变量、数据块是在OB块中被调用、接入。

OB块的分类有:

1、程序循环OB,Programcycle,这个OB为主程序块,PLC对其中的程序进行从上到下,从左到右循环扫描,扫描时间不定。优先级别为1(最低级为1,最高级为27)。

三菱编程软件中叫“扫描程序”。


2、启动OB,Startup,这个OB为初始化程序OB,PLC从STOP模式切换到RUN模式的启动开始只执行一次。优先级别为1(最低级为1,最高级为27)。

三菱编程软件中叫“初始程序”。


3、延时中断OB,Timedelayinterrupt,指定的延时时间到达后,将中断主程序的循环执行,调用此OB。优先级别为3(最低级为1,最高级为27)。


4、循环中断OB,Cyclicinterrupt,根据循环时间(程序比较大时,这个循环时间不能设定过小)的设定来周期性执行中断程序(中断程序中的绝对地址应采用直接访问方式加后缀“:P”)。优先级别为8(最低级为1,最高级为27)。

三菱编程软件中叫恒定周期扫描程序。


5、硬件中断OB,Hardwareinterrupt,为所组态的外部的硬件引起的中断执行程序。优先级别为18(最低级为1,最高级为27)。


6、时间错误中断OB,Timeerrorinterrupt,超出定义的最大循环时间后、仍在执行被调用OB、错过时间中断、STOP期间丢失时间中断、队列溢出、因中断负载过高而导致中断丢失等,不执行主程序。优先级别为22(最低级为1,最高级为27)。


7、诊断错误中断OB,Diagnosticerrorinterrupt,模块发生错误并能够诊断时,中断主程序执行。优先级别为5(最低级为1,最高级为27)。


8、插拔中断OB,移走或插入分布式IO模块时调用的OB。优先级别为6(最低级为1,最高级为27)。


9、机架故障OB,分布式IO的IO系统错误调用的OB。优先级别为6(最低级为1,最高级为27)。


10、时间中断OB,已达到设定时间点或周期,中断主程序循环,调用此OB。优先级别为2(最低级为1,最高级为27)。


11、状态中断OB,CPU已接收到状态中断后调用的OB。优先级别为4(最低级为1,最高级为27)。


12、更新中断OB,CPU已接收到更新中断后调用的OB。优先级别为4(最低级为1,最高级为27)。


13、特定中断OB,CPU已接收到制造商或配置文件特定的更新后调用的OB。优先级别为4(最低级为1,最高级为27)。


14、运动控制相关的OB,MC-Interpolator,只读。


15、运动控制相关的OB,MC-Servo,只读。


16、运动控制相关的OB,MC-PreServo,只读。


17、运动控制相关的OB,MC-PostServo,只读。


虽然有以上这么多的事件能触发OB的调用,但是也有些事件是不会触发OB的调用,而是由系统直接做出响应。

如插入/移除中央模块,系统响应为STOP,优先级别为21(最低级为1,最高级为27)。

如程序扫描时间超出最大循环时间的两倍,系统响应为STOP,优先级别为27(最低级为1,最高级为27)。