SIEMENS西门子 SITOP UPS1100电池 6EP41330GB000AY0
只有在前一次发送操作已经完成且状态参数 DONE 或 ERROR 被设置为 "1" 之后,才能处理 新的发送作业。 由于使用了异步数据传送,只有在伙伴指令调用对先前的数据进行访存之后,才能启动新的 数据传送操作。 访存数据后,才会在调用 "BSEND" 时输出状态值“7”(如下)。
下表列出了指令“BSEND”的参数: 参数 声明 数据类型 存储区 说明 REQ Input BOOL I、Q、M、D、L 控制参数 request,在上升沿时激活数据交换功 能 R Input BOOL I、Q、M、D、L 控制参数 reset,在上升沿时激活当前数据交换 的中止操作 ID Input WORD M、D 或常数 寻址参数 ID 另请参见: S7 通信指令的常见参数 (页 8687) R_ID Input DWORD I、Q、M、D、L 或 常数 寻址参数 R_ID 另请参见: S7 通信指令的常见参数 (页 8687) 如果通过 CP 441 至 S5 或第三方设备建立连接, 则 R_ID 会包含远程设备的地址信息。 详细信 息,请参见 CP 441 的描述。 DONE Output BOOL I、Q、M、D、L 状态参数 DONE: • 0: 作业未启动,或者仍在执行之中。 • 1: 作业已经成功完成。 ERROR Output BOOL I、Q、M、D、L 状态参数 ERROR 和 STATUS,错误代码: • ERROR=0 STATUS 的值为: 0000H: 既无警告也无错误 <> 0000H: 警告,详细信息请参见 STATUS • ERROR=1 出错,关于错误类型的详细信息,请参见 STATUS 。参数 声明 数据类型 存储区 说明 SD_1 InOut ANY S7-300:M、D S7-400: I、Q、M、D、T、 C 指向发送区的指针。 仅允许使用 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 要发送的数据字段的长度(字节) 有关有效数据类型的更多信息,请参见“有效数据类型概述 (页 255)”。 参数 ERROR 和 STATUS 下表包含关于 "BSEND" 的所有特定错误信息,该指令可通过参数 ERROR 和 STATUS 进行输出。 ERROR STATUS (十进制) 说明 0 11 警告: • 由于前一作业仍处于忙碌状态,因此未激活新作业。 • 该作业正在处理之中,但其优先级较低。 0 25 已开始通信。 作业正在处理。 1 1 • 通信故障,例如: 连接描述信息未加载(本地或远程) • 连接中断(例如: 电缆故障、CPU 关闭或者 CP 处于 STOP 模式) • 尚未与伙伴建立连接 • 同样适用于 S7-300: 已经超过了并行作业/实例的Zui大数量。 1 2 伙伴指令的否定应答。 该功能无法执行。 1 3 ID 所指定的连接无法识别 R_ID ,或者仍然没有调用接收块。 1 4 发送区指针 SD_1 出错,该错误与数据长度或者数据类型有关,或者参数 LEN 传输了值 “0”。 1 5 已经执行复位请求。 1 6 伙伴指令处于 DISABLED 状态(EN_R 的值为 "0")。 也检查 BRCV 的输入参数是否与 BSEND 相一致。ERROR STATUS (十进制) 说明 1 7 伙伴指令处于不正确的状态。 上次数据传输之后,没有再次调用接收指令。 1 8 访问用户内存中的远程对象被拒绝: 相关“BRCV”的目标区域过小。 相应的 BRCV 报告指出 ERROR = 1、STATUS = 4 或者 ERROR = 1、STATUS = 10。 1 10 无法访问本地用户存储器(例如,访问某个已经删除的数据块)。 1 12 调用该指令时 • 已指定一个不属于“BSEND”的背景数据块 • 已指定一个全局数据块,以代替指定背景数据块。 • 未找到背景数据块(补救措施: 再次装载相关背景 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 中不存在该指令的函数代码。 数据一致性 为了确保数据一致性,只能在当前发送操作完成后写入当前正在使用的发送区域 SD_1 的一 部分。 这种情况下,状态参数 DONE 的值将变为“1”。 BRCV: 接收分段数据 (S7-300, S7-400) 说明 "BRCV" 指令接收来自远程伙伴且类型为 "BSEND (页 8706)" 的指令发出的数据。 每接收到一 个数据段后,都会向伙伴指令发送一个应答,并更新参数 LEN 。使用 "1" 作为控制输入 EN_R 的值来调用该指令之后,该指令即准备就绪可以接收数据。 将 EN_R 设置为 0,可以取消处于活动状态的作业。 接收区的起始地址和Zui大长度由 RD_1 指定。 LEN 可以显示已经接收的数据块的长度。 • S7-300: 在每一个 EN_R 上升沿,都会使用参数 R_ID、ID 和 RD_1。 作业结束之后,可 以为参数 R_ID、ID 和 RD_1 赋予新值。 为了传输分段数据,在用户程序中必须循环调用 此指令。 • 通过集成的接口,实现 S7-400 和 S7-300 的数据一致性: 接收用户内存中的数据与用 户程序执行属于异步操作。 相关指令中的参数 R_ID 必须相同。 状态参数 NDR 的值为“1”时,表示已经成功地接收了所有数据段。 在使用 EN_R=1 进行下一 次调用之前,已经接收的数据会保存不变。 在异步接收数据期间,如果再次调用该指令,则参数 STATUS 会输出一条警告;如果使用 EN_R=0 调用该指令,则会取消接收操作且该指令返回为其初始状态。 参数 下表列出了指令“BRCV”的参数: 参数 声明 数据类型 存储区 说明 EN_R Input BOOL I、Q、M、D、L 控制参数 enabled to receive,若其输入已 置位,则表明已经准备好接收。 ID Input WORD M、D 或常数 寻址参数 ID 另请参见: S7 通信指令的常见参数 (页 8687) R_ID Input DWORD I、Q、M、D、L 或 常数 寻址参数 R_ID 另请参见: S7 通信指令的常见参数 (页 8687) 如果通过 CP 441 至 S5 或第三方设备建立连 接,则 R_ID 会包含远程设备的地址信息。 详细信息,请参见 CP 441 的描述。 NDR Output BOOL I、Q、M、D、L 状态参数 NDR: • 0: 作业未启动,或仍在执行。 • 1: 作业已成功完成。