0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全局数据包通信简介

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-05-29 10:04 次阅读

1全局数据包通信简介

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

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

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

所需软件:STEP7 V5.2 SP1

4c9255ae-fd67-11ed-90ce-dac502259ad0.png注意: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:

4ca1bf94-fd67-11ed-90ce-dac502259ad0.png

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

4cc3677a-fd67-11ed-90ce-dac502259ad0.png

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

4ce682b4-fd67-11ed-90ce-dac502259ad0.png

图3设置通信区

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

3多个CPU通信

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

可以参考图3为

4cf5eb82-fd67-11ed-90ce-dac502259ad0.png

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

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

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

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

4d052a02-fd67-11ed-90ce-dac502259ad0.png

图4一个循环两个数据包

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

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

4d186cc0-fd67-11ed-90ce-dac502259ad0.png

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

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

4通信的诊断

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

4d2b2946-fd67-11ed-90ce-dac502259ad0.png

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

4d382c22-fd67-11ed-90ce-dac502259ad0.png

图7使用网卡诊断站号

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

5事件触发的数据传送

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

4d4a1f68-fd67-11ed-90ce-dac502259ad0.png

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

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

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

所需软件:STEP7 V5.2 SP1

4d67d58a-fd67-11ed-90ce-dac502259ad0.png

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中

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    5968

    浏览量

    135829
  • 软硬件
    +关注

    关注

    1

    文章

    289

    浏览量

    19181
  • 数据包
    +关注

    关注

    0

    文章

    251

    浏览量

    24359

原文标题:S7-300/400 通过全局数据包通信

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问如何获取蓝牙通信数据包

    各位大佬,我现在有两个蓝牙在通信,我想获取两个蓝牙相互通信数据包不知道有什么方法没
    发表于 05-07 06:35

    请问在串口通信数据包的帧头和帧尾怎样加入到数据包

    ,请问在串口通信中,数据包的帧头和帧尾(比如0x55,0xaa)是怎样加入到数据包的?是不是定义一个数组,将帧头和帧尾设置成0x55,0xaa,再将整个数组发送?在发送包含帧头帧尾的数据包
    发表于 03-30 05:55

    串口通信简介和STM32的串口通信

    串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节的通信方式。文章主要是串口通信简介和STM32的串口通信
    发表于 08-04 06:23

    SPI通信简介

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库 2.读入数据 总结SPI通信简介PCB芯片间的数据通信方式有很多种,其中
    发表于 08-12 07:04

    STM32F4串口通信简介

    STM32F4串口通信串口通信简介:串口通信,是指外设和计算机之间,通过数据信号线、地线等,按位进行传输数据的一种
    发表于 08-18 08:00

    89C52串口通信简介

    1、89C52串口通信简介2、串口通信需要配置的寄存器2-1、串行数据缓冲器SBUF2-2、串行控制寄存器SCON(1)SM0 SM1(2)SM2(3)REN(4)TB8(5)RB8(6)TI(7
    发表于 12-02 07:10

    STM32F103芯片实现USART串口通信简介

    本文主要叙述了STM32F103芯片实现USART串口通信简介,通过库函数实现STM32F103芯片给电脑发送"Hello,world!"实验环境:keil μVision
    发表于 01-21 12:39

    网络数据包捕获机制研究

    网络数据包捕获技术,是实现入侵检测、网络安全审计的关键技术。本文改进了国外传统的数据包捕获函数库Libpcap 捕获数据包的方案。原方案在网卡捕获到数据包后,
    发表于 09-01 10:09 9次下载

    基于Jpcap的数据包捕获器的设计与实现

    本文研究了以太网数据包的捕获机制,实现了基于JPcap的网络数据包捕获工具,其基本原理是通过调用Jpcap库捕获本地网络上的所有数据包,然后对数据包进行协议解码,从而可以实
    发表于 01-15 13:47 38次下载

    西门子光纤通信简介

    西门子光纤通信简介
    发表于 08-17 15:39 34次下载

    数据包过滤原理

    数据包过滤技术数据包过滤原理              数据包过滤技术是防火墙最常用的技术。对于一
    发表于 06-16 23:44 4584次阅读
    <b class='flag-5'>数据包</b>过滤原理

    什么是数据包

    什么是数据包? 您在互联网上做的一切都涉及到数据包。例如,您接收的每个网页都以一系列数据包的形式传入,您发送的每封电子邮件都以一系列数据包的形式传出。以
    发表于 08-03 09:13 2007次阅读

    西门子PLC通信技术培训教程

    本章结合具体实例,详细介绍MPI网络的组建方法、如何用全局数据包通信方式实现PLC之间的MPI网络通信等等。
    发表于 09-02 17:27 0次下载
    西门子PLC<b class='flag-5'>通信</b>技术培训教程

    网络数据包分析软件wireshark的基本使用

    Wireshark(前称Ethereal)是一个网络数据包分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据
    的头像 发表于 09-29 14:48 2993次阅读

    Wireshark网络数据包分析软件简介

    wireshark是一个免费开源的网络数据包分析软件,功能十分强大。可以截取各种网络数据包,显示网络数据包的详细信息。
    的头像 发表于 04-26 09:52 2742次阅读
    Wireshark网络<b class='flag-5'>数据包</b>分析软件<b class='flag-5'>简介</b>