您现在的位置是:首页 > PLC技术 > PLC技术
用SFC 14和SFC 15传输一致性数据
来源:艾特贸易2017-06-05
简介1 .数据的一致性 数据的一致性 ( Consistency) 又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的 OB 块中断,将会使传送的数据不一致(不连续)。即被传输
1.数据的一致性
数据的一致性( Consistency)又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的OB块中断,将会使传送的数据不一致(不连续)。即被传输的数据一部分来自硬件中断之前,一部分来自硬件中断之后,因此这些数据是不连续的。
在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制或电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。可以用系统功能SFC 14“DPRD_DAT”和SFC 15“DPWR_DAT”来访问要求具有一致性的数据。
2.项目实例
在STEP 7中生成一个项目(见随书光盘中的例程PB_MS_3),CPU 413- 2DP是S7 DP主站,CPU 315- 2DP是智能DP从站。主站和从站的组态与前面的项目PB_MS_2基本上相同,数据长度为20B。其区别在于组态参数“一致性”(见图7-33)为“全部”,因此需要在用户程序中调用SFC 15“DPWR_DAT”,将数据“打包”后发送;调用SFC 14“DPRD_DAT”,将接收到的数据“解包”。可以传送的数据长度与CPU的型号有关,SFC的参数中的地址区和长度应与组态的参数一致。SFC 15“DPWR_DAT”用于将RECORD指定的连续数据传送到DP从站,如果从站是模块式结构,每次调用SFC 14或SFC 15只能访问一个模块。
在主站和从站中分别生成数据块DB l和DB 2,用数组定义数据块的大小。
DP主站用SFC 15发送的输出数据被智能从站用SFC 14读出,并作为其输入数据保存。反之也适用于智能从站发送给主站的数据的处理。
DP主站和智能从站OB1中的用户程序基本上相同,下面是主站OB1中的程序:
程序段1:解开IB100~IB119中的数据包,并将数据存放在DB 2的前20个字节中
CALL "DPRD_DAT” //SFC 14
LADDR :=W#16#64 //接收通信数据的输入过程映像区起始地址IB100
RET_VAL :=MW2 //错误代码
RECORD := P#DB2.DBX0.0 BYTE 20 //存放读取的用户数据的目的数据区
L DB2.DBW2
T QW 0 //用对方的IW0控制本站的QW0
程序段2:将DB 1的前20个字节的数据打包,通过QB100~QB119发送出去
L IW 0
T DB1.DBW 2 //用本站的IW0控制对方的QW4
CALL "DPWR_DAT” //SFC 15
LADDR :=W#16#64 //输出映像区的起始地址QB100
RECORD :=P#DB1.DBX0.0 BYTE 20 //存放要发送的用户数据的源数据区
RET_VAL := MW4 //错误代码
为了动态地观察通信的数据,在双方的OB35中将DB1. DBW0加1。图7-37给出了通信双方的信号关系图。
图7-37 DP主站与智能从站的通信
点击排行
