全国服务热线 15801815554

SIEMENS西门子 WinCC V7.4ASIA 6AV6381-2BE07-4AV0

更新时间:2024-07-03 08:00:00
价格:请来电询价
西门子:代理经销商
WinCC软件:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机:15801815554
联系人:邓经理
让卖家联系我
详细介绍


            同步指令和异步指令之间的不同之处 (S7-300, S7-400) 异步指令 在程序处理过程中,同步指令和异步指令的处理方式不同作业占用的资源 每个作业都会占用 CPU 资源。例如,指令“RDREC”会占用目标区域的内存空间。这些资源将 专门分配给该资源且在指令运行时始终占用(如,BUSY 的值为“1”时)。 此时,无法对所占用的资源进行更改或用作他用。例如,无法更改由“RDREC”指令所占目标 区域的长度和内容。 概述 下表列出了上述的参数关系。尤其对指令调用完成之后但作业尚未完成时输出参数的可能值 进行了说明。 说明 每次调用之后,必须检查程序中的相关输出参数。 作业“运行”过程中,调用、REQ、RET_VAL 和 BUSY 之间的关系。

          “同步”和“异步”的属性会影响到指令调用与执行的时间。 • 对同步指令而言:当同步指令的调用结束时,该指令的操作也同样结束。 • 而异步指令则有所不同:异步指令的执行可能会延续到跨多个调用。在 CPU 中,异步指 令的执行与循环用户程序同步进行。异步指令在执行过程中会占用 CPU 中的资源。 异步操作通常用于数据传输(模块的数据记录、通信数据和诊断数据)。 有关异步指令的更多信息,请参见:SIMATIC S7-1500 / ET 200MP 手册集系统手册中的程序处理的基本信息 > 异步指令 作业标识 要执行一个跨多个调用的指令,CPU 必须为该指令正在运行的作业分配一个唯一的后续调用。 根据指令的类型,CPU 会通过下列某种方式为作业指定一个调用: • 通过指令的实例(类型为“SFB”的系统功能块) • 通过指令的输入参数,标识该作业。 如果通过异步指令触发一个过程中断、输出到 DP 从站、启动数据传输或中止一个未组态的 连接,并在当前作业完成之前再次调用该指令,则该指令的反应取决于第二次调用中是否包 含相同的作业。 将参数传递到待异步执行的程序块中 可以使用不同的访问类型(“标准”和“优化”)创建代码块 (FB/FC) 和数据块 (DB)。在代 码块中,可以调用任何指令。某些指令(如“WRIT_DBL”和“READ_DBL”)为异步执行。由于数 据在指令的执行过程中会发生变更,因此无法通过 TEMP 中的变量提供这些块。 在包含有不同访问类型且相互调代码块的用程序中,请确保不使用这些指令。这样可能会导 致以下情况: • 标准数据块中的结构将直接或间接地传递到一个已优化的代码块中,而该代码块又将该 结构直接或间接地转发给上述的某个块。 • 反之亦然。即,将已优化代码块中的一个结构直接或间接地传递到标准数据块,而标准 数据块又将该结构直接或间接地转发给上述的某个程序块。 否则将在 TEMP 中传递的数据创建一个隐藏的副本,从而导致异步程序块返回一个否定应答。参数 REQ 输入参数 REQ (request) 仅适用于启动作业: • 通过将输入参数 REQ 设置为“1”触发该作业(第 1 种情况)。 • 如果已启动了某一特定作业,但在未完成时又再次调用该指令执行相同的作业(例如,在 循环中断 OB 中),则该指令不会检测 REQ(第 2 种情况)。 • 如果该作业执行完成,但输入参数 REQ 仍设置为“1”,则该作业将立即再次启动。 说明 REQ 位 = “1” 请注意,置位 REQ 位时,如果之前的调用结束则将启动该异步指令,从而导致意外结果。 要确保项目清晰且易于维护,建议尽早将 REQ 位复位为“0”。 参数 RET_VAL 和 BUSY 输出参数 RET_VAL 和 BUSY 用于指示作业状态。 请注意本章节中的注意事项:通过输出参数 RET_VAL 评估错误 (页 184) • 在第 1 种情况中(通过 REQ = 1 进行首次调用),如果系统资源输入参数且输入参数正确, 则 RET_VAL 中会输入代码 W#16#7001,同时将 BUSY 置位为“1”。 如果所需系统资源当前正在使用或输入参数错误,则 RET_VAL 中将输入相应的错误代码, 同时 BUSY 的值为“0”。 • 在第 2 种情况中(中间调用),将在 RET_VAL 中输入代码 W#16#7002(与“调用仍在 进行”的消息相对应),同时将 BUSY 置位为“1”。 • 以下规则适用于对作业的Zui后一次调用: – 对于指令“DPNRM_DG (页 7727)”、“X_GET (页 9424)”和“I_GET (页 9406)”,在出 现无故障数据传输时,所提供数据的数量将以一个正数输入到 RET_VAL,单位为字节。 此时,BUSY 的值为“0”。 如果传输有错误,将在 RET_VAL 中输入错误信息,此时不会对 BUSY 进行检查。 – 如果在数据传输过程没有发生错误,则通过“RD_REC (页 7692)”在 RET_VAL 中输入数 据记录的大小(字节)或值“0”。此时,BUSY 的值为“0”。如果存在错误,则在 RET_VAL 中输入该错误代码,同时将 BUSY 的值置为“0”。 – 对于其它所有指令,如果作业执行无错误,则 RET_VAL 的值为“0”,同时将 BUSY 值也 置为“0”。如果存在错误,则在 RET_VAL 中输入该错误代码,同时将 BUSY 的值置为“0”。 说明 如果首次调用和Zui后一次调用相同,则 RET_VAL 和 BUSY 中的值与Zui后一次调用时的相同。作业占用的资源 每个作业都会占用 CPU 资源。例如,指令“RDREC”会占用目标区域的内存空间。这些资源将 专门分配给该资源且在指令运行时始终占用(如,BUSY 的值为“1”时)。 此时,无法对所占用的资源进行更改或用作他用。例如,无法更改由“RDREC”指令所占目标 区域的长度和内容。 概述 下表列出了上述的参数关系。尤其对指令调用完成之后但作业尚未完成时输出参数的可能值 进行了说明。 说明 每次调用之后,必须检查程序中的相关输出参数。 作业“运行”过程中,调用、REQ、RET_VAL 和 BUSY 之间的关系。LAD (S7-300, S7-400) 位逻辑运算 (S7-300, S7-400) ---| |---:常开触点 (S7-300, S7-400) 说明 常开触点的激活取决于相关操作数的信号状态。当操作数的信号状态为“1”时,常开触点将 关闭,同时将输出的信号状态置位为输入的信号状态。 当操作数的信号状态为“0”时,不会激活常开触点,同时该指令输出的信号状态复位为“0”。 两个或多个常开触点串联时,将逐位进行“与”运算。串联时,所有触点都闭合后才产生信 号流。 常开触点并联时,将逐位进行“或”运算。并联时,有一个触点闭合就会产生信号流。 参数 下表列出了该指令的参数: 参数 声明 数据类型 存储区 说明 <操作数> Input BOOL I、Q、M、D、 L、T、C 要查询其信号状态的操作 数。 示例 以下举例说明了该指令的工作原理: 请使用以下内容为此创建全局数据块:满足以下条件之一时,将置位“"SLI_gDB_NOContact".startOut”操作数: • 操作数“"SLI_gDB_NOContact".start1”和“"SLI_gDB_NOContact".start2”的信号状态都为 “1”。 • 操作数“"SLI_gDB_NOContact".start3”的信号状态为“1”。常闭触点 (S7-300, S7-400) 说明 常闭触点的激活取决于相关操作数的信号状态。当操作数的信号状态为“1”时,常闭触点将 打开,同时该指令输出的信号状态复位为“0”。 当操作数的信号状态为“0”时,不会启用常闭触点,同时将该输入的信号状态传输到输出。 两个或多个常闭触点串联时,将逐位进行“与”运算。串联时,所有触点都闭合后才产生信 号流。 常闭触点并联时,将进行“或”运算。并联时,有一个触点闭合就会产生信号流。取反 RLO (S7-300, S7-400) 说明 使用“取反 RLO”指令,可对逻辑运算结果 (RLO) 的信号状态进行取反。如果该指令输入的 信号状态为“1”,则指令输出的信号状态为“0”。如果该指令输入的信号状态为“0”,则输出的 信号状态为“1”。线圈 (S7-300, S7-400) 说明 可以使用“赋值”指令来置位指定操作数的位。如果线圈输入的逻辑运算结果 (RLO) 的信号 状态为“1”,则将指定操作数的信号状态置位为“1”。如果线圈输入的信号状态为“0”,则指定 操作数的位将复位为“0”。 该指令不会影响 RLO。线圈输入的 RLO 将直接发送到输出。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061