S7-300 中如何编程通信块 FB8 USEND 和 FB9 URCV 进行数据交换.docVIP

  • 25
  • 0
  • 约2.51千字
  • 约 7页
  • 2016-02-25 发布于江苏
  • 举报

S7-300 中如何编程通信块 FB8 USEND 和 FB9 URCV 进行数据交换.doc

S7-300 中如何编程通信块 FB8 USEND 和 FB9 URCV 进行数据交换.doc

介绍: 下面的通信块也可用于S7-300 的通过S7连接的通信: FB8 USEND FB9 URCV 以上通信块位于Standard Library Communication Blocks Blocks ,只能在S7-300的S7程序中调用。 注意: 对于S7-400,?必须在S7程序中从Standard Library System Function Blocks Blocks 中调用通信块SFB8 USEND和SFB9 URCV ? 通信块 FB8 USEND 和 FB9 URCV 的特点 FB8 和 FB9 是异步通信。 必须在 OB1 中调用(参见条目号: 2795485)。 FB8 和 FB9 运行时间可能持续多个 OB1 循环周期。 FB8 和 FB9 通过输入参数(REQ 或 EN_R)使能。 运行结果通过 DONE 或 ERROR 指示。 USEND 和 URCV 可以通过一个连接同时进行。 数据传输是不带确认的。 示例程序包括一个S7连接,FB8通过此连接发送数据,FB9通过此连接接收数据。 示例程序描述: 此S7程序包含标准库中的FB8 USEND?和 FB9 URCV通信功能块的调用。FB8 USEND用于向另一S7 站点或PC站发送数据。FB9 URCV用于接收来自另一S7 站点或PC站的数据。 首先建立S7-300 站的硬件配置。确保标志字节10作为时钟标志。发送任务由此时钟标志触发。保存、编译此S7-300 站的硬件配置并下载。 然后,在NetPro中配置S7连接。如果通信对象在同一STEP 7项目被配置,则可以配置成指定的S7连接。否则只能配置成非指定的S7连接。必须在通信对象两端均配置S7连接,因为通过FB8 USEND 和FB9 URCV实现的S7通信是基于客户端-客户端的原则。 配置通信连接时要确保正确配置IP地址和PROFIBUS地址。同样,要确保TSAP配置正确。它们是通信对象间通信连接的惟一标识。 通信块FB8 USEND和FB9 URCV的输入参数ID的值必须与S7连接的属性对话框的General栏一致。 图01:S7连接的配置 示例 STEP 7 程序包含块 OB100, OB1, FB100, DB100, DB200, DB201, FB8 和 FB9. OB100 OB100 是一个重启动组织块,在 CPU 重启时(暖启动)运行。在这个块中,通信触发标志位 M1.0 和 M0.1 被使能。 OB1 OB1 是循环调用的。在 OB1 中通过M1.0 和 M0.1 使能调用 FB100(背景数据块DB100),M1.0 在 FB100 执行完成后被立即复位。 图02:OB1 FB100 FB100 在 OB1 中循环调用。在这个 FB 中调用 FB8 (USEND) 和 FB9 (URCV)。FB8的输入参数 REQ 的上升沿信号触发发送任务。发送任务的触发受控于变量PLC1_COM.USEND_REQ,该变量通过时钟标志M10.6置位,在发送任务完成或出错时复位。因此,执行发送任务时将变量PLC1_COM.USEND_REQ置位,确保在此期间不可能触发新的发送任务。对功能块调用的这个锁定是非常得要的,因为该功能块是异步的,并且可持续多个循环周期。在没有等待当前任务执行完成或有错误发生的情况下,持续的触发新的发送任务可能导致通信过载。输入参数 ID 必须来自 NetPro 中 S7 连接属性对话框? (参见图 01)。利用参数 R_ID 定义一对发送 FB 和 接收 FB。R_ID 在发送端 FB 和 接收端 FB 必须匹配。FB8的输入参数SD_1?用来指定发送数据(发送缓冲区)的地址和长度(如p#DB201.DBX0.0 BYTE 20)。输出参数 DONE, ERROR 和 STATUS 用于任务评估,三个参数只有在同一循环周期中才有效。 ? 图03: FB100:FB8 USEND的调用 发送任务成功完成后将PLC1_COM.USEND_REQ复位。这样新的发送任务可以被触发。 如果发送任务因为错误中断,PLC1_COM.USEND_REQ被复位,FB8的输出参数STATUS的值被保存用于错误分析。 图 04: FB100: 保存状态字 FB9 URCV通过输入参数EN_R激活。输入参数的值总是1,因此S7-300 时刻准备着接收数据。 FB9 URCV的输入参数 ID 必须来自 NetPro中S7 连接属性对话框? (参见图01)。利用参数 R_ID 定义一对发送 FB 和 接收 FB。R_ID 在发送端 FB 和 接收端 FB 必须匹配。FB9的输入参数SD_1?用来指定接收数据区(接收缓冲区)的

文档评论(0)

1亿VIP精品文档

相关文档