通过KEPWARE ODBC DRIVER和ADVANCED TAG 实现数据库和PLC的双向通信
[p=30, 2, left][b]本文以实例介绍了一种方法,利用KEPWARE OPC SERVER[/b][b]的ODBC DRIVER[/b][b]驱动和ADVANCED TAGS[/b][b]插件中的LINK TAG[/b][b]模块,来实现[url=http://lib.csdn.net/base/mysql]数据库[/url]和PLC[/b][b]之间的双向通信,而无需借助任何的OPC CLIENT[/b][b]编程。[/b][/p]1. MES将业务数据下发给接口表[p=30, 2, left]下表DBI是MES中的业务数据表,SHOP字段表示车间,VIN表示车号,DL_FLAG是数据处理状态标记,1表示数据已下发给接口:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193705856-444642461.png[/img]
[/p]
[p=30, 2, left]下表DBX是MES数据下载给PLC的接口表,DL_FLAG是MES下载控制位,UL_FLAG是PLC上传控制位:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193713731-66550596.png[/img] [/p]
2. OPC将接口表数据同步给PLC交换区DB[p=30, 2, left]首先建立指向MES数据库的ODBC DRIVER,如下图是DBX组映射了DBX表的数据:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193731747-856801051.png[/img] [/p]
[p=30, 2, left]我们可以通过OPC QUICK CLIENT来查看DBX这个表的实时数据:[/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193739638-893154525.png[/img][/p]
[p=30, 2, left]然后我们需要从数据库向PLC同步下载控制位DL_FLAG:[/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193748247-1794690868.png[/img][/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193810075-1794251154.png[/img][/p]
[p=30, 2, left]当本地B_DL_FLAG=1时,从MES向PLC同步VIN号:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193823981-156377265.png[/img] [/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193848559-330830654.png[/img][/p]
3. PLC处理业务数据并更新状态[p=30, 2, left]PLC读取本地的业务数据,完成之后,将本地的B_UL_FLAG设置为1:[/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193901309-1850755530.png[/img][/p]
4. OPC将PLC控制位上传给MES接口表[p=30, 2, left]OPC通过LINK TAG将B_UL_FLAG同步给MES:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193913513-1695440266.png[/img] [/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726193928169-234755484.png[/img][/p]
[p=30, 2, left]MES数据库自动得到更新:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194203763-825063444.png[/img] [/p]
5. 复位[p=30, 2, left]当DL_FLAG=1且UL_FLAG=1,表示数据下载及处理完成,MES将DL_FLAG复位:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194210669-436374156.png[/img] [/p]
[p=30, 2, left]OPC将DL_FLAG同步到PLC。[/p][p=30, 2, left]当本地B_DL_FLAG=0时,PLC将B_UL_FLAG复位:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194223403-1300940889.png[/img] [/p]
[p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194235106-530863811.png[/img][/p]
[p=30, 2, left]然后OPC把本地B_UL_FLAG上传到MES数据库,双方控制位均已复位:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194251794-1501885027.png[/img] [/p]
6. 握手时序图[p=30, 2, left]下图是完整的握手时序图:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194258481-642244811.png[/img] [/p]
7. 应用范围[p=30, 2, left]本方法可以应用于以下场合,部分代替OPC CLIENT开发使用:[/p][p=30, 2, left]1) PLC上传数据很多,MES下发数据很少。[/p][p=30, 2, left]比如PMC设备监控模块,大部分数据是MES从设备PLC采集的位信号和模拟量数据,这些数据可以通过DATA LOGGER模块自动写入MES数据库。MES下行的数量主要是时间同步和班次等信息,数据量小,可以直接通过LINK TAG将MES数据同步到PLC。[/p][p=30, 2, left]2) MES和PLC之间有专用接口传递数据,也就是说MES只需要读、写少数几个固定的OPC TAG,那么此方法可以快速部署,使用LINK TAG实现双向读写。[/p]
8. 相关KEPWARE插件[p=30, 2, left]1) ODBC DRIVER:[/p][p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194306497-1949118132.png[/img][/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194314059-1617112044.png[/img] [/p]
[p=30, 2, left]2) ADVACED TAG插件,包含LINK TAG功能:[/p][p=30, 2, center][img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194320919-470647080.png[/img] [/p]
[p=30, 2, left] [img]http://images2015.cnblogs.com/blog/892040/201607/892040-20160726194327309-2044819751.png[/img][/p]
kepserverex 服务器 数据访问方式
同步数据访问方式:当读写标签数据时,客户程序一直占用读写通道,读写完成后将通道释放。这种方式容易造成网络堵塞和系统的性能效率下降。异步数据访问方式:当读写数据标签时,客户端发出请求后,分时创建读写通道完成数据读写。异步访问方式分时占用通信通道,比同步访问方式效率更高,节约了CPU资源。
订阅数据访问方式是一种自动发送数模式。服务器定以一定的更新周期扫描数据缓冲区,当数据发生变化时自动向客户端发送数据。如果标签数据变化微小,则不通知,从而减轻客户端和服务器的负荷,节约系统资源。
KEPServerEX 服务器同时拥有这三种数据操作模式,可根据具体情况选择使用。相比同步访问方式,异步通信分时占用较少的通信信道和执行程序的时间,订阅式的方式只有在数据变化超过一定限度时,才自动向上发送数据,效率最高。一般读取现场数据均采用订阅方式以节约系统资源。
页:
[1]