1.数据的一致性
数据的一致性(Consistency)又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的OB块中断,将会使传送的数据不一致(不连续)。即被传输的数据一部分来自中断之前,一部分来自中断之后,因此这些数据是不连续的。
在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制或电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。需要绝对一致性传送的数据量越大,系统的中断反应时间越长。PROFIBUS网络控制系统经常使用系统功能SFC14和SFC15来传送具有一致性的数据。
2.组态硬件和主从通信
在STEP 7中生成一个项目(见随书光盘中的例程SFC14_15),CPU 412-2DP是S7 DP主站,CPU 313C-2DP是智能DP从站。主站和从站的组态与实训三十六的项目“智能从站”基本上相同,数据长度为20B。其区别在于参数“一致性”被组态为“全部”(见图6-19),因此需要在用户程序中调用SFC15“DPWR_DAT”,将数据“打包”后发送,调用SFC14“DPRD_DAT”,将接收到的数据“解包”。SFC14、SFC15的参数RECORD指定的地址区应与组态的参数一致。
图6-19 主从通信组态表
DP主站用SFC15发送的输出数据被智能从站用SFC14读出,并作为其输入数据保存。反之也适用于智能从站发送给主站的数据的处理。用于通信的输入/输出数据区的起始地址LADDR应使用十六进制数格式。100对应的十六进制数为16#64。
3.生成数据块
选中SIMATIC管理器左边窗口中CPU 412-2DP的“块”文件夹,用鼠标右键单击右边的窗口,执行出现的快捷菜单中的命令,生成数据块DB1。打开DB1,生成一个名为ARAY,有20个字节元素的数组(见图6-20)。
用同样的方法生成数据块DB2,在数据块中创建一个名为ARAY,有20个字节元素的数组。也可以用复制和修改名称的方法来创建内部结构相同的数据块。
图6-20 在数据块中生成数组
4.OB1的程序
在双方的主程序OB1中,调用SFC15“DPWR_DAT”,将DB1中的数据“打包”后发送,调用SFC14“DPRD_DAT”,将接收到的数据“解包”后存放到DB2。(www.xing528.com)
输入程序时,将程序编辑器左边窗口的文件夹“\库\Standard Library\System Function Blocks”中的SFC14“拖放”到右边窗口的程序段中,将会自动生成调用SFC14的CALL指令。下面是主站OB1的程序:
因为DB2中的数组的大小刚好为20B,输入RECORD的实参P#DB2.DBX0.0 BYTE 20后,自动变为DB2.ARAY。当然也可以直接输入DB2.ARAY。
从站OB1中的程序与主站的基本上相同,图6-21给出了通信双方的信号关系图。
图6-21 DP主站与智能从站的数据传输
5.初始化程序
在主站和从站的初始化程序OB100中,用SFC21将DB1的数据发送区中的各个字分别预置为16#1111和16#2222。将DB2的数据接收区中的各个字清零。
下面是CPU 412-2DP的OB100中的程序:
6.通信的验证
将通信双方的程序块和组态信息下载到硬件CPU,用PROFIBUS电缆连接主站和从站的DP接口,接通主站和从站的电源,将CPU切换到RUN模式。
运行时在SIMATIC管理器中双击打开DB2,单击工具栏上的按钮,起动监控功能。查看通信双方DB1中初始化的数据是否传送给了通信伙伴的DB2。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。