iHD OPCUA SERVER 数据发布服务

Navigation:  功能明细 > 数据接口 >

iHD OPCUA SERVER 数据发布服务

Previous pageReturn to chapter overviewNext page

实时数据库V3.7.5版本开始提供OPCUA Server数据发布功能,OPCUA数据发布服务hdopcua可将实时数据库中的tag点,以OPCUA方式发布。从3.9.6开始,Opcua 采用分布式发布,配置方式与以前版本有区别,以前版本

当前版本

      OPCUA服务配置工具是用来配置OPCUA服务相关属性的工具。它可以与不同iHyperDB服务器连接,配置对应服务器的OPCUA服务。同时也可以配置每个OPCUA服务需要发布点的Tag点,以及OPCUA服务的一些属性。在本地OPCUA服务配置页面里,选择事先添加好的OPCUA服务并保存为本地OPCUA服务,最后安装、启动OPCUA服务开始发布数据。

1 启动OpcUA服务配置

安装iHyperDB 客户端后,可以从菜单链接中打开OpcUA服务配置工具

opcua配置-1

界面介绍

OPCUA服务列表:列表中罗列出属于某一个服务器的所有OPCUA服务名称及其描述。列表上方有三个按钮,分别为添加,修改和删除。

上述展示信息中分为展示状态和编辑状态。展示状态时,设备列表上方添加按钮可用,修改,删除按钮不可用。选中一个OPCUA服务后,变为编辑状态时,添加,修改,删除按钮都可用,可以修改选中OPCUA服务描述。

2  添加OPCUA服务

单击OPCUA服务列表上方的“添加OPCUA服务”按钮,弹出如下界面。填写OPCUA服务名和描述信息。单击确定按钮。成功则在OPCUA服务列表中添加这个OPCUA服务

opcua配置-2

点击列表中Tag配置列中该服务的配置按钮弹出Tag配置界面,可以配置该服务要发布的Tag,点击“添加”进行加点,选中后在列表中有显示表示已经添加到OPCUA服务中。勾选需要删除的Tag点,点击“删除”进行删点,从OPCUA服务器删除需要发布的Tag点。“导入”按钮可以从Excel表格批量导入OPUA服务需要发布的Tag点。“导出”按钮可以保存OPCUA服务发布的Tag点到Excel文件,导出时选择需要导出的文件夹,选中后会自动生成OPCUA服务名的Excel文件,例如OPCUA服务名是test2,导出的Excel文件是test2.xlsx。可以通过Tag名搜索已经添加到发布列表中的Tag点,勾选“全选”核选框可以选中列表中所有项。

opcua配置-5

3  修改OPCUA服务

单击选中一个OPCUA服务,单击OPCUA服务列表上方的“修改OPCUA服务”按钮,弹出如下界面。填写描述信息。单击确定按钮。成功则在OPCUA服务列表中更新这个OPCUA服务。

opcua配置-3

4  删除OPCUA服务

单击选中一个OPCUA服务,单击OPCUA服务列表上方的“删除OPCUA服务”按钮,弹出确认是否删除菜单,单击确认后删除这个OPCUA服务,同时从列表中删除。 单击“取消”则不删除。

5  本地OPCUA服务配置

在本地OPCUA服务配置界面中,勾选需保存为本地OPCUA服务的项,点击下方的保存按钮,成功后可以配置本地服务相关属性,同时集成了安装服务和启动服务的功能。

opcua配置-4

注意:

由于配置工具中OPCUA服务配置信息改变后不会通知采集端配置更新。故在配置采集端时建议先点本地的刷新按钮,再进行后续操作,避免不必要的错误。

6 OPCUA本地属性配置

选为本地OPCUA服务后,点击列表中该服务的配置列中“配置”按钮,弹出服务配置界面,服务配置界面可以配置连接iHyperDB数据库的用户名,密码和OPCUA服务的端口,点击“保存”保存配置到本地配置文件。URL栏可以选择不同本地IP地址,根据选中IP显示OPCUA服务的地址,方便用户获取OPCUA服务地址。

opcua配置-6

7 选择/取消选择本地OPCUA服务

勾选/取消勾选“选为本地OPCUA服务”的复选框,勾选表示需要存为本地OPCUA服务,没有勾选表示不存到本地,点击最下方的“保存”按钮保存配置到本地配置文件。

8 搜索OPCUA服务

启动后系统自动将全部OPCUA下载到列表中。如果已经被选为本地Opcua的,第一列显示已勾选,端口,配置,安装卸载服务,启动停止按钮和服务状态有显示,可以使用搜索功能查询指定的OPCUA 服务。

opcua配置-7

9 其他

  Excel导入/导出格式:  

Tag名

tag_1

tag_2

tag1

tag2

目前hdOpcuaServer支持的tag点类型

tag类型

是否支持

普通点

计算点

统计点

10 连接OPCua 服务

在本地客户端完成服务配置后,在配置页面会自动生成OPC服务的URL连接地址;

第三方客户端可以复制该地址直接连接至opcua server服务,以UaExpert为例。

opcua配置-8

      opcua配置-9

连接成功后,即可看到连接信息。

  opcua配置-10

在UaExpert左下角可以看到通过客户端配置的tag点列表。

opcua配置-11

 

3.9.6 以前的版本

 

1.安装OPCUA Server

实时数据库V3.7.5版本安装完成,自带OPCUA数据发布服务hdopcua。该服务运行在iHyperDB数据库服务端。实时数据库V3.7.5版本安装完成后,需要对配置文件hdopcua.xml部分参数根据项目实际情况进行修改。

ihdopcua数据发布服务的配置文件hdopcua.xml保存在ihyperdb\executable_x64 下,配置文件如下:

<?xml version="1.0" encoding="utf-8"?>

<Cfg>

<TargetHD mainip="10.25.14.231" mainport="5673"  backupip="" backupport=""/>

<hdopcua  opcuaport = "4430"  cyclerate = "10" />

</Cfg>

参数说明:

TargetHD:目的ihd配置;

mainip:主机IP,安装后请照实修改;

mainport:主机端口,默认为“5673”;

backupip:备机IP,如有可照实填写;

backupport:备机端口,默认为“5673”;

hdopcua:opcua服务相关配置

opcuaport:opcua服务发布端口号,默认为“4430”,opcua服务发布的ip地址即为本机ip地址;

cyclerate:从opcua数据发布服务获取数据的周期时间,单位为ms。

 

2.通过Excel插件配置修改Tag点表,批量方式修改OPCUA发布状态。

实时数据库中tag点是否开启opcua发布,是通过修改tag点表中“保留参数1”项目值来定义。值为“0”表示不通过opcua发布,值为“1”表示可通过opcua发布。

1)通过excel插件,点击下载tag点表到本地;

iHD_OPCUA_SERVER 01

 

2)将需要进行opcua发布的tag点属性列中的“保留参数1”,修改值为“1”;

iHD_OPCUA_SERVER 02

 

3)完成修改后,重新上传tag点表;

iHD_OPCUA_SERVER 03

 

3.启用hdopcua数据发布服务

点击目录下的“数据节点服务管理工具”,如下图:

iHD_OPCUA_SERVER 04

 

在数据节点服务管理工具的“进程管理”中可查看实时数据库OPCUA发布服务(hdOpcua)状态,以及启动/停止服务,如下图:

iHD_OPCUA_SERVER 05

 

4.通过第三方opc客户端(Softing OPC Client)测试连接

打开Softing OPC Client,点击左侧add session选项,在弹出的对话框中,Endpoint Url输入框中输入连接的opcua服务地址,如下图所示:

iHD_OPCUA_SERVER 06

Endpoint Url填写我们OPCUA SERVER的地址,如第三方opc客户端安装运行于服务器本地,则该项参数可以写作“opc.tcp://127.0.0.1:4430”;如果运行在异地,则该项参数可以写作“opc.tcp://opcua服务器ip:4430”。

点击ok后,如果连接正常,可以在服务的Objects选项下看到该opcua服务中发布的tag点,如下图:

iHD_OPCUA_SERVER 07

通过双击上图相应tag点,可以订阅相应tag点的实时记录值,在DataAccess选项下可以查看相应tag点的实时记录值,其中Source Timestamp对应ihd中的时间戳。如下图所示:

iHD_OPCUA_SERVER 08

 

5.通过iPlat-BA OPCUA 驱动测试连接

1)添加OPCUA驱动

首先,配置好相应的iPlat-BA SCADA节点。

iHD_OPCUA_SERVER 09

点击SCADA节点下的“驱动配置”,进入驱动配置页面。鼠标置于页面的左上方,如下图,可以看到“添加驱动”的按钮,点击“添加驱动”,弹出可用驱动的选择对话框,在可用驱动列表中,选择OPCUA驱动所对应的“opcuadrv”,然后点击“确定”。

iHD_OPCUA_SERVER 10

 

签出该驱动,点击“保存”按钮。

iHD_OPCUA_SERVER 11

 

弹出OPCUA驱动配置的主界面,填写opcua服务器地址,保存并签入已修改配置。

iHD_OPCUA_SERVER 12

 

2)服务器配置

添加服务器。在驱动配置界面上,右键点击树控件列表中的驱动名称节点,弹出右键菜单,选择“添加设备”,如下图:

iHD_OPCUA_SERVER 13

在点击了“添加服务器”之后,会弹出“添加OPCUAServer”的对话框,在这个对话框中,填写opcua服务器的信息:

iHD_OPCUA_SERVER 14

 

3)组配置

在驱动配置界面上,右键点击树控件列表中的服务器名称节点,弹出右键菜单:

iHD_OPCUA_SERVER 15

选择“添加数据块”,弹出组配置对话框:

iHD_OPCUA_SERVER 16

填写相应参数,参数说明:

名称: 不能为空,且不能重复。可输入1-31个字符;

描述: 可输入0-63个字符;

任务号:

IO方式:包含异步和同步两个选项;

轮询周期:只在I/O方式为同步读取时可配,为OPCUA客户端到服务器读数据的周期。在1ms-24H之间,必须是100的正整数倍。默认值:同步时值为1秒;异步时值为50秒。

异步超时:只在I/O方式为异步读取时可配,在1ms-24H之间,必须是100的正整数倍。值必须大于轮询周期。默认值:1000秒 。

以上,完成配置,点击保存按钮,系统增加该组。

 

4)节点配置

a)在驱动配置界面,左键点击树控件列表中的组名称节点,弹出设备信息:

iHD_OPCUA_SERVER 17

 

b)选择“编辑节点”选项,弹出节点对话框:

iHD_OPCUA_SERVER 18

 

c)点击“节点ID”左上方的“增加”按钮,系统会将该节点添加到界面右侧的列表中。可以使用ctrl或者shift键选择多个点进行批量添加。

d)在列表中,选择一条或多条记录,右上方删除按钮可用,点击“删除确定”弹出删除对话框,选择确定从列表中删除。可以使用ctrl或者shift键选择多个点进行批量删除。

e)点击保存按钮,将界面列表中的记录保存,并显示在界面列表中。

注意:节点ID即变量的地址,格式为:NS1|String|***,***表示ihd中的tag点名称。变量类型与数据类型请根据实际类型进行选择。

 

5)OPCUA变量配置

配置好opcuadrv的驱动后,需要在驱动的设备变量管理中添加相应变量,见下图:

iHD_OPCUA_SERVER 19

 

变量也可以通过excel文件批量导入导出,见下图:

iHD_OPCUA_SERVER 20

 

注意:变量的名称即为ihd中tag点名称,变量地址格式为NS1|String|***,***表示ihd中的tag点名称。注意变量类型与ihd数据类型的匹配。

 

6)驱动配置文件 opcuadrv.xml 如下:

<?xml version="1.0" encoding="GB2312" ?>

<driver name="opcuadrv" type="item">

<device name="opcua_test1" conntype="other" connparam="opc.tcp://localhost:4840" recvtimeout="1000" param3="" param2="1000000" param1="0" cyclerate="1000" task="1" desc="">

<datablock address="NS1|String|midvar_1" name="NS1|String|midvar_1" elemcount="1" elembytes="2" param1="Word" param2="AI" param3="0" />

<datablock address="NS1|String|midvar_aifloat" name="NS1|String|midvar_aifloat" elemcount="1" elembytes="4" param1="Float" param2="AI" param3="6" />

<datablock address="NS1|String|midvar_blob" name="NS1|String|midvar_blob" elemcount="1" elembytes="256" param1="String" param2="TXT" param3="-1" />

<datablock address="NS1|String|midvar_di" name="NS1|String|midvar_di" elemcount="1" elembytes="1" param1="Boolean" param2="DI" param3="-1" />

<datablock address="NS1|String|midvar_txt" name="NS1|String|midvar_txt" elemcount="1" elembytes="256" param1="String" param2="TXT" param3="-1" />

<datablock address="NS1|String|midvarai32" name="NS1|String|midvarai32" elemcount="1" elembytes="4" param1="DWord" param2="AI" param3="2" />

</device>

<device name="opcua_test2" conntype="other" connparam="opc.tcp://localhost:4840" recvtimeout="1000" param3="" param2="600000" param1="1" cyclerate="50000" task="2" desc="test">

<datablock address="NS0|Numeric|7650" name="NS0|Numeric|7650" elemcount="1" elembytes="256" param1="String" param2="TXT" param3="-1" />

<datablock address="NS0|Numeric|7656" name="NS0|Numeric|7656" elemcount="1" elembytes="256" param1="String" param2="TXT" param3="-1" />

</device>

</driver>