2024年5月2日发(作者:)

西门子PLC与PLC之间通过以太网互连

目前西门子S7-300/400系列的PLC的通讯方式开始大量使用工业

以太网通讯,MP277/37ZXP177B系列触摸屏也集成了以太网接口,这

带来一个好处,所有的接口都统一,在网络通讯时采用都以太网接口,所

有的设备组成一个局域网,包括上位监控计算机、编程设备、PLC触摸屏

都能很方便地互相访问,需要扩展多一个设备也很方便,只需要加一个交

换机就能扩展出多个接口。因为有这些

好处,所以采用以太网通讯越来越流行,下面说一说以太网通讯的其

中一个应用,PLC与PLC之间通过以太网互连。

一、S7-300/400之间互连

1、采用PLCtPLC通过以太网访问,需要增加以太网模块,如

CP343-1,CP443-1的模块,或者采用带有PN接口的PLC如

CPU315-2DP/PN勺PLG

2、采用两块CP343-1互连,先在同一个项目里做好两套PLC的硬

件组态,分配好IP地址,打开NetPro,选择其中一个PLC,双击连接列表

上的空白行,添加一个S7conection。选择连接的另一个PLC记住连接

的ID号。通讯双方的其中一个站为Client端,激活

"Establishanactiveconnection”的选项(默认是激活的)。这样NetPro

的配置就完成了,编译、下载完成

3、打开其中两套PLC的OB1调用FB12(BSEND^发送数据,

FB13(BRCV)fe接收数据,1#PLC的发送对应2#PLC的接U攵,1#PLC

的接收对应2#PLC的发送。

4、调用FB12的时候几个参数的含意,a、REQ发送开始,上升沿

触发发送工作;b、ID,连接ID号,这个ID号是在NetPro组态时生成的

ID号;c、R_ID,连接号,相同连接号的FB块互相对应发送/接收数据,

这个是由用户编程时定义的,例如1#PLC的FB12的R_ID是

DW#16#2M2#PLC的FB13的R_ID也是DW#16#2这样才能保证正常

叁收发送;d、DONE发送完成,如果REQ®是一个不停的脉冲,正常情

况下DON端也应该也是一个不停的脉冲反馈;e、SD_1发送的开始地

址,以P#xx来表示,f、LEN发送数据的长度。

5、采用FB12FB13来进行发送/接收是比较麻烦的,一方面需要两

端的以太网模块都支持双边发送,如Cp343-1-Lean就不支持了,另一

方面,两边都要写程序,对于增加的系统不太方便,所以这时可以在

NetPro里把One-way(单边通讯,激活后FB12FB13不能使用)激活,采

用FB14(GET双数据、FB15(PUT设送数据来做,FB14的参数定义和FB12

差不多,只是少了R_ID和LEN这样更方便一些,而且还有一个好处,不

需要对原有的系统进行什么更改,只需要把单边的PLC组态和程序下载

就可以了

6、需要注意的另一个问题是FB和SFB的区另I」,在S7-400上采

用SFB在S7-300上采用FB,在S7-300集成的PN口上,采用SFB这个

问题曾经折磨过我一两天才解决。

二、WinLCtPLC互连:

WinLC是在PC机上的软件PLC可以把一台PC机当成PLC使用。

这样对于不能采用模拟器连接的软件是比较方便的,如采用Intouch、Ifix

这些

SCADAC件做为上位机软件时,测试是个麻烦的问题,需要与实际

机器连接起来才能测试,但如果有WinLC,可以把程序拷到WinLC上运

行,上位机软件与WinLC®机测试,省去不少工夫,所以WinLC对于不

方便进行现场测试

的环境,是个不错的替代方案。WinLC既然是一套软件PLC就能够

实现PLC

的功能,那么与PLC®讯也是可以实现的,

卜面说一说WinLC与S7-300互连

1、新建一个项目,建立一个S7-300的站点,硬件组态;建立一个

PC站点,在PC站点上增加一个WinLC和一个IEGeneral,IEGeneral的

IP地址与PC机的IP地址一致,其实IEGeneral指的就是PC机的以太

网卡。

2、打开NetPro,在WinLC上新建一个S7conection,指向S7-300,

编译、存盘

3、在PCStation上增加WinLCffiIEGeneral,需要注意槽号要与硬件

配置时候一样

4、打开WinLC的。映,调用SFB14SFB15来读写S7-300的数据

5、启动WinLC软件,下载程序,这卞¥就可以实现软件PLC与PLC

互连了

三、两种方式的结合

如果有多台PLC需要与PC机上的SCADAC件通过OPCS行通讯,

但是又发现SCADAC件读取的速度太慢,不能满足刷新要求,或者数据

要做些预处理才能显示,SCADAC件上运行太多的脚本又影响速度,那

么通过软PLC把多台PLC的数据先读过来进行预处理,SCAD徽件只与

一台PLC进行通讯,这样SCADA软件上的工作量会少一些。这个时候

把上面说的两种方式结合一下,就能够实现这样的功能了。

1、通讯连接参照上面的方法设置

2、在WinLC的PC占点上添加一个OPCR务器,在NetPro里面打

开OPC勺连

接列表,添加一个S7conection,指向WinLC编译、下载

3、通过OPC客户端可以直接访问OPCK务器的内容,常用的SCAD

徽件如Intouch、Citect、IFix这些软件都支持OPC设置访问连接就可以

在软件上直接读写了,如果更简单的界面,可以自己用VB编写一个OPCg

户端,

读写数据都在VB程序上实现,不使用SCADAC件,可以省掉不少

钱了