首页 理论教育 基本MPI项目组态实例优化

基本MPI项目组态实例优化

时间:2023-06-19 理论教育 版权反馈
【摘要】:图7-5 新建名为“GD通信”的项目4)首先组态S7-400站的MPI网。S7-300接收或发送的最多字节数是22个,S7-400则是54个,发送区与接收区要求相同。8)最后单击“”,编译保存组态MPI接口的数据区数据。在图7-14中“SR1.1”为23,表示发送更新时间为23×CPU循环扫描时间,SR范围为1~255。通过SFC65“X SEND”发送数据到MPI网络指定的通信伙伴。SFC67“X GET”指令符合单边编程的MPI通信。

基本MPI项目组态实例优化

1.全局数据包通信方式

1)硬件与软件要求:所需硬件有CPU315-2 DP和CPU414-2 DP;所需软件有STEP 7 V5.3。

2)网络配置:网络配置如图7-4所示。

978-7-111-44821-1-Chapter07-4.jpg

图7-4 GD通信网络配置

3)新建一个项目“GD通信”,分别插入两个站S7-300和S7-400,并完成电源和CPU的硬件组态,如图7-5所示。

978-7-111-44821-1-Chapter07-5.jpg

图7-5 新建名为“GD通信”的项目

4)首先组态S7-400站的MPI网。在S7-400硬件组态界面,双击机架上的CPU 414-2DP,将弹出CPU属性界面,如图7-6所示。

978-7-111-44821-1-Chapter07-6.jpg

图7-6 CPU属性界面

在CPU属性界面里单击“属性”按钮,将弹出MPI属性界面,如图7-7所示,设置S7-400的MPI(1)地址为4,通信波特率为187.5kbit/s。

978-7-111-44821-1-Chapter07-7.jpg

图7-7 MPI属性界面

然后利用同样方法组态S7-300站的MPI网。

在S7-300硬件组态界面,双击机架上的CPU 315-2DP,将弹出CPU属性界面,在CPU属性界面里单击“属性”按钮,将弹出MPI属性界面,设置S7-300的MPI(1)地址为3,通信波特率为187.5kbit/s。

5)接下来需要打开“GD-MPI(1)”表格。在管理画面,单击项目名称“GD通信”,在右边出现“MPI(1)”图标,双击该图标,如图7-8所示,然后选中MPI(1)红色总线,单击“选项”→“定义全局数据”,将弹出设置“GD-MPI(1)”表格。

978-7-111-44821-1-Chapter07-8.jpg

图7-8 打开“GD-MPI(1)”表格

6)在“GD-MPI(1)”表格界面,双击图7-9所示的“A”处,在弹出选择CPU的界面里选择“CPU 414-2DP”,然后单击“确定”。

978-7-111-44821-1-Chapter07-9.jpg

图7-9 在“GD-MPI(1)”表格插入CPU

利用同样方法在图7-9的“B”处插入“CPU 315-2DP”。

7)在“GD-MPI(1)”表格界面,在1行与CPU 414-2DP交叉的表格里写上“MB10∶10”,其中MB10∶10后面的“10”是接收或发送的字节个数,MB10是接收或发送的开始字节。S7-300接收或发送的最多字节数是22个,S7-400则是54个,发送区与接收区要求相同。接收和发送的地址区可以是DB、M、I、Q。单击“MB10∶10”,按动右键选择下拉的“发送器”,表示发送MB10~MB19这10个字节的数据,如图7-10所示。

978-7-111-44821-1-Chapter07-10.jpg

图7-10 声明CPU 414-2DP的发送区

利用同样方法声明MB130开始连续20个字节为发送区,如图7-11所示。

8)最后单击“978-7-111-44821-1-Chapter07-11.jpg”,编译保存组态MPI接口的数据区数据。CPU 315-2DP与CPU 414-2DPMPI(1)的接口数据对应关系如表7-1所示。

978-7-111-44821-1-Chapter07-12.jpg

图7-11 声明CPU 315-2DP的发送区

表7-1 MPI(1)的接口数据对应关系

978-7-111-44821-1-Chapter07-13.jpg

9)组态完MPI全局数据包通信发送和接收数据,在编译后,就看到在每行通信区都有GDIN号,如图7-12所示。

978-7-111-44821-1-Chapter07-14.jpg

图7-12 组态参数的含义

图7-12中A、B、C参数是为了优化接收与发送区,在一般的应用中可以不用理会,GDIN号在编译后自动生成。

10)在通信时,可能出现通信中断,可以按照以下办法检测。如图7-13所示单击“查看”,在下拉菜单中分别选择“扫描速率”和“GD状态”,可以查看扫描系数和状态字,如图7-14所示。

在图7-14中“SR1.1”为23,表示发送更新时间为23×CPU循环扫描时间,SR范围为1~255。如果SR值设置太小,容易出现通信中断,可以按照具体需要设置大一点。GST是所有GDS逻辑或运算的结果。图7-14中GDS每包数据的状态字的各位意义如表7-2所示。

978-7-111-44821-1-Chapter07-15.jpg

图7-13 打开扫描系数和状态字

978-7-111-44821-1-Chapter07-16.jpg

图7-14 扫描系数和状态字

表7-2 GDS状态字的意义

978-7-111-44821-1-Chapter07-17.jpg

11)在全局数据包通信时如果需要控制数据的发送与接收,需要调用系统功能SFC60及SFC61,支持这种功能的只有S7-400 CPU,把需要控制发送与接收的SR改为0就可以了,如图7-15所示。

通过SFC61“GDRCV”(全局数据接收),从进入的GD帧中为单个GD信息包提取数据,然后输入接收到的GD信息包中。SFC61“GDRCV”的输入/输出参数如表7-3所示。

通过SFC60“GDSND”(全局数据发送),采集GD信息包的数据,并通过在GD信息包中指定的路径发送。SFC60“GDSND”的输入/输出参数如表7-4所示。

在图7-16程序中,当M0.0接通时,S7-400就接收S7-300的数据,将S7-300的MB130~MB149中的数据接收到S7-400的MB30~MB49中:当M0.2接通时,S7-400发送数据,将S7-400的MB10~MB19的数据发送到S7-300中的MB100~MB109中。

978-7-111-44821-1-Chapter07-18.jpg

图7-15 把S7-400 CPU的SR改为“0”

表7-3 SFC61“GD RCV”的输入/输出参数

978-7-111-44821-1-Chapter07-19.jpg

表7-4 SFC60“GD SND”的输入/输出参数

978-7-111-44821-1-Chapter07-20.jpg

2.无组态连接通信方式

无组态连接通信方式可以不依赖组态GD通信包,而是使用用户编程方式实现MPI通信功能。用户编程时灵活使用SFC65~SFC69来组织程序。

通过SFC65“X SEND”发送数据到MPI网络指定的通信伙伴。在通信伙伴上使用SFC66“X RCV”来接收数据。SFC65“X—SEND”和SFC66“X RCV”符合双边编程的MPI通信。

SFC65“X—SEND”的输入/输出参数如表7-5所示;SFC66“X—SEND”的输入/输出参数如表7-6所示。

通过SFC67“X GET”,可以读取MPI网上通信伙伴中的数据,在通信伙伴上没有相应的发送程序。SFC67“X GET”指令符合单边编程的MPI通信。SFC67“X GET”的输入/输出参数如表7-7所示。

978-7-111-44821-1-Chapter07-21.jpg

图7-16 在S7-400 PLC的OB1里编写的控制程序

表7-5 SFC65“X—SEND”的输入/输出参数

978-7-111-44821-1-Chapter07-22.jpg

表7-6 SFC66“X—SEND”的输入/输出参数

978-7-111-44821-1-Chapter07-23.jpg

表7-7 SFC67“X GET”的输入/输出参数

978-7-111-44821-1-Chapter07-24.jpg

通过SFC68“X PUT”,将数据发送到MPI网上通信伙伴中的指定数据区,在通信伙伴上没有相应接收程序。SFC68“X PUT”指令符合单边编程的MPI通信。SFC68“X PUT”的输入输出参数如表7-8所示。

表7-8 SFC68“X PUT”的输入/输出参数

978-7-111-44821-1-Chapter07-25.jpg

通过SFC69“X ABORT”终止通过SFCX SEND、XG ET或X PUT建立的通信动态连接。

如果属于X SEND、X GET或X PUT的作业已结束(BUSY=0),则在调用SFC69“X—ABORT”之后,将释放在通信两端使用的连接资源。

如果属于X SEND、X GET或X PUT的作业还没有结束(BUSY=1),则在连接终止之后重新通过REQ=0和CONT=0调用相关的SFC,然后等待BUSY=0。只有这样才能重新释放所有连接资源。

只能在有SFC“X SEND”、“X PUT”或“X GET”的通信端点上才可以调用SFC69“X—ABORT”,通过REQ=1来激活终止的连接。

SFC69“X_ABORT”的输入输出参数如表7-9所示。

表7-9 SFC69“X_ABORT”的输入输出参数

978-7-111-44821-1-Chapter07-26.jpg

无组态连接通信方式中的双边编程通信方式:双边编程通信方式,也就是本地与远程两边都要编写通信程序,发送方用SFC65来发送数据,接收方用SFC66来接收数据,这些系统功能只有S7-300/400才有,因此双边编程通信方式只能在S7-300/400之间进行,不能与S7-200通信。

下面以实例来说明CPU 315-2DP(4号站)与CPU 315-2DP(3号站)通过双边编程实现MPI通信。

1)本例需要的硬件和软件。

所需的硬件:CPU 315-2DP(6ES7 315-2AGIO-OABO)、CPU 315-2DP(6ES7 315-2AF03-OABO)。(www.xing528.com)

所需的软件:STEP 7 V5.3。

2)网络配置如图7-17所示。

978-7-111-44821-1-Chapter07-27.jpg

图7-17 网络配置

3)新建一个项目“双边编程”,然后插入两个S7-300站及组态MPI网络,方法与图7-5~图7-7所示相同,此处不再赘述,并在4号OB5中编写如图7-18所示程序,查看S7站点出现如图7-19界面。

在S7-300(3号站)的OB1中编写程序如图7-20所示。

在图7-20中,接收发送到4号站的数据包,数据包里通过作业标志符来分辨,而不管是哪个CPU发送过来的数据包。本例将接收到作业标志符为2的数据包。

当M0.0=0时,通过监控M10.0及MD102可以判断有没有新的数据包发送过来,当M10.0=1时,MD102显示的就是新发送来的数据包的作业表示符。

3.单边编程通信方式

单边编程通信方式非常适合S7-300/400与S7-200 CPU间的MPI通信。在S7-300/400中使用SFC68“X—PUT”发送数据,使用SFC67“X GET”来接收数据。

S7-300/400中没有V区,S7-200只有V区而没有数据块DB。如果对S7-200的V区进行读写,那么就要在S7-300/400中用DBI定义,也就是说S7-200的V区对应S7-300/400的DBI区。

978-7-111-44821-1-Chapter07-28.jpg

图7-18 S7-300(4号站)的OB35中编写程序

978-7-111-44821-1-Chapter07-29.jpg

图7-19 在线查看S7的连接

978-7-111-44821-1-Chapter07-30.jpg

图7-20 在S7-300(3号站)的OB1中编写程序

利用EM277模块也可以实现S7-300/400与S7-200之间的MPI通信。把EM277的拨码开关设为2,代表S7-200在MPI网络上的地址是2,与直接使用S7-200的编程口进行MPI通信实现的功能是一样的。

【例】 下面以S7-200与S7-300 CPU进行MPI通信,S7-300 CPU作为客户机,S7-200 CPU作为服务器(S7-200 CPU只能作为服务器)为例进行说明。

1)本例需要的硬件和软件:所需的硬件:CPU315-2DP(315-2AGIO-OABO)、CPU 226(216-28022-OXBO);

所需的软件:STEP 7 V5.3、STEP 7 MicroWIN V4.0。

2)网络配置如图7-21所示。

978-7-111-44821-1-Chapter07-31.jpg

图7-21 S7-300与S7-200之间的MPI通信网络配置

3)设置S7-200的MPI网络。

使用STEP 7-Micro/WIN V4.0建立一个文件“单边编程”,选好使用的S7-200的型号,打开通信口,如图7-22所示。

设置S7-200 CPU端口0的PLC地址为2、波特率为187.5kbit/s,然后确认并下载到CPU中。

978-7-111-44821-1-Chapter07-32.jpg

图7-22 设置S7-200通信口参数

4)使用STEP 7 V5.3新建项目“单边编程”,然后插入S7-300站并完成CPU硬件组态,如图7-23所示。

978-7-111-44821-1-Chapter07-33.jpg

图7-23 新建名为“单边编程”的项目

5)在硬件组态界面,如图7-24所示,双击机架上的CPU,在常规界面里单击“属性”,设置MPI站号(此处为3)及波特率(本例是187.5kbit/s)。

6)在S7-200的OBI(主程序)中编写程序,如图7-25所示。程序的意思是把SMB0的状态传送到VB0中。

978-7-111-44821-1-Chapter07-34.jpg

图7-24 设置S7-300的MPI参数

978-7-111-44821-1-Chapter07-35.jpg

图7-25 在S7-200的OB1(主程序)中编写程序

7)在S7-300的OB35中编写程序,如图7-26所示。

8)当M0.0=1时,把DB1.DBB1的数据传送到S7-200(2号站)的QB0中。看到S7-200的QB0的状态与SMB0的状态几乎相同。

4.组态连接通信方式

如果交换的信息量较大时,可以选择组态连接通信方式,这种通信方式只能在S7-300与S7-400或S7-400与S7-400之间进行。在S7-300与S7-400之间通信时S7-300只能做服务器,S7-400只能做客户机;在S7-400与S7-400之间进行通信时,任意一个CPU都可以做服务器或客户机。客户机CPU通过调用系统功能块实现通信,数据包最大长度为160个字节。

S7-400通过使用SFB15/FB15“PUT”,可以将数据写入到远程CPU。输入REQ的上升沿处启动SFB15/FB15。启动SFB15/FB15的过程中,将指向要写入数据区域(ADDRi)的指针和数据(SDi)发送到伙伴CPU。

启动SFB15/FB15的过程中,远程伙伴CPU将所需要的数据保存在随数据一起提供的地址下面,并返回一个执行确认。如果启动SFB15/FB15的过程中没有产生任何错误,则在下一个SFB/FB调用时,通过状态参数ONE来指示,其数值为1。SFB15/FB15必须要确保通过参数ADDRi和SDi定义的区域在编号、长度和数据类型方面相互匹配。只有在最后一个作业完成之后,才能再次激活写作业。SFB15/FB15“PUT”输入/输出参数如表7-10所示。

978-7-111-44821-1-Chapter07-36.jpg

图7-26 在S7-300的OB35中编写程序

表7-10 SFB15/FB15“PUT”输入/输出参数

978-7-111-44821-1-Chapter07-37.jpg

S7-400通过使用SFB14/FB14“GET”从远程CPU中读取数据。输入REQ的上升沿处启动SFB14/FB14。在启动SFB14/FB14的过程中,将要读取的区域的相关指针(ADDRi)发送到伙伴CPU,远程伙伴返回此数据。在下一个SFB14/FB14调用前,已接收的数据被复制到组态的接收区(RDi)中。必须要确保通过参数ADDRi和RDi定义的区域在长度和数据类型方面要相互匹配。通过状态参数NDR数值为1来指示此作业已完成。

只有在前一个作业已经完成之后,才能重新激活读作业。SFB14/FB14输入/输出参数如表7-11所示。

表7-11 SFB14/FB14输入/输出参数

978-7-111-44821-1-Chapter07-38.jpg

下面以S7-300与S7-400之间通信,S7-300做服务器,S7-400做客户机为例进行介绍。

【例】 组态连接实例。

1)本例所需的硬件和软件。

所需的硬件:CPU 414-2DP(6ES7 414-2XJ01-OABO)、CPU 315-2DP(6ES7 315—2AF03-OABO):

所需的软件:STEP 7 V5.3。

2)网络配置,配置如图7-27所示。

978-7-111-44821-1-Chapter07-39.jpg

图7-27 网络配置

3)新建一个项目“组态连接”,如图7-28所示。

4)然后插入两个站及组态MPI网络,操作方法如图7-5~图7-7所示。

5)在管理界面,单击项目名称“组态连接”,双击右边的“MPI(1)”图标,将弹出MPI网络总线及已组态挂在网络上的站。右键单击CPU 414-2DP的MPI接口,单击“插入新连接”,如图7-29所示。

6)在插入新连接界面中,选择如图7-30所示“CPU 315-2DP”作为本项目连接对象,并选择连接类型为“S7连接”,然后单击“应用”,将弹出如图7-31所示S7新连接属性界面,选择如图所示的参数。

978-7-111-44821-1-Chapter07-40.jpg

图7-28 新建项目

978-7-111-44821-1-Chapter07-41.jpg

图7-29 插入新连接

978-7-111-44821-1-Chapter07-42.jpg

图7-30 选择组态连接伙伴及连接方式

978-7-111-44821-1-Chapter07-43.jpg

图7-31 填写S7MPI连接参数

7)在MPI(1)界面里单击“978-7-111-44821-1-Chapter07-44.jpg”,编译并保存当前新建的连接参数。这样MPI网络组态参数全部设置完毕,如图7-32所示。

978-7-111-44821-1-Chapter07-45.jpg

图7-32 编译保存组态连接

8)编写程序。在S7-400 CPU的OB1里编写程序,如图7-33所示。

当M0.0上升沿时,从通信伙伴处读取数据到本地CPU(ADDRi→RDi),即读取S7-300(3号站)MB10~MB19的数据到S7-400(4号站)MB100~MB109中。

当M0.3上升沿时,从本地CPU发送数据到通信伙伴处(SDi→ADDRi),即把S7-400(4号站)MB200~MB205的数据发送到S7-300(3号站)MB20~MB25中。

978-7-111-44821-1-Chapter07-46.jpg

图7-33 在S7-400 CPU的OB1里编写的程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈