小弟最近在看一个400的程序,但小弟有点笨,有两个400通讯用的SFB8和SFB9但小弟没有理解到那个意思。在帮助里也没有理解到。请各们大哥说一下,小弟笨请说清楚一些。比如ID .R-ID.SD.RD.DONE.NDR
产品版区:SIMATIC S7-300(F)/S7-400(F/H/FH)
悬赏分:5 | 解决时间:2011-06-12 01:02:12 | 提问者: 华华的 - 新生  第1级
最佳答案
注意
如果在 S7-300 站中,使用工业以太网 CP 进行 S7 连接数据通信,要使用位于"SIMATIC_NET_CP" 库 "CP 300 > Blocks"下的功能块 FB8 "USEND" 和 FB9 "URCV" 。
如果使用 CPU31x-2PN/DP 或 CPU319-3PN/DP 的集成 PROFINET 接口进行 S7 连接数据通信, 要使用位于 "Standard Library -> Communication Blocks -> Blocks" 下 "CPU_300"中的功能块 FB8 "USEND" 和 FB9 "URCV" 。
对于 S7-400 ,用于 S7 连接数据通信系统功能块 SFB8 "USEND" 和 SFB9 "URCV" 可在 Standard Library > System Function Blocks > Blocks 下找到。
功能块 FB8 "USEND" 和 FB9 "URCV" 以及系统功能块 SFB8 "USEND" / SFB9 "URCV"的特点:
FB8 和 FB9 以及 SFB8 和 SFB9 是异步通信块。
本例中这些块在 OB1 循环中调用。(参见条目 ID: 2795485).
FB8 和 FB9 以及 SFB8 和 SFB9的运行可能需要多个 OB1 循环。
FB8 和 SFB8 由输入参数 "REQ" 激活。
FB9 和 SFB9 由输入参数 "EN_R" 激活。
任务的完成由 "DONE", "NDR" 或 "ERROR"提示。
USEND 和 URCV 可以同时运行在一个连接上。
数据传输是未经协商的,如数据的接收不会得到对方的确认。
示例程序描述:
该 STEP 7 项目包括两个 S7-300 站。
第一个 S7-300 站中包括一个 CPU 315-2 PN /DP 和一个 CP343-1 用于工业以太网数据通信。
第二个 S7-300 站中使用 CPU 319-3 PN /DP. CPU 集成的 PROFINET 接口用于工业以太网数据通信。
MB10 在两个 S7-300 CPU 中都组态为 时钟标志位。 发送请求由此时钟标志位触发。
在 NetPro 中,在两个 S7-300 站的双边组态了用于通过工业以太网进行数据通信的 S7 连接。
在 NetPro 中选中 S7-300 站的 CPU ,组态的双边 S7 连接在连接表中列出。
在连接表中,右键单击 S7 连接,选择"Object Properties(对象属性)"菜单,打开 S7 连接对话框属性。
通信需要的 IP 地址和 S7-300 接口在 S7 连接属性对话框中定义。
在S7连接的属性对话框里,可以决定 "Local ID" 块参数。这个值在调用 FB8 "USEND" 和 FB9 "URCV" 时作为输入参数 "ID" 的输入。
对于 S7-300 站 "SIMATIC 315",在S7连接属性对话框中激活 "Active Connection Setup" 功能,因为由它主动建立S7连接。
对于 S7-300 站 "SIMATIC 319",在S7连接属性对话框中不要激活 "Active Connection Setup"功能,因为它在建立连接过程中是被动的。
点击 "Address Details..." 按钮.
本地 TSAP 和对方 TSAP 在 "Address Details" 对话框中定义。S7-300 站间 S7 连接由唯一的 TSAP 说明。.
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 执行完成后被立即复位。
FB100
FB100 在 OB1 中循环调用。在这个 FB 中调用 FB8 ("USEND") 和 FB9 ("URCV")。在M10.6 上升沿信号且没有任务运行时由输入参数 "REQ" 激活FB8。这个锁定是非常重要的,因为该功能是异步的,可以持续多个循环周期。连续的激活功能块而不等待当前激活任务结束可能会导到致通信过载。
输入参数 "ID" 必须要和 NetPro 中 S7 连接属性对话框中一致利用参数 "R_ID" 定义发送任务和接收任务的一致性。"R_ID" 在发送端 FB8 "USEND" 和 接收端 FB9 "URCV" 必须匹配。
输入参数"SD_1" 用来指定发送数据的地址和长度(发送缓冲区)
输出参数 "DONE", "ERROR" 和 "STATUS" 用于任务评估,三个参数只有在同一循环周期中才有效。
当 FB8 运行完成,块的状态字被保存用于错误分析。关于所保存的状态字的含义可以在 STEP 7 在线帮助中找到。
FB9 "URCV"通过输入参数"EN_R"激活。输入参数的值总是"1",因为M0.1在启动组织块OB100中被置“1”了。因此S7-300 时刻准备着接收数据。
FB9 "URCV"的输入参数 "ID" 必须来自 NetPro中S7 连接属性对话框 (参见图02)。利用参数 "R_ID" 定义发送任务和接收 任务的一致性。"R_ID" 在接收端 FB9 "URCV" 和发送端 FB8 "SEND" 必须匹配。FB9的输入参数"SD_1" 用来指定接收数据区的地址和长度(接收缓冲区)。输出参数 "NDR", "ERROR" 和 "STATUS" 用于任务评估,三个参数只有在同一循环周期中才有效。
当 FB9 运行完成,块的状态字被保存用于错误分析。关于所保存的状态字的含义可以在 STEP 7 在线帮助中找到。
回答者:
wqhhjjy
-
中级工程师  第10级
2011-06-08 19:54:11
提问者对于答案的评价:
ok