Profibus-DP 同步、冻结功能的实现

1 Profibus-DP同步、冻结的概念

    PROFIBUS-DP主站通过控制命令输出同步(SNYC)和输入冻结(FREEZE)命令,可以实现某些DP从站同步数据通信。系统所涉及的DP从站必须组态在SYNCFREEZE组中,DP主站利用全局控制报文同时发送SYNCFREEZE控制命令给所有的DP从站。

SYNC命令同步DP从站的输出,DP从站在SYNC模式时,输出被冻结,主站发送的数据存在DP从站的本地缓存器中,只有在接收SYNC控制命令后,所有DP从站将缓存器中的数据传送到输出,这样可以同步若干个DP从站的输出。

使用UNSYNC可以取消同步命令,取消后从站循环更新输出。同步过程如图1-1所示。

1-1 同步过程

    若要冻结若干DP从站上的数据,就要用到FREEZE命令,当FREEZE控制命令发送到一组DP从站时,所有的DP从站同时冻结输入点的现有信号,以便由DP主站来读取这些信号。DP从站上的输入数据在接收到另一个FREEZE命令时更新,如果没有新的FREEZE命令,输入数据保持当前值不变。

    UNFREEZE命令可以取消DP从站的FREEZE模式,循环更新从站输入信号,此时,输入数据可以立即由DP从站更新并被DP主站读取。输入冻结过程如图1-2所示。

1-2 冻结过程

2硬件组态

本例的系统由PS307电源、CPU 319-3 PN/DP模块、IM153模块、仿真模块SM374等组成,以下将展示如何实现PROFIBUS-DP的同步冻结功能。

序号

操作

图示

1.      

首先进行系统的硬件组态,打开STEP7 V5.5软件,插入一个S7-300,本例中为CPU 319-3 PN/DP模块

2.      

组态DP从站,本例中两个从站的站地址分别设置为45,每个从站各有一个仿真模块SM374。此仿真模块在组态时,组态为8点输入8点输出,订货号为6ES7 323-1BH00-0AA0模块。

3.      

双击CPU中主站的DP接口,弹出DP主站的属性窗口,记录DP主站的诊断起始地址,编程时使用。

4.      

双击PROFIBUS(1),弹出DP master system(1)的属性窗口,选择Group Properties选项卡,选择DP总线中每组的同步冻结功能,每条总线最多分为8个组,每组默认使能同步冻结功能。

5.      

点击Group Assigment选项卡,将从站分组。本例中将4号站和5号站分在组1中。如果有更多从站,可以继续分配在组1中,也可以分配到不同的组中,每组的同步冻、结功能可以分别设置,也可在用户程序中分别使能和禁止。

 

3软件编程

OB1中调用系统功能SFC11启动同步冻结。当M100.01时,执行在MB102字节中定义的模式。程序如图3-1所示。

十六进制下,SFC11MODE参数含义如下:4为取消冻结,8为冻结模式,10为取消同步,20为同步模式。也可以同时设置不矛盾的两种模式,十六进制下,MODE参数:14非同步冻结,18冻结非同步,24同步非冻结,28同步冻结。需要注意的是,当主站热启动或者暖启动后,DP从站保持SYNCFREEZE模式。

3-1  程序编写    

将程序下载至PLC中,并且在变量表中观察以下变量MB0,MB1,QB0,QB1,IB0,IB1。其中将MB0MB1修改为B#16#F0,可以看到QB0QB1的值也随之更改为B#16#F0,但是实际的输出模块上的输出区并没有任何LED灯亮,这是因为数据被保存在两个从站本地接口模块的存储器中,并没有发送给模块。

而在从站的仿真模块上的输入区有输入信号,但是监控表中的IB0IB1的数值仍为 B#16#00,这是因为接口模块一直向主站发送上次输入过程值,并没有更新输入过程数据(本例中主站为CPU 319-3 PN/DP),如图3-2所示。

3-2 CPU中数据与实际模块状态对比

这时,在程序中使能SFC11,则两个从站立即将输出数据从缓存中发送给输出模块,并且更新输入模块的数据并发送给主站。这样便实现了两个从站的输出同步与输入冻结功能。如图3-3所示。

3-3 输入冻结与输出同步