WWW_PL※CJS_COM-PLC-技.术_网
下面的通信块也可用于S7-300 的通过S7连接的通信: WW.W_PLC※JS_C,OM-PL,C-技.术_网
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
以上通信块位于Standard Library > Communication Blocks > Blocks ,只能在S7-300的S7程序中调用。 WWcW_PLCJS_COM-PLC-技.术_网
注意: WW.W_PLC※JS_C,OM-PL,C-技.术_网
对于S7-400, 必须在S7程序中从Standard Library > System Function Blocks > Blocks 中调用通信块SFB8 "USEND"和SFB9 "URCV"plcjs.技.术_网
WWW_PLC※JS_COM-PmLC-技.术_网
通信块 FB8 "USEND" 和 FB9 "URCV" 的特点 WWW_PLCJS@_COM%-PLC-技.术_网
- FB8 和 FB9 是异步通信。
- 必须在 OB1 中调用。
- FB8 和 FB9 运行时间可能持续多个 OB1 循环周期。
- FB8 和 FB9 通过输入参数("REQ" 或 "EN_R")使能。
- 运行结果通过 "DONE" 或 "ERROR" 指示。
- USEND 和 URCV 可以通过一个连接同时进行。
- 数据传输是不带确认的。
WW.W_PLCJS_COM-PLC-技.术_网
示例程序包括一个S7连接,FB8通过此连接发送数据,FB9通过此连接接收数据。 WW.W_PLCJS_COM-PLC-技.术_网
示例程序描述:P.L.C.技.术.网——可编程控制器技术门户
此S7程序包含标准库中的FB8 "USEND" 和 FB9 "URCV"通信功能块的调用。FB8 "USEND"用于向另一S7 站点或PC站发送数据。FB9 "URCV"用于接收来自另一S7 站点或PC站的数据。 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
首先建立S7-300 站的硬件配置。确保标志字节10作为时钟标志。发送任务由此时钟标志触发。保存、编译此S7-300 站的硬件配置并下载。 WW.W_PLCJS_COM-PLC-技.术_网
然后,在NetPro中配置S7连接。如果通信对象在同一STEP 7项目被配置,则可以配置成指定的S7连接。否则只能配置成非指定的S7连接。必须在通信对象两端均配置S7连接,因为通过FB8 "USEND" 和FB9 "URCV"实现的S7通信是基于客户端-客户端的原则。 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
配置通信连接时要确保正确配置IP地址和PROFIBUS地址。同样,要确保TSAP配置正确。它们是通信对象间通信连接的惟一标识。 WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
通信块FB8 "USEND"和FB9 "URCV"的输入参数"ID"的值必须与S7连接的属性对话框的"General"栏一致。 WWW.PLCJS.COM——可编程控制器技术门户
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
图01:S7连接的配置 ——可——编——程——控-制-器-技——术——门——户
示例 STEP 7 程序包含块 OB100, OB1, FB100, DB100, DB200, DB201, FB8 和 FB9. WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
- OB100
P.L.C.技.术.网——可编程控制器技术门户
OB100 是一个重启动组织块,在 CPU 重启时(暖启动)运行。在这个块中,通信触发标志位 M1.0 和 M0.1 被使能。
- OB1
W1WW_P4LCJS_COM-PLC-技.术_网
OB1 是循环调用的。在 OB1 中通过M1.0 和 M0.1 使能调用 FB100(背景数据块DB100),M1.0 在 FB100 执行完成后被立即复位。
WW.W_PLCJS_COM-PLC-技.术_网
WWW.PLCJS.COM——可编程控制器技术门户
图02:OB1 plcjs.技.术_网
FB100WWcW_PLCJS_COM-PLC-技.术_网
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" 用于任务评估,三个参数只有在同一循环周期中才有效。WWW_PL※CJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
WW.W_PLCJS_COM-PLC-技.术_网
图03: FB100:FB8 "USEND"的调用 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
发送任务成功完成后将"PLC1_COM.USEND_REQ"复位。这样新的发送任务可以被触发。 WWW_P※LCJS_CO※M-PLC-技-.术_网
如果发送任务因为错误中断,"PLC1_COM.USEND_REQ"被复位,FB8的输出参数"STATUS"的值被保存用于错误分析。 WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
图 04: FB100: 保存状态字 P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
FB9 "URCV"通过输入参数"EN_R"激活。输入参数的值总是"1",因此S7-300 时刻准备着接收数据。 WW.W_PLC※JS_C,OM-PL,C-技.术_网
FB9 "URCV"的输入参数 "ID" 必须来自 NetPro中S7 连接属性对话框 (参见图01)。利用参数 "R_ID" 定义一对发送 FB 和 接收 FB。"R_ID" 在发送端 FB 和 接收端 FB 必须匹配。FB9的输入参数"SD_1" 用来指定接收数据区(接收缓冲区)的地址和长度(如p#DB200.DBX0.0 BYTE 20)。输出参数 "NDR", "ERROR" 和 "STATUS" 用于任务评估,三个参数只有在同一循环周期中才有效。 WWW_PLCJS_COM-PLC-技.术_网
WWW_PLCJS_COM-PLC-技.术_网
图05: FB100:FB9 "URCV"的调用 WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
如果数据未被成功接收,输出参数 "STATUS"的值被保存用于故障诊断。 ——可——编——程——控-制-器-技——术——门——户
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
图 06: FB100: 保存状态字 WWW_P※LCJS_COM-PLC-)技.术_网
注意: WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
手册 "System Software for S7-300/400 System and Standard Functions" 第21章 "S7 Communication" 中 提供了通过通信块 FB8 "USEND" 和 FB9 "URCV" 所能传送的数据量的信息。WW.W_PLCJS_COM-PLC-技.术_网