【图】西门子plc间网络通信的多种方式

作者:老电工时间:2020-02-21 10:55:33

有关西门子plc间网络通信的多种方式,包括s7-300/400之间互连,采用plc与plc通过以太网访问,采用两块cp343-1互连等,winlc与plc互连,以winlc与s7-300互连为例说明。

西门子plc间网络通信的方式

西门子plc通信的主要方式:

西门子plc间网络通信方式

西门子300/400系列的plc的通讯方式开始大量使用工业以太网通讯,mp277/377、xp177b系列触摸屏也集成了以太网接口,这带来一个好处,所有的接口都统一,在网络通讯时采用都以太网接口,所有的设备组成一个局域网,包括上位监控计算机、编程设备、plc、触摸屏都能很方便地互相访问,需要扩展多一个设备也很方便,只需要加一个交换机就能扩展出多个接口。因为有这些好处,所以采用以太网通讯越来越流行,下面说一说以太网通讯的其中一个应用,plc与plc之间通过以太网互连。

一、s7-300/400之间互连

1、采用plc与plc通过以太网访问,需要增加以太网模块,如cp343-1,cp443-1的模块,或者采用带有pn接口的plc,如cpu315-2dp/pn的plc。

2、采用两块cp343-1互连,先在同一个项目里做好两套plc的硬件组态,分配好ip地址,打开netpro,选择其中一个plc,双击连接列表上的空白行,添加一个s7 conection。选择连接的另一个plc,记住连接的id号。通讯双方的其中一个站为client端,激活“establish an active connection”的选项(默认是激活的)。这样netpro的配置就完成了,编译、下载完成

3、打开其中两套plc的ob1,调用fb12(bsend)块发送数据,fb13(brcv)块接收数据,1#plc的发送对应2#plc的接收,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#2,则2#plc的fb13的r_id也是dw#16#2,这样才能保证正常接收发送;d、done,发送完成,如果req端是一个不停的脉冲,正常情况下done端也应该也是一个不停的脉冲反馈;e、sd_1,发送的开始地址,以p# x.x byte xxx来表示,f、len,发送数据的长度。

5、采用fb12、fb13来进行发送/接收是比较麻烦的,一方面需要两端的以太网模块都支持双边发送,如cp343-1-lean就不支持了,另一方面,两边都要写程序,对于增加的系统不太方便,所以这时可以在netpro里把one-way(单边通讯,激活后fb12、fb13不能使用)激活,采用fb14(get)取数据、fb15(put)发送数据来做,fb14的参数定义和fb12差不多,只是少了r_id和len,这样更方便一些,不需要对原有的系统进行什么更改,只需要把单边的plc组态和程序下载即可。

6、另一个问题是fb和sfb的区别,在400上采用sfb,在s7-300上采用fb,在s7-300集成的pn口上,采用sfb,这个问题曾经折磨过我一两天才解决。

二、winlc与plc互连

winlc是在pc机上的软件plc,可以把一台pc机当成plc使用。这样对于不能采用模拟器连接的软件是比较方便的,如采用intouch、ifix这些scada软件做为上位机软件时,测试是个麻烦的问题,需要与实际机器连接起来才能测试,但如果有winlc,可以把程序拷到winlc上运行,上位机软件与winlc联机测试,省去不少工夫,所以winlc对于不方便进行现场测试的环境,是个不错的替代方案。winlc既然是一套软件plc,就能够实现plc的功能,那么与plc通讯也是可以实现的。

winlc与s7-300互连

1、新建一个项目,建立一个s7-300的站点,硬件组态;建立一个pc站点,在pc站点上增加一个winlc和一个ie general,ie general的ip地址与pc机的ip地址一致,其实ie general指的就是pc机的以太网卡。

2、打开netpro,在winlc上新建一个s7 conection,指向s7-300,编译、存盘。

3、在pcstation上增加winlc和ie general,需要注意槽号要与硬件配置时一样。

3、打开winlc的ob块,调用sfb14、sfb15来读写s7-300的数据。

4、启动winlc软件,下载程序,这样就可以实现软件plc与plc互连了。

三、两种方式的结合

如果有多台plc需要与pc机上的scada软件通过opc进行通讯,但是又发现scada软件读取的速度太慢,不能满足刷新要求,或者数据要做些预处理才能显示,scada软件上运行太多的脚本又影响速度,那么通过软plc把多台plc的数据先读过来进行预处理,scada软件只与一台plc进行通讯,这样scada软件上的工作量会少一些。

结合实现功能:

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

2、在winlc的pc站点上添加一个opc服务器,在netpro里面打开opc的连接列表,添加一个s7 conection,指向winlc,编译、下载。

3、通过opc客户端可以直接访问opc服务器的内容,常用的scada软件如intouch、citect、ifix这些软件都支持opc,设置访问连接就可以在软件上直接读写了。

如果更简单的界面,可以自己用vb编写一个opc客户端,读写数据都在vb程序上实现,不使用scada软件,可以省掉不少钱了。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 西门子plc