PLC之间的MPI通信详解.docx

上传人:b****6 文档编号:15510401 上传时间:2023-07-05 格式:DOCX 页数:15 大小:571.32KB
下载 相关 举报
PLC之间的MPI通信详解.docx_第1页
第1页 / 共15页
PLC之间的MPI通信详解.docx_第2页
第2页 / 共15页
PLC之间的MPI通信详解.docx_第3页
第3页 / 共15页
PLC之间的MPI通信详解.docx_第4页
第4页 / 共15页
PLC之间的MPI通信详解.docx_第5页
第5页 / 共15页
PLC之间的MPI通信详解.docx_第6页
第6页 / 共15页
PLC之间的MPI通信详解.docx_第7页
第7页 / 共15页
PLC之间的MPI通信详解.docx_第8页
第8页 / 共15页
PLC之间的MPI通信详解.docx_第9页
第9页 / 共15页
PLC之间的MPI通信详解.docx_第10页
第10页 / 共15页
PLC之间的MPI通信详解.docx_第11页
第11页 / 共15页
PLC之间的MPI通信详解.docx_第12页
第12页 / 共15页
PLC之间的MPI通信详解.docx_第13页
第13页 / 共15页
PLC之间的MPI通信详解.docx_第14页
第14页 / 共15页
PLC之间的MPI通信详解.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PLC之间的MPI通信详解.docx

《PLC之间的MPI通信详解.docx》由会员分享,可在线阅读,更多相关《PLC之间的MPI通信详解.docx(15页珍藏版)》请在冰点文库上搜索。

PLC之间的MPI通信详解.docx

PLC之间的MPI通信详解

窗体顶端

PLC之间的MPI通信详解

1.      MPI概述

MPI〔MultiPointInterface〕通信是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通信方式。

MPI通信可使用PLCS7-200/300/400、操作面板TP/OP及上位机MPI/PFOFIBUS通信卡,如CP5512/CP5611/CP5613等进展数据交换。

MPI网络的通信速率为19.2kbit/s~12Mbit/s,通常默认设置为,只有能够设置为PROFIBUS接口的MPI网络才支持12Mbit/s的通信速率。

MPI网络最多可以连接32个节点,最大通信距离为50米,但是可以通过中继器来扩展长度。

通过MPI实现PLC之间通信有三种方式:

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

PLC之间的网络配置如下图。

2.      硬件和软件需求

硬件:

CPU412-2DP、CPU313C-2DP、MPI电缆

软件:

STEP7V5.2SP1以上

3.      设置MPI参数

可分为两局部:

PLC侧和PC侧的参数设置。

(1)     PLC侧参数设置

在硬件组态时可通过点击图中“Properties〞按钮来设置CPU的MPI属性,包括地址及通信速率,具体操作如下图。

注意:

整个MPI网络中通信速率必须保持一致,且MPI地址不能冲突。

(2)     PC侧参数设置

在PC侧痛要也要设置MPI参数,在“控制面板〞→“SetPG/PCInterface〞中选择所用的编程卡,这里为CP5611,访问点选择“S7ONLIEN〞,

4.      全局数据包通信方式

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

实验步骤如下:

①  建立MPI网络首先翻开编程软件STEP7,建立一个新项,在此工程下插入两个PLC站分别为SIMATIC400/CPU412-2DP和SIMATIC300/CPU313C-2DP,并分别插入CPU完成硬件组态,配置MPI的站号和通讯速率,在本例中MPI的站号分别设置为5号站和4号站,通讯速率为。

②  组态数据的发送和接收区选中MPI网络,再点击菜单“Options〞→“DefineGlobalDate〞进入组态画面如下图。

③  插入所有需要通讯的PLC站CPU双击GDID右边的CPU栏选择需要通讯PLC站的CPU。

CPU栏总共有15列,这就意味者最多有15个CPU能够参与通讯。

在每个CPU栏底下填上数据的发送区和接收区,例如:

CPU412-2DP的发送区为,可以填写为:

22〔其中“0”表示起始地址,“22”表示数据长度〕然后在菜单“edit〞项下选择“Sender〞作为发送区。

而CPU313C-2DP的接收区为DB1.DBB0~21,可以填写为:

22。

如下图。

编译存盘后,把组态数据分别下载到CPU中,这样数据就可以相互交换了。

注意:

发送区和接收区的长度必须一致,地址区可以为DB、M、I、Q区,S7-300地址区长度最大为22字节,S7-400地址区长度最大为54字节。

④  通信的诊断在多个CPU通讯时,有时通讯会中断,可用通过下述方法进展监测:

在菜单“View〞中点击“ScanRates〞和“GDStatus〞可以扫描系数和状态字,如下图。

SR:

扫描频率系数。

如上图SR1.1为225,表示发送更新时间为225×CPU循环时间。

范围为1~255。

通讯中断的问题往往设置扫描时间过快,可改大一些。

GSD:

每包数据的状态字〔双字〕。

可根据状态字编写相应的错误处理程序,构造如下:

第一位:

发送区域长度错误。

第二位:

发送区数据块不存在。

第四位:

全局数据包丧失。

第五位:

全局数据包语法错误。

第六位:

全局数据包数据对象丧失。

第七位:

发送区与接收区数据对象长度不一致。

第八位:

接收区长度错误。

第九位:

接收区数据块不存在。

第十二位:

发送方从新启动。

第三十二位:

接收区接收到新数据。

GST:

所有GDS相“OR〞的结果

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

这种通讯方式是通过调用CPU的系统功能SFC60(GD_SND)和SFC61(GD_RCV)来完成的,而且只支持S7-400CPU,并且相应设置CPU的SR〔扫描频率〕为0,可参考下列图全局数据的组态画面:

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

具体程序代码为:

5.      无组态连接通信方式

无组态的MPI通信需要调用系统功能块SFC65~SFC69来实现,这种通信方式适合于S7-300、S7-400和S7-200之间的通信。

通过调用SFC来实现MPI通信又可分为两种方式:

双边通信方式和单边通信方式。

调用系统功能通信方式不能和全局数据通信方式混合使用。

(1)     双边编程通信方式

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

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

实验步骤如下:

①在STEP7中创立两个站STATION1,CPU为S7-412-2DP,MPI站地址为5;STATION2,CPU为S7-313C-2DP,MPI站号为4,5号站发送2包数据给4号站,4号站判断后放在相应的数据区中。

②编程在2号站OB35中须调用SFC65,具体程序代码为:

 

参数说明:

REQ为发送请求,该参数为1时发送。

CONT为1表示发送数据是连续的一个整体。

DEST_ID表示对方的MPI地址。

REQ_ID表示一包数据的标识符,标识符自己定义。

SD表示发送区,以指针的格式表示,例子中第一包数据为DB1中从

(DBB0)以后的10个字节数据,发送区最大为76个字节。

RET_VAL表示发送的状态

BUSY为1时表示发送中止。

在这个例子中,M1.3为1时,CPU412-2DP将发送标识符为“1〞和“2〞的两包数据给4号站的CPU313C-2DP。

一个CPU终究可以和能几个CPU通讯和CPU的通讯资源有关系,这也决定SFC的调用的次数。

以上例作说明,,M1.3为1时,与4号站的连接就建立起来了,反之4号站发送,5号站接收同样要建立一个连接,也就是说两个站通讯时,假设都需要发送和接收数据,那么须占用两个动态连接。

通信状态可参考下列图。

,M1.3为0时,此时建立的连接并没有释放,必须调用SFC69来释放连接,在上例中M1.5为1时,与4号站建立的连接断开,如下列图:

在S7313C-2DP的OB1中调用接收块SFC66,具体程序代码为:

参数EN_DT表示接收使能,RET_VAL表示接收状态字,REQ_ID为接收数据包的标识符,NDA为1时表示有新的数据包,为0时那么表示没有新的数据包,RD表示接收区,接收区放在DB1中从DBB0以后10个字节中。

程序中,接收块只识别数据的标识符,而不管是哪一个CPU发送的,接收从5号站CPU412-2DP发送的两包数据,当标识符为“1〞且M1.3为1时,复制接收区的数据到DB2的前10个字节中〔调用SFC20〕,当标识符为“2〞时,M1.4为1,复制接收区的数据到DB3的前10个字节中。

数据传送状态如下图。

(2)     单边编程通信方式

与双向通讯时两方都需要编写发送和接收块不同,单向通讯只在一方编写通讯程序,这也是客户机与效劳器的关系,编写程序一方的CPU作为客户机,没有编写程序一方的CPU作为效劳器,客户机调用SFC通讯块对效劳器的数据进展读写操作,这种通讯方式适合S7-300/400/200之间通讯,S7-300/400的CPU可以同时作为客户机和效劳器,S7-200只能作效劳器。

SFC67(X_GET)用来读回效劳器指定数据区中的数据并存放到本地的数据区中,SFC68(X_PUT)用来写本地数据区中的数据到效劳器中指定的数据区中。

具体实验步骤如下:

①    新建工程建立两个S7站,STATION1,CPU为S7313C-2DP,MPI地址为4作为客户机;STATION2,CPU为S7412-2DP,MPI地址为5作为效劳器。

②    编程CPU421-2DP的OB1中调用SFC68,把本地数据区的数据开场的连续10个字节发送到CPU313C-2DP的开场的10个字节中;调用SFC67,CPU412-1DP读出CPU313C-2DP的数据开场的10个字节放到本地开场的10个字节中。

程序代码如下列图所示。

同样S7-300CPU也可以作为客户机,S7-400CPU也可以作为效劳器。

数据传送状态如下图。

6.      组态连接通信方式

MPI网络,调用系统功能块进展PLC站之间的通讯只适合于S7-300/400,S7-400/400之间的通讯,S7-300/400通讯时,由于S7-300CPU中不能调用SFB12(BSEND),SFB13(BRCV),SFB14(GET),SFB15(PUT),不能主动发送和接收数据,只能进展单向通讯,所以S7-300PLC只能作为一个数据的效劳器,S7-400PLC可以作为客户机对S7-300PLC的数据进展读写操作。

S7-400/400通讯时,S7-400PLC可以调用SFB14,SFB15,既可以作为数据的效劳器同时也可以作为客户机进展单向通讯,还可以调用SFB12,SFB13,发送和接收数据进展双向通讯,在MPI网络上调用系统功能块通讯,最大一包数据不能超过160个字节。

具体实验步骤如下:

①  新建工程

建立两个S7的PLC站,STATION1其CPU为S7412-2DP,站地址为5,STATION2,CPU为S7313C-2DP,站地址为4,假设S7-400PLC把本地数据DB1中字节0以后的5个字节写到S7-300PLCDB1中字节0以后的5个字节中去,然后再读出S7-300PLCDB1中字节0以后的5个字节中的数据并将其放到S7-400PLC本地数据块DB2中字节0以后的5个字节中去。

②  组态连接及参数设置在STEP7中点击“Options〞“ConfigureNetwork〞进入网络组态画面,如下图:

右键点击CPU412-2DP,选择“InsertNewConnections〞新建连接。

在弹出的对话框中选择“S7connection〞连接类型,并选择所需连接的CPU,这里选择CPU313C-2DP。

如下图。

点击“Apply〞按钮建立连接,并查看连接表的详细属性,如下列图:

组态完成后编译存盘,并将连接组态分别下载到各自的CPU。

③  编程在PLC中调用通讯所需的系统功能块,由于是单向通讯S7-300PLC是数据的效劳器,所以只能在S7-400PLC侧编程,调用SFB15写数据到S7-300PLC中如下列图:

程序编制好后下载到各自的CPU站,并建立变量表测试程序的运行。

如下图。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2