硬件中断组织块(OB40~OB47)用于快速响应信号模块(SM,即输入/输出模块)、通信处理器(CP)和功能模块(FM)的状态变化。具有中断能力的上述模块将中断信号传送到CPU时,将触发硬件中断。绝大多数S7-300 CPU只能使用OB40,S7-400 CPU可以使用的硬件中断OB的个数与CPU的型号有关。
为了产生硬件中断,在组态时应启用有硬件中断功能的模块的硬件中断。产生硬件中断时,如果没有生成和下载硬件中断组织块,操作系统将会向诊断缓冲区输入错误信息,并执行异步错误处理组织块OB80。
1.硬件组态
用新建项目向导生成一个名为“OB40例程”的项目(见随书光盘中的同名例程),CPU模块的型号为CPU 315-2DP。打开硬件组态工具HW Config(见图4-31),将硬件目录中型号为“DI4xNAMUR,Ex”的4点DI模块插入4号槽,16点DO模块插入5号槽。
图4-31 组态硬件中断
自动分配的DI模块的字节地址为0。双击该模块,打开它的属性对话框(见图4-31)。用复选框启用硬件中断,设置I0.0产生上升沿中断,I0.1产生下降沿中断。
2.编写OB40中的程序
OB40中的程序(见图4-32)用来判断是哪个模块的哪个点产生的中断,然后执行相应的操作。临时局部变量OB40_MDL_ADDR和OB40_POINT_ADDR分别是产生中断的模块的起始字节地址和模块内的位地址,数据类型分别为Word和DWord,这两个变量不能直接用于整数比较指令和双整数比较指令。
图4-32 OB40中的程序
首先用MOVE指令将这两个变量保存到LW20和LD22,然后才能用比较指令判别是哪一个模块和模块中的哪一点产生的中断。如果是I0.0产生的中断,LW20和LD22均为0,程序段2的两条比较指令等效的触点同时闭合,将Q4.0置位。如果是在I0.1的下降沿产生的中断,程序段3将Q4.0复位。(www.xing528.com)
3.硬件中断的仿真实验
打开PLCSIM,下载所有的块,将仿真PLC切换到RUN-P模式。执行PLCSIM的菜单命令“执行”→“触发错误OB”→“硬件中断(OB40-OB47)…”,打开“硬件中断OB(40-47)”对话框(见图4-33),在“模块地址”文本框中输入模块的起始字节地址0,在“模块状态(POINT_ADDR)”文本框中输入模块内的位地址0。
图4-33 模拟产生硬件中断的对话框
单击“应用”按钮,触发I0.0的上升沿中断,CPU调用OB40,Q4.0被置位为1状态,同时在“中断OB”显示框内自动显示出对应的OB编号40。将位地址(POINT_ADDR)改为1,模拟I0.1产生的下降沿中断,单击“应用”按钮,在放开按钮时,Q4.0被复位为0状态。单击“OK”按钮,将执行与“应用”按钮同样的操作,同时关闭对话框。
4.禁止和激活硬件中断
图4-34是OB1中的程序,在I0.2的上升沿调用SFC40(EN_IRT)激活OB40对应的硬件中断,在I0.3的上升沿调用SFC39(DIS_IRT)禁止OB40对应的硬件中断。输入参数MODE(模式)为2时,OB_NR的实参为OB的编号。
图4-34 OB1中激活和禁止硬件中断的程序
单击两次PLCSIM中I0.3对应的小方框,OB40被禁止执行。这时用图4-33中的对话框模拟产生硬件中断,不会调用OB40。单击两次I0.2对应的小方框,OB40被允许执行。又可以用I0.0和I0.1产生的硬件中断来控制Q4.0了。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。