搜档网
当前位置:搜档网 › 3.组通信 mpi

3.组通信 mpi

3.组通信 mpi
3.组通信 mpi

组通信

?组(Groups):一组进程标识所组成的集合

?通信子:定义和封装MPI通信的基本模型,通过上下文(tag)来划分通信空间。每个MPI通信函数都要通过通信子来确定其通信环境,每个通信子都包含了一组进程。

?分类:

?组内通信子:利用一个通信子约束的进程集合

?MPI环境启动后,自动创建MPI_COMM_WORLD、MPI_COMM_SELF

两个组内通信子

?组间通信子:将两个组绑定在一起,共享一个context

组通信,也称集合通信,或集群通信

与点对点通信主要区别是,它需要一个特定组内的所有进程同时参与通信主要功能是对一组进程进行通信、同步和计算。

组通信分类

一对多组通讯

广播:

intMPI_Bcast(void* buffer,intcount,MPI_Datatypedatatype,int root, MPI_Commcomm)

IN/OUT buffer 通信消息缓冲区的起始地址(可选数据类型)

IN count 将广播出去/或接收的数据个数(整型,每个进程接收的数据个数)

IN datatype广播/接收数据的数据类型(句柄,其他进程与root进程数据类型保持一致) IN root广播数据的根进程的标识号(整型)

IN comm通信域(句柄,其他进程与root进程数据类型保持一致)

MPI_BCAST是从一个序列号为root的进程将一条消息广播发送到组内的所有进程,包括它本身在内.调用时组内所有成员都使用同一个comm和root,其结果是将根的通信消息缓冲区中的消息拷贝到其他所有进程中去.

根进程发送元素个数指的是发送给每一个进程的数据元素的个数,

而不是总的数据个数。这就意味着在每个进程和根进程之间,

发送的数据个数必须和接收的数据个数相等。

散发:

MPI_Scatter(void* sendbuf, intsendcount, MPI_Datatypesendtype,void* recvbuf, intrecvcount, MPI_Datatyperecvtype,int root, MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

IN sendcount1发送到各个进程的数据个数(整型)

IN sendtype2发送消息缓冲区中的数据类型(句柄)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)

IN recvcount待接收的元素个数(整型)

IN recvtype接收元素的数据类型(句柄)

IN root发送进程的序列号(整型)

IN comm通信域(句柄)

?注意:

—根进程中的sendcount1和sendtype2必须和所有进程的recvcount和recvtype相同。

—根进程发送元素个数指的是发送给每一个进程的数据元素的个数,而不是总的数据个数。这就意味着在每个进程和根进程之间,发送的数据个数必须和接收的数据个数相等。

—参数root和comm在所有进程中都必须是一致的

代码006_collectivescatter

多对一组通讯

收集:

MPI_Gather(void* sendbuf, intsendcount, MPI_Datatypesendtype,void* recvbuf, intrecvcount, MPI_Datatyperecvtype,int root, MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

IN sendcount发送消息缓冲区中的数据个数(整型)

IN sendtype发送消息缓冲区中的数据类型(句柄)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)[recvbuf=进程个数*发送个数*类型长度]

IN recvcount待接收的元素个数(整型,仅对于根进程有意义)

IN recvtype接收元素的数据类型(句柄,仅对于根进程有意义)

IN root接收进程的序列号(整型)

IN comm通信域(句柄)

MPI_Gatherv可以从不同的进程接收不同数量的数据。为此,接收数据元素的个数recvcounts是一个数组,用于指明从不同的进程接收的数据元素的个数。根从每一个进程接收的数据元素的个数可以不同,但是发送和接收的个数必须一致。除此之外,它还为每一个接收消息在接收缓冲区的位置提供了一个位置偏移displs数组,用户可以将接收的数据存放到根进程消息缓冲区的任意位置。

数据收集示例:006_collective

规约:(相当于进行了gether函数后再多了一步计算功能)————PPT25

MPI_Reduce(void* sendbuf, void* recvbuf, int count, PI_Datatype datatype, MPI_Op op, int root, MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

OUT recvbuf接收消息缓冲区中的地址(可选数据类型)

IN count发送消息缓冲区中的数据个数(整型)

IN datatype发送消息缓冲区的元素类型(句柄)

IN op归约操作符(句柄)

IN root根进程序列号(整型)

IN comm通信域(句柄)

多对多组通信多对多中理解其中的通信过程关于组收集的函数*

组收集:————PPT27

MPI_Allgather(void* sendbuf, intsendcount, MPI_Datatypesendtype,void* recvbuf, intrecvcount, MPI_Datatyperecvtype,MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

IN sendcount发送消息缓冲区中的数据个数(整型)

IN sendtype发送消息缓冲区中的数据类型(句柄)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)

IN recvcount从其它进程中接收的数据个数(整型)

IN recvtype接收消息缓冲区的数据类型(句柄)

IN comm通信域(句柄)

相当于每一个进程都作为ROOT执行了一次MPI_GATHER调用

组规约:————PPT25

规约并散发:————PPT26

MPI_Reduce_scatter(void* sendbuf, void* recvbuf, int *recvcounts,MPI_Datatype

datatype, MPI_Op op, MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)

IN recvcounts接收数据个数(整型数组)

IN datatype发送缓冲区中的数据类型(句柄)

IN op操作(句柄)

IN comm通信域(句柄)

全互换:

MPI_Alltoall(void* sendbuf, intsendcount, MPI_Datatypesendtype,void* recvbuf, intrecvcount, MPI_Datatyperecvtype,MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

IN sendcount发送到每个进程的数据个数(整型)

IN sendtype发送消息缓冲区中的数据类型(句柄)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)

IN recvcount从每个进程中接收的元素个数(整型)

IN recvtype接收消息缓冲区的数据类型(句柄)

IN comm通信域(句柄)

效果就是矩阵转置

扫描:

MPI_Scan(void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Commcomm)

IN sendbuf发送消息缓冲区的起始地址(可选数据类型)

OUT recvbuf接收消息缓冲区的起始地址(可选数据类型)

IN count输入缓冲区中元素的个数(整型)

IN datatype输入缓冲区中元素的类型(句柄)

IN op操作(句柄)

IN comm通信域(句柄)

作用:每一个进程都对排在它前面的进程进行归约操作

点到点通信和组通信的区别

点到点》在通信过程中明确了进程的进程号

组通信内一对多和多对一只有根进程的操作其他都是面向所有进程

不同:指定的发送和接收的进程号或进程个数

相同:如果使用了组内通信需要指定通信域都在通信域内

电气逻辑PLC之间的MPI通信详解

(2)PC侧参数设置 在PC侧痛要也要设置MPI参数,在“控制面板”→“Set PG/PC Interface”中选择所用的编程卡,这里为CP5611,访问点选择“S7ONLIEN”, 4.全局数据包通信方式 对于PLC 之间的数据交换,我们只关心数据的发送区和接收区,全局数据包的通讯方式是在配置PLC 硬件的过程中,组态所要通讯的PLC 站之间的发送区和接收区,不需要任何程序处理,这种通讯方式只适合S7-300/400 PLC之间相互通讯。 实验步骤如下: ①建立MPI网络首先打开编程软件STEP7,建立一个新项,在此项目下插入两个PLC 站分别为SIMATIC 400/CPU412-2DP 和SIMATIC 300/CPU313C-2DP,并分别插入CPU 完成硬件组态,配置MPI 的站号和通讯速率,在本例中MPI 的站号分别设置为5号站和4 号站,通讯速率为187.5Kbit/S 。 ②组态数据的发送和接收区选中MPI网络,再点击菜单“Options” →“Define Global Date”进入组态画面如图所示。 ③插入所有需要通讯的PLC 站CPU 双击GD ID 右边的CPU 栏选择需要通讯PLC 站的CPU。CPU 栏总共有15 列,这就意味者最多有15 个CPU 能够参与通讯。在每个CPU 栏底下填上数据的发送区和接收区,例如: CPU412-2DP 的发

送区为DB1.DBB0~DB1.DBB21,可以填写为DB1.DBB0:22 (其中“DB1.DBB0”表示起始地址,“22”表示数据长度)然后在菜单“edit”项下选择“Sender”作为发送区。而CPU313C-2DP 的接收区为DB1.DBB0~21,可以填写为DB1.DBB0:22。如图所示。编译存盘后,把组态数据分别下载到CPU 中,这样数据就可以相互交换了。 注意:发送区和接收区的长度必须一致,地址区可以为DB、M、I、Q区,S7-300地址区长度最大为22字节,S7-400地址区长度最大为54字节。 ④通信的诊断在多个CPU 通讯时,有时通讯会中断,可用通过下述方法进行监测:在菜单“View”中点击“Scan Rates”和“GD Status”可以扫描系数和状态字,如图所示。 SR:扫描频率系数。如上图SR1.1 为225,表示发送更新时间为225×CPU 循环时间。范围为1~255。通讯中断的问题往往设置扫描时间过快,可改大一些。 GSD:每包数据的状态字(双字)。可根据状态字编写相应的错误处理程序,结构如下: 第一位:发送区域长度错误。 第二位:发送区数据块不存在。 第四位:全局数据包丢失。 第五位:全局数据包语法错误。

MPI是多点通信

MPI是多点通信 MPI是多点通信方式,RS485接口方式,但通讯协议是封闭的,紧紧限于S7系列PLC及设备间的通信。类似于以前常说的DCS系统。 PROFIBUS-DP,RS485接口方式,但通讯协议时开放的,可以和西门子以外的产品通信联络,是开放的现场总线形式。 PROFIBUS-DP用于现场层的高速数据传送。主站周期地读取从站的输入信息并周期地向从站发送输出信息。总线循环时间必须要比主站(PLC)程序循环时间短。除周期性用户数据传输外,PROFIBUS-DP还提供智能化现场设备所需的非周期性通信以进行组态、诊断和报警处理。 一、PROFIBUS-DP的基本功能 ①传输技术:RS-485双绞线、双线电缆或光缆。波特率从9.6Kbit/s到12Mbit/s。 ②总线存取:各主站间令牌传递,主站与从站间为主—从传送。支持单主或多主系统。总线上最多站点(主—从设备)数为126。 ③通信:点对点(用户数据传送)或广播(控制指令)。循环主—从用户数据传送和非循环主—主数据传送。 ④运行模式:运行、清除、停止。 ⑤同步:控制指令允许输入和输出同步。同步模式:输出同步;锁定模式:输入同步。 ⑥功能:DP主站和DP从站间的循环用户数据传送。各DP从站的动态激活和可激活。DP从站组态的检查。强大的诊断功能,三级诊断信息。输入或输出的同步。通过总线给DP 从站赋予地址。通过总线对DP主站(DPM1)进行配置。每DP从站的输入和输出数据最大为246字节。 ⑦可靠性和保护机制:所有信息的传输按海明距离HD=4进行。DP从站带看门狗定时器(Watchdog Timer)。对DP从站的输入/输出进行存取保护。DP主站上带可变定时器的用户数据传送监视。 ⑧设备类型:第二类DP主站(DPM2)是可进行编程、组态、诊断的设备。第一类DP 主站(DPM1)是中央可编程序控制器,如PLC、PC等。DP从站是带二进制值或模拟量输入输出的驱动器、阀门等。 二、PROFIBUS-DP基本特征 ①速率:在一个有着32个站点的分布系统中,PROFIBUS-DP对所有站点传送512 bit/s 输入和512 bit/s输出,在12M bit/s时只需1毫秒。 ②诊断功能:经过扩展的PROFIBUS-DP诊断能能对故障进行快速定位。诊断信息在总线上传输并由主站采集。诊断信息分三级: 本站诊断操作:本站设备的一般操作状态,如温度过高、压力过低。 模块诊断操作:一个站点的某具体I/O模块故障。 通道诊断操作:一个单独输入/输出位的故障。

MPI+以太网通讯

通讯: 通讯设备的双方基于一种通讯协议,实现双方之间数据交换的过程 PPI/USS/Modbus---RS485串口通信 PPI/USS 西门子内部开放使用的标准通讯协议Modbus 开放式的标准协议 MPI通信:也属于(RS485):通讯速度s 通信速度越快---通讯的距离会越近:抗干扰能力会越差 实现:S7300的程序上下载MPI S7300与HMI的连接 S7300作为主站与S7200 MPI S7300之间PLC数据交换MPI DP:Profibus DP 现场总线(国际标准开放式) 将设备作为IO设备HMI/PC/变频器/IO分布式/S7PLC (RS485通讯) 通讯线接口: 3----3 8----8 以太网通讯: Enternet CP 通讯(ISO/TCP/UDP)开放式以太网通讯 S7300必须扩展支持Enternet CP模块

S7300CPu 自带的网口支持Profinet IO (现场总线) S7通讯协议:西门子内部的以太网协议 自由口通讯:(RS485 无协议通信) S7200 FX系列之间的通讯 同第三方设备----仪表/变频器 S7-300与S7-200之间的MPI 200只能作为从站(不能进行数据收发) 单边通讯:PLC1---的数据直接发送到--PLC2的数据存储区 调用(SFC67读/SFC68写) 双边通讯:PLC1用发送命令将数据发送到数据缓存区---PLC2通过 接收命令从数据缓存区读取数据----存放到数据存储区 调用(SFC65读/SFC66写) 通讯设置:可以通过CPU224XP/CPU226 2.S7200扩展通讯模块EM277 Profibus Dp 1种方式:200--系统块--端口1--端口号:1-31(与S7300 地址不一样) 波特率要设置与S7300一致 S7300--硬件组态中 在OB1中调用程序:

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

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。参考下图:

MPI是多点通信方式

MPI是多点通信方式 PROFIBUS概貌 (1)PROFIBUS是一种国际化.开放式.不依靠于设备生产商的现场总线标准。广泛适用于制造业自动化.流程工业自动化和楼宇.交通电力等其他领域自动化。 (2)PROFIBUS由三个兼容部分组成,即PROFIBUS-DP(Decen tralized Periphery).PROFIBUS-PA(Process Automation ).PROFIBUS-FMS (Fieldbus Message Specification )。 (3)PROFIBUS –DP: 是一种高速低成本通信,用于设备级操纵系统与分散式I/O的通信。使用PROFIBUS-DP可取代办24VDC或4-20 mA信号传输。 (4)PORFIBUS-PA:专为过程自动化设计,可使传感器和执行机构联在一根总线上,并有本征安全规范。 (5)PROFIBUS-FMS:用于车间级监控网络,是一个令牌结构.实时多主网络。 (6)PROFIBUS是一种用于工厂自动化车间级监控和现场设备层数据通信与操纵的现场总线技术。可实现现场设备层到车间级监控的分散式数字操纵和现场通信网络,从而为实现工厂综合自动化和现场设备智能化提供了可行的解决方案。 (7)与其它现场总线系统相比,PROFIBUS的最大优点在于具有稳固的国际标准EN50170作保证,并经实际应用验证具有普遍性。目前已应用的领域包括加工制造.过程操纵和自动化等。PROFIBUS开放性和不依靠于厂商的通信的设想,已在10多万成功应用中得以实现。市场调查确认,在德国和欧洲市场中PROFIBUS占开放性工业现场总线系统的市场超过4 0%。PROFIBUS有国际闻名自动化技术装备的生产厂商支持,它们都具有各自的技术优势并能提供广泛的优质新产品和技术服务。 PROFIBUS在工厂自动化系统中的位置

MPI通讯讲解

第七章MPI通讯技术 通讯是PLC应用过程中非常重要的部分,本章重点介绍了MPI通讯的基本概念,组建MPI网络的基本方法,分别介绍了无阻态的单边通讯和双边通讯的方法,通过一个项目详细介绍了全局数据通讯的实现过程。

7.1 MPI通讯简介 本节首先绍MPI通讯网络的基本概念和如何设置MPI参数,还介绍了PC侧的MPI通信 卡的类型。

7.1.1 MPI概述 MPI(Multi Point Interface)是多点接口的简称,是当通信速率要求不高,通信数 据量不大时可以采用的一种简单经济的通信方式。通过它可组成小型PLC通讯网络,实现PLC之间的少量数据交换,它不需要额外的硬件和软件就可网络化。每个S7-300 CPU 都集成了MPI通信协议,MPI的物理层是RS- 485。通过MPI,PLC可以同时与多个设备建立通信连接,这些设备包括编程器PG或运行STEP7的计算机PC、人机界面(HMI)及其它SIMATIC S7,M7和C7。同时连接的通信对象的个数与CPU的型号有关。

7.1.2 MPI网络的组建 仅用MPI接口构成的网络称为MPI 分支网络或(MPI网络)。两个或多个MPI分支网络由路由器或网间连接器连接起来,就能构成较复杂的网络结构,实现更大范围的设备互连,如图7.1所示。这里介绍MPI网络的组态问题。

FM CP PG CP L2 CP L2(MPI)分支网 (MPI)分支网CPU CPU CPU CPU CPU (L2) 分支网 图7.1MPI 网络结构示意图

1.MPI网络连接规则及硬件介 绍 MPI网络如图7.1所示,构建MPI网络时应遵从下述连接“规则”: 1)MPI网络可连接的节点。凡能接入MPI网络的设备均称为MPI网络的节点。可接入的设备有:编程装置(PG/个人计算机PC),操作员界面(OP),S7/M7 PLC。 2)为了保证网络通信质量,组建网络时在一根电缆的末端必须接入浪涌匹配电阻,也就是—个网络的第一个和最后一个节点处应接通终端电阻(一般西门子专用连接器中都自带终端匹配电阻)。

(完整版)s7300与s7200的mpi通讯以及mcgs组态超详细教程

S7300 与S7200之间的mpi通讯和组态 在通讯之前先得确认cpu没有报任何错误,首先硬件组态,组态完毕后下载进CPU 下载后先在线看是否有错误cpu指示灯是否有SF BF报警灯亮。(BF1灯亮为通信故障检查电缆是否松动接触不良,九针接口螺丝拧紧)(SF灯亮为硬件组态出错) 首先打开STEP7 SP9 200编程软件写入测温程序 公式为T = 500 * (AIWX – 6400)/(32000 – 6400) – 0 化简后T = 5 * (AIWX - 6400)/256 由通道18转换上来的数值为word类型而温度要显示小数点后的数值就需要转换为浮点形的数据,浮点型的数据为32位二进制数,所以就有了如上的转换,接着乘5除256即出现最终的温度值。 也可用库来调用,这样方便一些

温度转换程序的结果说明程序无问题可正常测温。接着打开通讯 设置为PLC地址为2 波特率设置为187.5kbps

点确认下载一次即可。 然后打开博途,组态硬件。 在硬件组态完成后确认CPU没有任何错误信息错误指示灯亮。如有即是组态错误。 将地址设置为3 传输率设置为187.5kbps 如设备中含有cp通信模块cpu会自动加1的地址。 Mpi地址不可相同。

确认有无MPI 的线。 接着写一个X_GET 指令 返回值的显示格式要为浮点数,这样才可以看到正确的信息。

根据实际测试,300的温度值可以变应该和AI模块中滤波时间有关系。 X_GET 指令中DENT_ID为刚刚设置200PLC中的站地址 由于300中没有v存储区访问200的v存储区得用指针方式寻址,P#DB1.DBX20.0 BYTE 4 代表的含义为从vb20开始的四个字节。也就是VD20。RET_VAL 中可以看到返回值。此返回值开头为8时有错误,可按F1参考说明手册查找相应问题。 PLC程序无错误,即可开始组态。

HMI通讯.以太网及MPI

HMI通讯 TP177B color PN/DP, OP177B color PN/DP 支持以太网下载,本章使用OP177B color PN/DP 作说明,TP177B color PN/DP 与其设置方法相同。 1 、下载要求 一般来说,用直连线就可以实现网络的通讯。 2)计算机安装以太网卡(或者集成网卡) 3)相关技术参数设定 电缆连接方法: Ethernet 电缆的一端连接到计算机的以太网网卡的 RJ45 接口上,另外一端直接连接到面板下部 Ethernet 接口上。 2、下载设置——面板端的设置 1)面板上电后,进入 Windows CE 操作系统,弹出菜单,如图2.1所示,选择Control Panel 选项。 图 2.1 xP177B PN/DP 启动菜单 2)进入控制面板后,双击“Transfer”, 如图2.2所示。

图 2.2 TP177B 及 OP177B 控制面板 3)进入传送设置画面后,在Channel2 中选择协议 ETHERNET,并使能该通道, 如图 2.3所示,然后点击“Advanced”按钮。关闭Channel1通道,就是 把勾去掉。 图 2.3 设置MPI通讯时,将Channel2 中选择协议 MPI/DP,并勾选两个选项。 MPI的地址为1 默认值。 4)在弹出的画面的网络设备列表中选择“SMSC100FD1:Onboard LAN Ethernet Driver”,并点击“Properties”按钮,如下图所示:

图 2.4 5)进入 IP Address 设置对话框,点击选择“Specify an IP address“条目,如下图所示,则IP Address 和 Subnet Mask 输入使能,输入此面板的 IP 地址(该地址同下载计算机的 IP地址须在同一网段),例如我们使用 192.168.0.110,子网掩码使用255.255.255.0(子网掩码须同下载计算机的子网掩码一致),其他不用指定。 图 2.5 6)点击所有 OK 键退出到控制面板中,找到 Communication 图标,双击进入到Device Name设置对话框中,修改 Device name,注意在整体控制系统中,device name 应当唯一,若系统中只有一台面板,则可以使用默认设备名,不必修改。切勿使用特殊符号。如下图所示:

PPI MPI Profibus 通信协议详解

1、MPI是Multi-Point Interface,适用于PLC 200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,MPI网络的通信速率为网络才支持12Mbit/s的通信速率。MPI网络最多可以连接32个接节点,最大通信距离为50m,但是可以通过中继器来扩展长度。PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。PPI是一种主从协议,主站、从站在一个令牌网。在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。 MPI是主站之间的通信;PPI可以是多台主站与从站之间通信。 2、MPI协议:西门子内部协议,不公开; PROFIBUS-DP协议:标准协议,公开。 3、MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。 常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。 一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。 在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。 3. PPI,MPI和PROFIBUS都是基于OSI(开放系统互联)的七层网络结构模型,符合欧洲标准EN50170所定义的PROFIBUS标准,基于令牌的的网络通信协议。这些协议是非同步的(串行的)基于字符的通信协议,字符格式包括一个起始位、8个数据位、一个偶校验位和一个停止位。其通信帧包括特定的起始和结束字符、源和目的站的地址、帧长度和数据校验和。 在波特率一致、各站地址不同的情况下,PPI,MPI和PROFIBUS可以同时在一个网络上运行,并且互不干扰。 这就是说如果一个网络上有S7-300、S7-200,S7-300之间可以通过MPI或PROFIBUS 通信,而在同时在同一个网络上的TP170 如果在一个通信网络上存在其他主站(如TD 200,或者上位计算机等),同时需要进行Micro/WIN的编程、监控,这就是多主站网络编程。 使用西门子的下列设备可以实现Micro/WIN的多主站编程: micro触摸屏可以与一个S7-200 CPU通信。 使用智能多主站电缆和Micro/WIN V3.2 SP4以上版本。新电缆可以在网络上传递令牌,因而自动支持多主站网络编程。 如果使用CP卡,如CP5511/CP5512(笔记本电脑PCMCIA卡)、CP5611(台式机PCI

PLC之间的MPI通信详解

PLC之间的MPI通信详解 1.MPI概述 MPI(MultiPoint Interface)通信是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通信方式。MPI通信可使用PLC S7-200/300/ 400、操作面板TP/OP及上位机MPI/PFOFIBUS通信卡,如CP5512/CP5611/CP561 3等进行数据交换。MPI网络的通信速率为19.2kbit/s~12Mbit/s,通常默认设置为187.5kbit/s,只有能够设置为PROFIBUS接口的MPI网络才支持12Mbit/s 的通信速率。MPI网络最多可以连接32个节点,最大通信距离为50米,但是可以通过中继器来扩展长度。通过MPI实现PLC之间通信有三种方式:全局数据包通信方式、无组态连接通信方式和组态连接通信方式。PLC之间的网络配置如图所示。 2.硬件和软件需求 硬件:CPU412-2 DP、CPU313C-2DP、MPI电缆 软件:STEP7 V5.2 SP1以上 3.设置MPI参数 可分为两部分:PLC侧和PC侧的参数设置。 (1)PLC侧参数设置 在硬件组态时可通过点击图中“Properties”按钮来设置CPU的MPI属性,包括地址及通信速率,具体操作如图所示。注意:整个MPI网络中通信速率必须保持一致,且MPI地址不能冲突。

(2)PC侧参数设置 在PC侧痛要也要设置MPI参数,在“控制面板”→“Set PG/PC Interfac e”中选择所用的编程卡,这里为CP5611,访问点选择“S7ONLIEN”, 4.全局数据包通信方式 对于PLC 之间的数据交换,我们只关心数据的发送区和接收区,全局数据包的通讯方式是在配置PLC 硬件的过程中,组态所要通讯的PLC 站之间的发送区和接收区,不需要任何程序处理,这种通讯方式只适合S7-300/400 PLC之间相互通讯。 实验步骤如下: ①建立MPI网络首先打开编程软件STEP7,建立一个新项,在此项目下插入两个PLC 站分别为SIMATIC 400/CPU412-2DP 和 SIMATIC 300/CPU313C-2D P,并分别插入CPU 完成硬件组态,配置MPI 的站号和通讯速率,在本例中MPI 的站号分别设置为5号站和4 号站,通讯速率为187.5Kbit/S 。 ②组态数据的发送和接收区选中MPI网络,再点击菜单“Options”→“Define Global Date”进入组态画面如图所示。 ③插入所有需要通讯的PLC 站CPU 双击GD ID 右边的CPU 栏选择需要通讯PLC 站的CPU。CPU 栏总共有15 列,这就意味者最多有15 个CPU 能够参与通讯。在每个CPU 栏底下填上数据的发送区和接收区,例如: CPU412-2DP

S7-200与S7-300之间的MPI通讯

S7200与S7300之间的MPI通讯 问题:如何实现S7200与S7300之间的MPI通讯? 回答:S7200与S7300之间采用MPI通讯方式时, S7200 PLC中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可,而S7300中需要在OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),实现S7300 与S7200之间的通讯,调用SFC67和SFC68时VAR_ADDR参数填写S7200的数据地址区,这里需填写P#DB1.××× BYTE n 对应的就是S7200 V存储区当中VB××到VB(××+n)的数据区。 首先根据S7300的硬件配置,在STEP7当中组态S7300站并且下载,注意S7200和S7300出厂默认的MPI地址都是2,所以必须先修改其中一个PLC的站地址,例子程序当中将S7300 MPI地址设定为2,S7200地址设定3,另外要分别将S7300和S7200的通讯速率设定一致,可设为9.6K,19.2K,187.5K 三种波特率,例子程序当中选用了19.2K的速率。 例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,如下图: 分别在STEP7 MicroWin32 和STEP7当中监视S7200和S7300 PLC当中的数据,数据监视见面如下:

通过CP5611,STEP7 MicroWin32, Set PG/PC Interface可以读取S7200和S7300的站地址,如下

图: 站地址0代表的时进行编程的PG,即当前连接PLC的PC。0

相关主题