1.硬件中断事件与硬件中断组织块
硬件中断组织块用于处理需要快速响应的过程事件。出现硬件中断事件时,立即中止当前正在执行的程序,改为执行对应的硬件中断OB。
S7-1200最多可以生成50个硬件中断OB,在硬件组态时定义中断事件,硬件中断OB的编号应为40~47,或大于等于123。
S7-1200支持下列硬件中断事件:
1)CPU某些内置的数字量输入和信号板的数字量输入的上升沿事件和下降沿事件。
2)高速计数器(HSC)的实际计数值等于设定值。
3)HSC的方向改变,即计数值由增大变为减小,或由减小变为增大。
4)HSC的数字量外部复位输入的上升沿,计数值被复位为0。
S7-1500支持下列硬件中断事件:
1)CPU内置的数字量输入和高性能数字量输入模块的上升沿事件和下降沿事件。
2)模拟量输入模块超上限和超下限中断。
3)工艺模块产生的各种硬件中断。
如果在执行硬件中断OB期间,同一个中断事件再次发生,则新发生的中断事件丢失。如果该事件发生在S7-1500同一模块或子模块的另一个通道中,将触发硬件中断。
S7-300/400可能有多个中断源共用一个或几个硬件中断OB,因此需要在硬件中断程序中判断是哪个中断源产生的中断。S7-1200/1500可以为触发硬件中断的每个事件指定一个硬件中断OB,因此一般不需要做上述的判断。
2.硬件中断事件的处理方法
1)给一个事件指定一个硬件中断OB,这种方法最为简单方便,应优先采用。
2)多个硬件中断OB分时处理一个硬件中断事件(见4.3.5节),需要用DETACH指令取消原有的OB与事件的连接,用ATTACH指令将一个新的硬件中断OB分配给中断事件。
3.生成硬件中断组织块
打开项目视图,生成一个名为“硬件中断例程1”的新项目(见随书光盘中的同名例程)。CPU的型号为CPU 1214C。
打开项目视图中的文件夹“\PLC_1\程序块”,双击其中的“添加新块”,单击打开的对话框中的“组织块”按钮(见图4-35),选中“Hardware interrupt”(硬件中断),生成一个硬件中断组织块,OB的编号为40,语言为LAD(梯形图)。将块的名称修改为“硬件中断1”。单击“确定”按钮,OB块被自动生成和打开,用同样 的方法生成名为“硬件中断2”的OB41。(www.xing528.com)
4.组态硬件中断事件
双击项目树的文件夹“PLC_1”中的“设备组态”,打开设备视图,首先选中CPU,再选中巡视窗口的“属性>常规”选项卡左边的“数字量输入”的通道0(即I0.0,见图4-46),用复选框启用上升沿检测功能。单击选择框“硬件中断”右边的按钮,用下拉式列表将OB40(硬件中断1)指定给I0.0的上升沿中断事件,出现该中断事件时将调用OB40。
图4-46 组态硬件中断事件
用同样的方法,用复选框启用通道1的下降沿中断,并将OB41指定给该中断事件。如果选中硬件中断列表中的“-”,没有OB连接到中断事件。
选中巡视窗口的“属性>常规>系统和时钟存储器”,启用系统存储器字节MB1。
5.编写OB的程序
在OB40和OB41中,分别用M1.2一直闭合的常开触点将Q0.0:P立即置位和复位(见图4-47和图4-48)。
硬件中断组织块的块接口中的局部变量(启动信息)内的LADDR是触发硬件中断的模块的硬件标识符,USI与用户无关,IChannel是触发硬件中断的通道的编号;EventType是触发中断的事件所属事件类型的标识(例如上升沿),可以在相应模块的说明中找到该标识。
图4-47 OB40的程序
图4-48 OB41的程序
6.仿真实验
打开仿真软件S7-PLCSIM,下载所有的块,仿真PLC切换到RUN模式。打开SIM表1,生成IB0和QB0的SIM表条目(见图4-49)。
两次单击I0.0对应的小方框,方框中出现勾以后消失。在I0.0的上升沿,CPU调用OB40,将Q0.0置位为1。两次单击I0.1对应的小方框,在方框中的勾消失时(I0.1的下降沿),CPU调用OB41,将Q0.0复位为0。
图4-49 S7-PLCSIM的SIM表1
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。