——利用紫金桥远程数据源实现数据上传
在《紫金桥跨网组建分布式系统(一)》中,我们讲解了如何利用紫金桥Modbus Server和GPRS数传模块实现数据上传,本章我们主要介绍第二种方案——利用紫金桥远程数据源实现数据上传。
首先,我们对紫金桥的远程数据源的功能进行简要的说明:
“数据源”是紫金桥数据库的一个基本概念。在紫金桥的分布式体系结构中,对于客户端而言,每一个服务器都是一个数据源。客户端通过数据源与紫金桥数据库通讯,数据源定义了数据库所在位置、连接方式、通信参数等。在开发系统/运行系统中要访问数据源,可以通过两种方式,一是通过数据库变量可以直接访问远程的数据源,二是通过一些标准图元组件,如报警、总貌等可以直接访问数据源中的数据。
接下来,我们对方案的具体实现方式进行说明,方案的网络需求如下图:
客户端A能够正常的进行互联网访问,客户端A建立数据源并指向具有公网固定IP的中心服务器B。
在这里,使用过紫金桥软件的客户会感到迷茫:远程数据源功能的使用前提应该是客户端具有公网IP地址,并且由中心服务器端来定义远程数据源才对,这样才能在点组态中对位号进行远程数据源的数据连接呀?是的,这样的用法是正确的,本次我们的用法是:通过指定数据源的赋值函数将数据从客户端上传至中心服务器。
下面,我们对实现的过程进行说明:
按照上述方式组建网络后,我们在客户端的紫金桥软件中建立数据源
对新建的数据源对象进行命名
选择建立远程节点,连接方式选择通过网络,主机地址填写中心服务器的公网IP地址和开放紫金桥软件的对应端口,如下图中主机名中,“132.145.1.236”为中心服务器B的公网IP地址,“1998”为紫金桥软件的通讯端口。
数据源建立成功后,我们就可以利用通过数据源访问对应数据源的位号的方式来完成数据从客户端到服务器的传递,具体方法如下:
在客户端的紫金桥软件中找到画面全局脚本
选中“周期执行”标签,间隔时间设置成数据采集的周期,在周期执行脚本中我们用到了两个数据源对象的函数:SetDataReal()和RegUpdate(),如下图
SetDataReal()函数通过指定数据源的指定点名,设置实型数据到缓存,调用RegUpdate()函数后,下置到数据库。
当客户端的软件运行后,以一秒为间隔,周期的将客户端中点A1的PV参数值赋给中心服务器中点B1的PV参数(因RegUpdate()函数较耗费系统资源,建议脚本执行周期设置长一些)。
至此,相关配置已完成,可进行数据上传。