s7-300和s7-300plc的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 接口。
winccS7-300MPI通讯问题

wincc S7-300 MPI通讯问题S7-300编程软件与PLC可以通讯,但Wincc上无法显示300PLC上数据。
查电脑资源管理器发现5611与显卡驱动、USB通用控制器有冲突。
如何解决。
答:解决这个问题需要相关的操作系统的知识与需要一定的计算机硬件知识。
解决设备资源冲突:如果某个设备前面显示了一个带有黄色圆圈的惊叹号,则表明此设备有资源冲突。
我们可以用手工的方式来重新分配该设备的资源,以解决资源冲突。
1.下面我们先对计算机资源的分配情况作一简略的介绍每次启动计算机时,WindowsXP都会自动配制每个设备的资源,即将唯一的一组系统资源分配给它。
这组资源可能是下面的一个或多个资源:中断请求(1RQ)编号;直接内存访问(DMA)通道;输入输出(I/0)端口地址;内存地址范围。
分配给设备的每个资源都必须是惟一的,否则设备将无法正常工作。
对于即插即用型设备,WindowsXP可以自动保证该设备的正确配置。
而对于某些非即插即用型设备可能需要某些特定的资源,这些资源有可能与WindowsXP自动分配的资源冲突。
此时,用户就需要手工配置该设备的系统资源,以保证它正常运行。
2.若要手工配置设备的系统资源,应遵循下列操作步骤:单击”设备管理器”中需要手工配置系统资源的设备所属硬件类型左边的”+”以展开它。
用鼠标右键单击带有黄色圆圈的惊叹号的设备,从弹出的快捷菜单中选择”属性”命令。
在弹出的快捷菜单中切换到”资源”选项卡,检查”冲突设备列表”。
如果列表中显示有设备冲突,查看是”输入/输出范围”冲突还是”中断请求”冲突或两者都是单击使用自动设置复选框,使√变成口,单击”√”按钮,打开”设置基于”下拉列表,选择另外一个配置。
不断寻找配置,直到”冲突设备列表”显示”没有冲突”为止。
若所有配置均有冲突,可单击”更改设置”按钮来进一步配置(这种可能性很小)。
单击”确定”按钮,再单击弹出的”系统设置改变”对话框中的”是”按钮,将重启计算机以使配置生效。
S7300PLC和S7200PLC的MPI通讯实例

MPI的通信速率为19.2K~12Mbit/s,但直接连接S7-200CPU通信口的MPI 网最高速率通常为187.5Kbit/s(受S7-200CPU最高通信速率的限制),在MPI 网络上最多可以有32个站,一个网段的最长通信距离为50米(通信波特率为187.5Kbit/s时),更长的通信距离可以通过RS-485中继器扩展。
MPI允许主-主通信和主-从通信,每个S7-200CPU通信口的连接数为4个,S7-200CPU只能做MPI从站,即S7-200CPU之间不能通过MPI网络互相通。
本例以一台CPU313C-2DP和CPU224通过MPI通讯举例说明具体操作步骤:本例的控制要求:
1:MPI主站为CPU313C-2DP,主站号位2。
2:MPI从站为CPU224,从站号位3。
3:MPI主站的M10.0控制MPI3号从站的Q1.0
4:MPI3号从站的Q1.0控制MPI主站的Q0.0
做控制要求如下图:
操作步骤如下:
1:新建S7300程序,在硬件配置中的CPU属性中设置CPU313C-2DP 的MPI地址为2。
2:MPI通讯速率为187.5K,并将硬件配置下载到CPU313C-2DP中。
编写如下程序并下载到CPU313C-2DP中:
2:新建S7200程序在系统块中设置CPU224的波特率和MPI地址为3,并将程序下载到CPU224中。
3:主站和从站的MPI端口用通讯线连接起来。
4:测试通讯观察效果。
注:在本实验中主站程序使用的功能块解释如下图:。
运用VC#编程通过MPI方式与西门子S7系列PLC通讯

运用VC#编程通过MPI方式与西门子S7系列PLC通讯西门子S7300/400系列的PLC没有公开通讯协议,但西门子公司提供的ProDave软件公开了一系列库函数,使用计算机高级语言调用这些函数,可实现以MPI的方式与PLC通讯。
当今的高级语言VC#有着非常高效的开发手段,在把基础类库、标准模块都编好的情况下,开发监控界面的速度比WinCC 慢不了多少,但灵活性却是WInCC无法比的。
大家只要找到西门子的ProDave中的动态连接库:W95_S7.DLL,并把它注册到你的计算机即可(当然,你若有一套完整的ProDave安装程序,安装即可自动注册),然后在C#这边编程调用,下面来讲解如何在C#中调用动态库。
由于W95_S7.DLL是用C语言编写的,很多函数接口不适用于C#,因此我们可以创建一个C#类库,把这些函数进行封装,每次开发监控界面调用此类库即可。
一、 C#中调用DLL库的方法1、在名称空间之前使用:using System.Runtime.InteropServices; //用于调用动态库的接口,一定要引用2、导入每一个库函数,均要在函数声明之前使用属性字段:[DllImport("w95_s7.dll")]譬如与PLC建立连接的库函数load_tool(),应使用如下的方式进行声明:[DllImport("w95_s7.dll")]private extern static int load_tool(byte nr,string device,byte[,] adr_table);二、 ProDave中的重要库函数介绍1、与PLC建立通讯连接的库函数:load_tool()该函数必须在其他所有函数调用之前被调用,在C中的声明为:intload_tool(int nr,char* device,char* adr_table);由于C#在安全模式下不容许使用指针,因此我们把它转换成C#模式:private extern static int load_tool(byte nr,string device,byte[,] adr_table);参数 nr: 指定连接号1-4,一般设为1device: 设备名称,西门子的示例是设为"s7online",测试时,若改成其他名称好像连不上。
S7-300_PLC通讯-MPI多点接口

中继器间带有站点
西门子自动化与驱动集团技术支持部CS2/崔坚 2005 通信
MPI接口
SIMATIC S7-300
数据传输率:187.5 K至12 Mbit/s
MPI网段最多32个站点
每个CPU最多可有32 个连接。
MPI提供的通讯服务:
n PG 通讯 n OP通讯 n S7基本通讯 n S7通讯 n 全局数据通讯
MPI物理接口是与Profibus RS485(EN 50170)接口标准相一 致。
FDL即Fieldbus data link protocol。是各个协议操作执 行的基础访问总线的方式是令牌.
S7-Protocol是唯一独立于物理接口的操作协议,在 SIMATIC环境中使用是相当重要的。它可以使用在MPI、 Profibus和Ethernet上。用于数据传输到器件以及FM和CP等。
通过调用SFC实现。 通讯方式是依靠无组态的方式连接,连接是动态连接。 需要分配资源数,并占用CPU的通讯资源。
西门子自动化与驱动集团技术支持部CS2/崔坚 2005 通信
MPI S7 BASIC通信 (双方编程)
Automation and Drives
4)CP5412
5) CP5511
6) CP5512
7) CP5611
8) CP5613
注: CP5X1Y X=4 ISA X=5 PCMCIA X=6 PCI
Automation and Drives
西门子自动化与驱动集团技术支持部CS2/崔坚 2005 通信
SIMATIC S7-300
MPI接口
MPI局数据包通信
SIMATIC S7-300
GD 1.1.1
Automation and Drives
两台西门子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通信详解

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 。
S7-300与S7-300之间的双边MPI通信

OB35块中调用发送块,发送任务间隔为100ms,两边都需要组态,分别下载到各自的 CPU中去。
指令说明
REQ:发送请求,该参数为1时发送 CONT:为1时表示发送数据是连续的一个整体 DEST_ID接收方的MPI地址 REQ_ID:任务标志符 SD:本地PLC的数据发送区 RET_VAL:故障信号 BUSY:通信进程:“1”表示正在发送,“0”表示发送完成
指令说明
EN_DT:接收使能 RET_VAL:错误代码:W#16#7000表示无错 REQ_ID:接收数据包的标志符 NDA:通信进程:“1”表示有新的数据包,“0”表示没有新的数 据包 RD:本地PLC的数据接收区。
控制要求
1)当2号站的I0.0为ON时,3号站的电机延时3s后接通,5s以后断开,往复循环; 当2号站的I0.1为ON时,3号站的电机关掉。 2)当3号站的I0.0为ON时,2号站的电机延时3s后接通,5s以后断开,往复循环; 当3号站的I0.1为ON时,2号站的电机关掉。
ห้องสมุดไป่ตู้
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、用通讯电缆将两台plc连接起来,用MPI口进行连接
2、对两台plc进行硬件组态,并修改其中一台plc的地址,同时新建一条MPI网络,选择默认的波
特率,一般为187.5KP,并点击确定。
将本台plc的地址设置为2,保存并且编译,同时组态另外一台plc的硬件,点击第二条CPU栏,将该CPU挂在刚刚建立起来的MPI网络上,同时更改该plc的站地址为3或者其他的(只要与刚刚的那台plc 不一样就OK)
保存并且编译、下载。
3、点击组态网络图标
4、这时出现如下图所示的画面,
页脚内容1
可以清楚的看到两台s7-300的plc 已经被挂在了我们刚刚建立起来的MPI网络上,这时用鼠标右击那条MPI线,再出现的菜单上选择“定义全局参数”,将会出现如下图所示的画面
此时,鼠标双击第一块空白的灰色图标,出现如下图所示画面
双击主站的CPU图标,会出现如下画面
页脚内容2
此时,用同样的方法将从站的CPU添加在第三块灰色的地方,此时将鼠标放在主站下面的第一个单元
格的位置如下图所示
点击“选作发送器”图标将出现如下图画面所在单元格将会变绿,然后在里边键入数据例如下图:
页脚内容3
就是讲主站的MB0传送给从站的MB0,将从站的MB1传送给主站的MB1。
最后点击编译按钮。
完成MPI网络的组态
5、编写程序
页脚内容4。