发布于 2014-11-24 15:42:57
172楼
上次S7通信介绍了S7通信PLC间的通信,PLC与WINCC的通信也是采用S7通信,对比S5与上位机的驱动,S7协议组(MPI,PROFIBUS和以太网)非常方便,只需要定义plc的地址和CPU的槽号就可以了。与PLC简的通信类似,通过CP模块可以观察到WINCC与PLC是通过PUT/GET实现的,也可以通过BSEND/BRECV实现,但是PLC侧需要建立连接和编程,在WINCC侧使用RAW DATA进行接受,这样数据量就比较大,但是raw数据表现分解。同样的情况下,WINCC与PLC通信,如果采样频率一样(1s),数据类型一样,那么通信的数据量最大,因为不同的数据包需要不同的报文头,不同频率的数据是分包的。通常PLC与WINCC支持优化的通信方式,wincc启动后,将采样的频率和数据告知PLC后,PLC按要求进行发射,否则的话,WINCC发射请求,PLC回应。其他厂家的HMI可能没有这个选项,通过S7-OPC可以有这样的选项。
编程器其实也是使用的S7通信,最早使用以太网编程使用购买驱动,但是按照S7 SOFTWARE NET就可以了,说明S7协议包含PG功能(猜想),PG功能不需要建立连接,但是建立通信后,在PLC侧可以看到内部建立了一个连接,PG功能带有S7路由功能,即两个PLC通过MPI连接,其中一个PLC又通过以太网与第三个PLC通信,使用PG连接其中任一个PLC都可以对其他PLC进行编程,即连接网络任意一点即可对这个网络上的PLC进行编程。这种路由在S7-300/400plc间不能实现,在S7-1500中可以进行这样的跨网段通信。
操作面板也有跨网络连接的功能,还有一点是其他都没有的功能,他可以进行内部的路由,例如S7-300cpu带有一个FM354或者FM355,操着面板连接到CPU上,可以直接对FM模块进行操作而不需要通过CPU先将数据读出。
另外还有S7 message的通信,事件触发,但是占用什么通信通道就不知道了。上面介绍这么多通信主要是想说明,
1:在PLC间进行通信,使用什么连接都可以,前提是发送区域与接收区一样,发送频率慢于接收。
2:如果发送的数据长度在变化,使用ISO ON TCP 或者S7通信。
3:如果想到个到发送并且对方已接收到,使用S7通信,如果使用S/R还得在程序中做校验。
4:如果与第三方通信必须使用TCP则要注意数据流的问题和发送频率的问题,并且没有确认。
5:选择的连接类型还要考虑到S7 CPU尤其是S7-300的通信资源问题。
这只是我的理解,如有不同意见可以交流,也可以分享一下。
所有通信方式有适合你的地方,也有你不知道的地方。最后一个讨论的问题是在开篇中介绍的主从通信了,下次再说吧。
来自西门工业子技术支持 高级专家