VC与西门子plc的通信过程
答:1,Prodave通讯
Prodave是西门子公司提供的软件包,为高级语言编程和plc通信提供了接口。
通信接口:MPI
由于MPI口是每个cpu的编程口,所以plc不需要再增加一个通信模块,所以这个方案比较经济,而且prodave软件包自带了例子和详细说明,使用起来应该比较简单方便(我只是匆匆看了一下文档,没有做过实验)。百度上有很多这方面的信息。当然,mpi的速度是有限的。如果用普通的pc适配器连接pc和plc,最高速度会达到38.4kbps,不知道prodave能不能支持mpi卡(5611等等)。如果是这样,速度可以达到187.5kbps。
2.串行通信
我看到过一些论文,pc机和plc的通信是通过串口通信实现的。这种情况下有几个要求:
a、需要为plc增加一个串口通讯模块,比如300,就需要cp340或者cp341(前者更便宜);
b、串口通信需要在plc中编程,即接收消息和发送消息,调用FB2/FB3(如果使用CP 340)。
c,串行通信的速度是有目共睹的,cp340或者cp341的数据吞吐量也是有限的,也就是消息长度有限,所以个人认为如果通信数据量大的话不适合使用串行通信。
d、消息格式相对自由,但要合理。虽然没有做过具体的实验,但个人认为可以参考modbus的消息结构来编程,甚至可以采用modbus规范,但这种情况下,程序员要熟悉pc端和plc端的modbus编程。
3、opc
Opc是近几年很流行的东西。其实我很讨厌opc安全认证的设置。但是,用opc编程访问plc,真的是一件很轻松很舒服的事情。你需要做的是了解opc的结构和编程,尤其是用vb写opc是傻逼的工作,当然要牺牲很多。
早前我用vb实验过通过opc(以太网)访问300,包括西门子simaticnet提供的opc接口和第三方的kepserver。
opc接口编程的优点是:通信速度快,编程简单。
4、以太网编程
使用以太网编程访问plc实际上可以分为两种类型:
一个是socket接口,需要在plc中编程接收/发送,大概是fc5/fc6。我没什么印象。当然,熟悉西门子工业通信的人很容易在plc中定义一个连接,填写地址、端口号等信息。Pc端使用socket接口编程,最简单的就是vb中的wisock控件,当然也掩盖了很多细节。Socket编程是一门艺术,讲究说、学、唱:)
这种方式的好处应该是pc端编程更简单一点(相比后者),而且可以不局限于windows平台,因为socket接口更好的支持,比如unix。
二是使用西门子的sapi接口功能,这样在plc中就不需要太多的编程。当然,pc端的编程难度比较高,ms只能用C写,所以我望而却步。
初学者可以结合plc视频教程学习,plc的技术不错。