首页 理论教育 使用SFC14和SFC15传输数据的一致性实训

使用SFC14和SFC15传输数据的一致性实训

时间:2023-06-26 理论教育 版权反馈
【摘要】:PROFIBUS网络控制系统经常使用系统功能SFC14和SFC15来传送具有一致性的数据。SFC14、SFC15的参数RECORD指定的地址区应与组态的参数一致。图6-19 组态主从通信的地址区DP主站用SFC15发送的输出数据被智能从站用SFC14读出,并作为其输入数据保存。100对应的十六进制数为16#64。图6-20 在数据块中生成数组4.OB1的程序在双方的主程序OB1中,调用SFC15“DPWR_DAT”,将DB1中的数据“打包”后发送,调用SFC14“DPRD_DAT”,将接收到的数据“解包”后存放到DB2。

使用SFC14和SFC15传输数据的一致性实训

1.数据的一致性

数据的一致性(Consistency)又称为连续性。通信被执行、通信数据被传送的过程如果被一个更高优先级的OB块中断,将会使传送的数据不一致(不连续)。即被传输的数据一部分来自中断之前,一部分来自中断之后,因此这些数据是不连续的。

在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。需要绝对一致性传送的数据量越大,系统的中断反应时间越长。PROFIBUS网络控制系统经常使用系统功能SFC14和SFC15来传送具有一致性的数据。

2.组态硬件和主从通信的地址

在STEP 7中生成一个项目(见随书光盘中的例程SFC14_15),CPU 412-2DP是DP主站,CPU 313C-2DP是智能DP从站。主站和从站的组态与实训三十八的项目“智能从站”基本上相同,其区别在于参数“一致性”被组态为“全部”(见图6-19),因此需要在用户程序中调用SFC15“DPWR_DAT”,将数据“打包”后发送,调用SFC14“DPRD_DAT”,将接收到的数据“解包”。SFC14、SFC15的参数RECORD指定的地址区应与组态的参数一致。

978-7-111-53804-2-Chapter06-26.jpg

图6-19 组态主从通信的地址区

DP主站用SFC15发送的输出数据被智能从站用SFC14读出,并作为其输入数据保存。反之也适用于智能从站发送给主站的数据的处理。用于通信的输入/输出数据区的起始地址LADDR应使用十六进制数格式。100对应的十六进制数为16#64。

3.生成数据块

选中SIMATIC管理器左边窗口中CPU 412-2DP的“块”,用鼠标右键单击右边的窗口,执行出现的快捷菜单中的命令,生成数据块DB1。打开DB1,生成一个名为ARAY、有20个字节元素的数组(见图6-20)。用复制和修改名称的方法创建内部结构相同的DB2。

978-7-111-53804-2-Chapter06-27.jpg

图6-20 在数据块中生成数组

4.OB1的程序

在双方的主程序OB1中,调用SFC15“DPWR_DAT”,将DB1中的数据“打包”后发送,调用SFC14“DPRD_DAT”,将接收到的数据“解包”后存放到DB2。

输入程序时,将程序编辑器左边窗口的文件夹“\库\Standard Library\System Function Blocks”中的SFC14“拖放”到右边窗口的程序段中,将会自动生成调用SFC14的CALL指令。下面是主站OB1的程序:

程序段1:解开IB100~IB119接收到的数据包,并将数据存放在DB2

978-7-111-53804-2-Chapter06-28.jpg(www.xing528.com)

程序段2:将DB1的数据打包后通过QB100~QB119发送出去

978-7-111-53804-2-Chapter06-29.jpg

参数RECORD的数据类型为ANY,如果指定SFC14的参数RECORD的实参为P#DB2.DBX0.0 BYTE 20,因为DB2中的数组ARAY的大小刚好为20B,输入后会变为DB2.ARAY,也可以直接输入DB2.ARAY。

从站OB1中的程序与主站的基本上相同,图6-21给出了通信双方的信号关系图。

978-7-111-53804-2-Chapter06-30.jpg

图6-21 DP主站与智能从站的数据传输示意图

5.初始化程序

在主站和从站的初始化程序OB100中,用SFC21将DB1的数据发送区中的各个字分别预置为16#1111和16#2222。将DB2的数据接收区中的各个字清零。

下面是CPU 412-2DP的OB100中的程序:

程序段1:初始化存放要发送的数据的地址区

978-7-111-53804-2-Chapter06-31.jpg

程序段2:将存放接收的数据的地址区清零

978-7-111-53804-2-Chapter06-32.jpg

6.通信的验证

将通信双方的程序块和组态信息下载到硬件CPU,用PROFIBUS电缆连接主站和从站的DP接口,接通主站和从站的电源,将CPU切换到RUN模式。用变量表监控双方接收到的DB2中的DBW0、DBW2和DBW18。双方的OB35每100ms将DB1.DBW0的值加1,运行时它被传送给对方的DB2.DBW0。监控时可以看到双方的DB2.DBW0的值在不断增大。也可以启动通信双方的DB2的监控功能,查看双方DB1中初始化的数据是否传送给了通信伙伴的DB2。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈