有关 S7 通信指令的有用信息(S7-1200, S7-1500) 分类 S7 通信指令的参数按照功能可以分为以下五类: 1. 控制参数用于激活某条指令。 2.寻址参数用于远程通信伙伴的寻址。 3. 发送参数用于指向将发送至远程伙伴的数据区。 4.接收参数用于指向将从远程伙伴接收数据的存放数据区。 5. 状态参数用于监控指令是否正确地完成任务,也可以用来分析已经出现的错误。功能描述 S7 通信指令为异步指令,这意味着其执行可以扩展到多个调用上。在 CPU 中,异步指令的执行与循环用户程序同步进行,直至达到 CPU 特定的Zui大次数。 另请参见同步指令和异步指令之间的区别• 对于 S7-300 和C7-300(除 CPU 318-2 DP 之外),在操作系统的循环控制点,在保持数 据一致性的情况下将通信数据逐块(一块为 32字节)复制到用户存储器中。对于大型数 据区域,无法确保数据的一致性。如果要求 达到规定的数据一致性,则用户程序中的通信数据不应超过32 个字节(Zui多为 8 个字节, 视具体版本而定)。 • 另一方面,在 S7-400 和 S7-1500 中,大小为 462字节的块中的通信数据不在循环控制 点处理,而是在程序循环期间的固定时间片内完成。变量的一致性则由系统保证。使用指令 "PUT(页 5486)" / "GET (页 5480)" 或者在读/写变量(例如,由 OP 或 OS 读/写)时可以在保持一致性的情况下访问这些通信区。 说明 关于数据一致性的其它信息,请参见具体指令的描述信息。 在 S7-1500模块系列中,可在操作过程中使用 S7 通信指令更改参数。即便作业仍在运行,系统也将立用更改后的参数。这两种操作都将导致数据不一致!为了避免数据不一致, 不建议在作业运行过程中更改参数。
对中断响应时间的影响 CPU的中断响应时间通过复制数据稍微进行了延长。在必须保持juedui一致性的情况下,传输 的数据量越大,系统的中断响应时间也越长。控制参数调用该指令时,仅当相应的控制参数持有某个确定值(例如,被置位),或者自前一次调用后该值发生了某个特定改变(例如,上升沿),才会激活数据交换功能。 寻址参数 参数 说明 ID 请参见本地连接说明(由连接组态指定)。R_ID 使用参数 R_ID,可以指定一个发送和接收指令对:发送端和接收端的指令中的 参数 R_ID 必须相互匹配。据此,通过同一个逻辑连接,可以实现多个指令对之间的通信。 • R_ID 的格式必须为:DW#16#。 •对于当前连接来说,R_ID 中指定的逻辑连接指令需唯一。利用寻址参数“ID”确定使用哪个伙伴来交换数据。这将引用发送或接收数据所使用的连接。 • 可以调用具有同一 ID 的多个 S7通信指令(例如,两个 PUT 指令)。在这种情况下,指 令按顺序处理,这意味着数据会在同一连接上连续传输。 •可为同一伙伴设置并使用多个连接。具有不同 ID 的 S7 通信指令在多个连接上并行处理。 说明 寻址参数 ID 和 R_ID在运行期间,可以重新分配地址参数 ID 和 R_ID。前一个作业结束后,都会对每个新作业验 证新参数。使用以下选项,可以减少背景数据块的数量,进而减少必需的工作存储器: 1. 借助变量 ID,通过单个背景数据块,可以使用多个连接。 2.使用变量 R_ID,对于单个背景的单个作业,可以为其定义多个发送和接收指令对。 3. 可以组合使用情景 1 和情景 2.请注意,在上一个作业完成之后,新参数才会生效。激活发送操作时,发送端指令内的参数 R_ID 必须与接收端的对应指令参数相匹配。状态参数使用状态参数,可以监视指令是否已经正确地完成自己的任务,或者,该指令是否仍处于运 行状态。状态参数也可以用来显示错误。 说明状态参数仅在一个循环之内有效。即,从当前调用开始后的第一条命令到下一次调用开始之前。每一个指令循环之后,都必须对这些参数进行求值。 发送和接收参数 对于双端组态通信指令 • 发送端和接收端所使用的 SD_i和 RD_i 参数的数量必须相匹配。 • 发送端和接收端彼此协同工作的参数 SD_i 和 RD_i 的数据类型也必须相互匹配。 •参数 SD_i 所表示的数据发送量不得超出 RD_i 所定义的范围(不适用于 "BSEND (页5502)" / "BRCV(页5505)")。RD_i 参数的数据大小必须相同(“BSEND”/“BRCV”除外)。 如果违反了上面的规则, 则会以 ERROR= 1 和 STATUS = 4 的方式来表示。 说明 提供发送和接收参数 使用 VARIANT数据类型时,任何时候调用通信指令,都必须始终提供发送和接收参数。例如,不能在启动时提供通信指令的发送参数,也不能仅在循环操作中触发发送作业。 用户数量的容量 使用“USEND(页 5493)”、“URCV (页 5495)”、“GET (页 5480)”和“PUT(页 5486)”指令 时,待传送的数据量不得超过所定义的用户数据大小。用户数据的Zui大容量取决于: • 所使用的指令 •通信伙伴。对于带有 1 至 4 个变量的指令,可以确保的用户数据Zui小容量见下表: 指令 伙伴:S7-300 伙伴:S7-400伙伴:S7-1200 伙伴:S7-1500 PUT / GET 160 个字节 400 个字节 160 个字节 880 个字节USEND / URCV 160 个字节 440 个字节 - 920 个字节 BSEND / BRCV 32768/65534 个字节65534 个字节 - • 具有标准访问 的 65534 个 字节 • 具有优化访问 的 65535 个 字节关于用户数据容量的详细信息,请参见相应 CPU 的技术数据。 准确的用户数据容量如果上述用户数据容量不够的话,可以如下定义用户数据的Zui大字节长度: 从下表中读取对于通信有效的数据块大小: 本地 CPU 远程CPU 以字节为单位的数据块大小 S7-1200 任意 240 S7-1500 S7-300 240 S7-400 480S7-1200 240 S7-1500 960 使用该值,从下表中读出可能的Zui大用户数据长度(以字节为单位)作为所用参数的总数量。是区 SD_i、RD_i, 和 ADDR_i 的长度,也同样适用。