zoukankan      html  css  js  c++  java
  • 通过KEPWARE ODBC DRIVER和ADVANCED TAG 实现数据库和PLC的双向通信

     

    本文以实例介绍了一种方法,利用KEPWARE OPC SERVER的ODBC DRIVER驱动和ADVANCED TAGS插件中的LINK TAG模块,来实现数据库和PLC之间的双向通信,而无需借助任何的OPC CLIENT编程。

    1.       MES将业务数据下发给接口表

    下表DBI是MES中的业务数据表,SHOP字段表示车间,VIN表示车号,DL_FLAG是数据处理状态标记,1表示数据已下发给接口:



    下表DBX是MES数据下载给PLC的接口表,DL_FLAG是MES下载控制位,UL_FLAG是PLC上传控制位:

     

    2.       OPC将接口表数据同步给PLC交换区DB

    首先建立指向MES数据库的ODBC DRIVER,如下图是DBX组映射了DBX表的数据:

     

    我们可以通过OPC QUICK CLIENT来查看DBX这个表的实时数据:

     

    然后我们需要从数据库向PLC同步下载控制位DL_FLAG:

     

     

     

    当本地B_DL_FLAG=1时,从MES向PLC同步VIN号:

     

     

    3.       PLC处理业务数据并更新状态

    PLC读取本地的业务数据,完成之后,将本地的B_UL_FLAG设置为1:

     

    4.       OPC将PLC控制位上传给MES接口表

    OPC通过LINK TAG将B_UL_FLAG同步给MES:

     

     

    MES数据库自动得到更新:

     

    5.       复位

    当DL_FLAG=1且UL_FLAG=1,表示数据下载及处理完成,MES将DL_FLAG复位:

     

    OPC将DL_FLAG同步到PLC。

    当本地B_DL_FLAG=0时,PLC将B_UL_FLAG复位:

     

     

    然后OPC把本地B_UL_FLAG上传到MES数据库,双方控制位均已复位:

     

    6.       握手时序图

    下图是完整的握手时序图:

     

    7.       应用范围

    本方法可以应用于以下场合,部分代替OPC CLIENT开发使用:

    1)       PLC上传数据很多,MES下发数据很少。

    比如PMC设备监控模块,大部分数据是MES从设备PLC采集的位信号和模拟量数据,这些数据可以通过DATA LOGGER模块自动写入MES数据库。MES下行的数量主要是时间同步和班次等信息,数据量小,可以直接通过LINK TAG将MES数据同步到PLC。

    2)       MES和PLC之间有专用接口传递数据,也就是说MES只需要读、写少数几个固定的OPC TAG,那么此方法可以快速部署,使用LINK TAG实现双向读写。

    8.       相关KEPWARE插件

    1)       ODBC DRIVER:

     

     

     

    2)       ADVACED TAG插件,包含LINK TAG功能:

     

     

     

  • 相关阅读:
    Java中NIO和IO区别和适用场景
    JDK和CGLIB动态代理原理
    java中的Serializable接口的作用
    redis采用序列化方案存对象
    在时间复杂度为O(n)且空间复杂度为O(1)的情况下翻转链表
    给定一个排好序的数组,然后求出丢失的数字
    求字符串里超过字符长度一半的元素
    求你给定两字符串包含的字母数是否完全一致
    动态规划,求数组不相邻数字的最大子串值
    JWT 工具
  • 原文地址:https://www.cnblogs.com/tallrain/p/5708709.html
Copyright © 2011-2022 走看看