• Modbus、KepServer、西门子PLC通信


    昨天在现场实现了工业数据的通信,简单写一下。

    1.按照国际惯例,先介绍一下

    ModBus通信协议感觉是物理层面的,几个终端串联在一起,通过设定每个终端不同的ID号,来访问。具体硬件实现还未研究。

    本系统采用ModBus RTU模式通信,使用的是和校验,低位在前。

    有关ModBus的介绍,这篇文章很好:极客学院WiKiModBus协议详解

    KepServer是一个提供OPC服务的服务软件,其提供一个OPC服务,可以被外部程序调用,经行client数据写入。

    OPC (OLE for Process Control) 用于过程控制的OLE,

    OLE是 object linking and embedding (对象链接与嵌入)的缩写。

    OPC采用客户端/服务器的结构,作为中心数据源的OPC服务器负责向各种客户端提供来自现场设备的数据。

    西门子PLC,我的理解就是微型计算机,只是可以在更苛刻的环境下使用。

    2.如何实现

    数据通过ModBus与计算机通信,使用USB转R232再转R485硬件实现。这个要提前准备好驱动,我用的是宇泰的UT-8801款USB转串口,驱动下载地址

    ModBus有两根线通信,测量两线电压应该在0.11V左右

    然后通过ModBus协议读取设备的数据。

    通过自己写的软件将数据传入KepServer中,教程:用C#开发OPC客户端

    软件通过发送ModBus指令得到数据,通过绑定的OPC服务,根据在KepServer中建立的地址,将得到的数据写入到KepServer中。

    KepServer通过网线与PLC相连,使用PLC的IP地址,和默认端口号102 通信。

    在KepServer建立的点名就是上面软件的访问地址,而这些点名的地址是PLC中DB块的地址。(以后补图)

    这样KepServer就可以将数据写入到PLC中,PLC使用WinCC建立界面就可以实时看到数据和数据历史曲线了。

    3.小错误

    电脑无法识别COM口,驱动没有装好,下次试新的电脑,一定要带一份驱动。

    ModBus线不知道正负,可以使用万用表测电压检测。

    ModBus数据无法读到,原理是设备的ID有重复的。

    OPC软件写入失败,注意各种错误提示,并网上搜索,特别是各个操作系统的时间格式。

    (后续补图)

    【图片】

  • 相关阅读:
    正则表达式验证银行卡号
    正则表达式验证银行卡号
    正则表达式验证手机号
    正则表达式验证手机号
    好用的手机浏览器
    jmeter(三)跨线程组调用token
    jmeter(二)ant报告模板下载与使用
    1-5JSON数据解析
    1-3HTTP协议基础
    1-2接口测试概述
  • 原文地址:https://www.cnblogs.com/hujun1992/p/OPC2PLC.html
Copyright © 2020-2023  润新知