您的位置:首页 > 理论基础 > 计算机网络

C# / VB / LabView /VC 上位机使用S7-TCP协议与西门子PLC进行网口通信的教程

2018-01-29 13:59 555 查看
    现在越来越多的项目开始使用上位机了,在上位机实现数据存储、曲线绘制时,使用高级语言自行开发程序,比诸如组态王、inTouch等更加自由,更加强大。在进行上位机软件开发时,第一步就是要跟PLC取得通信,能够读写PLC内各数据区的变量值。

    通常有两种办法来读写PLC内的变量:

    1. OPC

         OPC可以同时兼容不同品牌的PLC,但OPC的缺点也是显而易见的:由于使用了COM技术,开发难度加大,通信速率低;另外由于OPC架构的设计,上位机无法实现整块区域的读写,通信效率低;另外就是在部署上位机软件时,需要事先安装并配置OPC服务器,这是一个非常繁琐的工作,且项目投入运行后,如果OPC服务器的配置出现问题,维护起来也很麻烦。最重要的一点是,OPC服务器需要一笔授权的费用,增加了项目成本。

    2. TCP/IP

        既然PLC可以支持网口通信,那有没有办法不用OPC直接和PLC通信呢?答案当然是可以的。用TCP/IP协议通信,不需要在工控机部署任何第三方软件,仅需要一根网线即可通信,不论是从开发维护难度、通信速率和效率等角度看,都比OPC方式有了一个质的提升。

        那么对于软件开发人员该怎么做呢?首先的工作就是要弄清楚PLC的通信协议。西门子的PLC使用的是S7-TCP协议,这个协议是西门子公司基于ISO/TCP修改而来的通信协议栈,且不对外公开。程序猿想要搞清楚这个协议,需要进行抓包,然后进行破解,这是一个难度很高的任务。

       对于基础不太好的同学,不建议自己进行抓包和破解,可以通过调用现有的通信库实现功能。这里给大家推荐一个很好的库:ButterflyS7。

        这是一款标准DLL库,支持C# 、 VB 、VC、 LabView、Delphi、....  只要开发平台有调用DLL功能的,都可以使用。通信库封装了西门子的S7-TCP协议,支持全系列的西门子PLC,链接:点击打开链接

      

        工控的小伙伴们赶紧get起来吧,享受通信成功那一刻的快感!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: