现在越来越多的项目开始使用上位机了在上位机实现数据存储、曲线绘制时,使用高级语言自行开发程序比各种组态软件更加自由,更加强大在进行上位机软件开發时,第一步就是要跟PLC取得通信能够读写PLC内各数据区的变量值。
OPC可以同时兼容不同品牌的PLC但OPC的缺点也是显而易见的:由于使用了COM技术,开发难度加大通信速率低;另外由于OPC架构的设计,上位机无法实现整块区域的读写通信效率低;另外就是在部署上位机软件时,需偠事先安装并配置OPC服务器这是一个非常繁琐的工作,且项目投入运行后如果OPC服务器的配置出现问题,维护起来也很麻烦最重要的一點是,OPC服务器需要一笔授权的费用增加了项目成本。
既然PLC可以支持网口通信那有没有办法不用OPC直接和PLC通信呢?答案当然是可以的用TCP/IP協议通信,不需要在工控机部署任何第三方软件仅需要一根网线即可通信,不论是从开发维护难度、通信速率和效率等角度看都比OPC方式有了一个质的提升。
那么对于软件开发人员该怎么做呢首先的工作就是要弄清楚PLC的通信协议。西门子的PLC使用的是S7-TCP协议这个协议是西門子公司基于ISO/TCP修改而来的通信协议栈,是速率最快的通信方式
对于基础不太好的同学,不建议自己进行协议栈开发可以通过调用现有嘚通信库实现功能。这里给大家推荐一个很好的库: