品牌
其他厂商性质
杭州市所在地
6ES7592-1AM00-0XB0西门子
SIMATIC S7-1500,前连接器 螺丝端子技术,40针 针对 35mm 宽模块 包括 4 个电位桥接, 和束线带
如果事件来自尚未分配 OB 的事件源,则 CPU 将执行默认的系统响应。
说明
某些事件源无需组态就已存在(如启动、拔出/插入)。
程序执行的基本知识
8.1 事件和 OB
自动化系统
系统手册, 11/2019, A5E-AF 207
事件源与 OB 间的分配
OB 类型决定了将 OB 分配给事件源的位置:
● 对于硬件中断和等时同步模式中断:将在配置硬件或创建 OB 时进行分配。
● 对于 MC-servo、MC-PreServo、MC-PostServo、MC-Interpolator 和 MCPreInterpolator:当添加了工艺对象时,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 的优先级。同步/异步指令之间的不同之处
下图显示了异步指令和同步指令处理的不同之处。在该图中,CPU 在指令执行完成
(如,完成传输数据记录)之前,调用该异步指令五次。
对于同步指令,每次调用时都会执行。
① 次调用异步指令,开始执行
② 中间调用异步指令,继续执行
③ 次调用异步指令,执行完成
④ 每次调用后,作业会通过同步指令进行处理。
处理的作业的持续时间
图 8-1 异步指令和同步指令之间的不同之处
程序执行的基本知识
8.2 异步指令
自动化系统
210 系统手册, 11/2019, A5E-AF
异步指令作业的并行处理
CPU 可同时执行多个异步指令作业。在以下情况下,CPU 将并行执行多个作业: ● 用于异步指令的作业会启动,而该指令的其它作业仍在运行中。
● 但不超出该指令可同时运行的作业数目。
下图显示了 WRREC 指令中两个作业的并行处理。在一段时间内,两个指令同时执行。
图 8-2 异步指令 WRREC 的并行执行
为作业分配指令调用
要跨多个调用执行一个指令,CPU 需向该指令正在运行的作业一个后续调用。
CPU 可通过以下两种方式为作业分配一个调用,具体取决于指令的类型:
● 使用指令的背景数据块(“SFB”类型)
● 使用指令的作业标识输入参数。在异步指令的执行过程中,这些输入参数必须与执行
过程中的各调用相匹配。
示例:“Create_DB”指令的作业由输入参数 LOW_LIMIT、UP_LIMIT、COUNT、
ATTRIB 和 SRCBLK 标识
下表列出了标识指令的输入参数。
表格 8- 2 标识异步指令的输入参数
指令 标识作业的输入参数
DPSYC_FR LADDR、GROUP、MODE
D_ACT_DP LADDR
DPNRM_DG LADDR
WR_DPARM LADDR、RECNUM
WR_REC LADDR、RECNUM
RD_REC LADDR、RECNUM
程序执行的基本知识
8.2 异步指令
自动化系统
系统手册, 11/2019, A5E-AF 211
指令 标识作业的输入参数
CREATE_DB LOW_LIMIT、UP_LIMIT、COUNT、
ATTRIB、SRCBLK
READ_DBL SRCBLK、DSTBLK
WRIT_DBL SRCBLK、DSTBLK
RD_DPARA LADDR、RECNUM
DP_TOPOL DP_ID
异步指令的状态
异步指令通过块参数 STATUS/RET_VAL 和 BUSY 显示指令的状态。有些异步指令也会
使用块参数 DONE 和 ERROR 显示。
下图显示了两个异步指令 WRREC 和 CREATE_DB 的执行
① 输入参数 REQ 用于启动作业,执行异步指令。
② 输出参数 DONE 用于指示该作业已完成且无错误。
③ 输出参数 BUSY 用于指示作业是否正在执行。BUSY =1 时,为该异步指令分配资
源。BUSY = 0 时,未分配资源。
④ 输出参数 ERROR 用于指示发生了错误。
⑤ 输出参数 STATUS/RET_VAL 用于提供有关作业执行的状态信息。发生错误后,
输出参数 STATUS/RET_VAL 用于接收错误信息。
图 8-3 指令 WRREC 和 CREATE_DB 示例中,异步指令的块参数说明。
程序执行的基本知识
8.2 异步指令
自动化系统
212 系统手册, 11/2019, A5E-AF
总结
下表简要列出了上文中介绍的参数关系。在该表格中,还特别列示了调用后但指令执行不
完整时可能的输出参数值。
说明
每次调用后,需在用户程序中对相关输出参数进行评估。
表格 8- 3 作业“运行”过程中,REQ、STATUS/RET_VAL、BUSY 和 DONE 间的相互关系。
调用的顺
序号
调用的类型 REQ STATUS/RET_VAL BUSY DONE ERROR - 空闲 0 W#16#7000 0 0 0
1 次调用 1 W#16#7001 1 0 0
错误代码(如,
W#16#80C3 表示资源
不足)
0 0 1
2 到 (n -
1)
中间调用 - W#16#7002 1 0 0
n 次调
用
- W#16#0000(如果无错
误)
0 1 0
错误代码(如果出
错)。
0 0 1
程序执行的基本知识
8.2 异步指令
自动化系统
系统手册, 11/2019, A5E-AF 213
资源的使用
异步指令在执行过程中将占用 CPU 中的资源。根据 CPU 类型和指令的不同,资源的使
用具有一定限制。CPU 可同时执行数目的异步指令作业。在作业成功完成后或在出
错后,这些资源将再次可用。
示例:对于 RDREC 指令,S7-1500 CPU 可以并行处理最多 20 个作业。
如果超出指令的并行作业数量,则会出现以下情况:
● 该指令将在块参数 STATUS 中返回错误代码 80C3(资源不足)。
● CPU 将停止执行作业,直至资源再次可用。
说明
低层级的异步指令
某些异步指令可使用一个或多个低层级的异步指令进行处理。下表列出了这种相关性。
请注意,每条级别较低的指令通常占用指令资源池中的一个资源。
扩展指令:可同时运行作业的数目
表格 8- 4 所用的扩展异步指令和级别较低的指令中可同时运行的作业数
扩展指令 1505SP