PtP 数据链路 CP 440 (S7-300, S7-400) SEND_440:发送数据 (S7-300,S7-400) 说明 SEND_440 指令根据 DB_NO、DBB_NO 和 LEN 参数指定的内容将数据块从 DB 传输至CP 440。 为进行数据传输,可在循环或者时间控制的程序的静态(无条件)操作中调用 SEND_440 指令。 操作原理通过输入 REQ 的上升沿启动数据传输。数据传输可能会进行多次调用(程序周期),具体 取决于数据量。 可通过将参数输入 R的信号状态设置为“1”在循环中调用 SEND_440 指令。 该设置会取消向 CP 440 进行的传输,并将 SEND_440指令复位为初始状态。 仍会将 CP 440 已接收的数据 发送给通信伙伴。 输入 R 的静态信号状态“1”指示数据传输已禁用。 参数LADDR 指定要寻址的 CP 440 的地址。 输出 DONE 指示“作业已完成且无错”,ERROR指示错误事件。如果发生错误,会在 STATUS 中显示相应的事件编号。 如果未发生错误,STATUS 的值为 0。对于SEND_440 指令的 RESET,还会输出 DONE 和 ERROR/STATUS。如果出现错误,则复位二进制结果 BR。如果块已完成且无错,则二进制结果的状态为“1”。 参数 参数 声明 数据类型 说明 REQ INPUT BOOL 作业在上升沿触发 RINPUT BOOL 取消作业 取消正在进行的作业。传输被禁止。 LADDR INPUT INT CP 440 的起始地址 起始地址从STEP 7 获取。
调用SFCERR 或 SFCSTATUS 变量 可以调用 SFCERR 或 SFCSTATUS 变量,以便获得有关待定事件类别 30错误、14 (1E0EH) 或 15 (1E0FH) 的更多详细信息。 仅可以通过对相应指令的背景数据块的符号访问来装载 SFCERR或 SFCSTATUS 变量。 可在系统函数 SFC 58 的“WR_REC:向 I/O 写入数据记录”下以及系统函数SFC 59 的 “RD_REC:从 I/O 读取数据记录”下找到在 SFCERR 变量中输入的错误消息。 可在系统函数SFB 52 的“RDREC:读取数据记录”下以及系统函数 SFB 53 的“WRREC:写入 数据记录”下找到在 SFCSTATUS变量中输入的错误消息。调用 RD_REC SFC 时发生静态错误。背 景数据块的 SFCERR 变量中提供 SFC 的 返回值RET_VAL 用于进行评估。 从背景数据块装载 SFCERR 变量。 1E0F 调用 WR_REC SFC 时发生静态错误。背景数据块的 SFCERR 变量中提供 SFC 的 返回值 RET_VAL 用于进行评估。 从背景数据块装载 SFCERR 变量。1E41 在指令参数 LEN 中指定的字节数无效 值必须在 1 到 4096 个字节的范围内。 1E42 P_PRINT_RK 指令:不允许为指针 DB 中的变量或格式字符 串指定的字节数小于要求的长度。 必须指定一个允许的长度: 变量 32 个字节,格式字符串150 个字 节。 1E43 P_PRINT_RK 指令: 指针不可用于格式字符串。 为指针 DB 中的格式字符串输入数据块编号和数据字编号。 说明 仅当 ERROR 位也被置位时才输出错误消息(作业已取消但有错误)。在所有其它情况下, STATUS字均为零。 参数 声明 数据类型 说明 DB_NO INPUT INT 数据块号 发送 DB 号: 依 CPU而定,不允许为零 DBB_NO INPUT INT 数据字节号 0 ≤ DBB_NO ≤ 8190 传输的数据,截至数 据字节;偏移量依 CPU 而定 LEN INPUT INT 数据长度1 ≤ LEN ≤ 400,通过字节数指定 DONE1 OUTPUT BOOL作业已完成且无错 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL 作业已取消但有错误 STATUS 参数(页 8985)包含错误信息。 STATUS1 OUTPUT WORD 错误规范 如果 ERROR == 1,则STATUS 参数 (页 8985)包含错误信息。 1 参数在下次调用指令之前可用! 数据区中的分配 SEND_440指令与 I_SEND_440 背景数据块结合使用。 调用时包含 DB 号。禁止访问背景数 据块中的数据 说明 例外: 如果出现错误STATUS == W#16#1E0F,可以检查 SFCERR 变量以获得其它详细信息。输入 REQ 通过沿来触发。输入 REQ上的一个上升沿便足够。在整个传输期间,RLO(逻辑 运算结果)不一定必须为“1”。 规则 说明 SEND_440 指令没有参数检查。如果参数分配错误,CPU 可以切换到 STOP 模式。RECV_440:接收数据 (S7-300, S7-400) 说明RECV_440 指令根据 DB_NO、DBB_NO 和 LEN 参数指定的内容将数据从 CP 440 传送至 S7 数 据区。为进行数据传输,可在循环或者时间控制的程序的静态(无条件)操作中调用 RECV_440 指令。 . 操作原理 参数 EN_R处的(静态)信号状态“1”启动对要从 CP 440 读取的数据的检查。 可以通过在参 数 EN_R处设置信号状态“0”来取消激活的传输。终止已取消的接收请求,生成一条错误 消息(STATUS 输出)。 在参数 EN_R处设置信号状态“0”之后,会禁用接收功能。 数据传输 可能会进行多次调用(程序周期),具体取决于数据量。 如果指令检测到参数 R的信号状态为“1”,则将取消当前的传输作业,并将 RECV_440 指令 复位为初始状态。 在参数 R处设置信号状态“1”之后,会禁用接收功能。 参数 LADDR 用于选择要寻址的 CP 440。 输出 NDR指示“作业已完成且无错/数据已接收”(已读取全部数据),ERROR 指示错误事 件。如果发生错误,会在 STATUS中显示相应的事件编号。如果未发生错误,STATUS 的值为 0。对于 RECV_440 指令的 RESET,还会输出 NDR 和ERROR/STATUS(参数 LEN == 16#00)。 如果出现错误,则复位二进制结果BR。如果块已完成且无错,则二进制结果的状态为“1”。 参数 参数 声明 数据类型 说明 EN_R INPUT BOOL 启用数据读取R INPUT BOOL 取消作业 取消正在进行的作业。接收被禁止。 LADDR INPUT INT CP 440 的起始地址 可以在STEP 7 的组态表中找到基地址。 DB_NO INPUT INT 数据块号 接收数据块号: 依 CPU 而定,不允许为零DBB_NO INPUT INT 数据字节号 偏移量依 CPU 而定。参数 声明 数据类型 说明 NDR1 OUTPUT BOOL作业已完成且无错,数据已接收 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL作业已取消但有错误 STATUS 参数 (页 8985)包含错误信息。 LEN1 OUTPUT INT 已接收消息帧的长度1 ≤ LEN ≤ 400,通过字节数指定 STATUS1 OUTPUT WORD 错误规范如果 ERROR == 1,则 STATUS 参数 (页 8985)包含错误信息。 1 参数在下次调用指令之前可用!数据区中的分配 RECV_440 指令与 I_RECV_440 背景数据块结合使用。 调用时包含 DB 号。禁止访问背景数据块中的数据 说明 例外: 如果出现错误 STATUS == W#16#1E0E,可以检查 SFCERR 变量以获得其它详细信息。说明必须将输入 EN_R 设置为静态信号状态“1”。在接收请求的持续时间内,必须给参数 EN_R 提 供逻辑运算结果“1”。 规则 说明RECV_440 指令没有参数检查。 如果参数分配错误,CPU 可以切换到 STOP 模式。RES_RECV:删除接收缓冲区(S7-300, S7-400) 说明 RES_RECV 指令会清除 CP 440 的整个输入缓冲区。存储器中的所有消息帧都将被丢弃。会 保存调用 RES_RECV 指令时接收到的消息帧。 操作原理 输入 REQ上的上升沿可启用该指令。该作业可以跨多次调用(程序周期)运行。 通过将参数输入 R 的信号状态设置为“1”,可在循环中调用RES_RECV 指令。 该动作会取消 删除操作,并将 RES_RECV 指令复位为初始状态。 参数 LADDR 指定要寻址的CP 440 的地址。 输出 DONE 指示“作业已完成且无错”,ERROR 指示错误事件。如果发生错误,会在 STATUS中显示相应的事件编号。如果未发生错误,STATUS 的值为 0。对于 RES_RECV 指令的 RESET, 还会输出 DONE 和ERROR/STATUS。如果出现错误,则复位二进制结果 BR。如果块已完成且 无错,则二进制结果的状态为“1”。 参数 参数 声明数据类型 说明 REQ INPUT BOOL 作业在上升沿触发 R INPUT BOOL 取消作业 取消正在进行的作业。传输被禁 止。LADDR INPUT INT CP 440 的起始地址 起始地址从 STEP 7 获取。 DONE1OUTPUT BOOL 作业已完成且无错 STATUS 参数 == 16#00; ERROR1 OUTPUT BOOL作业已取消但有错误 STATUS 参数 包含错误信 息。