2.2 MPI通信

2.2.1 MPI概述

MPI通信是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通信方式。MPI通信可使用PLC S7-200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,如CP5512/CP5611/CP5613等进行数据交换。MPI网络的通信速率为19.2kbit/s~12Mbit/s,通常默认设置为187.5kbit/s,只有能够设置为PROFIBUS接口的MPI网络才支持12Mbit/s的通信速率。MPI网络最多可以连接32个节点,最大通信距离为50m,但是可以通过中继器来扩展长度。

2.2.2 MPI网络结构

西门子PLC S7-200/300/400 CPU上的RS485接口不仅是编程接口,同时也是一个MPI的通信接口,在没有额外硬件投资的状况下,可以实现PG/OP、全局数据通信以及少量数据交换的S7通信等通信功能。其网络上的节点通常包括S7 PLC、TP/OP、PG/PC、智能型ET200S以及RS485中继器等网络元器件。MPI最大通信距离为50m,也可以使用RS485中继器进行扩展,扩展的方式有两种:

两个站点之间没有其他站,MPI站到中继器距离最大为50m,两个中继器之间的距离最大为1000m,最多可以连接10个中继器,所以两个站之间的最大距离为9100m。

如果在两个中继器之间也有MPI站,那么每个中继器只能扩展50m。MPI为RS485接口,需要使用PROFIBUS总线连接器(并带有终端电阻)和PROFIBUS电缆,如果使用其他电缆和接头,则不能保证通信的质量和距离。在MPI网络上至多可以有32个站,但当使用中继器来扩展网络时,中继器也占节点数。

2.2.3 MPI参数的设置

设置MPI参数可分为两个部分:PLC侧和PC侧MPI的参数设置。

1.PLC侧参数的设置

在硬件组态时,可通过单击“Properties”按钮来设置CPU的MPI属性,设置地址及通信速率。

2.PC侧参数的设置

在PC侧同样也要设置MPI参数,在“控制面板”→“Set PG/PC Interface”中选择所用的编程卡,访问点选择“S7ONLINE”,例如用PCAdapter作为编程卡,设置完成后,将STEP7中的组态信息下载到CPU中。

PC侧MPI通信卡的类型,如:

PC Adapter(PC适配器)一端连接PC的RS232口或通用串行总线(USB)口,另一端连接CPU的MPI,它没有网络诊断功能,通信速率最高为1.5Mbit/s,价格较低。

CP5511/PCMCIA TYPE Ⅱ卡,用于笔记本电脑编程和通信,它具有网络诊断功能,通信速率最高可达12Mbit/s,价格相对较高。

CP5512/PCMCIA TYPE ⅡCardBus(32位)卡,用于笔记本电脑编程和通信,它具有网络诊断功能,通信速率最高可达12Mbit/s,价格相对较高。

CP5611 PIC卡,用于台式电脑编程和通信,它具有网络诊断功能,通信速率最高可达12Mbit/s,价格适中。

CP5613 PIC卡(替代原CP5612卡),用于台式电脑编程和通信,它具有网络诊断功能,通信速率最高可达12Mbit/s,并带有处理器,可保持大数据量通信的稳定性,一般用于PROFIBUS网络,同时也具有MPI功能,价格相对较高。

了解上述功能后,可以很容易地选择适合自己应用的通信卡,在CP通信卡的代码中,5代表PCMCIA接口,6代表PCI总线,3代表有处理器。

3.S7-300/400 PLC之间的MPI通信

S7-300/400与HMI(Human Machine Interface,人机界面)产品之间的MPI通信不需要STEP7软件组态,也不需要编写任何程序,只需在HMI组态软件上设置下相关通信参数即可。

4.S7-200和S7-300进行MPI通信

S7-200与S7-300之间采用MPI通信方式时,S7-200 PLC中不需要编写任何与通信有关的程序,只需要将要交换的数据整理到一个连续的V存储区当中即可,而S7-300中需要在OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),实现S7-300与S7-200之间的通信,调用SFC67和SFC68时,VAR_ADDR参数填写S7-200的数据地址区,由于S7-200的数据区为V区,这里需填写P#DB1.×××BYTE n,对应的就是S7-200 V存储区当中VB××到VB(××+n)的数据区。

首先根据S7-300的硬件配置,在STEP7当中组态S7-300站并且下载,注意S7-200和S7-300出厂默认的MPI地址都是2,所以必须先修改其中一个PLC的站地址,例子程序当中将S7-300 MPI地址设定为2,S7-200地址设定3,另外要分别将S7-300和S7-200的通信速率设定一致,可设为9.6kbit/s,19.2kbit/s,187.5kbit/s三种波特率,例子程序当中选用了19.2kbit/s的速率。

S7-200 PLC修改MPI地址如图2-1所示。

978-7-111-37169-4-Chapter02-1.jpg

图2-1 S7-200 MPI地址设定

S7-300 PLC修改MPI地址如图2-2所示。

978-7-111-37169-4-Chapter02-2.jpg

图2-2 S7-300 MPI地址设定

例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,如图2-3所示:

978-7-111-37169-4-Chapter02-3.jpg

图2-3 SFC67和SFC68调用

分别在STEP7 MicroWin32和STEP7当中监视S7-200和S7-300 PLC当中的数据,数据监视如图2-4和图2-5所示。

978-7-111-37169-4-Chapter02-4.jpg

图2-4 S7-200数据监控

978-7-111-37169-4-Chapter02-5.jpg

图2-5 S7-300数据监控

通过CP5611,STEP7 MicroWin32,Set PG/PC Interface可以读取S7-200和S7-300的站地址,0代表的是进行编程的PG,即当前连接PLC的PC。

5.WinCC通信连接的建立

选择MPI通信驱动,并单击鼠标右键选择“New Driver Connection”来建立一个连接,如果连接多个CPU,每连接一个CPU就要建立一个连接,所能连接的CPU的数量与上位机所用网卡有关,例如CP5611所能支持的最大连接数是8个,网卡的连接数可以在相关产品手册中查找。这里需要修改每个连接的属性,如选择CPU的站地址和槽号等。连接S7-300CPU时槽号都是2,连接S7-400CPU时,槽号应参照STEP7硬件组态中的槽号。