课程咨询
工作时间: 9:00-18:00
QQ
QQ
0755-28917957
拨打咨询电话:0755-28917957
电话
电话
微信
微信
回顶
好料!西门子S7-300/400 PLC 之间的MPI全局数据包通讯方式
荣久学院 ● 2018-12-18 13:51:02

西门子S7300系列

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


    下面将以举例的方式说明全局数据包通讯的具体方法:

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

    软件需求:STEP7 V5.2 SP1

 

    一、首先打开编程软件 STEP7,建立一个新项目

    如
 MPI_GD,在此项目下插入两个 PLC 站分别为STATION1/CPU416-2DP  STATION2/CPU315-2DP,并分别插入 CPU 完成硬件组态,配置 MPI的站号和通讯速率,在本例中 MPI的站号分别设置为 2 号站和 4 号站,通讯速率为 187.5Kbit/S 

    这些工作完成以后,可以组态数据的发送区和接收区。点击项目名MPI_GD 后出现 STATION1,STATION2  MPI 网,点击 MPI,再点击菜单“Options Define Global Date”进入组态画面如下图:

西门子300/400PLC全局数据包通讯方式

西门子300/400PLC全局数据包通讯方式

    二、插入所有需要通讯的 PLC  CPU

西门子300/400PLC全局数据包通讯方式

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

例子程序参见光盘,项目名为 MPI_GD。参考下图:

西门子300/400PLC全局数据包通讯方式

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

 

    三、多个CPU通讯

西门子300/400PLC全局数据包通讯方式

    A:全局数据包的循环数,每一循环数表示和一个 CPU 通讯,例如两个S7-300CPU 通讯,发送与接收是一个循环,S7-400 中三个 CPU之间的发送与接收是一个循环,循环数与 CPU 有关,S7-300CPU 最多为 4 个,所以最多和 4  CPU 通讯。S7-400CPU414-2DP 最多为 8 个,S7-400CPU416-2DP 最多为 16 个。

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


    相互通讯。一个循环有两个数据包。如下图:

西门子300/400PLC全局数据包通讯方式

    一个循环两个数据包


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


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


西门子300/400PLC全局数据包通讯方式

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


    四、
 通讯的诊断


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

西门子300/400PLC全局数据包通讯方式

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

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

西门子300/400PLC全局数据包通讯方式

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

西门子300/400PLC全局数据包通讯方式

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


    五、事件触发的数据传送


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

西门子300/400PLC全局数据包通讯方式

    在 S7-400CPU 侧的 SR  0


    与上面作法相同编译存盘后下载到相应的
 CPU 中,然后在 S7-400 中调用SFC60/61 控制接收与发送。例子程序参见光盘,项目名为MPI_GD_EVENT


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

    软件需求:STEP7 V5.2 SP1


    具体程序代码为:

西门子300/400PLC全局数据包通讯方式

    CIRCLE_IDBLOCK_ID 可参考 GD 中的 A,B,C 参数。


    例子中当
 M1.1  1  CPU416 接收 CPU315 的数据 MB20~MB29 中的数据放到 MB40MB49 中。


    当
 M1.0  1  CPU416 发送数据, MB60~MB69 中的数据发送到CPU315 MB60MB69 中。

 

    以上,欢迎分享及收藏!


相关文章:

加气站控制程序图!详细解析西门子PLC编程新案例,收好不谢
技术共享