SIEMENS西门子 ET200S输入模块 6ES7131-4BD01-0AB0
P_RCV_RK: 通过 RK 512 接收数据 (S7-300, S7-400) 说明 P_RCV_RK 指令将数据从 CP 341 发送到 S7 数据区。 为进行数据传输,可在循环或者时间 控制的程序的静态(无条件)操作中调用 P_RCV_RK 指令。 操作原理 参数 EN_R 处的(静态)信号状态“1”启动对要从 CP 341 读取的数据的检查。 可以通过在 参数 EN_R 处设置信号状态“0”来取消激活的传输。终止已取消的接收请求,同时生成一条 错误消息(STATUS 输出)。 在参数 EN_R 处设置信号状态“0”之后,会禁用接收功能。 数 据传输可能会进行多次调用(程序周期),具体取决于数据量。 参数 LADDR 指定要寻址的 CP 341 的地址。 如果通信伙伴指定了目标“DB”,则数据将被放置在 RK 512 消息帧头中指定的数据区中。 通 过参数 (L_...),可以确定目标区域类型 (L_TYP)、目标数据块号(L_NO,仅当 L_TYP = DB 时 有关)、目标区域中的偏移量 (L_OFFSET) 以及传输数据的长度 (LEN)。 如果伙伴指定数据 目标“DX”,则会将数据保存到在 DB_NO 和 DBB_NO 参数处指定的数据块 (DB)。 如果指令检测到参数 R 的信号状态为“1”,则将取消当前的传输作业,并将 P_RCV_RK 指令 复位为初始状态。 只要 R 参数处的信号状态为“1”,就会禁用接收。 输出 NDR 指示“作业已完成且无错/数据已接收”(已读取全部数据)。 L_TYP、L_NO 和 L_OFFSET 参数指示数据存储位置,持续时间为一个周期。 也会指示相应作业的 L_CF_BYT 、 L_CF_BIT 和长度 LEN 参数,持续时间为一个周期。 使用处理器间通信标志 接收数据前,将验证在 RK 512 消息帧头中指定的处理器间通信标志。 仅当处理器间通信标 志为“0”时才传输数据。 传输完成后,会将处理器间通信标志设为值“1”,并在指令处输出此 标记 (NDR),持续时间为一个周期。 用户程序可以判断该处理器间通信标志,以便了解是否可以处理已传输的数据。处理完数据 后,用户必须将处理器间通信标志复位为“0”。 通信伙伴现在可以再次发出 SEND 请求。
参数 声明 数据类型 说明 EN_R INPUT BOOL 启用数据接收 R INPUT BOOL 取消作业 取消正在进行的作业。接收被禁止。 默认值: 0 LADDR INPUT INT CP 341 的起始地址 起始地址从 STEP 7 获取。 DB_NO INPUT INT 接收数据的数据块号(目标) 接收数据块号:依 CPU 而定,不允许 为零 (仅与 DX 数据目标有关) DBB_NO INPUT INT 接收数据的数据字节号(目标) 0 ≤ DBB_NO ≤ 8190,从数据字节开 始接收数据 (仅与 DX 数据目标有关) L_TYP1 OUTPUT CHAR 本地 CPU 上的区域类型(目标) “D”: 数据块 L_NO 1 OUTPUT INT 本地 CPU 上的数据块号(目标) 0 ≤ L_NO ≤ 255 L_OFFSET1 OUTPUT INT 本地 CPU 上的数据字节号(目标) 0 ≤ L_OFFSET ≤ 510 L_CF_BYT1 OUTPUT INT 本地 CPU 上的处理器间通信标志字节 0 ≤ L_CF_BYTE ≤ 255255 表示:没有 处理器间通信标志 L_CF_BIT 1 OUTPUT INT 本地 CPU 上的处理器间通信标志位 0 ≤ L_CF_BIT ≤ 7 NDR1 OUTPUT BOOL 作业已完成且无错,数据已接收 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL 作业已取消但有错误 STATUS 参数(页8964)包含错误信息。 LEN1 OUTPUT INT 已接收消息帧的长度 0 ≤ LEN ≤ 4096,通过字节数指定。数据区中的分配 P_RCV_RK 指令与 I_RCV_RK 背景数据块结合使用。调用时包含 DB 号。禁止访问背景数据 块中的数据 说明 例外: 如果出现错误 STATUS == W#16#1E0E,可以检查 SFCERR 或 SFCSTATUS 变量以获得 其它详细信息。该错误变量必须通过对背景数据块进行符号访问来装载。 时序图 下图说明了 NDR、LEN 和 ERROR 参数的特性(取决于 EN_R 和 R 的输入电路)。说明 必须将输入 EN_R 设置为静态信号状态“1”。在接收请求的持续时间内,必须给参数 EN_R 提 供逻辑运算结果“1”。 如何处理错误 ERROR 指示错误事件。 如果发生错误,会在 STATUS 中显示相应的事件编号。 如果未发生 错误,STATUS 的值为 0。对于 P_RCV_RK 指令的 RESET ,还会输出 NDR 和 ERROR/STATUS (参数 LEN == 16#00)。如果出现错误,则复位二进制结果 BR。如果块已完成且无错,则 二进制结果的状态为“1”。 规则 说明 P_RCV_RK 指令没有参数检查。 如果参数分配错误,CPU 可以切换到 STOP 模式。 P_RCV_RK: 通过 RK 512 提供数据 (S7-300, S7-400) 说明 通信伙伴执行“获取数据”作业(FETCH 作业)时,必须调用 P_RCV_RK 指令。 P_RCV_RK 指令将 S7 数据区的数据提供给 CP 341 。 为进行数据传输,可在循环或者时间 控制的程序的静态(无条件)操作中调用 P_RCV_RK 指令。 操作原理 EN_R 参数的(静态)信号状态为“1”时会启用检查,以确定是否向 CP 341 提供数据。 可以 通过在参数 EN_R 处设置信号状态“0”来取消激活的传输。 出现错误消息(STATUS 输出), 已取消的请求终止。 在参数 EN_R 处设置信号状态“0”之后,会禁用该作业。 数据传输可能 会进行多次调用(程序周期),具体取决于数据量。 第一个 RK 512 消息帧指定源区域的类型 (L_TYP)、源数据块号(L_NO,仅当 L_TYP = DB 时 有关)、源区域中的偏移量 (L_OFFSET) 以及要提供的数据的长度 (LEN)。 该指令会评估此 消息帧信息,并将请求的数据传输到 CP 341。 DB_NO 和 DBB_NO 参数对 P_RCV_RK 指令 无意义。参数 LADDR 指定要寻址的 CP 341 的地址。 如果指令检测到参数 R 的信号状态为“1”,则将取消当前的传输作业,并将 P_RCV_RK 指令 复位为初始状态。 只要 R 参数处的信号状态为“1”,就会禁用请求。 输出 NDR 指示“作业已完成且无错/数据已接收”(已读取全部数据)。 在 L_TYP、L_NO 和 L_OFFSET 参数处指定已获取数据的源,持续时间为一个周期(有效数据类型: 数据块、 输入字节、输出字节、定时器和计数器)。 也会指示相应作业的 L_CF_BYT 、L_CF_BIT 和 长度 LEN 参数,持续时间为一个周期。 说明 通信伙伴从 CP 341 获取的定时器或计数器的长度限制为 32 个字节(16 个定时器或计数器, 每个定时器或计数器 2 个字节)。 使用处理器间通信标志 接收消息帧后,将检查在 RK 512 消息帧头中指定的处理器间通信标志。 仅当处理器间通信 标志为“0”时才提供数据。 传输完成后,会将处理器间通信标志设为值“1”,并在指令处输出 此标记 (NDR),持续时间为一个周期。 用户程序可以判断该处理器间通信标志,以便了解是否可以再次访问提供的数据。 处理完 数据后,用户必须将处理器间通信标志复位为“0”。 通信伙伴现在可以再次发出 FETCH 请求。参数 声明 数据类 型 说明 L_TYP1 OUTPUT CHAR 本地 CPU 上的区域类型(源) “D”: 数据块 “M”储存器位 “I”: 输入 “O”: 输出 “C”: 计数器 “T”: 定时器 L_NO1 OUTPUT INT 本地 CPU 上的数据块号(源) 0 ≤ L_NO ≤ 255(仅当 L_TYP = D 时有关) L_OFFSET1 OUTPUT INT 本地 CPU(源)上的数据字节号 0 ≤ L_OFFSET ≤ 510(取决于区域类型) L_CF_BYT1 OUTPUT INT 本地 CPU 上的处理器间通信标志字节 0 ≤ CF_BYTE ≤ 255 255 表示: 没有处理器间通信标志 L_CF_BIT1 OUTPUT INT 本地 CPU 上的处理器间通信标志位 0 ≤ CF_BIT ≤ 7 NDR1 OUTPUT BOOL 作业已完成且无错,数据已接收 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL 作业已取消但有错误 STATUS 参数 (页 8964)包含错误信息。 LEN1 OUTPUT INT 已接收消息帧的长度 0 ≤ LEN ≤ 4096,通过字节数指定 STATUS1 OUTPUT WORD 错误规范 如果 ERROR == 1,则 STATUS 参数(页 8964)包含错 误信息。 1 参数在下次调用指令之前可用!