DP_TOPOL: 获取 DP 主站系统的拓扑结构 (S7-300, S7-400) 说明使用该指令,可以触发对所选 DP 主站系统拓扑结构的确定。 调用该指令时将寻址 DP 主站 系统上的所有诊断中继器。 说明只能一次确定一个 DP 主站系统的拓扑结构。 拓扑结构的确定是详细显示线路出错位置的前提条件。 组态后并且每次更改到 DP 主站系统的实际组态后,必须使用“DP_TOPOL”重复进行拓扑结构确定。 实际组态的更改包括: • 线路长度的更改 •添加或删除具有中继功能的站或组件 • 更改站地址 如果诊断中继器报告出错,则“DP_TOPOL” 将写入输出 DPR 和 DPRI,时间为“DP_TOPOL”所 经历的时间。 如果所选 DP 主站系统的多个诊断中继器报告出错,则“DP_TOPOL”将有关报告出错的第一个诊断中继器的信息写入“DPR ”和“DPRI ”。 通过编程设备或使用指令 “DPNRM_DG (页7727)”,可以读出全部诊断信息。 如果没有诊断中继器报告出错,则输出 DPR 和 DPRI 的值均为 NULL。如果想在发生错误后,重复进行拓扑结构确定,则必须置位“DP_TOPOL”。 这可通过使 “REQ=0”和“R=1”来调用“DP_TOPOL”进行。 功能描述 "DP_TOPOL”不同步执行,即会跨过多次调用。 通过 REQ=1来调用“DP_TOPOL”,即可启动 总线拓扑结构确定。 如果想取消这一过程,可使“R=1 ”来调用“DP_TOPOL”。 输出参数RET_VAL 和 BUSY 用于指示作业状态。
另请参见:同步指令和异步指令之间的不同之处 (页 6480). 说明 确定拓扑结构可能需要几分钟时间。 作业标识 输入参数 DP_ID用于唯一指定作业。 如果已调用指令“DP_TOPOL”,且在重新确定拓扑结构之前,调用了该指令,则指令的响应方式取决于在同一作业中是否有新的调用:如果参数 DP_ID 与尚未完成的作业一致,则 该调用作为随动调用编译,并且 RET_VAL= W#16#7002。 如果还涉及其它作业,则 CPU 将 会拒绝它。 参数 下表列出了指令“DP_TOPOL”的参数: 参数 声明数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L REQ=1:触发拓扑结构确定 R Input BOOLI、Q、M、D、L R=1:取消拓扑结构确定 DP_ID Input INT I、Q、M、D、L 或 常数 确定其拓扑结构的 DP主站系统 ID RET_VAL Return INT I、Q、M、D、L 指令执行期间,如果出现错误,则返回值会 包含相应的错误代码。BUSY Output BOOL I、Q、M、D、L BUSY=1:拓扑结构确定仍未完成。 DPR Output BYTEI、Q、M、D、L 报告出错的诊断中继器的 PROFIBUS 地址。 DPRI Output BYTE I、Q、M、D、L报告出错的测量段诊断中继器: • 第 0 位 = 1: 总线段 DP2 上的临时故障 • 第 1 位 = 1: 总线段 DP2上的yongjiu故障 • 第 4 位 = 1: 总线段 DP3 上的临时故障 • 第 5 位 = 1: 总线段 DP3上的yongjiu故障 有关有效数据类型的更多信息,请参见“有效数据类型概述参数 RET_VAL 在查看下表中的错误信息(错误代码W#16#8xyz)时,注意有以下两种错误类型: • 临时错误(错误代码 W#16#80A2 至 80A4、80C3、80C5):这类错误无需用户介入即可排除;即,建议调用“DP_TOPOL”(根据需要,可多次调 用)。 临时错误举例:当前正在使用的必要资源(W#16#80C3)。 • yongjiu错误(错误代码 W#16#8082,80B0,80B2):这类错误代码不能自行修正。 只有排除这种错误,才能重新调用指令“DP_TOPOL”。 yongjiu 错误举例: DP 主站/CPU不支持该服务。 (W#16#80B0). 错误代码 (W#16#...) 说明 0000 作业已经成功完成。 7000 REQ=0时第一次调用。 不触发拓扑结构确定。BUSY 的值为“0”。 7001 REQ=1 时第一次调用。已发送执行拓扑结构确定的请求。BUSY 的值为“1”。 7002 中间调用(与 REQ 无关): 拓扑结构确定尚未完成。BUSY =1。 7010 已尝试取消拓扑结构确定。但没有带有指定 DP_ID 的运行作业。BUSY 的值为“0”。 7011 R=1时第一次调用。 已触发取消拓扑结构确定。BUSY = 1。 7012 中间调用: 拓扑结构确定的取消尚未完成。BUSY 的值为“1”。7013 Zui后调用: 拓扑结构确定已取消。BUSY 的值为“0”。 8082 未使用指定 DP_ID 来组态 DP 主站系统。80A2 拓扑结构确定过程中出错;详细信息,请参见输出参数 DPR 和 DPRI。 80A3 拓扑结构确定过程中出错:监视时间已过(超时)。 80A4 通信总线上的通信中断 80B0 DP 主站/CPU 不支持该服务。 80B2拓扑结构确定过程中出错: 在所选 DP 主站系统中没有找到诊断中继器。 80C3 所需资源当前正在使用。 可能的原因:已启动辅助拓扑结构确定(一次只允许一个拓扑结构 确定)。 80C5 DP 主站系统目前不存在。 8xyy 常见错误信息 另请参见:通过输出参数 RET_VAL 评估错误。ASi (S7-300, S7-400) ASi_3422:控制 AS-i 主站行为(S7-300, S7-400) 说明 将操作模式“扩展操作”用于 CP 342-2 时,需要使用指令“ASi_3422”。通过扩展操作,可 使用用户程序全面控制主站的行为。 与以前一样,对输入和输出的访问是在 CP 342-2 的标 准操作中完成的。 对CP342-2 的命令调用将通过指令从用户程序来完成。 可在一个发送缓冲区中指定命令调 用并启动作业。指令“ASi_3422”可将命令调用传送到 CP342-2。 作业完成时将传送作业状态,并在一个接收 缓冲区中提供可能的响应数据。调用 必须针对每个 CP342-2 循环调用此指令。 每个 CP342-2 一次只能处理一个作业。 当前作业无法中断,且该指令不会监视时间。 指令“ASi_3422”是不间断执行的。 不能在可相互中断的程序优先级中对调用进行编程(例如,OB 1 和 OB 35 中的调用)。 可在用户程序中对命令处理进行如下组态: 1. 在重启S7 用户程序时,使用参数值 STARTUP = TRUE 调用“ASi_3422”一次。 2.在用户程序的一个发送缓冲区中指定命令调用。 使用调用参数 SEND 来传送这个发送缓冲区。 可在通信处理器硬件文档中了解有关命令接口和ASi 从站命令的详细信息。 3. 根据命令类型,可能需要使用响应缓冲区。 使用调用参数 RECV 来传送这个响应缓冲区。 此接口的状态信息无需响应缓冲区。 4. 使用参数 ACT=1 来启用作业。 5. 查询参数 DONE、ERROR 和STATUS。下表列出了指令“ASi_3422”的参数: 参数 声明 数据类型 存储区 说明 ACT Input BOOLI、Q、M、D、L 由此功能执行的命令处理是由电平触发 的,这意味着只要 ACT = 1 处于激活状态时尚未对调用进行处理,就会启动命令处 理。 STARTUP Input BOOL I、Q、M、D、L 此指令将通过 STARTUP =1 来指示 CPU 启 动。 第一次运行后,用户必须对功能 STARTUP 进行复位。 LADDR Input WORDI、Q、M、D、L 或 常数 模块起始地址 需要使用有关以面向插槽的方式将地址发 送到信号模块的信息来确定模块的起始地 址。 SENDInput ANY I、Q、M、D、L 发送缓冲区 此参数涉及一个需要由用户指定命令的存 储器区域,例如: P#DB20.DBX20.0 Byte 10. RECV Input ANY I、Q、M、D、L 接收缓冲区 此缓冲区仅与传送响应数据的命令有关。参数涉及一个用于存储命令响应的存储器 区域。在此处通过参数设置的数据区域的 长度无关紧要,例如: P#DB30.DBX 20.0Byte 1 DONE Output BOOL Q、M、D、L DONE = 1 指示“作业完成,未发生错 误”。 ERROROutput BOOL Q、M、D、L ERROR = 1 指示“作业完成,发生错误”。 STATUS InOut DWORD M、D1. Word: 作业状态/错误代码(见下 表);将针对“作业完成,发生错误”生 成错误代码,以便更具体地描述错误。 2. Word:指令出于内部用途而需要使用 这个字,不得更改。 对于对不同逻辑地址的指令调用 (LADDR),必须为参数 STATUS 指定不同的双字。参数 LADDR 地址区域的起始地址由 CP 342-2 的插槽决定。 CP 342-2 占用 S7 自动化设备的 I/O地址区域(AS 的类似区域)中的 16 个输入字节和 16 个 输出字节。 CP 342-2 的 16 字节地址区域的 31 x 4位由 AS-i 从站数据占用。 其余 4 位针对 以后的应用保留。 参数 DONE、ERROR 和 STATUS如果在处理此功能期间发生错误,则除了上述 ERROR and STATUS 中的信息之外,还将在 BR 位中存储“0”。 对 BR位的查询对于 LAD 和 STL 用户程序来说是不同的: • LAD: 使用输出参数 ENO 进行查询 • STL: 直接查询 BR位 下表列出了 STATUS 的第一个字中的可能显示,具体内容取决于 DONE 和 ERROR。 DONE ERROR STATUS含义 0 0 8181 作业正在运行。 1 0 0000 作业完成,发生错误。 0 1 8090 参数 LADDR 中的地址无效。 01 80A0 读取模块时的否定确认。 0 1 80A1 写入模块时的否定确认。 0 1 80B0 模块无法识别该数据记录。 0 180B1 输入的数据记录长度不正确。 0 1 80C0 无法读取数据记录。 0 1 80C1 仍在处理请求的数据记录。 0 180C2 已对作业进行备份。 0 1 80C3 资源(存储器)已被占用。 0 1 80C4 通信错误 0 1 8182 含义: 使用STARTUP=TRUE 重启后的标识(无错误)。 0 1 8184 形式操作数 RECV 的类型非法。 0 1 8381从站地址不正确 0 1 8382 从站未启用(未在 LAS 中)。