PLC之间的MPI通讯-全局数据包通讯方式

合集下载

对比两台S7300PLC之间的MPI通讯

对比两台S7300PLC之间的MPI通讯

文 / 邱利军 陈春先 赵 洋对比两台S7300PLC 之间的MPI 通讯摘 要:本文提出了MPI网络通讯在教学中重要性和MPI网络通讯的分类,就日常教学中如何解决两台S7-300PLC之间通过MPI网络使用全局数据包设置的通讯教学问题进行了分析,从硬件、软件等方面论述了MPI使用全局数据包网络通讯的基础,并归纳、解决了教学中MPI使用全局数据包网络通讯教学的方法。

关键词:PLC GD MPI技术与应用APPLICATION编辑 孙祺童当今工业控制现场通常需要多个PLC 之间建立主从通讯,即一个PLC 做主站,其余PLC 做从站。

在实际工作现场,各集成商选用的PLC 品牌、型号不同,所以各自的通讯方式也是有很大区别的。

S7-300 PLC 之间可以建立MPI (MultiPoint Interface)通讯、Profibus-DP 通讯或工业以太网(Ethernet)通信等。

美国A-B PLC 之间可以建立工业以太网(Ethernet)、ControlNet 或DeviceNet 通讯。

三菱PLC 之间可以建立以N ∶N 通讯或Cclink 通讯。

西门子S7-300无论是在学校还是企业都占有很高的市场份额, MPI 通讯在技术层面上更加丰满,使用方面更加简单方便。

教师不能闭门造车,特别是职业教育教学内容要深入社会、了解社会,与企业的需求为教学目标,真正做到与时俱进。

因此,日常教学中PLC 之间通讯成为重要教学内容之一。

本文就 S7-300PLC 之间的MPI 通讯教学的实现加以论述。

一、MPI 通信介绍MPI 通信是用于S7-200/300/400等PLC 之间的通讯,MPI 通信速率范围很宽,通常默认设置为187.5kbit/s,通信数据量不大时的一种简单经济的通信方式。

通讯时要配置相关的通信卡才能进行数据交换。

MPI 网络的通信速率要达到12Mbit/s 的条件是通讯网络接口要设置PROFIBUS 接口。

S7-300之间的MPI全局数据通信

S7-300之间的MPI全局数据通信

另一个CPU接收。全局数据环有以下2种:
①环内包含2个以上的CPU,其中一个发送数据包,其它的
CPU接收数据;
②环内只有2个CPU,每个CPU可既发送数据又接受数据。
S7-300的每个CPU可以参与最多4个不同的数据环,在一个
MPI网上最多可以有15个CPU通过全局通讯来交换数据。
其实,MPI网络进行GD通信的内在方式有两种:一种是一对
整理ppt
9
四、全局数据包通信方式
全局数据(GD)通信方式以MPI分支网为基础而设计的。 在S7中,利用全局数据可以建立分布式PLC间的通讯联系, 不需要在用户程序中编写任何语句。S7程序中的FB、FC、 OB都能用绝对地址或符号地址来访问全局数据。最多可以在 一个项目中的15个CPU之间建立全局数据通讯。
整理ppt
11
四、全局数据包通信方式
在PLC操作系统的作用下,发送CPU在它的一个扫描循环
结束时发送全局数据,接收CPU在它的一个扫描循环开始时
接收GD。这样,发送全局数据包中的数据,对于接收方来说
是“透明的”。也就是说,发送全局数据包中的信号状态会
自动影响接收数据包;接收方对接收数据包的访问,相当于
一方式,当GD环中仅有两个CPU时,可以采用类全双工点对点
方式,不能有其它CPU参与,只有两者独享;另一种为一对多
(最多4个)广播方式,一个点播,其它接收。
整理ppt
14
五、MPI通信实例
例:要求通过MPI网络配置,实现2个CPU 314之间的全 局数据通信。第一台PLC的IB0控制第二台PLC的QB0,第 二台PLC的IB0控制第一台PLC的QB0。
用数据包号码(GD Packet Number)来标识,其中的变量

单元2_MPI全局数据通信解析

单元2_MPI全局数据通信解析

任务2 全局数据通信过程实现
1.网络组态及参数设置
1)建立MPI网络
在STEP 7中建立一个新项目,在此项目下 插入两个PLC站,分别为STATION1和STATION2, 并分别插入CPU完成硬件组态,建立MPI网络并 配置MPI的站地址和通信速率,本例中MPI的站 地址分别设置为2号站和4号站,通信速率为 187.5kbit/s。双击“GD ID”右边来自CPU栏选择需要通信的CPU。
任务2 全局数据通信过程实现
1.网络组态及参数设置
3)插入所有需要通信的CPU 双击“GD ID”右边的CPU栏选择需要通信 的CPU,CPU栏总共有15列,这就意味着最多 有15个CPU能够参与通信。
任务2 全局数据通信过程实现
在出现的“Select CPU”对话框中,双击 SIMATIC 300(1),再双击1#站的CPU的具体型号。
《PLC应用技术》教学课件
模块四 基于西门子S7-300 PLC 的MPI通信技术实现
单元二:PLC的MPI全局数据通信
任务1 全局数据通信过程介绍
1
2
任务2
全局数据通信过程实现
任务1 全局数据通信过程介绍 1.概述
在MPI网络中的各个中央处理单元(CPU)之间能 相互交换少量数据,只需关心数据的发送区和接收 区,这一过程称做全局数据块(GD)通讯。 全局数据块的通讯方式是在配置PLC硬件的过 程中,组态所要通讯的PLC站之间的发送区和接收区 ,不需要任何程序处理,这种通讯方式只适合S7300/400 PLC之间相互通讯。
图 在CPU下面一行中生成1号GD 环1号GD包中的1号数据
任务2 全局数据通信过程实现
3.注意:
1)输入全局数据时只能输入绝对地址,不能输 入符号地址。 2)包含定时器和计数器地址的单元只能作为发 送方。 3)在每一行中应定义一个并且只能有一个CPU 作为数据的发送方。 4)同一行中各单元的字节数应相同。

两台西门子S7-300系列PLC如何进行MPI通讯?

两台西门子S7-300系列PLC如何进行MPI通讯?

全局数据通信是PLC之间进行的不需要编程通过MPI接口在CPU间循环地交换少量数据,当过程映像被刷新时,在循环扫描检测点上进行数据交换;而无组态的连接的MPI通信(编程通信)通过调用SFC67和SFC68来实现,MPI无组态连接就是MPI通信时,不需要组态,只要编写通信程序即可实现通信,PLC 之间可以采用双边编程通信和单边编程通信方式,你这里应该是采用单边编程通信方式,因为CPU313C需要从老系统上用MpI通讯读取一个模拟量和16个数字量的数据,只要在CPU313C上进行编程就可以实现数据交换,编程通信要比全局数据传输的数据量要大,速度更快;你首先必须把两个PLC之间的MPI端口连接起来,设定主站CPU313C的MPI 通信参数(波特率187.5kbit/s)和主站的MP地址如“3”,不能与老的PLC 的MPI地址重复,把两个站的波特率设定一样,各自下载到PLC中;因为你只想老系统上用MpI通讯读取一个模拟量和16个数字量的数据,在CPU313C中单边编程,在读取数据区只要指定对方的PLC的MPI地址和数据区就可以了。

X_PUT(SFC68)为发送数据的指令,通过此指令将数据写入不在同一个本地S7站中的通信伙伴,其中DEST_ID为对方的MPI地址(这里指你的老系统PLC 的MPI地址)和VAR_ADDR为对方的数据区,SD为本地数据区,必须保证SD参数定义的数据长度和数据类型与通信伙伴上VAR_ADDR一致;X_GET(SFC67)为接收数据的指令,可以从本地站S7站以外的通信伙伴(这里指老系统上PLC站)中读取数据,其中参数DEST_ID和VAR_ADDR分别指对方的 MPI地址和对方的数据区,RD为本机的数据区必须保证RD参数定义的接收区(CPU313C)至少和由VAR_ADDR参数定义的要读取的区域一样大,而且类型必须相匹配。

如果不想要全局数据通信,只要在硬件组态界面中选择菜单Options(选项)/Define Global Data“(定义全局数据)界面中,打开全局变量发送和接收组态,断口连接,执行保存编译,下载到PLC就可以了。

PLC之间的MPI通信调用系统功能的通信方式1

PLC之间的MPI通信调用系统功能的通信方式1

PLC— PLC 之间的MPI 通信----调用系统功能的通信方式communication between PLCs through MPI network --------call SFC关键词 PLC、MPI、调用系统函数块Key Words PLC、MPI、Call SFCA&D Service & Support Page 2-11目录1 调用系统功能通信简介 (4)2 双向通信 (4)3 单向通信 (7)A&D Service & Support Page 3-111 调用系统功能通信简介调用系统功能(SFC65~69)来实现MPI的通信,这种通信方式适合于S7-300/400/200之间通信,一些非常老的S7-300/400 CPU不含有SFC65~69,所以不能用这种方式通信,只能用全局数据包的方式来通信,判断一个CPU是否含有通信的SFC,可以在联机的情况下,在线查看所用的程序块,看一看是否包含SFC65~69。

通过调用SFC来实现通信又可分为两种方式:双向通信和单项通信。

以例子的方式介绍通信过程,例子中使用的硬件为CPU315-2DP,CPU416-2DP。

软件为:STEP7 V5.2 SP1。

2 双向通信在通信的双方都需要调用通信块,一方调用发送块,另一方就要调用接收块来接收数据。

这种通信方式适用S7-300/400之间通信,发送块是SFC65(X_SEND),接收块是SFC66(X_RCV)。

下面以举例的形式说明通信实现的过程:在STEP7中创建两个站STATION1 CPU 416 MPI站为2,STATION2 CPU315-2DP MPI站号为4,2号站发送2包数据给4号站,4号站判断后放在相应的数据区中。

在2号站OB35中调用SFC65,如果扫描时间太短,发送频率太块,对方没有响应,将加重CPU的负荷,在OB35中调用发送块,发送任务将间隔100MS执行一次,编写发送程序如下A&D Service & Support Page 4-11参数中REQ 为发送请求为1时发送。

从零开始学PLC之MPI通信

从零开始学PLC之MPI通信

从零开始学PLC之MPI通信调用系统功能SFC用系统功能SFC65~69,可以在无组态情况下实现PLC之间的MPI的通讯,这种通讯方式适合于S7-300、S7-400和S7-200之间的通讯。

无组态通讯又可分为两种方式:双向通讯方式和单向通讯方式。

无组态通讯方式不能和全局数据通讯方式混合使用。

1.双向通讯方式双向通讯方式要求通讯双方都需要调用通讯块,一方调用发送块发送数据,另一方就要调用接收块来接收数据。

适用S7-300/400之间通讯,发送块是SFC65(X_SEND),接收块是SFC66(X_RCV)。

下面举例说明如何实现无组态双向通讯。

例:设2个MPI站分别为MPI_Station_1(MPI地址为设为2)和MPI_Station_2(MPI地址设为4),要求MPI_Station_1站发送一个数据包到MPI_Station_2站。

生成MPI硬件工作站打开STEP 7,创建一个S7项目,并命名为“双向通讯”。

在此项目下插入两个S7-300的PLC站,分别重命名为MPI_Station_1和MPI_Station_2。

MPI_Station_1包含一个CPU315-2DP;MPI_Station_2包含一个CPU313C-2DP。

设置MPI地址完成2个PLC站的硬件组态,配置MPI地址和通信速率,在本例中CPU315-2DP和CPU313C-2DP的MPI地址分别设置为2号和4号,通信速率为187.5kbit/s。

完成后点击按钮,保存并编译硬件组态。

最后将硬件组态数据下载到CPU。

编写发送站的通讯程序在MPI_Station_1站的循环中断组织块OB35中调用SFC65,将I0.0~I1.7发送到MPI_Station_2站。

MPI_Station_1站OB35中的通讯程序如图所示。

编写接收站的通讯程序在MPI_Station_2站的主循环组织块OB1中调用SFC66,接收MPI_Station_1站发送的数据,并保存在MB10和MB11中。

西门子PLC的MPI是如何进行网络通讯的详细资料讲解

西门子PLC的MPI是如何进行网络通讯的详细资料讲解

西门子PLC的MPI是如何进行网络通讯的详细资料讲解随着科技的进步,智能化芯片的发展逐渐成熟起来设备的智能化程度也相应提高,随之智能化设备之间基于开放标准的现场总线技术构成的自动化控制系统也逐渐成熟起来。

于是西门子PLC除了使用工业以太网和profibus。

在我们常用的编程、组态、通讯还用到了MPI、ASI等技术。

这些技术协议实现西门子PLC主机与智能从站之间的通讯,甚至兼容符合第三方产品的通讯协议。

西门子通讯大致有MPI网络通讯、PROFIBUS网络通讯、工业以太网通讯这三种。

西门子PLC的MPI网络通讯MPI叫多点接口通信,一般用于小范围、小点数现场级通讯,可实现西门子PLC的操作面板(TP/OP)和上位机之间的数据交换,例如西门子PLCs7-200/300/400,它的通讯速率19.2Kbit-12Mbit,最多可连接32个接点,通讯距离50m以内。

若以中继器连接,站之间的距离可达9100m,可最多也只能用10个中继器,而且它还占用节点数。

MPI的网络组建:利用STEP7的configuretion里的功能可以给每一个网络节点分配一个MPI地址和最高地址,连接是需要在MPI网络的第一个节点和最后一个节点加终端电阻。

PLC以MPI来实现通讯,可用三种方式解决。

全局数据包通讯方式、无组态连接通讯方式、组态连接通讯方式。

实现全局数据包通讯方式:在PLC硬件配置过程,组态需要通讯的PLC站之间的发送区和接收区不需要任何程序处理,只适应s7-300/400之间的通讯。

最多也只在一个项目中的15个CPU之间建立全局数据。

实现全局数据通讯方法:全局数据包通讯SMATIC Manage 里设置s7-300/400MPI的地址,然后在选项/定义全局数据里定义需要通讯的数据地址。

带>符号的表示发送数据,对应栏里的是接受数据,最终将设置好的项目下载到PLC即可实现MPI通讯。

无组态连接通讯方式:它适用于S7-200/300/400之间通讯,却不能与全局数据包通讯混淆。

(仅供参考)MPI通信全局数据包通信方式

(仅供参考)MPI通信全局数据包通信方式

MPI 通信通信--全局数据包通信方式全局数据包通信方式组态步骤组态步骤组态步骤概述:MPI 通信是一种比较简单的通信方式,网络通信的速率是19.2kbit/s~12Mbit/s,网络最多支持32个节点,最大通信距离是50m,也可以通过中继器扩展通信距离,但中继器也占用节点。

MPI 通信一般有三种通信方式: ★ 全局数据包通信方式 ★ 无组态连接通信方式 ★ 组态连接通信方式本例以两个CPU315-3DP MPI 通信为例,简要介绍MPI 通信全局数据包通信的组态步骤。

1、新建项目“MPI-全局数据包通信”项目,并插入两个S7-300站点。

2、组态SIMATIC 300(1)的硬件(双击管理器中的“硬件”图标), 依次放入导轨,电源模块和CPU 模块。

在放入CPU 模块时,会弹出“属性-PROFIBUS 接口”对话框,因使用MPI 通信,点击“取消”按钮就可以了。

3、组态结果如下所示:点击组态MPI属性4、双击槽架中CPU所在的行,出现“属性-CPU”对话框。

5、点击“属性…”按钮,在“属性-MPI”对话框中设置本站的地址为2,选中“子网”列表中的MPI(1)项,再点击“属性…”按钮可以设置MPI通信的波特率。

至此,2号站已经组态完毕,然后编译下载。

6、和组态2号站方法一样,组态另一个S7-300站(站地址为4号)。

下面组态MPI网络2号站和4号站的发送与接收数据区。

7、在管理器中,选中“MPI-全局数据包通信”标题。

8、双击右边窗口中的“MPI”图标,出现NetPro环境窗口。

9、选中MPI 网络线(网络线变粗),再点击菜单栏“选项”,再点击下拉菜单下的“定义全局数据”,打开MPI发送与接收画面。

10、双击图中的区域。

11、在出现的的“选择CPU”画面中,选择要组态的CPU。

双击此区域12、在如图所示的方框内写入“MB10:10”。

MB10MB10::10表示的是从MB10开始的10个字节(后面的10是字节数)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

下面将以举例的方式说明全局数据包通讯的具体方法:
硬件需求:CPU315-2DP,CPU416-2DP。

软件需求:STEP7 V5.2 SP1
1). 首先打开编程软件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”进入组态画面如下图:
全局数据组态画面
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中,这样数据就可以相互交换了。

例子程序参见光盘,项目名为MPI_GD。

参考下图:
地址区可以为DB,M,I,Q,区,长度S7-300最大为22个字节,S7-400最大为54个字节。

发送区与接收区的长度应一致,所以在上例中通讯区最大为22个字节。

3). 多个CPU通讯
了解多个CPU通讯首先要了解GD ID参数,编译以后,每行通讯区都会有GD ID号,可以参考上图为GD1 .1 .1
A:全局数据包的循环数,每一循环数表示和一个CPU通讯,例如两个S7-300CPU通讯,发送与接收是一个循环,S7-400中三个CPU之间的发送与接收是一个循环,循环数与CPU有关,S7-300CPU 最多为4个,所以最多和4个CPU通讯。

S7-400CPU414-2DP最多为8个,S7-400CPU416-2DP最多为 16个。

B:全局数据包的个数。

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

一个循环有两个数据包。

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

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

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

如下图所示:
S R:扫描频率系数。

如上图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”读出所以网上站号,如下图所示:
0号站位CP5611的站号,如果没有读出2,4号站,说明连线有问题或MPI网传输速率不一致,可以把问题具体化。

5). 事件触发的数据传送
如果我们需要控制数据的发送与接收,如在某一事件或某一时刻,接收和发送所需要的数据,这时将用到事件触发的数据传送方式。

这种通讯方式是通过调用CPU的系统功能SFC60 (GD_SND)和SFC61(GD_RCV)来完成的,而且只支持S7-400CPU,并且相应设置CPU的SR(扫描频率)为0,可参考下图全局数据的组态画面:
在S7-400CPU侧的SR为0
与上面作法相同编译存盘后下载到相应的CPU中,然后在S7-400中调用SFC60/61控制接收与发送。

例子程序参见光盘,项目名为MPI_GD_EVENT 硬件需求:CPU315-2DP,CPU416-2DP。

软件需求:STEP7 V5.2 SP1。

具体程序代码为:
CIRCLE_ID,BLOCK_ID可参考GD 中的A,B,C参数。

例子中当M1.1为1时CPU416接收CPU315的数据, 将MB20~MB29中的数据放到MB40~MB49中。

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

相关文档
最新文档