西门子PLC是很多人经常使用的一个品牌,那么今天跟大家分享一下做上位机开发,究竟有多少种方式可以实现与西门子PLC通信。这里,我们可以从串口通信、以太网通信及OPC通信三个方面来进行说明。
1、串口通信
西门子PLC支持串口通信,在S7-200和S7-200Smart中,都直接集成了串口,从S7-1200到S7-1500,慢慢都取消掉了,如果需要,可以通过扩展模块的方式来增加,出现这种现象的原因,其实也是工业发展的必然结果。串口通信的优势在于简单、成本低,劣势也非常明显,就是传输效率低。西门子早期的串口通信主要是ProfibusDP通信,上位机是无法直接与西门子PLC走Profibus DP通信的,西门子PLC常用的串口通信方案如下所示:
PPI通信:PPI通信只针对S7-200和S7-200 Smart系列PLC,其他型号不支持。ModbusRTUMaster:西门子PLC对Modbus协议支持还是比较不错的,这里是指PLC做Slave(即从站),上位机做Master(即主站)。ModbusRTUSlave:这里是指PLC做Master(即主站),上位机做Slave(即从站)。
2、以太网通信
西门子PLC通信还是以太网通信为主,可能很多人都知道西门子主要的两种私有协议分别是S7协议和Profinet总线,Profinet是一种总线协议,目前据我了解,C#是无法直接与西门子PLC走Profinet通信的。西门子PLC常用的以太网通信方案如下所示:
S7通信:基本上从S7-200到S7-1500均可以实现,这里有很多可以选择的开源或商业库,包括、pronodave、libnodave、sharp7,也可以自己封装通信库。ModbusTCP Server:这里是指PLC做Server(即服务器),上位机做Client(即客户端)。ModbusTCPClient:这里是指PLC做Client(即客户端),上位机做Server(即服务器)。OpenProtocolServer:这里是指开放式TCP通信,PLC做TCPServer(即服务器),上位机做TCPClient(即客户端)。OpenProtocolClient:这里是指PLC做TCPClient(即客户端),上位机做TCPServer(即服务器)。