参数 ERROR和 STATUS 下表列出了关于由 "GET" 指令的参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERRORSTATUS (十进制) 说明 0 11 警告: • 由于前一作业仍处于忙碌状态,未激活新作业。 •该作业正在处理之中,但其优先级较低。 0 25 已开始通信。 作业正在处理。 1 1 通信故障,例如 •连接描述信息未加载(本地或远程) • 连接中断(例如: 电缆故障、CPU 关闭或者 CP 处于 STOP 模式) •尚未与伙伴建立连接 • 同样适用于 S7-300: – 已经超过了并行作业/实例的Zui大数量。 1 2 接收到伙伴设备的否定应答。该功能无法执行。 1 4 接收区指针 RD_i 出错,该错误与数据长度或者数据类型有关。 1 8 访问伙伴 CPU 时出错。 1 10无法访问本地用户存储器(例如,访问某个已经删除的数据块)。 1 12 调用该指令时 • 已指定一个不属于 "GET" 的背景数据块 •已指定一个全局数据块,以代替指定背景数据块。 • 未找到背景数据块(补救措施: 装载相关背景 DB)。 1 20 • S7-400工作存储器空间不足。补救措施: 减少存储器中的程序代码。 • S7-300 – 已经超过了并行作业/实例的Zui大数量 – CPU 处于RUN 模式时,已经加载了实例,且覆盖了其它的实例(CPU 或者 CP 需 要执行 STOP-RUN 切换。) –首次调用时,可能出现 1 27 仅适用于 S7-300: CPU 中不存在该指令的函数代码。 数据一致性如果做到以下几点,则可以使接收的数据保持一致: 初始化另一个作业之前,需要确定出接收区 RD_i 中当前已完全使用的部分。
PUT: 将数据写入远程 CPU(S7-300, S7-400) 说明 借助于该指令可在未通过 CP 进行连接时将数据写入远程 CPU。 • S7-300: 在REQ 的上升沿发送数据。在每一个 REQ 上升沿,都会使用参数 ID、ADDR_1 和 SD_1 的值。 作业结束之后,可以为参数ID、ADDR_1 和 SD_1 赋予新值。 • S7-400: 指令从控制输入 REQ 的上升沿开始执行。 写入区指针(ADDR_i) 和数据 (SD_i) 随后会发送给伙伴 CPU。远程伙伴将所需数据保存在该数据提供的地址之中,并返回一个执行应答。请确保由参数 ADDR_i 和 SD_i定义的区域在数量、长度和数据类型等方面都匹配。 如果没有出现错误,下一次调用时会用状态参数 DONE=“1”来指示这一点。上一作业已经 结束之后,才可以激活写入过程。 远程 CPU 则可以处于 RUN 模式或 STOP模式。如果写入数据时访问出错,或如果执行检查 出错,则会通过 ERROR 和 STATUS 输出错误和警告。 参数下表列出了指令“PUT”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L 控制参数request,在上升沿时激活数据 交换功能。 ID Input WORD M、D 或常数 寻址参数 ID 另请参见:S7通信指令的常见参数 (页 8687) DONE Output BOOL I、Q、M、D、L 状态参数 DONE: • 0:作业未启动,或者仍在执行过程中 • 1: 作业已执行,且无任何错误。参数 声明 数据类型 存储区 说明 ERROR STATUSOutput Output BOOL WORD I、Q、M、D、L I、Q、M、D、L 状态参数 ERROR 和STATUS,错误代码: • ERROR=0 STATUS 的值为: 0000H:既无警告也无错误 <>0000H:警告,详细信息请参见 STATUS。 • ERROR=1 出错。STATUS 提供了有关错误类型的 详细信息。S7-300: ADDR_1 S7-400: ADDR_i (1≤ i ≤4) InOut ANY S7-300:M、DS7-400: I、Q、M、D、T、 C 指向伙伴 CPU 上用于写入数据的区域的指 针。 注:ANY 指针访问某个数据块时,必须始终指定该数据块(例如: P#DB10.DBX5.0 字节 10)。 传送数据结构(例如 Struct、Array)时, 参数 ADDR处必须使用数据类型 CHAR、 BYTE、WORD 或 DWORD。 S7-300: SD_1 S7-400: SD_i (1≤ i≤4) InOut ANY S7-300:M、D S7-400: I、Q、M、D、T、 C 指向本地 CPU 上包含要发送数据的区域的指针。 仅允许使用 BOOL 数据类型(不允许使 用:位数组),BYTE、CHAR、WORD、INT、DWORD、DINT、REAL、 COUNTER、TIMER。 注:ANY 指针访问某个数据块时,必须始终指定该数据块(例如: P#DB10.DBX5.0 字节 10)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。参数ERROR 和 STATUS 下表包含关于 PUT 指令的、通过参数 ERROR 和 STATUS 输出的所有特定错误信息。ERROR STATUS (十进制) 说明 0 11 警告: • 由于前一作业仍处于忙碌状态,未激活新作业。 •该作业正在处理之中,但其优先级较低。 0 25 已开始通信。 作业正在处理。 1 1 通信故障,例如 •连接描述信息未加载(本地或远程) • 连接中断(例如: 电缆故障、CPU 关闭或者 CP 处于 STOP 模式) •尚未与伙伴建立连接 • 同样适用于 S7-300: – 已经超过了并行作业/实例的Zui大数量。 1 2 接收到伙伴设备的否定应答。该功能无法执行。 1 4 发送区指针 SD_i 出错,该错误与数据长度或者数据类型有关 1 8 访问伙伴 CPU 时出错。 1 10无法访问本地用户内存(例如,访问某个已经删除的数据块) 1 12 调用该指令时 • 已指定一个不属于 "PUT" 的背景数据块 •已指定一个全局数据块,以代替指定背景数据块。 • 未找到背景数据块(补救措施: 装载相关背景 DB)。 1 20 • S7-400工作存储器空间不足。补救措施: 装载相关背景 DB。 • S7-300 – 已经超过了并行作业/实例的Zui大数量 – 在 CPU 的RUN 模式中,已经装载了实例(需要对 CPU 或者 CP 执行 STOP-RUN 切 换)。 – 首次调用时,可能出现 1 27仅适用于 S7-300: CPU 中不存在该指令的函数代码。 S7-300 的数据一致性:为了保证数据一致性,必须在当前发送作业完成之后,才能对发送区 SD_1 执行写操作。 这种情况下,状态参数 DONE的值将变为“1”。通过集成的接口,实现 S7-400 和 S7-300 的数据一致性: 发送操作激活之后(在 REQ的上升沿),会从用户程序中复制要从发送区 SD_i 中发送的数 据。 指令调用之后,可以写这些区, 且不会破坏当前的发送数据。说明 状态参数 DONE 的值变为“1”时,发送操作才算结束。 USEND: 非协调式发送数据 (S7-300, S7-400) 说明"USEND" 指令将数据发送至 "URCV (页 8703)" 类型的远程伙伴指令。 在发送过程中,无需与伙伴指令协同工作。 这意味着,数据传输无需伙伴指令的应答。 • S7-300: 在 REQ 的上升沿发送数据。在每一个 REQ上升沿,都会使用参数 R_ID、ID 和 SD_1 的值。 作业结束之后,可以为参数 R_ID、ID 和 SD_1 赋予新值。 •S7-400:在控制输入 REQ 的上升沿发送数据。 待发送的数据由参数 SD_1、... SD_4 指定 (4个发送参数无需都具有值)。 参数 SD_1 至 SD_4 / SD_1 所定义的区域和参数 RD_1 至 RD_4 /RD_1(与有关的伙伴 指令"URCV (页 8703)")所定义的区域必须在以下几下方面相匹配: • 编号 • 长度,和• 数据类型 两个指令中的参数 R_ID 必须相同。 状态参数 DONE 的值设置为逻辑值 "1"时,表明发送操作已经成功完成。下表列出了指令“USEND”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOLI、Q、M、D、L 控制参数 request,在上升沿时激活数据交 换功能。 ID Input WORD M、D 或常数 寻址参数ID 另请参见:S7 通信指令的常见参数 (页 8687) R_ID Input DWORD I、Q、M、D、L或 常数 寻址参数 R_ID 另请参见: S7 通信指令的常见参数 (页 8687) DONE OutputBOOL I、Q、M、D、L 状态参数 DONE: • 0: 作业未启动,或者仍在执行之中 • 1: 作业已执行,且无任何错误。ERROR Output BOOL I、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0STATUS 的值为: 0000H: 既无警告也无错误 <> 0000H: 警告,详细信息请参见 STATUS •ERROR=1 出错,关于错误类型的详细信息,请参 见 STATUS 。 STATUS Output WORD I、Q、M、D、LS7-300: SD_1 S7-400: SD_i (1≤ i ≤4) InOut ANY S7-300: M、D S7-400:I、Q、M、D、T、 C 指向第 i 个发送区的指针。 仅允许使用 BOOL 数据类型(不允许使 用:位数组),BYTE、CHAR、WORD、 INT、DWORD、DINT、REAL、DATE、 TOD、TIME、S5TIME、DATE_AND_TIME、COUNTER、TIMER。 注:ANY 指针访问某个数据块时,必须始终 指定该数据块(例如:P#DB10.DBX5.0 字 节 10)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。