• {{item.name}}
SIMATIC S7-400系列 {{item.name}}
{{item2.name}}
更多

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

star star star star star
0 分
  • 软件编程
  • 通信(通讯)
  • S7-300/400
发布时间:2024年04月25日
  • 0
  • 44
S7-300/400 通过全局数据包通信

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

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:

A computer screen shot of a computer

Description automatically generated

图1进入全局数据组态界面

A screenshot of a computer

Description automatically generated

图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:

A screenshot of a computer

Description automatically generated

图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所示:

A computer screen shot of a computer

Description automatically generated

图4 一个循环两个数据包

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

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

A computer screen shot of a computer

Description automatically generated

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

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

4 通信的诊断

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

A screenshot of a computer

Description automatically generated

图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所示:

A computer screen shot of a computer program

Description automatically generated

图7 使用网卡诊断站号

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

5 事件触发的数据传送

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

A screenshot of a computer

Description automatically generated

图8 在S7-400CPU侧的SR为0

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

所需硬件:CPU315-2DP,CPU416-2DP。

所需软件:STEP7 V5.2 SP1

A screenshot of a computer code

Description automatically generated

CIRCLE_ID,BLOCK_ID参考GD A。B。C。

例子中M1.1为1时CPU416接收CPU315的数据MB20~MB29放到MB40~MB49中,M1.0为1时CPU416发送数据MB60~MB69到CPU315MB60~MB69中


剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

0元领课点我

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。