本文介绍利用CommGate X2ACCESS-U实现从OPC UA Server读取数据并同步转储至ACCESS数据库。CommGate X2ACCESS-U是宁波科安网信开发的网关软件,软件可以登录到网信智汇(http://wangxinzhihui.com)下载。
【案例】如下图所示,实现从OPC UA Server实时读取数据并同步转储至ACCESS数据库。
【解决方案】在Access宿主机上安装CommGate X2ACCESS-U软件,与OPC UA Server采用以太网通讯。
- ACCESS数据表结构要求,如下:
- 至少要求具备Id、name、value三个字段。
- name:标签名称,字符类型
- value:数值,可以是字符类型或浮点类型
- state:1表示好值 0表示坏值
- time:不是必须,可以是datetime或bigint
以上字段名称如不是Id、name、value、state、time,需要在以下配置文件进行字段名称的配置
2. OPC UA通讯调试:在网关机上运行OPC UA调试工具,与OPC UA数据源通讯调试。通讯正常后,记下通讯参数。
3. 配置X2ACCESS 出口端参数:在X2ACCESS安装目录下编辑X2ACCESS.ini,修改出口端参数。
[OUT]
;输入源类型:ACCESS,不做修改
Type=ACCESS
;数据库密码
Pwd=123456
;数据库路径
DB=F:\Program_KA3\CommGate\bin\RealTime.mdb
;连接串,定义连接串,以连接串信息为准,以上用户密码等信息配置忽略
ConnectStr=Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database password=123456;Data Source=F:
\Program_KA3\CommGate\bin\RealTime.mdb
;读取数据的SQL语句,如果不设置的话,将由以下字段名自动构造
;表中至少包含name,value字段
;state字段不是必须的,没有state字段时,必须构造1个虚拟state字段,如select name, value, 1 as state from snapshot
;State值 = 1 好值 =0 坏值
ReadSQL=select name1, value1, state1, time1 from snapshot
;定义Name字段名,默认为name
NameField = name1
;定义Value字段名,默认为value
ValueField = value1
;定义State字段名,默认为state
StateField = state1
;定义Time字段名,可以不定义,默认为空,表示没有Time字段
TimeField = time1
[IN]
;输入端配置文件名,不含后缀
INI = OPCUAClient
;通讯类型
Type=
4. 配置X2ACCESS 入口端参数:在X2ACCESS安装目录Ini下编辑OPCUAClient.ini,按照刚才记下的通讯参数修改入口端参数。
[IN]
; 通讯类型OPCUA_CLIENT,不做修改
Type = OPCUA_CLIENT
;EndpointUrl
EndpointUrl = opc.tcp://XTC-20140707LKO:53530/OPCUA/SimulationServer
;用户认证模式(0:匿名用户 1:用户密码)
AuthMode = 1
;采用用户密码认证时,UserName不能为空
UserName =test
; 采用用户密码认证时,Password不能为空
Password =123456
;安全模式(0:None 1:Sign 2:Sign & Encrypt)
SecurityMode = 0
;证书文件,放在安装目录Cert子目录下
;与OPC UA Server建立连接前,需要将证书文件拷贝到OPC UA Server的信任目录下
CertFile = Client_Cert.der
; 私钥文件,放在安装目录Cert子目录下
;与OPC UA Server建立连接前,需要将证书文件拷贝到OPC UA Server的信任目录下
KeyFile = Client_Key.der
5.标签配置:在X2ACCESS安装目录下编辑X2ACCESS.xls,配置标签。
源标签采用BrowseName,如下图所示。不过,将“:”替换成“,”。
6.运行X2ACCESS.exe,启动网关。
7.ACCESS数据查看:用ACCESS调试工具查看写入的数据是否正确。
8.详细配置说明见《X2ACCESS V4使用手册》及OPC UA相关配置手册。
更多通信资源请登录网信智汇(http://wangxinzhihui.com)。