SIEMENS西门子 SITOP UPS500S模块 6EP19332EC41
S7 通信 (S7-300, S7-400) S7 通信指令概述 (S7-300, S7-400) 分类 S7 通信需要对连接进行组态。 用户程序中,可以通过各种指令调用已集成的通信函数。 这些指令可以分为以下几类: • 数据交换指令 • 操作模式更改指令 • 操作模式查询指令 • 用于查询连接的各种指令 说明 如果 S7-300 CPU 没有以太网接口,则需要使用 S7-300 产品系列中的 SIMATIC NET CP (页 9075) 来执行 S7-300 指令。 详细信息,请参见相关文档事件错误:模块不存在 • 组态的插槽未占用。 • 实际模块类型与目标类型不匹配。 • 无可用分布式 I/O。 • 相应 SDB 中没有该模块的条目。 对于“X_GET (页 9424)”、“X_PUT (页 9426)”、“I_GET (页 9406)”和 “I_PUT (页 9408)”可行。 80B3 只能读或只能写数据,例如,DB 写 保护 对于“X_GET (页 9424)”、“X_PUT (页 9426)”、“I_GET (页 9406)”和 “I_PUT (页 9408)”可行。 80B4 指针 ANY 的数据类型错误,或不允 许指定数据类型 ARRAY。 "对于“X_GET (页 9424)”、“X_PUT (页 9426)”、“I_GET (页 9406)”和 “I_PUT (页 9408)”:通信伙伴不支持 VAR_ADDR 中指定的数据类型。 80B5 执行由于模式非法被拒绝 对于“X_SEND (页 9417)”可行。 通过“AS_DIAL (页 9434)”: • 由于“AS_DIAL”的“DIAL”函数尚未完 成,通信指令处理被本地 TS 适配器 拒绝。 • 即使已为 AS-AS 远程耦合设置了远 程连接,仍会请求“AS_DIAL”的 DIAL 函数。 80B6 接收到的确认包含未知的错误代码。 - 80B7 传送数据的数据类型和/或长度与要 写入数据类型和/或长度的伙伴 CPU 上的区域不符。 对于“X_PUT (页 9426)”和“I_PUT (页 9408)”: 80B8 - "对于“X_SEND (页 9417)”:通信伙伴 的“X_RCV (页 9419)”拒绝验收数据 (RD=NIL)。 80B9 - "对于“X_SEND (页 9417)”:数据块由 通信伙伴标识(EN_DT=0 时调用 “X_RCV (页 9419)”),因为伙伴处于 STOP 模式而未输入到用户程序中。 80BA 通信伙伴响应与通信帧不符。 - 80C0 指定的连接正在由其它作业使用。
执行指令的 CPU 上的资源不足,例 如: • 模块上正在执行的各种发送作业 已达到Zui大数量。 • 正在使用连接资源,例如接收数 据。 - 80C2 通信伙伴上资源短缺,例如: • 通信伙伴当前正在处理Zui大数量 的作业。 • 所需的资源(存储器等)被占用。 • 工作存储器容量不足。 (压缩存 储器)。 通过“AS_DIAL (页 9434)”: • 远程 CPU 上资源短缺。 • 具有 MPI 地址的远程 CPU 不可用或 不存在。 80C3 建立连接时出错,例如: • 本地 S7 站未连接到 MPI 子网。 • 在 MPI 子网中寻址到本地站。 • 不再能访问通信伙伴。 • 远程伙伴上资源短缺数据交换指令 数据交换通信指令用于实现两个通信伙伴之间的数据交换。 如果通信指令仅存在于本地模 块上,则称之为单端组态数据交换。 如果通信指令不仅存在于本地模块,也存在于远程模 块之上,则称之为双端组态数据交换。 指令 简要说明 "USEND (页 8700)" / "URCV (页 8703)" 快速非确认型的数据交换,与通信伙伴上的通信函数 ("URCV") 的顺序处理无关 (例如,运行和维护报警)。 这意味着,通信伙伴上的Zui新数据可以覆盖掉 原来的数据。 "BSEND (页 8706)" / "BRCV (页 8709)" 将数据块安全地传送至通信伙伴。这意味着,通信伙伴上的接收功能 ("BRCV") 已经接收到数据之后,数据发送过程才算结束。 "GET (页 8694)" 在程序控制下读取变量,该功能无需通信伙伴用户程序中的任何其它通信函 数。 "PUT (页 8697)" 在程序控制下写入变量,该功能无需通信伙伴用户程序中的任何其它通信函 数。 "PRINT (页 8727)" 将数据发送至打印机(仅适用于 S7-400: CP441)。 操作模式更改指令 使用操作模式更改指令,可以控制远程设备的操作模式。 用于更改操作模式的数据交换指令采用单端组态方式。 指令 简要说明 "START (页 8734)" 当 S7-300/400 CPU 处于 STOP 模式时,该指令可以触发其暖启动过程。 "STOP (页 8736)" S7-300/400 CPU 处于 RUN、HOLD 或者启动模式时,该指令可以使其处于 STOP 模式。 "RESUME (页 8738)" 当 S7-400 CPU 处于 STOP 模式时,该指令可以触发其热启动过程。操作模式查询指令 使用操作模式查询指令,可以获得远程设备操作模式的相关信息。 使用 "STATUS" 指令时,数据交换在单端进行组态;使用 "USTATUS (页 8743)" 指令时,数据 交换在双端进行组态。 指令 简要说明 "STATUS (页 8740)" 在用户请求时为用户提供通信伙伴 (S7-400 CPU) 的操作模式。 "USTATUS (页 8743)" 如果已经设置了相应的连接属性(发送操作模式消息),则在 S7-400 CPU 的 操作模式发生更改时,该指令会接收到 S7-400 CPU 的操作模式信息。 连接查询指令 S7-400 指令 S7-300 指令 简要说明 "CONTROL (页 8725)" - 查询属于某个指令实例的连接的状态。 - "C_CNTRL )" 使用连接 ID 查询连接的状态。 说明 也可以使用指令 "C_DIAG (页 7978)" 诊断当前的连接状态(仅适用于 S7-400)。 数据一致性 (S7-300, S7-400) 定义 并发过程可以同步更改的数据区称为一致性数据区。 因此,将其大小超出一致性数据区的 数据区可作为一个整体。 这意味着,其大小超出一致性数据区的连续数据区中,可能同时包含新的数据块和旧的一致 性数据块。示例 如果中断通信块的执行过程(例如,由优先级更高的硬件中断 OB 中断),则会出现不一致 性现象。 如果该 OB 中的用户程序对已由该通信块局部处理的数据进行更改,则传送数据开 始于: • 部分开始于处理硬件中断之前 • 部分开始于处理硬件中断之后 这意味着,这些数据是不一致的(不连续)。 结论 传输大型数据包时,如果需要保证被传输数据的一致性,则不能中断传输过程。 可以通过 延长 CPU 的中断响应时间,来避免中断传输过程。 SIMATIC 的数据一致性 • 如果用户程序中包含通信函数(例如,用于访问普通数据的 "BSEND (页 8706)" / "BRCV (页 8709)"),则可能要协调对该数据区的访问。例如,使用 DONE 参数。 据此,在用 户程序中,可以确保采用通信块本地传输的通信区的数据一致性。 • 然而,对于 S7 通信函数(例如, "PUT (页8697)" / "GET (页8694)" 或者使用 OP 通信的读/ 写函数),在编程或者组态时就必须考虑到一致性数据区的大小。这是因为,目标设备 (服务器)的用户程序中没有可用于同步用户程序中通信数据的通信块。 • 使用 S7-300 时,在操作系统的循环控制点,在保持数据一致性的情况下将通信数据复制 到各个块(每块为 32 字节)中的用户存储器。 对于大型数据区,无法确保数据的一致 性。 如果要求达到规定的数据一致性,则用户程序中的通信数据不应超过 32 个字节(Zui 多为 8 个字节,视具体版本而定)。 • 与此不同是,在 S7-400 中,通信数据的处理不是在循环控制点、而是在程序循环期间的 固定时间片内完成。 变量的一致性则由系统保证。 • 因此,使用指令 "PUT (页8697)" / "GET (页8694)" 或者在读/写变量(例如,由 OP 或 OS 读/ 写)时可以在保持一致性的情况下访问这些通信区。 说明 关于数据一致性的其它信息,请参见具体指令的描述信息。S7 通信指令的常见参数 (S7-300, S7-400) 分类 S7 通信指令的参数按照功能可以分为以下五类: 1. 控制参数用于激活某条指令。 2. 寻址参数用于远程通信伙伴的寻址。 3. 发送参数用于指向将发送至远程伙伴的数据区。 4. 接收参数用于指向将从远程伙伴接收数据的存放数据区。 5. 状态参数用于监控指令是否正确地完成任务,也可以用来分析已经出现的错误。 控制参数 调用该指令时,仅当相应的控制参数持有某个确定值(例如,被置位),或者自前一次调用 后该值发生了某个特定改变(例如,上升沿),才会激活数据交换功能。 说明 S7-300 的首次调用 对于首次调用,参数 REQ 被设置为 FALSE 。 寻址参数 参数 说明 ID 请参见本地连接说明(由连接组态指定)。 注: S7 通信指令中不得使用 ID W#16#EEEE。 R_ID 使用参数 R_ID,可以指定一个发送和接收指令对: 发送端和接收端的指令中 的参数 R_ID 必须相互匹配。 据此,通过同一个逻辑连接,可以实现多个指令对之间的通信。 • R_ID 的格式必须为:DW#16#。 • 对于当前连接来说, R_ID 中指定的逻辑连接指令对必须具备惟一性。 指令 4.2 指令 (S7-300, S7-400) 对 PLC 进行编程 编程和操作手册, 11/2023 8687 参数 PI_NAME 的描述仅适用于相关指令 说明 寻址参数 ID 和 R_ID S7-300: 在运行期间,可以更改寻址参数 ID 和 R_ID 的设置。 前一个作业结束后,都会对 每个新作业验证新参数。 使用以下选项,可以减少背景数据块的数量,进而减少必需的工作存储器: 1. 借助变量 ID,通过单个背景数据块,可以使用多个连接。 2. 使用变量 R_ID,对于单个背景的单个作业,可以为其定义多个发送和接收指令对。 3. 可以组合使用情景 1 和情景 2. 请注意,在上一个作业完成之后,新参数才会生效。激活发送操作时,发送端指令内的参数 R_ID 必须与接收端的对应指令参数相匹配。 S7-400: 仅在首次调用指令或将实例装载到另一实例上时(从实例获得实参或预定义值), 才会对寻址参数 ID 和 R_ID 进行求值。 因此,在下一次暖启动或冷启动之前,首次调用将确 定与远程伙伴之间的通信关系(连接)。 状态参数 使用状态参数,可以监视指令是否已经正确地完成自己的任务,或者,该指令是否仍处于运 行状态。 状态参数也可以用来显示错误。 说明 状态参数仅在一个循环之内有效。即,从当前调用开始后的第一条命令到下一次调用开始之 前。 因此,每一个指令循环之后,都必须对这些参数进行求值。