您现在的位置是:首页 > PLC技术 > PLC技术

PROFIBUS网络的用SFC 14和SFC 15传输一致性数据

来源:艾特贸易2017-10-11

简介1 .数据的一致性 数据的一致性 (Consistency) 又称为连续性。通信块被执行、通信数据被传送的过程如果被一个更高优先级的 OB 块中断,将会使传送的数据不一致(不连续)。即被传输的

    1.数据的一致性

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

    在通信中,有的从站用来实现复杂的控制功能,例如模拟量闭环控制或电气传动等。从站与主站之间需要同步传送比字节、字和双字更大的数据区,这样的数据称为一致性数据。需要绝对一致性传送的数据量越大,系统的中断反应时间越长。可以用系统功能SFC 14DPRD_DAT”和SFC 15DPWR_DAT”来传送要求具有一致性的数据。这两个SFC在实际程序中被广泛使用。

    2.组态硬件和主从通信

    STEP 7中生成一个项目(见随书光盘中的例程PB_MS_2),CPU 413 - 2DPS7 DP主站,CPU 313C - 2DP是智能DP从站。主站和从站的组态与前面的项目PB_MS_1基本上相同,数据长度为20B。其区别在于参数“一致性”被组态为“全部”(见图6-38),因此需要在用户程序中调用SFC 15DPWR_ DAT”,将数据“打包”后发送,调用SFC 14DPRD_DAT”,将接收到的数据“解包”。SFC 15用于将RECORD指定的数据连续地传送到DP从站。SFC 14SFC 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个字元素的数组。可以用复制和修改名称的方法来创建内部结构相同的数据块。

    4OB1的程序

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

   DP主站和智能从站的OB1中的用户程序基本上相同,下面是主站OB1的程序:

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

   CALL    DPRD_DAT    //调用SFC 14

   LADDR    =W#16#64    //接收通信数据的过程映像输入区的起始地址IB100

   RET_VAL    =MW2    //错误代码

   RECORD  =DB2ARAY  //存放接收的用户数据的目的数据区

   L    DB2DBD    2

   T    QD    0   //用对方的IDO控制本站的QDO

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

   L    ID    0

   T    DB1DBD2    //用本站的IDO控制对方的QD4

   CALL    DPWR_DAT"    //调用SFC 15

   LADDR    =W#16#64    //发送数据的过程映像输出区的起始地址QB100

   RECORD  =DB1ARAY  //存放要发送的用户数据的源数据区

   RET_VAL    =MW4    //错误代码

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

    6-39是程序段1CALL指令对应的梯形图。梯形图和语句表中的功能(FC)和功能块( FB)包含的信息基本相同。梯形图中的FCFBSFCSFB的输入参数在左边,输出参数在右边;方框里面是形参,方框外面是实参。语句表的优点是可以给每一行加上“//”右边的注释,便于程序的阅读和理解。语句表的功能比梯形图更强,有的功能只能用语句表实现。图6-39中的梯形图可以转换为语句表,但是上面的程序段1CALL指令不能转换为梯形图。

调用SFC 14的梯形图

    6-39    调用SFC 14的梯形图

    选中梯形图或语句表中的某条指令或某个FCFBSFCSFB,按<F1>键可以获得选中对象的在线帮助。选中某条菜单命令,或者打开某个对话框的选项卡,按<F1>键也可以获得该对象的在线帮助。

    从站OB1中的程序与主站的基本上相同,其区别仅在于将QD0改为QD4。图6-40给出了通信双方的信号关系图。

DP主站与智能从站的数据传输

    6-40    DP主站与智能从站的数据传输

    5.初始化程序

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

    6.通信的监控

    在运行时用变量表同时监控通信双方接收到的DB2的部分数据(见图6-41和图6-42)。为了动态地观察周期性数据传输的效果,在通信双方的周期性中断组织块OB35中,每100 msDB1DBW01。该数据被通信伙伴接收后存放在DB2. DBW0,通信正常时可以看到变量表中的DB2. DBW0在不断增大。

CPU 413 - 2DP的变量表

    6-41    CPU 413 - 2DP的变量表

CPU 313C - 2DP的变量表

    6-42    CPU 313C - 2DP的变量表

    在运行时也可以用DB2来监控数据块中定义的数组各元素的值,查看通信双方DB1中的数据是否传送给了通信伙伴的DB2

    运行时在SIMATIC管理器中双击打开DB2,点击工具栏上的按钮,启动监控功能,出现如图6-43所示的对话框,点击“是”按钮,DB2首先切换到数据视图显示方式,然后进入在线监控状态(见图6-44)。选中对话框中的复选框“不再显示该信息”,以后点击按钮,将会直接进入数据视图监控状态。

数据块监视的提示信息

    6-43    数据块监视的提示信息

主站的DB 2接收的数据

    6-44    主站的DB 2接收的数据