首页 理论教育 事件与组织块的关系优化为:事件与组织块的相互影响

事件与组织块的关系优化为:事件与组织块的相互影响

时间:2023-06-30 理论教育 版权反馈
【摘要】:4.用DIS_IRT与EN_IRT指令禁止与激活中断S7-1500的指令DIS_IRT用于禁用新中断和异步错误事件的处理过程。

事件与组织块的关系优化为:事件与组织块的相互影响

1.启动组织块的事件

组织块(OB)是操作系统与用户程序的接口,出现启动组织块的事件时,由操作系统调用对应的组织块。如果当前不能调用OB,则按照事件的优先级将其保存到队列。如果没有为该事件分配OB,则会触发默认的系统响应。S7-1200和S7-1500启动组织块的事件的属性见表4-1和表4-2,为1的优先级最低。

4-1 S7-1200启动OB的事件

978-7-111-58719-4-Chapter04-50.jpg

如果插入/拔出中央模块,或超出最大循环时间两倍,CPU将切换到STOP模式。系统忽略过程映像更新期间出现的I/O访问错误。块中有编程错误或I/O访问错误时,保持RUN模式不变。

启动事件与程序循环事件不会同时发生,在启动期间,只有诊断错误事件能中断启动事件,其他事件将进入中断队列,在启动事件结束后处理它们。OB用局部变量提供启动信息。

2.事件执行的优先级与中断队列

优先级、优先级组和队列用来决定事件服务程序的处理顺序。每个CPU事件都有它的优先级,表4-1和表4-2给出了各类事件的优先级。优先级的编号越大,优先级越高。

事件一般按优先级的高低来处理,先处理高优先级的事件。优先级相同的事件按“先来先服务”的原则来处理。

4-2 S7-1500启动OB的事件

978-7-111-58719-4-Chapter04-51.jpg(www.xing528.com)

S7-1200从V4.0开始,可以用CPU的“启动”属性中的复选框“OB应该可中断”设置OB是否可以被中断。对于固件版本为V4.0及以上版本的S7-1200 CPU,优先级大于等于2的OB将中断循环程序的执行。如果设置为可中断模式,优先级为2~25的OB可被优先级高于当前运行的OB的任何事件中断,时间错误事件类型会中断所有其他事件类型的OB。如果未设置可中断模式,优先级为2~25的OB不能被任何事件中断。

如果执行可中断OB时发生多个事件,CPU将按照优先级顺序处理这些事件。

S7-1500只按优先级执行OB,同时发出多个OB请求时,将首先执行优先级最高的OB。如果事件的优先级高于当前执行的OB,则中断此OB的执行。优先级相同的事件按发生的时间顺序进行处理。

3.用DIS_AIRTEN_AIRT指令禁止与激活中断

使用指令DIS_AIRT,将延时处理优先级高于当前组织块的中断OB。输出参数RET_VAL返回调用DIS_AIRT的次数。

发生中断时,调用指令EN_AIRT,可以启用以前调用DIS_AIRT指令延时的组织块处理。要取消所有的延时,EN_AIRT的执行次数必须与DIS_AIRT的调用次数相同。

4.用DIS_IRTEN_IRT指令禁止与激活中断

S7-1500的指令DIS_IRT用于禁用新中断和异步错误事件的处理过程。“启用中断事件”指令EN_IRT用于启用已被指令DIS_IRT禁用的中断和异步错误事件的处理过程。激活中断是指允许处理中断,做好了在中断事件出现时执行对应的组织块的准备。

指令EN_IRT的参数MODE为0表示启用所有新发生的中断和异步错误事件;为1启用属于指定的中断类别的新发生事件;为2启用指定中断的所有新发生事件(用OB编号来指定中断)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈