1 全局数据包通信简介对于PLC之间的数据交换,只关心数据的发送区和接收区,全局数据包的通信方式是在配PLC硬件的过程中,组态所要通信PLC站之间的发送区和接收区,不需要任何程序处理,这种通信方式只适合S7-300/300/400 PLC之间相互通信。
下面将以举例的方式介绍全局数据包通信,使用的软硬件如下:所需硬件:CPU315-2DP,CPU416-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后出现STATION1,STATION2和MPI网,点击MPI,再点击菜单“Options”->“Define Global Date”进入组态画面如图1、2:图1进入全局数据组态界面图2 全局数据组态界面2) 插入所有需要通信的PLC站CPU双击GD ID右边的CPU栏选择需要通信PLC站的CPU。
CPU栏总共有15列,这就意味者最多有15个CPU能够参与通信。
在每个CPU栏底下填上数据的发送区和接收区,例如:CPU416-2DP的发送区为DB1.DBB0~DB1.DBB21,可以填写为DB1.DBB0:22 ,然后在菜单“edit”选择“Sender”作为发送区。
CPU315-2DP的接收区为DB1.DBB0~21,可以填写为DB1.DBB0:22。
编译存盘后,把组态数据分别下载到CPU中,这样数据就可以相互交换了。
发送接收数据区的设置参考图3:图3 设置通信区地址区可以为DB,M,I,Q,区,长度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个,所以最多和4个CPU通信。
S7-400CPU414-2DP最多为 8个,S7-400CPU416-2DP最多为 16个。
B:全局数据包的个数。
表示一个循环有几个全局数据包,例如两个S7站相互通信一个循环有两个数据包。
如图4所示:图4 一个循环两个数据包C:一个数据包里的数据区数可以参考图5: CPU315-2DP 发送4组数据到CPU416-2DP,4个数据区是一个数据包。
从上面可以知道一个数据包最大为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循环时间。
范围为1~255。
通信中断的问题往往设置扫描时间过快。
可改大一些。
GDS:每包数据的状态字(双字)。
可根据状态字编写相应的错误处理程序,结构如下:第一位:发送区域长度错误。
第二位:发送区数据块不存在。
第四位:全局数据包丢失。
第五位:全局数据包语法错误。
第六位:全局数据包数据对象丢失。
第七位:发送区与接收区数据对象长度不一致。
第八位:接收区长度错误。
第九位:接收区数据块不存在。
第十二位:发送方从新启动。
第三十二位:接收区接收到新数据。
GST:所有GDS 相“OR”的结果如果编程者使用CP5511/5611编程卡可以首先诊断一下连线是否可靠,如上例中S7-300 MPI地址是2,S7-400MPI地址是4,用CP卡连接到MPI网上(PROFIBUS接头必须有编程口)可以直接读出2,4号站,在“控制面板 ” -> “PG/PC interface” ->“ Diagnostics”->“read”读出所以网上站号,如图7所示:图7 使用网卡诊断站号0号站位CP5611站号,如果没有读出2,4号站,说明连线有问题或MPI网传输速率不一致,可以把问题具体化。
5 事件触发的数据传送如果需要控制数据的发送与接收,在某一事件,某一时刻,接收和发送所需要的数据,这时将用到事件触发的数据传送。
这种通信方式通过调用CPU的系统功能SFC60 (GD_SND),SFC61(GD_RCV)来完成的,而且只有S7-400CPU支持,并且必须设置CPU的SR(扫描频率)为0,可参考图8全局数据的组态画面:图8 在S7-400CPU侧的SR为0与上面作法相同编译存盘后下载到相应的CPU中,然后在S7-400侧中调用SFC60/61控制接收与发送。
所需硬件:CPU315-2DP,CPU416-2DP。
所需软件:STEP7 V5.2 SP1CIRCLE_ID,BLOCK_ID参考GD A。
B。
C。
例子中M1.1为1时CPU416接收CPU315的数据MB20~MB29放到MB40~MB49中,M1.0为1时CPU416发送数据MB60~MB69到CPU315MB60~MB69中