指令“STATUS”的参数如下表所示: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L 控制参数 request,在上升沿时激活该指令。 ID Input WORD M、D 或常量 寻址参数 ID 另请参见: S7 通信指令的常见参数 (页 8687) NDR Output BOOL I、Q、M、D、L 状态参数 NDR: • 0: 作业未启动,或者仍在执行之中。 • 1: 作业已经成功完成。 ERROR STATUS Output Output BOOL WORD I、Q、M、D、L I、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0 STATUS 的值为: 0000H:既无警告也无错误 <> 0000H:警告,详细信息请参见 STATUS 。 • ERROR=1 出现错误,有关错误类型的详细信息,请参见 STATUS。 PHYS InOut ANY I、Q、M、D 物理状态(Zui小长度: 1 个字节) 可能的值: • 10H 所有功能均正常。 • 13H 需要维修。 LOG InOut ANY I、Q、M、D 逻辑状态(Zui小长度: 1 个字节) 可能的值: • 00H 允许执行状态更改。 LOCAL InOut ANY I、Q、M、D 伙伴设备为 S7 CPU 时的状态(Zui小长度: 2 个字 节) 有关有效数据类型的更多详细信息,请参见 "有效数据类型概述 。
参数 ERROR 和 STATUS 下表包含关于 STATUS 的、可通过参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERROR STATUS (十进制) 说明 0 11 警告: • 由于前一作业仍处于忙碌状态,因此未激活新作业。 • 该作业正在处理之中,但其优先级较低。 0 25 已开始通信。 作业正在处理。 1 1 通信故障,例如 • 连接描述信息未加载(本地或远程)。 • 连接中断(例如: 电缆问题、CPU 关闭或者 CP 处于 STOP 模式)。 1 2 接收到伙伴设备的否定应答。 该功能无法执行。 1 4 PHYS、LOG,或者 LOCAL 出现错误,该错误与数据长度或者数据类型有关。 1 8 访问远程对象被拒绝。 1 10 无法访问本地用户内存(例如,访问某个已经删除的数据块)。ERROR STATUS (十进制) 说明 1 12 调用该指令时 • 已指定一个不属于“STATUS”的背景数据块 • 已指定一个全局数据块,以代替指定背景数据块。 • 未找到背景 DB(解决方案: 再次装载相关背景 DB)。 1 20 S7-400: 工作存储器空间不足。解决方案:减少存储器中的程序代码。 USTATUS:非协调式接收远程设备状态 (S7-400) 说明 在 S7-400 中,“USTATUS”指令可以接收远程通信伙伴的设备状态更改信息。 如果在组态了 这种行为之后发生更改,则伙伴将会主动发送自己的状态信息。 调用期间或者伙伴帧处于暂挂状态时,如果控制输入已经置位 EN_R 1,则在下一次调用时, 会将状态信息送入 PHYS、LOG 和 LOCAL 参数的变量之内。如果状态参数 NDR 的值变为“1”, 则表示该动作已经完成。 对于“USTATUS”指令所使用的连接,必须启用工作状态消息传输功能。 说明 每个连接,仅能设置“USTATUS”指令的一个实例。 参数 指令“USTATUS”的参数如下表所示: 参数 声明 数据类型 存储区 说明 EN_R Input BOOL I、Q、M、D、L 控制参数(enabled to receive),若其输入已 经置位,则发出“接收就绪”信号。 ID Input WORD M、D 或常数 寻址参数 ID 另请参见: S7 通信指令的常见参数 (页 8687) NDR Output BOOL I、Q、M、D、L 状态参数 NDR: • 0: 作业未启动,或者仍在执行之中。 • 1: 作业已成功完成。参数 声明 数据类型 存储区 说明 ERROR STATUS Output Output BOOL WORD I、Q、M、D、L I、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0 STATUS 的值为: 0000H:既无警告也无错误 0000H:警告,详细信息请参见 STATUS 。 • ERROR=1 出错。STATUS 提供了有关错误类型的详细信 息。 PHYS InOut ANY I、Q、M、D 物理状态(Zui小长度: 1 个字节) 可能的值: • 10H 所有功能均正常。 • 13H 需要维修。 LOG InOut ANY I、Q、M、D 逻辑状态(Zui小长度: 1 个字节) 可能的值: • 00H 允许执行状态更改。 LOCAL InOut ANY I、Q、M、D 伙伴设备为 S7 CPU 时的状态(Zui小长度: 2 个 字节) 有关有效数据类型的更多信息,请参见“有效数据类型概述参数 ERROR 和 STATUS 下表包含关于 "USTATUS" 的、可通过参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERROR STATUS (十进制) 说明 0 9 溢出警告: 较早的设备状态已经被新近的设备状态覆盖。 0 11 已接收数据正在处理之中,但其优先级较低。 0 25 已开始通信。 作业正在处理。 1 1 通信故障,例如 • 连接描述信息未加载(本地或远程)。 • 连接中断(例如: 电缆故障、CPU 关闭或者 CP 处于 STOP 模式)。 1 4 PHYS、LOG,或者 LOCAL 出现错误,该错误与数据长度或者数据类型有关。 1 10 无法访问本地用户存储器(例如,访问某个已经删除的数据块)。 1 12 调用该指令时 • 已指定一个不属于 "USTATUS" 的背景数据块 • 指定了全局数据块,而不是背景数据块。 • 未找到背景数据块(补救措施: 再次装载相关背景 DB)。 1 18 已经有一个“USTATUS”实例用于 ID 所指定的连接。 1 19 远程 CPU 的数据发送速度超过了用户程序中指令的数据接收速度。 1 20 S7-400: 工作存储器空间不足。补救措施:减少存储器中的程序代码。”。 输入/输出参数 LOCAL 如果通信伙伴为 S7 CPU,则输入/输出参数 LOCAL 包含通信伙伴的当前状态: 第一个字节 保留,第二个字节为状态 ID。
开放式用户通信 (S7-300, S7-400) 概述 (S7-300, S7-400) 基于工业以太网的开放式用户通信 借助用户程序,通过以太网(TCP、ISO-on-TCP、UDP)与其它通信伙伴交换数据可以采用 以下指令和 UDT: • 面向连接的协议: TCP(符合 RFC 793),ISO on TCP(符合 RFC 1006): – UDT 65“TCON_PAR (页 8756)”,提供有数据结构,可以指定连接参数 – UDT 651 至 UDT 656,支持协议相关的默认设置 – "TCON (页 8771)",用于建立连接 – "TDISCON (页 8775)",用于终止连接 – "TSEND (页 8777)",用于发送数据 – "TRCV (页 8780)",用于接收数据 • 无连接协议: UDP(符合 RFC 768) – UDT 65“TCON_PAR (页 8756)”,提供有数据结构,可以指定本地通信接入点的参数 – UDT 657,支持协议相关的默认设置 – UDT 66“TCON_ADR (页 8759)”,提供有数据结构,可以指定远程通信伙伴的寻址参数 – UDT 661,支持协议相关的默认设置 – "TCON (页 8771)",用于建立本地通信的接入点 – "TDISCON (页 8775)",用于取消本地通信接入点 – "TUSEND (页 8785)",用于发送数据 – "TURCV (页 8788)",用于接收数据基于工业以太网的开放式用户通信指令的功能描述 (S7-300, S7-400) 面向连接的协议和无连接协议 在数据通信中可有以下几种协议选项: • 面向连接的协议选项: 这类协议会在数据传输开始之前建立到通信伙伴的逻辑连接。数据传输完成后,这些协 议会按需终止连接。当对数据交付的可靠性要求较高时,应该使用面向连接的协议来实 现数据传输。通常在一条物理线路上可以有多个逻辑连接。 使用基于工业以太网的开放式用户通信指令,可以支持下列面向连接的协议: – TCP(符合 RFC 793) – ISO on TCP(符合 RFC 1006) • 无连接协议选项: 这类协议不需要连接。因此,无需建立和终止与远程通信伙伴之间的连接。未确认的无 连接协议会将数据传输到远程伙伴,因此不受保护。这表明数据有可能会丢失,而块也 不会指示这类丢失现象。 使用基于工业以太网的开放式用户通信指令,可以支持下列无连接协议: – 符合 RFC 768 的 UDP(广播或单播,不支持组播) 指令的功能描述将取决于所使用的协议选项。下述章节将对此进行了详细描述。 接收区 以下章节将多次使用该术语。它表示指令将所接收数据送入的区域。 接收区由以下两个变量指定: • 接收区起始地址指针 • 接收区的长度 根据所用协议选项的不同,可使用参数 LEN(在 LEN <> 0 的情况下)或 DATA 参数的长度信息 (在 LEN = 0 的情况下)来定义该区域的长度。 ANY 指针中可使用以下数据类型:BOOL、BYTE、CHAR、WORD、INT、DWORD、DINT、 REAL、DATE、TIME_OF_DAY、TIME、S5TIME 和 DATE_AND_TIME。