一台S7-300的plc,连接西门子的以太网模块,pc机使用socket从上面采集数据。但是pc向plc发送的数据命令是什么?
不就是普通的Socket通信么
pc发的是一些字节码吧,具体怎么定义与解析是看你程序怎么设计。
pc和plc的通信是有固定的协议的,通过这些协议构造数据包发到plc。
如果你对协议部分感兴趣,或者需要开发,可以去看看MPI/DP协议的资料。
如果你只是想要采集plc的数据,可以通过KepServer等第三方软件连接到plc,然后这个软件将会通过Opc Server的方式发布数据,这个时候我们就可以使用Opc Client或者实现client功能的软件来采集数据了
系统的要求是不能用其他Server的,太麻烦,而且占资源。MPI的方式已经知道怎么写了,但是MPI的线太短。现在的情况是不知道数据包的格式。
@贪心狸猫: 具体支持或使用哪个协议,还得看所用到的以太网模块,下面是一篇配置成Modbus TCP协议通信的《基于s7-300,400以太网通讯块cp modbus tcp 通讯快速入门》
http://wenku.baidu.com/view/95d1fd260722192e4536f6cd.html
如果能够配置成Modbus TCP协议,则可以参考网上Modbus TCP的文档构造数据包进行通信
我了解到的也就是这些,如果还不能解决,建议到工控类的网站去发帖
西门子提供了一个SIMATIC工具集,可以在PC上建立 OPC服务器用以组态。PC可通过网络访问到OPC Server,并读取其中的数据量或者开关量等。
欧系PLC一般都以OPC方式进行交互。
不同的PLC型号都有对应的DLL文件,可以百度搜索一下:
S7-300/S7-400 TCP/IP : WinTcpS7.DLL
S7-1200/S7-1500 TCP/IP: WinTcpS7_1K.DLL
S7-200 Smart TCP/IP: WinTcpS7_Smart.DLL
S7-200 CP243 TCP/IP: WinTcpS7_CP2.DLL
S7-200/S7-200 Smart Serial Port: WinS7_PPI.DLL