ASi(S7-1500) ASI_CTRL:控制 AS-i 主站操作 (S7-1500) ASI_CTRL 的说明 (S7-1500) 说明使用指令“ASI_CTRL”,从 PLC 的用户程序中控制 AS-i 主站的操作。该指令可自动处理命令协 议。该指令还可启用SIMATIC AS-i 主站上的参数分配并读出信息数据。有关命令接口的功能 和操作详细信息,请参见 AS-i 主站手册。 支持通过PROFIBUS DP 的集中式插入的 AS-i 主站和分布式 AS-i 主站。也可以组合使用 PROFINET IO(例如IE/PB Link PN IO)。 以下示意图介绍了指令“ASI_CTRL”的功能:① 开始处理 REQ 参数。 ②该程序通过指令“RDREC”向 AS-i 主站发送所需的命令。 ③ AS-i 主站将处理该命令。④ AS-i主站的当前状态存储在二进制数据的输入区(逻辑起始地址)。 ⑤ 指令“ASI_CTRL”将循环查询并评估 4 个状态位。 ⑥命令处理完成之后,将立用“RDREC”完成命令作业。根据命令的不同,数据字段“RDREC”中可能包含命令的响应数据或其它状态信息。 指令版本之间的相互关系 版本为 V1.3的指令“ASI_CTRL”要求“WRREC”指令的版本为 V1.1。 版本为 V1.2的指令“ASI_CTRL”要求“WRREC”指令的版本为 V1.1。 IE/AS-i LINK 和 DP/AS-i LINK之间命令调用的差异 控制器与 AS-i 主站交换命令的方式有很大的区别。 • IE/AS-i Link (PROFINET)使用数据记录接口。可使用“写入数据记录”(“WRREC”指令)或“读取数据记录”(“RDREC”指令)通过各种数据记录编号调用不同的命令。 • DP/AS-i Link (PROFIBUS)使用命令接口。可使用“写入数据记录”(“WRREC”指令)和 “读取数据记录”(“RDREC”指令)通过数据记录编号 2调用所有命令。命令类型由写入 作业中的数据内容定义。 “ASI_CTRL”指令的操作指令“ASI_CTRL”是一个异步函数块,可以跨多个调用执行。 • REQ = TRUE 时,启动作业。 • 通过 BUSY输出参数以及输出参数 STATUS 的两个中间字节显示作业状态。 • BUSY 参数在作业处理期间设置。根据首次调用,为 STATUS分配值 00700100H。根据该 作业的所有后续调用,为其分配值 00700200H。作业完成时,将在参数 DONE 或 ERROR处输出结果。 – 如果无错误出现,则置位 DONE。对于带有 AS-i 主站中响应数据的作业,该数据在特定的接收存储区中提供。此时,STATUS 参数仍将以字节为单位显示所提供的数据量。 对于不含响应数据的作业,将在 STATUS中输入值 00000000H。 – 如果作业处理期间出错,则置位 ERROR。在这种情况下,接收缓冲区的内容无效。将所发生错误的更多详细说明的错误代码输入 STATUS 参数中。 命令调用次数如果使用指令“ASI_CTRL”发送命令,可能不会使用“RDREC (页2778)”或“WRREC (页2798)” 向相同的AS-i 主站发送其它命令。这也适用于相同 AS-i 主站指令的多个调用。
DP_TOPOL: 获取 DP主站系统的拓扑结构 (S7-1500) 说明 使用该指令,可以触发对所选 DP 主站系统拓扑结构的确定。调用该指令时将寻址 DP 主站系统上的所有诊断中继器。 说明 只能一次确定一个 DP 主站系统的拓扑结构。拓扑结构的确定是详细显示线路出错位置的前提条件。组态后并且每次更改到 DP 主站系统的实际组态后,必须使用“DP_TOPOL”重复进行拓扑结构确定。 实际组态的更改包括: • 线路长度的更改 •添加或删除具有中继功能的站或组件 • 更改站地址 如果诊断中继器报告出错,则“DP_TOPOL”将写入输出 DPR 和 DPRI,时间为“DP_TOPOL”所 经历的时间。如果所选 DP 主站系统的多个诊断中继器报告错误,则“DP_TOPOL”将报告错误的第一个诊断中继器的相关信息写入 DPR 和 DPRI 中。通过编程设备或使用指令 “DPNRM_DG(页 2950)”,可以读出全部诊断信息。如果没有诊断中继器报告错误,则输出 DPR 和 DPRI 的值均为“0”。如果想在发生错误后,重复进行拓扑结构确定,则必须置位“DP_TOPOL”。这可通过使 “REQ=0”和“R=1”来调用“DP_TOPOL”进行。 功能描述 “DP_TOPOL”是一个异步指令,可以跨多个调用执行。通过 REQ=1来调用“DP_TOPOL”,即可 启动总线拓扑结构确定。如果想取消这一过程,可使“R=1 ”来调用“DP_TOPOL”。 输出参数RET_VAL 和 BUSY 用于指示作业状态。 另请参见“同步指令和异步指令之间的不同之处 (页 715)” 说明确定拓扑结构可能需要几分钟时间。参数 RECORD CPU 将计算读取诊断数据的实际长度: 如果为 RECORD 指定的长度 •小于提供的数据字节数目,该数据将丢弃。在 RET_VAL 中输入相应的错误代码。 •大于或等于所指定的数据字节数,则将数据接收到目标区域中,并在 RET_VAL 中输入实 际长度(正值)。 说明必须确保属于一个作业的所有调用中的 RECORD 实参都一致。 作业由 LADDR 输入参数唯一标识。 诊断数据超过 240个字节的标准从站 对于标准诊断数据量在 241 到 244 个字节之间的标准从站,请注意以下事项: 如果为 RECORD 指定的长度• 小于 240 个字节,该数据将丢弃,并在 RET_VAL 中输入相应的错误代码。 • 长度大于或等于 240个字节,系统将标准诊断数据中的前 240 个字节传送到目标区域内, 并在该数据中置位溢出位。 参数 RET_VAL •如果在该函数的执行过程中出错,则返回值将包含一个错误代码。 • 如果在数据传送过程中没有发生错误,则 RET_VAL将存储读取数据的长度(单位为字节, 正值)。 说明 在 DP 从站中读取的数据量取决于其诊断状态。
作业标识 输入参数 DP_ID用于唯一指定作业。 如果发现该拓扑前调用“DP_TOPOL”,则该指令的执行方式将取决于同一作业中是否存 在新的调用:如果参数DP_ID 与未完成的作业相匹配,则该调用将解释为一个随动调用。并 将值 W#16#7002 输入到 RET_VAL中。如果还涉及其它作业,则 CPU将会拒绝它。指令“ASI_CTRL”不能与中断一同运行。无法将调用编程为可相互中断的程序优先级类别 (例如,OB 1 和 OB35 中的调用)。 参数 下表列出了“ASI_CTRL”指令的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOLI、Q、M、D、L 或 常量 REQ = TRUE 时会启动一个新作业(除非有 作业正在处理中)。不进行边沿检测。 LADDRInput HW_IO I、Q、M、D、L 或 常量 AS-i 主站的硬件标识符。 可以从模块属性中获取地址。 SD InputVARIANT I、Q、M、D、L 发送缓冲区 该参数引用了一个需指定该命令的存储区 域(参见“ASi 命令(页 2961)”)。 RD Input VARIANT I、Q、M、D、L 接收缓冲区此缓冲区仅与传送响应数据的命令有关。 该参数引用了一个存储命令响应的存储区 域(参见“ASi 命令 (页 2961)”)。DONE Output BOOL I、Q、M、D、L DONE = TRUE:作业已成功完成。 BUSY Output BOOLI、Q、M、D、L BUSY = TRUE:作业正在运行中。 ERROR Output BOOL I、Q、M、D、L ERROR =TRUE:作业因错误而中止。 STATUS Output DWORD I、Q、M、D、L 作业状态/错误代码请参见“STATUS”参数说明。 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 说明LADDR、SD 和 RD 参数 作业在运行过程中,任何块循环中的参数 LADDR、SD 和 RD不得更改:它们必须保持不变。这些命令 • 提供 AS-i 主站规格的 M4 主站配置文件的所有功能。 • 启用将由控制器进行完整组态的AS-i 主站。 说明 支持的 AS-i 命令 有关支持的 AS-i 命令和详细说明,请参见相关 AS-i 主站的手册。发送缓冲区的一般结构 命令和作业数据的发送缓冲区一般结构在下表中列出。必须填充命令编号区域。作业数据的字节数可在命令说明中找到(请参见 AS-i 主站文档)。此时,“q”为发送缓冲区的起始地址。可覆盖存储区如果“ASI_CTRL”指令的接收缓冲区过短,则可能覆盖相邻的存储区。与调用“ASI_CTRL”指令 时 RD 参数的 ANY指针中指定的长度不相关。接收缓冲区所需的长度可在命令说明中找到。 以下内容适用于命令编号 39H、41H、42H、43H 和 44H:接收缓冲区长度必须为 221 字节(字节 0 到 220),命令会返回较少的数据。根据命 令,AS-i主站可用零值覆盖接收缓冲区的Zui高位字节。重新初始化 AS-i 主站命令接口 该表格中未包含的另一条命令为命令 77H。该指令用于重新初始化 AS-i 主站的命令接口。由 AS-i 主站指定且当前正在执行的所有命令都将终止。 DP/AS-i LINKAdvanced 的版本 V2.1.20 及其以上版本都提供命令 0E H。通过该调用,可激活或禁用线路的接地故障监视功能。