S7-300/400 通过全局数据包通信

1 全局数据包通信简介

对于PLC之间的数据交换,只关心数据的发送区和接收区,全局数据包的通信方式是在配PLC硬件的过程中,组态所要通信PLC站之间的发送区和接收区,不需要任何程序处理,这种通信方式只适合S7-300/300/400 PLC之间相互通信。

下面将以举例的方式介绍全局数据包通信,使用的软硬件如下:

所需硬件:CPU315-2DPCPU416-2DP

所需软件:STEP7 V5.2 SP1

注意: TIA软件平台不再支持全局数据包通信方式

2 全局数据包的配置

1)首先打开编程软件STEP7,建立一个新项目如MPI_GD,在此项目下插入两个站STATION1/CPU416-2DP STATION2/CPU315-2DP,分别组态硬件,插入CPU,配置MPI的站号和通信速率,在本例中MPI的站号分别设置为2号站和4号站,通信速率为187.5Kbit/S

这些工作完成以后,可以组态数据的发送区和接收区。点击项目名MPI_GD后出现STATION1STATION2MPI网,点击MPI,再点击菜单“Options”->

Define Global Date”进入组态画面如图12

1进入全局数据组态界面

2 全局数据组态界面

2) 插入所有需要通信的PLCCPU

双击GD ID右边的CPU栏选择需要通信PLC站的CPUCPU栏总共有15列,这就意味者最多有15CPU能够参与通信。在每个CPU栏底下填上数据的发送区和接收区,例如:CPU416-2DP的发送区为DB1.DBB0~DB1.DBB21,可以填写为DB1.DBB022  ,然后在菜单“edit”选择“Sender”作为发送区。                                                                                                       

CPU315-2DP的接收区为DB1.DBB0~21,可以填写为DB1.DBB022。编译存盘后,把组态数据分别下载到CPU中,这样数据就可以相互交换了。发送接收数据区的设置参考图3

3 设置通信区

地址区可以为DBMIQ,区,长度S7-300最大为22个字节,S7-400最大为54个字节。发送区与接收区应一致,所以在上例中通信区最大为22个字节。

3 多个CPU通信

了解多个CPU通信首先要了解GD ID,编译以后,每行通信区都会有GD ID号,

可以参考图3

A:全局数据包的循环数,每一循环数表示和一个CPU通信,例如两个S7-300CPU通信,发送与接收是一个循环,S7-400中三个CPU之间的发送与接收是一个循环,

循环数与CPU有关,S7-300CPU 最多为 4个,所以最多和4CPU通信。S7-400CPU414-2DP最多为 8个,S7-400CPU416-2DP最多为 16个。

B:全局数据包的个数。表示一个循环有几个全局数据包,例如两个S7站相互通信

一个循环有两个数据包。如图4所示:

4 一个循环两个数据包

C:一个数据包里的数据区数

可以参考图5 CPU315-2DP 发送4组数据到CPU416-2DP4个数据区是一个数据包。从上面可以知道一个数据包最大为22个字节,在这种情况下每个额外的数据区占用两个字节,所以数据量最大为16个字节。

5 一个数据包里的数据区数

对于A,B,C的介绍只是用于优化数据的接收区和发送区,减少CPU的通信负载,简单应用可以不用考虑这些,GD ID编译后自动生成。

4 通信的诊断

在多个CPU通信时,有时通信会中断,是什么原因造成通信中断?我们编译完成后,在菜单“View”中点击“Scan Rates”和“GD Status”可以扫描系数和状态字。如图6所示:

6 通信诊断

S R 扫描频率系数。如图6 SR1.1 225,表示发送更新时间为225×CPU循环时间。范围为1255。通信中断的问题往往设置扫描时间过快。可改大一些。

GDS:每包数据的状态字(双字)。可根据状态字编写相应的错误处理程序,结构如下:

第一位:发送区域长度错误。

第二位:发送区数据块不存在。

第四位:全局数据包丢失。

第五位:全局数据包语法错误。

第六位:全局数据包数据对象丢失。

第七位:发送区与接收区数据对象长度不一致。

第八位:接收区长度错误。

第九位:接收区数据块不存在。

第十二位:发送方从新启动。

第三十二位:接收区接收到新数据。

GST:所有GDS 相“OR”的结果

如果编程者使用CP5511/5611编程卡可以首先诊断一下连线是否可靠,如上例中S7-300 MPI地址是2S7-400MPI地址是4,用CP卡连接到MPI网上(PROFIBUS接头必须有编程口)可以直接读出2,4号站,在“控制面板 ->  PG/PC interface      -> Diagnostics->read”读出所以网上站号,如图7所示:

7 使用网卡诊断站号

0号站位CP5611站号,如果没有读出24号站,说明连线有问题或MPI网传输速率不一致,可以把问题具体化。

5 事件触发的数据传送

如果需要控制数据的发送与接收,在某一事件,某一时刻,接收和发送所需要的数据,这时将用到事件触发的数据传送。这种通信方式通过调用CPU的系统功能SFC60 (GD_SND)SFC61(GD_RCV)来完成的,而且只有S7-400CPU支持,并且必须设置CPUSR(扫描频率)为0,可参考图8全局数据的组态画面:

8 S7-400CPU侧的SR0

与上面作法相同编译存盘后下载到相应的CPU中,然后在S7-400侧中调用SFC60/61控制接收与发送。

所需硬件:CPU315-2DPCPU416-2DP

所需软件:STEP7 V5.2 SP1

CIRCLE_IDBLOCK_ID参考GD ABC

例子中M1.11CPU416接收CPU315的数据MB20~MB29放到MB40MB49中,M1.01CPU416发送数据MB60~MB69CPU315MB60MB69