SIEMENS西门子 SITOP UPS1100电池 6EP4133-0GB00-0AY0
其它 (S7-300) GET_S: 从远程 CPU 读取数据 (S7-300) 说明 在 S7-300 中,使用该指令可以从远程 CPU 读取数据。 通过集成接口和 CP 可建立连接。 在 REQ 的上升沿读取数据。 在每一个 REQ 上升沿,都会使用参数 ID、ADDR_1 和 RD_1 的 值。 作业结束之后,可以为参数 ID、ADDR_1 和 RD_1 赋予新值。 远程伙伴会返回该数据。 下次调用时,已经接收到的数据将会复制至已经组态的接收区 (RD_1)。请确保由参数 ADDR_1 和 RD_1 定义的区域在数量、长度和数据类型等方面都匹配。 如果状态参数 NDR 的值变为“1”,则表示该动作已经完成。 只有在前一读取过程已经结束之 后,才可以再次激活读取功能。 远程 CPU 则可以处于 RUN 模式或 STOP 模式。 如果读取数据时访问出错,或如果未通过数 据类型检查, 则会通过 ERROR 和 STATUS 输出错误和警告。 参数 下表列出了指令“GET_S”的参数: 参数 声明 数据类型 存储区 说明 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 提供了有关错误类型的详细 信息。数据一致性 如果做到以下几点,则可以使接收的数据保持一致: 彻底完成接收区 RD_1 中当前已经使用 的部分的评估工作之后,才能使用 1 作为控制输入 EN_R 的值再次调用该块。参数 ERROR 和 STATUS 下表包含关于 "BRCV" 的、可通过参数 ERROR 和 STATUS 输出的所有特定错误信息。 ERROR STATUS (十进制) 说明 0 11 警告: 已接收数据正在处理之中,但其优先级较低。 0 17 警告: 指令以异步方式接收数据。 参数 LEN 显示已经接收的数据量(字节)。 0 25 已开始通信。 作业正在处理。
参数 声明 数据类型 存储区 说明 ERROR Output BOOL I、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0 STATUS 的值为: 0000H: 既无警告也无错误 <> 0000H: 警告,详细信息请参见 STATUS 。 • ERROR=1 出错,关于错误类型的详细信息,请参 见 STATUS 。 STATUS Output WORD I、Q、M、D、L RD_1 InOut ANY S7-300: M、D S7-400: I、Q、M、D、T、 C 指向接收区的指针。长度信息用于指定要接 收的块的Zui大长度。 仅允许使用 BOOL 数据类型(不允许使用: 位数组),BYTE、CHAR、WORD、INT、 DWORD、DINT、REAL、DATE、TOD、 TIME、S5TIME、DATE_AND_TIME、 COUNTER、TIMER。 注:ANY 指针访问某个数据块时,必须始终 指定该数据块。 (例如: P# DB10.DBX5.0 字节 10)。 LEN InOut WORD I、Q、M、D、L 已接收的数据的长度(字节)。 有关有效数据类型的更多信息,请参见“有效数据类型概述。ERROR STATUS (十进制) 说明 1 1 通信故障,例如 • 连接描述信息未加载(本地或远程) • 连接中断(例如: 电缆故障、CPU 关闭或者 CP 处于 STOP 模式) • 尚未与伙伴建立连接 • 同样适用于 S7-300: 已经超过了并行作业/实例的Zui大数量。 1 2 功能无法运行(协议错误) 1 4 接收区指针 RD_1 出错,该错误与数据长度或者数据类型有关。 已发送的数据块超过 了接收区的长度。 1 5 复位请求已经收到,传送未完成。 1 8 相关 "BSEND (页8706)"内的访问错误:发送上一个有效数据段之后,将会报告 ERROR = 1 且 STATUS = 4,或者 ERROR = 1 且 STATUS = 10。 1 10 无法访问本地用户存储器(例如,访问某个已经删除的数据块)。 1 12 调用该指令时 • 已指定一个不属于 "BRCV" 的背景数据块 • 已指定一个全局数据块,以代替指定背景数据块。 • 未找到背景数据块(补救措施: 再次装载相关背景 DB)。 1 18 • R_ID 已经存在于连接之中。 • 同样适用于 S7-300: CPU 处于 RUN 模式时,已经加载了实例,且覆盖了其它的实例(CPU 或者 CP 需要 执行 STOP-RUN 切换。) 1 20 • S7-400 工作存储器空间不足。补救措施:减少存储器中的程序代码。 • S7-300 – 已经超过了并行作业/实例的Zui大数量 – CPU 处于 RUN 模式时,已经加载了实例,且覆盖了其它的实例(CPU 或者 CP 需 要执行 STOP-RUN 切换。) – 首次调用时,可能出现 – CP 的存储器瓶颈 1 27 仅适用于 S7-300: CPU 中不存在该指令的函数代码。接收数据的特殊情况(仅适用于 S7-400) 如果接收 CPU 中有 "BRCV" 指令且已准备就绪可以接收数据(即,已经使用 EN_R =1 发出了 一次调用)、且在相应发送指令发送某个作业的第一个数据段之前该 CPU 就进入了 STOP 模 式,则会出现以下情况: • 接收 CPU 进入 STOP 模式之后,第一个作业内的数据将全部进入接收区。 • “BSEND (页 8706)”伙伴指令将会接收到该操作的一个肯定应答。 • 在 STOP 模式下,接收 CPU 不能再接受任何 "BSEND (页 8706)" 作业。 • 只要 CPU 仍然处于 STOP 模式,NDR 和 LEN 的值均为 "0"。 为了防止已接收数据的相关信息丢失,可以在接收 CPU 上执行一次热启动,并使用 EN_R=1 调用 "BRCV"。 C_CNTRL: 查询连接状态 (S7-300) 说明 使用该指令, 可以查询 S7-300 的连接状态。 可以在将控制输入 EN_R 的值设置为 "1" 之后 调用该指令,获取 ID 所指定连接的当前状态。 参数 下表列出了指令“C_CNTRL”的参数: 参数 声明 数据类型 存储区 说明 EN_R Input BOOL I、Q、M、D、L 控制参数,若其输入已置位,则表明已经准 备好接收。 ID Input WORD M、D 或常数 寻址参数 ID 另请参见: S7 通信指令的常见参数 (页 8687) RET_VAL Output INT I、Q、M、D、L 错误信息参数 声明 数据类型 存储区 说明 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 。 C_CONN Output BOOL I、Q、M、D、L 相应连接的状态。 可能的值: • 0: 连接已终止或尚未建立。 • 1: 连接已存在。 C_STATUS Output WORD I、Q、M、D、L 连接状态: • W#16#0000: 连接未建立 • W#16#0001: 正在建立连接 • W#16#0002: 连接已经建立 • W#16#000F: 连接状态的相关数据不可 用(例如,在 CP 启动期间) • W#16#00FF: 连接未组态 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 参数 RET_VAL、ERROR 和 STATUS 对于指令 "C_CNTRL" 来说,输出参数 RET_VAL 可以具有以下两个值: • 0000H: 执行期间未出现任何错误。 • 8000H: 执行期间出现错误。 ERROR STATUS (十进制) 说明 1 10 CP 访问出错。 另一个作业当前正在运行。 稍后再重复执行该作业。 1 27 CPU 上没有该指令的功能代码。 说明 即使输出参数 RET_VAL 的值显示为 0000H ,也必须对输出参数 ERROR 和 STATUS 进行求值。