您现在的位置是:首页 > PLC技术 > PLC技术
PROFIBUS网络的用SFC 14和SFC 15传输一致性数据
来源:艾特贸易2017-10-11
简介1 .数据的一致性 数据的一致性 (Consistency) 又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的 OB 块中断,将会使传送的数据不一致(不连续)。即被传输的
1.数据的一致性
数据的一致性(Consistency)又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的OB块中断,将会使传送的数据不一致(不连续)。即被传输的数据一部分来自中断之前,一部分来自中断之后,因此这些数据是不连续的。
在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制或电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。需要绝对一致性传送的数据量越大,系统的中断反应时间越长。可以用系统功能SFC 14“DPRD_DAT”和SFC 15“DPWR_DAT”来传送要求具有一致性的数据。这两个SFC在实际程序中被广泛使用。
2.组态硬件和主从通信
在STEP 7中生成一个项目(见随书光盘中的例程PB_MS_2),CPU 413 - 2DP是S7 DP主站,CPU 313C - 2DP是智能DP从站。主站和从站的组态与前面的项目PB_MS_1基本上相同,数据长度为20B。其区别在于参数“一致性”被组态为“全部”(见图6-38),因此需要在用户程序中调用SFC 15“DPWR_ DAT”,将数据“打包”后发送,调用SFC 14“DPRD_DAT”,将接收到的数据“解包”。SFC 15用于将RECORD指定的数据连续地传送到DP从站。SFC 14、SFC 15的参数RECORD指定的地址区和长度应与组态的参数一致。
图6-38 主从通信组态表
可以传送的数据长度与CPU的型号有关,本例的最大长度是32B。
如果从具有模块化设计或具有多个DP标识符的DP标准从站读取数据,通过组态时指定的起始地址,每次调用SFC 14只能访问一个模块或一个DP标识符的数据。
DP主站用SFC 15发送的输出数据被智能从站用SFC 14读出,并作为其输人数据保存。反之也适用于智能从站发送给主站的数据的处理。用于通信的输入/输出数据区的起始地址LADDR应使用十六进制数格式。100对应的十六进制数为16#64。
3.生成数据块
选中SIMATIC管理器左边窗口中CPU413 - 2DP的“块”文件夹,用鼠标右键点击右边的窗口,执行出现的快捷菜单中的命令,生成数据块DB1。打开数据块,生成一个有10个字元素的数组。用同样的方法生成数据块DB2,在数据块中生成一个有10个字元素的数组。可以用复制和修改名称的方法来创建内部结构相同的数据块。
4.OB1的程序
在双方的主程序OB1中,调用SFC 15“DPWR_DAT”,将DB1中的数据“打包”后发送,调用SFC 14“DPRD_DAT”,将接收到的数据“解包”后存放到DB2中。
DP主站和智能从站的OB1中的用户程序基本上相同,下面是主站OB1的程序:
程序段1:解开IB100~IB119接收到的数据包,并将数据存放在DB2
CALL “DPRD_DAT” //调用SFC 14
LADDR :=W#16#64 //接收通信数据的过程映像输入区的起始地址IB100
RET_VAL :=MW2 //错误代码
RECORD :=DB2.ARAY //存放接收的用户数据的目的数据区
L DB2.DBD 2
T QD 0 //用对方的IDO控制本站的QDO
程序段2:将DB1的数据打包后通过QB100~QB119发送出去
L ID 0
T DB1.DBD2 //用本站的IDO控制对方的QD4
CALL “DPWR_DAT" //调用SFC 15
LADDR :=W#16#64 //发送数据的过程映像输出区的起始地址QB100
RECORD :=DB1.ARAY //存放要发送的用户数据的源数据区
RET_VAL :=MW4 //错误代码
如果指定SFC 14的参数RECORD的实参为P#DB2.DBX0.0 BYTE 20,因为DB2中的数组ARAY的大小刚好为20B,输入后会变为DB2. ARAY,也可以直接输入DB2.ARAY。
图6-39是程序段1的CALL指令对应的梯形图。梯形图和语句表中的功能(FC)和功能块( FB)包含的信息基本相同。梯形图中的FC、FB、SFC和SFB的输入参数在左边,输出参数在右边;方框里面是形参,方框外面是实参。语句表的优点是可以给每一行加上“//”右边的注释,便于程序的阅读和理解。语句表的功能比梯形图更强,有的功能只能用语句表实现。图6-39中的梯形图可以转换为语句表,但是上面的程序段1的CALL指令不能转换为梯形图。
图6-39 调用SFC 14的梯形图
选中梯形图或语句表中的某条指令或某个FC、FB、SFC、SFB,按<F1>键可以获得选中对象的在线帮助。选中某条菜单命令,或者打开某个对话框的选项卡,按<F1>键也可以获得该对象的在线帮助。
从站OB1中的程序与主站的基本上相同,其区别仅在于将QD0改为QD4。图6-40给出了通信双方的信号关系图。
图6-40 DP主站与智能从站的数据传输
5.初始化程序
在主站和从站的初始化程序OB100中,用SFC 21将DB1的数据发送区中的各个字分别预置为16#1111和16#2222。将DB2的数据接收区中的各个字清零。
6.通信的监控
在运行时用变量表同时监控通信双方接收到的DB2的部分数据(见图6-41和图6-42)。为了动态地观察周期性数据传输的效果,在通信双方的周期性中断组织块OB35中,每100 ms将DB1.DBW0加1。该数据被通信伙伴接收后存放在DB2. DBW0,通信正常时可以看到变量表中的DB2. DBW0在不断增大。
图6-41 CPU 413 - 2DP的变量表
图6-42 CPU 313C - 2DP的变量表
在运行时也可以用DB2来监控数据块中定义的数组各元素的值,查看通信双方DB1中的数据是否传送给了通信伙伴的DB2。
运行时在SIMATIC管理器中双击打开DB2,点击工具栏上的按钮,启动监控功能,出现如图6-43所示的对话框,点击“是”按钮,DB2首先切换到数据视图显示方式,然后进入在线监控状态(见图6-44)。选中对话框中的复选框“不再显示该信息”,以后点击
按钮,将会直接进入数据视图监控状态。
图6-43 数据块监视的提示信息
图6-44 主站的DB 2接收的数据
点击排行
