SIEMENS西门子 ET200S输入模块 6ES71314BD010AB0
P_SND_RK: 通过 RK 512 获取数据 (S7-300, S7-400) 说明 可通过参数设置 SF = F 使用 P_SND_RK 指令从远程通信伙伴处获取数据,并将数据保存在 自动化系统的 S7 数据区中。 说明 要从 CP 341 获取数据,必须始终在 CP 341 中对 P_RCV_RK 指令进行编程。 操作原理 通过输入 REQ 的上升沿启动数据传输。 数据传输可能会进行多次调用(程序周期),具体 取决于数据量 (LEN)。 参数 LADDR 指定要寻址的 CP 341 的地址。 通过 CPU 号(R_CPU_NO,仅与多处理器通信有关)指定要从中获取数据的通信伙伴。 以 下数据类型 (R_TYP) 是要获取的数据的有效源: 数据块、扩展数据块、位存储器、输入、输 出、计数器和定时器。 该源完全由数据类型 (R_TYP)、数据块号(R_NO,仅与数据块和扩 展数据块有关)以及要在该区域中传输的第一个数据字节的偏移量 (R_OFFSET) 指定。 伙伴 CPU 上的处理器间通信标志字节和位在 R_CF_BYT 和 R_CF_BIT 中指定。 唯一允许的目标区域为数据块 (DB)。 通过数据块号 (DB_NO) 和要向其写入第一个字节的偏 移量 (DBB_NO) 来指定目标。
通过将 R 参数输入的信号状态设置为“1”,可在循环中调用 P_SND_RK 指令。 该设置会取消 从 CP 341 进行的传输,并将 P_SND_RK 指令复位为初始状态。 输入 R 的静态信号状态“1”指 示获取已禁用。 输出 DONE 指示“作业已完成且无错”,ERROR 指示错误事件。如果发生错误,会在 STATUS 中显示相应的事件编号。 如果未发生错误,STATUS 的值为 0。对于 P_SND_RK 指令的 RESET,还会输出 DONE 和 ERROR/STATUS。 如果出现错误,则复位二进制结果 BR。 如果 块已完成且无错,则二进制结果的状态为“1”。 参数 参数 声明 数据类 型 说明 SF INPUT CHAR 用于发送数据或获取数据的选项 SF =“F”(获取)默认值: “S”(发送) REQ INPUT BOOL 作业在上升沿触发 R INPUT BOOL 取消作业 取消正在进行的作业。 获取被禁止。 默认值: 0 LADDR INPUT INT CP 341 的起始地址 起始地址从 STEP 7 获取。 DB_NO INPUT INT 目标的数据块号 发送 DB 号: 依 CPU 而定,不允许为零 DBB_NO INPUT INT 目标的数据字节号 0 ≤ DBB_NO ≤ 8190,从数据字节开始发送数据 LEN INPUT INT 要获取的消息帧的数据长度 1 ≤ LEN ≤ 4096,通过字节数指定 1 R_CPU_NO INPUT INT 伙伴 CPU 的 CPU 号 0 ≤ R_CPU_NO ≤ 4,仅适用于多处理器模式。 默认 值: 1参数 声明 数据类 型 说明 R_TYP INPUT CHAR 伙伴 CPU 上的地址类型 “D”: 数据块 “X”: 扩展数据块 “M”: 存储器位 “I”: 输入 “O”: 输出 “C”: 计数器 “T”: 定时器 R_NO INPUT INT 伙伴 CPU 上的数据块号 0 ≤ R_NO ≤ 255 R_OFFSET INPUT INT 伙伴 CPU 上的数据字节号 R_CF_BYT INPUT INT 伙伴 CPU 上的处理器间通信标志字节 0 ≤ CF_BYTE ≤ 255 默认值: 255(表示: 没有处理器间通信标志) R_CF_BIT INPUT INT 伙伴 CPU 上的处理器间通信标志位 0 ≤ CF_BIT ≤ 7 DONE1 OUTPUT BOOL 作业已完成且无错 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL 作业已取消但有错误 STATUS 参数 (页 8964)包含错误信息。 STATUS1 OUTPUT WORD 错误规范 如果 ERROR == 1,则 STATUS 参数(页 8964)包含错 误信息。 1 参数在下次调用指令之前可用!数据区中的分配 P_SND_RK 指令与 I_SND_RK 背景数据块结合使用。 调用时包含 DB 号。 禁止访问背景数据 块中的数据 (扩展)数据块的特性 从数据块和扩展数据块获取数据时,请注意以下特性: • RK 512 仅允许获取偶数量的数据。 如果指定的长度 (LEN) 为奇数,则始终会发送一个额 外字节。 但是,在目标 DB 中可输入正确的数据量。 • RK 512 仅允许偶数偏移量。 如果指定了奇数偏移量,则将从下一个较低的偶数偏移量开 始从伙伴处获取数据。 示例: 偏移量是 7,数据从字节 6 开始获取。 定时器和计数器的特性 如果从通信伙伴处获取定时器或计数器,请记住为每个定时器或计数器获取 2 个字节。例如, 如果要获取 10 个计数器,则必须输入 20 作为长度。 时序图 下图说明了 DONE 和 ERROR 参数的特性(取决于 REQ 和 R 的输入电路)。说明 输入 REQ 通过沿来触发。 输入 REQ 上的一个上升沿便足够。 在整个传输期间,RLO(逻辑 运算结果)不一定必须为“1”。 规则 说明 P_SND_RK 指令没有参数检查。 如果参数分配错误,CPU 可以切换到 STOP 模式。P_RCV_RK: 用 3964(R) 或 ASCII 驱动程序接收数据 (S7-300, S7-400) 说明 P_RCV_RK 指令根据 DB_NO、DBB_NO 和 LEN 参数指定的内容将数据从 CP 341 传送至 S7 数据区。 为进行数据传输,可在循环或者时间控制的程序的静态(无条件)操作中调用 P_RCV_RK 指令。工作原理 参数 EN_R 处的(静态)信号状态“1”启动对要从 CP 341 读取的数据的检查。 可以通过在 参数 EN_R 处设置信号状态“0”来取消激活的传输。(由于参数 EN_R 设为“1”后可能无法再 次启动传输,除了将 EN_R 设为“0”之外还应将参数 R 设为“1”以取消激活的传输。) 终止已 取消的接收请求,同时生成一条错误消息(STATUS 输出)。在参数 EN_R 处设置信号状态“0” 之后,会禁用接收功能。 数据传输可能会进行多次调用(程序周期),具体取决于数据量。 如果指令检测到参数 R 的信号状态为“1”,则将取消当前的传输作业,并将 P_RCV_RK 指令 复位为初始状态。 在参数 R 处设置信号状态“1”之后,会禁用接收功能。 参数 LADDR 用于选择要寻址的 CP 341 。 输出 NDR 指示“作业已完成且无错/数据已接收”(已读取全部数据),ERROR 指示错误 事件。 如果发生错误,会在 STATUS 中显示相应的事件编号。 如果未发生错误,STATUS 的 值为 0。对于 P_RCV_RK 指令的 RESET ,还会输出 NDR 和 ERROR/STATUS (参数 LEN == 16#00)。 如果出现错误,则复位二进制结果 BR。 如果块已完成且无错,则二进制 结果的状态为“1”。 参数 参数 声明 数据类型 说明 EN_R INPUT BOOL 启用数据读取 R INPUT BOOL 取消作业 取消正在进行的作业。 接收被禁 止。 LADDR INPUT INT CP 341 的起始地址 起始地址从 STEP 7 获取。 DB_NO INPUT INT 数据块号 接收 DB 号: 依 CPU 而定,不允许为零 DBB_NO INPUT INT 数据字节号 0 ≤ DBB_NO ≤ 8190,从数据字节 开始接收数据 NDR 1 OUTPUT BOOL 作业已完成且无错,数据已接收 STATUS 参数 == 16#00;参数 声明 数据类型 说明 ERROR 1 OUTPUT BOOL 作业已取消但有错误 STATUS 参数 (页 8964)包含错误信 息。 LEN 1 OUTPUT INT 已接收消息帧的长度 1 ≤ LEN ≤ 4096,通过字节数指定 STATUS 1 OUTPUT WORD 错误规范 如果 ERROR == 1,则 STATUS 参数 (页 8964)包含错误信息。 1 参数在下次调用指令之前可用! 说明 L_TYP、L_NO、L_OFFSET、L_CF_BYT 和 L_CF_BIT 参数与 3964(R) 程序以及 ASCII 驱动程序 无关,且不需要任何数据。 数据区中的分配 P_RCV_RK 指令与 I_RCV_RK 背景数据块结合使用。 调用时包含 DB 号。 禁止访问背景数据 块中的数据 说明 例外: 如果出现错误 STATUS == W#16#1E0E,可以检查 SFCERR 或 SFCSTATUS 变量以获得 其它详细信息。 该错误变量必须通过对背景数据块进行符号访问来装载。