ERROR 和 STATUS 参数 下表列出了关于由 "PUT" 指令的参数 ERROR 和 STATUS输出的所有特定错误信息。 ERROR STATUS (十进制) 说明 0 11 警告:由于前一作业仍处于忙碌状态,未激活新作业。0 25 已开始通信。作业正在处理。 1 1 通信故障,例如 • 连接描述信息未加载(本地或远程)。 • 链路断开(如电缆故障、CPU关闭或者 CP 处于 STOP 模式)。 • 尚未与伙伴建立连接。 1 2 • 伙伴 CPU 的否定应答。该功能无法执行。 •未授予对伙伴 CPU 的访问权限。在 CPU 设置中激活访问。 1 4 指向数据存储的指针出错: • 参数 SD_i 和 ADDR_i的数据类型彼此不兼容。 • SD_i 区域的长度大于待写入的 ADDR_i 参数的数据长度。 • 不能访问 SD_i。 •已经超过了Zui大用户数据大小。 • 参数 SD_i 和 ADDR_i 的数量不一致。 1 8 访问伙伴 CPU时出错(例如,数据块未加载或不受写保护)。 1 10 无法访问本地用户存储器(例如,访问某个已经删除的数据块)。 1 20 •已超出并行作业的Zui大数量。 • 该作业当前正在执行,但优先级较低(首次调用)。 1 W#16#80C 3 (仅 S7-1500) •已超出并行作业的Zui大数量。 • 该作业当前正在执行,但优先级较低(首次调用)。 数据一致性 发送操作激活之后(在 REQ的上升沿),会从用户程序中复制要从发送区 SD_i 中发送的数 据。块调用之后,可以对这些区进行写操作,且不会破坏当前的发送数据。说明 状态参数 DONE 的值变为“1”时,发送操作才算结束。
请确保由参数 ADDR_i 和 SD_i 定义的区域在数量、长度和数据类型等方面都匹配。 • 待写入区域(ADDR_i参数)必须与发送区域(SD_i 参数)一样大。 参数 下表列出了“PUT”指令的参数: 参数 声明 数据类型 存储区 说明 REQInput BOOL I、Q、M、D、L 或 常量 控制参数 request,在上升沿时激活数据 交换功能。 ID InputWORD I、Q、M、D、L 或 常量 用于指定与伙伴 CPU 连接的寻址参数。 DONE Output BOOL I、Q、M、D、L状态参数 DONE: • 0:作业未启动,或者仍在执行之中 • 1:作业已执行,且无任何错误。 ERROR Output BOOLI、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0 STATUS 的值为: –0000H:既无警告也无错误 – <> 0000H:警告,详细信息请参 见 STATUS。 • ERROR=1出错,有关该错误类型的详细信息, 请参见 STATUS。参数 声明 数据类型 存储区 说明 ADDR_1 InOut REMOTEI、Q、M、D 指向伙伴 CPU 上用于写入数据的区域的指 针。 指针 REMOTE 访问某个数据块时,必须始 终指定该数据块。示例:P#DB10.DBX5.0 字节 10。 传送数据结构(例如 Struct、 Array) 时,参数 ADDR_i处必须使用以下数据类 型。 • 对于所有固件版本的 S7-1200 CPU 和 固件版本为 V2.8.2 的 S7-1500 CPU:BYTE、CHAR、WORD、INT、 DWORD、DINT 或 REAL • 固件版本小于 V2.8.2 的 S7-1500-CPU:CHAR 注:自固件版本 V2.8.2 起,用户可 以从 S7-300、S7-400 和 S7-1200 CPU 将包含“PUT”的程序传输到 S7-1500 CPU。 ADDR_2 InOut REMOTE ADDR_3 InOut REMOTEADDR_4 InOut REMOTE SD_1 InOut VARIANT I、Q、M、D、L 指向本地 CPU上包含要发送数据的区域的 指针。 仅允许 BOOL 数据类型(不允许:位数 组、BYTE、CHAR、WORD、INT、DWORD、DINT、REAL)。 以下情况适用于固件版本低于 V2.8.2 的 S7-1500 CPU:传送数据结构(例如Struct、 Array)时,参数 SD_i 处必须使 用数据类型 CHAR。 注:自固件版本 V2.8.2 起,用户可 以从S7-300、S7-400 和 S7-1200 CPU 将 包含“PUT”的程序传输到 S7-1500 CPU。 SD_2 InOutVARIANT SD_3 InOut VARIANT SD_4 InOut VARIANT有关有效数据类型的更多信息,请参见“有效数据类型概述。示例 在以下示例中,通过 S7 连接将 CPU 1 中的数据记录传送到 CPU2 中。待发送数据记录的数 据类型为 INT。 要求 • 两个 S7-1500 系列的 CPU 通过 PROFINET进行互连,但连接尚未组态。 • 通过“> 属性 > 保护”(> Properties >Protection) 下的低保护级别,确保可以 对 CPU 进行读写访问。 • 可通过指令 PUT/GET 进行访问。 CPU 1中的程序 在全局数据块中,创建 6 个变量存储“PUT”数据。 在全局数据块中,创建 1 个变量存储待发送的数据记录。 程序段1:互连“PUT”指令的参数,如下所示:。