湖南省西门子PLC模块总代理商 湖南省西门子PLC模块总代理商
--浔之漫智控技术(上海)有限公司
我公司经营西门子全新原装现货PLC;S7-200S7-300 S7-400 S7-1200 触摸屏,变频器,电线,电缆6FC,6SNS120 V10 V60 V80伺服数控备件:原装进口电机(1LA7、1LG4、1LA9、1LE1),国产电机(1LG0,1LE0)大型电机(1LA8,1LA4,1PQ8)伺服电机(1PH,1PM,1FT,1FK,1FS)西门子保内全新原装产品‘质保一年。一年内因产品质量问题免费更换新产品;不收取任何费。欢迎致电咨询。
西门子6SL3120-1TE21-0AA4
事件源与 OB 间的分配
OB 类型将确定 OB 与事件源间分配的位置:
● 对于硬件中断和等时同步模式中断,将在配置硬件或创建 OB 时进行分配。
● 对于 MC 伺服、MC 前置伺服、MC 后置伺服和 MC 插补器,添加工艺对象时,
STEP 7 将自动分配 OB 91/92。
● 对于其它所有的 OB 类型,将在创建 OB 时(也可能在组态事件源后)进行分配。
对于硬件中断,可在指令 ATTACH 和 DETACH 的运行期间对之前的分配进行更改。在
这种情况下,只更改实际有效的分配,而不是已组态的分配。组态的分配将在加载后以及
每次启动时生效。
CPU 将忽略那些组态中没有分配 OB 的硬件中断以及 DETACH 指令后发生的硬件中断。
当事件到达时,CPU 不会检查是否为该事件分配了 OB,而只在实际执行硬件中断之前进
行检查。
OB **级和运行时特性
如果 OB 被分配给事件,则 OB 将拥有该事件的**级。S7-1500 CPU 支持的**级从
1(低)到 26(高)。以下条目对于事件执行*:
● 调用和执行所分配的 OB
● 更新已分配 OB 的过程映像分区
用户程序按**级独占式处理 OB。这意味着同时发出多个 OB 请求时,程序将首先处理
**级高的 OB。如果所发生事件的**级**当前执行的 OB,则中断此 OB 的执
行。对于**级相同的事件,用户程序按发生的时间顺序进行处理。
说明
通信
通信(如,使用 PG 进行功能测试)的**级通常为 15。在对时间具有严格要求的应用
中,为了防止程序运行时间无谓的延长,通信不应中断这些 OB 的执行。为此,需要为这
些 OB 分配大于 15 的**级。
参考
有关组织块的更多信息,请参见 STEP 7 在线帮助。
CPU 的过载特性
要求
以下部分我们假设,每个事件源都分配了一个 OB 且这些 OB 具有相同的**级。第二个
假设条件只是为了简化情景说明。
CPU 过载特性的原理
发生事件时,将触发相关 OB 的执行。根据 OB 的**级和当前处理器的负载情况,如果
发生过载,则在 OB 执行前可能会产生一段时间延时。因此,在用户程序处理属于先前事
件的 OB 前,相同的事件可能会再次或多次发生。CPU 按如下所述处理这种情况:操作
系统将根据发生的顺序,照事件的**级对其进行排列。
如果要控制临时过载,则可限制源自同一问题的排队事件的数量。当达到一个特定循环中
断 OB 中未决触发的大数目时,将丢弃下一事件。
当来自同一个源的事件的发生速度大于 CPU 的处理速度时,将会发生过载。
我们将在后继章节中,介绍更多详细信息。
丢弃类似事件或稍后执行
下面提及的“类似事件”是指单个源中的事件,如特定循环中断 OB 的触发。
OB 参数“待排队的事件”(Events to be queued) 用于操作系统置于相关队列中将稍后
处理的类似事件的数目。例如,如果此参数值为 1,则仅临时存储一个事件。
说明
通常后期不再对循环事件再进行处理,这是因为这样可能会导致相同或较低**级的 OB
发生过载。因此,通常会在处理下一个计划的 OB 过程中丢弃类似事件的执行来避免发生
过载情况。“待排队的事件”(Events to be queued) 的值比较低,可确保减轻过载情况而非
加重这种情况。
例如,如果队列中达到循环中断 OB 的大触发数目 (Cyclic interrupt),则只对每个额外
的触发进行计数,然后将其丢弃。在 OB 的下一调度执行过程中,CPU 通过
“Event_Count”输入参数(以启动信息的形式)提供已丢弃触发的数目。然后对过载情况
作出适当响应。然后,CPU 将丢失事件的计数器设置为 0。
例如,如果 CPU 首先丢弃了循环中断 OB 的触发,则之后的操作将取决于该 OB 参数“报
告事件溢出到诊断缓冲区中”(Report event overflow into diagnostic buffer):如果选中了
该复选框,CPU 将在诊断缓冲区中对此事件源的过载情况输入事件 DW#16#0002:3507
一次。CPU 将禁用事件 DW#16#0002:3507 的其它诊断缓冲区条目,直到后期对该源的
所有事件都进行了处理。
时间错误 OB 请求的阈值机制
OB 参数“启用时间错误”(Enable time error) 用于类似事件发生既定过载时是否调用时
间错误 OB。OB 参数“启用时间错误”(Enable time error) 位于“属性”(Attributes) 类别内
OB 的属性中。
如果启用时间错误 OB(选中了复选框),则需使用 OB 参数“时间错误的事件阈
值”(Event threshold for time error) 队列中类似事件的数目,从该数目起,将会调用
时间错误 OB。例如,如果此参数的值为 1,CPU 将在诊断缓冲区中输入事件
DW#16#0002:3502 一次,并在发生第二个事件时请求时间错误 OB。CPU 将禁用事件
DW#16#0002:3502 的其它诊断缓冲区条目,直到后期对该源的所有事件都进行了处理。
因此,在发生过载时可选择在尚未达到类似事件限值之前和丢弃事件之前编程一个响应。
下列值范围适用于“时间错误的事件阈值”(Event threshold for time error) 参数:1 ≤“时间
错误的事件阈值”≤“待排队的事件”。
8.3 异步指令
同步指令和异步指令之间的不同之处
在程序执行过程中,同步和异步指令有着显著不同。
“同步”和“异步”属性与指令调用与执行间的时间顺序相关。
以下情况适用于同步指令:同步指令调用完成时,指令执行也完成。
而异步指令,则情况有所不同:异步指令调用完成时,异步指令的执行不一定完成。这也
就意味着,异步指令的执行可以跨多次调用。在 CPU 中,异步指令的执行与用户程序循
环同时进行。异步指令在 CPU 中生成待处理的作业。
异步指令通常用于数据的传输(模块的数据记录、通信数据、诊断数据等等)