西门子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的数字类型分别是字和双字,不能直接用于整数比较指令和双整数比较指令。需要将它们保存到其他地址,然后参与比较。