西门子S7-300/400PLC硬件中断组织块(OB40~OB47)用于快速响应输入模块、点对点通信处理器(CP)和功能模块(FM)的信号变化。具有硬件中断功能的上述模块将中断信号传送到CPU时,将触发硬件中断。绝大多数S7-300 CPU只能使用OB40,S7-400 CPU可以使用的硬件中断OB的个数与CPU的型号有关。为了产生硬件中断,在组态有硬件中断功能的模块时,应启用硬件中断。
在数字量输入模块的“输入”选项卡,用复选框启用硬件中断,然后分组或逐点设置上升沿产生中断、下降沿产生中断,或上升沿、下降沿均产生中断。在模拟量输入模块的“输入”选项卡,用复选框启用输入值超出限制产生硬件中断,然后设置输入值的上限值和下限值。
在功能模块的属性对话框的“基本参数”选项卡,可选择是否根据模块的技术功能对某些事件触发硬件中断。
在点对点通信处理器的属性对话框的“基本参数”选项卡,可选择是否产生中断。
硬件中断被模块触发后,操作系统将用OB40的局部变量OB40_MDL_ADDR(字)向用户提供模块的起始地址,OB40_POINT_ADDR(双字)是数字量输入模块产生硬件中断的点的编号、或模拟模块超出了限制的通道号。
硬件中断组织块OB40的首要任务是通过OB40_MDL_ADDR和OB40_POINT_ADDR提供的地址信息,用比较指令判断是哪个模块、模块中的哪一点产生的中断。然后对中断事件作出相应的处理。
在编写梯形图比较程序时有个小问题需要注意,OB40_MDL_ADDR和OB40_POINT_ADDR的数字类型分别是字和双字,不能直接用于整数比较指令和双整数比较指令。需要将它们保存到其他地址,然后参与比较。