中断控制——西门子S7-300PLC组织块OB及其应用
OB可以分为两类:执行周期性工作的OB(日时钟中断)和响应错误的OB(错误中断)。
执行周期性工作的OB(日时钟中断)
在特定的日期或时间执行
从一个编程事件开始一段特定延时后执行
按特定周期循环执行
响应错误的OB(错误中断)
当 CPU检测到一个过程/硬件错误时执行
当 CPU检测到一个不依赖于程序指令的错误时执行
当 CPU检测到一个与程序指令处理有关的错误时执行
中断过程——西门子S7-300PLC组织块OB及其应用
系统检测到一个OB块中断时,则被中断块的累加器和寄存器上的当前信息将被作为一个中断堆栈存起来(I堆栈)。
I堆栈中保存的内容有:
F 累加器及地址寄存器的内容;
F 数据块寄存器的内容;
F 局部数据堆栈,状态字,MCR寄存器和B堆栈指针。
如果新的OB块调用FB和FC,则每一个块的处理数据将被存储堆栈中(B堆栈)
B堆栈中保存的内容有:
F DB和DI寄存器;
F 临时数据(L堆栈)的指针;
F 块的号码及返回地址。
楼主最近还看过
中断优先级——西门子S7-300PLC组织块OB及其应用
中断优先级——西门子S7-300PLC组织块OB及其应用
OB类型(优先级)
说明
OB1主程序循环(1)
在上一循环结束时启动
OB10时间中断(2)
在程序设置的日期和时间启动
OB20延时中断(3)
受SFC32控制启动,在一特定延时后运行
OB35循环中断(12)
运行在一特定时间间隔内(1ms-1min)
OB40硬件中断(16)
当检测到来自外部模块的中断请求时启动
OB80到OB87响应异步错误(26/启动时28)
当检测到模块诊断错误或超时错误时启动
OB100启动(27)
当CPU从STOP到RUN状态时启动
OB121,OB122响应同步错误(与被中断OB相同)
当检测到程序错误或接受错误时启动