一、引言
在某些应用场合里,现场对模块和设备都会有冗余。例如远航大洋里的邮轮,船上如果某个模块通道故障,需要切换到模块另一个通道上或者其他模块的通道上。那么工程里点的外部连接也需要对应的切换修改。但不可能会让技术人员去上船修改,因为这很不现实。那么如何解决这问题呢?利用紫金桥动态修改连接项即可实现上面功能。
数据连接是实时数据库的一项重要内容。它把实时数据库中的点参数与其它的数据连接起来。数据库的数据连接可以分成三类:IO连接、远程数据库、内部连接。IO连接:该项表示点参数与实际物理设备的IO单元连接起来。连接后,数据库会启动相应的IO驱动程序,读取/设置相应的IO设备,数据库中组态数据连接的点数据就可以与实际IO单元的数据一致,同时对数据库点参数的操作就相当于对实际IO的操作。远程数据库:可以与远程数据库进行连接。把当前的点参数与已经定义的数据源的点参数连接。内部连接:把当前点参数与当前系统的另一个点参数连接。连接后两个参数可以认为在逻辑上等效,对其中的一个参数的读写就相当于对另一个参数的读写。内部连接一般在运算点用的比较多。
二、功能演示
1、简述
假设现场有4个模拟IO模块,1个数字IO模块,数据采集到OPC Server里,紫金桥软件从OPC Server里取数。紫金桥客户端初始时采集A1的01-06通道,A2的01-02,A3的01-02,用户可动态选择模块通道,且程序完全退出下次再次运行时修改依然有效。
模块示意
OPC Server端
紫金桥客户端运行界面
程序运行时,对应模块通道采集的数据可以从表上看出。
2、切换通道
假设A1模块1号通道坏了(Ia),将该通道改接到A4的1号通道上。如下图:
选择切换后通道A4—01
点击确定后,动态修改点的连接项。数据库重新读取所有点的数据。
修改前Ia的值(A1-01)
修改成功后Ia的值变成A4模块1通道的数值
三、功能函数介绍
1、系统函数AddIOLink函数介绍
该示例主要应用到了紫金桥软件系统函数AddIOLink函数。
int AddIOLink(string DataSource,string ParVals,bool OverWrite)
说明:
增加连接项。
参数:
DataSource : 字符串类型。数据源名,指示向哪个数据库增加历史项。为空表示向缺省数据库。
ParVals : 字符串类型。连接项参数及其值列表。参数间以制表符分隔,参数名与参数值间以"="连接,以回车作为点间分隔。格式如下:
参数项\t参数项...\t参数项\r参数项\t参数项...\t参数项\r...
参数项间以\t分隔;各连接项间以\r分隔
参数项 参数名=值
\t:表示制表符(9);\r:表示回车(13)
OverWrite : BOOL类型。表示如果点已经存在时是否对其修改,1:表示修改;0:表示不修改。
返回值:
整型类型。1表示成功,否则失败。
2、其他函数介绍
除了上面的那个函数,紫金桥软件还有增加内部连接项或网络连接函数AddLink函数。
int AddLink(string DataSource,string ParVals,bool OverWrite)
说明
增加内部连接项或网络连接。
参数
DataSource : 字符串类型。数据源名,指示向哪个数据库增加历史项。为空表示向缺省数据库。
ParVals : 字符串类型。连接项参数及其值列表。参数间以制表符分隔,参数名与参数值间以"="连接,以回车作为点间分隔。格式如下:
参数项\t参数项...\t参数项\r参数项\t参数项...\t参数项\r...
参数项间以\t分隔;各连接项间以\r分隔
参数项 参数名=值
\t:表示制表符(9);\r:表示回车(13)
OverWrite : BOOL类型。表示如果点已经存在时是否对其修改,1:表示修改;0:表示不修改。
返回值
整型类型。1表示成功,否则失败。
四、总结
紫金桥软件强大的函数库可满足用户复杂苛刻的系统要求,实现和完成更多的系统功能。
(转载)