一、引言
在某些應(yīng)用場(chǎng)合里,現(xiàn)場(chǎng)對(duì)模塊和設(shè)備都會(huì)有冗余。例如遠(yuǎn)航大洋里的郵輪,船上如果某個(gè)模塊通道故障,需要切換到模塊另一個(gè)通道上或者其他模塊的通道上。那么工程里點(diǎn)的外部連接也需要對(duì)應(yīng)的切換修改。但不可能會(huì)讓技術(shù)人員去上船修改,因?yàn)檫@很不現(xiàn)實(shí)。那么如何解決這問題呢?利用紫金橋動(dòng)態(tài)修改連接項(xiàng)即可實(shí)現(xiàn)上面功能。
數(shù)據(jù)連接是實(shí)時(shí)數(shù)據(jù)庫的一項(xiàng)重要內(nèi)容。它把實(shí)時(shí)數(shù)據(jù)庫中的點(diǎn)參數(shù)與其它的數(shù)據(jù)連接起來。數(shù)據(jù)庫的數(shù)據(jù)連接可以分成三類:IO連接、遠(yuǎn)程數(shù)據(jù)庫、內(nèi)部連接。IO連接:該項(xiàng)表示點(diǎn)參數(shù)與實(shí)際物理設(shè)備的IO單元連接起來。連接后,數(shù)據(jù)庫會(huì)啟動(dòng)相應(yīng)的IO驅(qū)動(dòng)程序,讀取/設(shè)置相應(yīng)的IO設(shè)備,數(shù)據(jù)庫中組態(tài)數(shù)據(jù)連接的點(diǎn)數(shù)據(jù)就可以與實(shí)際IO單元的數(shù)據(jù)一致,同時(shí)對(duì)數(shù)據(jù)庫點(diǎn)參數(shù)的操作就相當(dāng)于對(duì)實(shí)際IO的操作。遠(yuǎn)程數(shù)據(jù)庫:可以與遠(yuǎn)程數(shù)據(jù)庫進(jìn)行連接。把當(dāng)前的點(diǎn)參數(shù)與已經(jīng)定義的數(shù)據(jù)源的點(diǎn)參數(shù)連接。內(nèi)部連接:把當(dāng)前點(diǎn)參數(shù)與當(dāng)前系統(tǒng)的另一個(gè)點(diǎn)參數(shù)連接。連接后兩個(gè)參數(shù)可以認(rèn)為在邏輯上等效,對(duì)其中的一個(gè)參數(shù)的讀寫就相當(dāng)于對(duì)另一個(gè)參數(shù)的讀寫。內(nèi)部連接一般在運(yùn)算點(diǎn)用的比較多。
二、功能演示
1、簡(jiǎn)述
假設(shè)現(xiàn)場(chǎng)有4個(gè)模擬IO模塊,1個(gè)數(shù)字IO模塊,數(shù)據(jù)采集到OPC Server里,紫金橋軟件從OPC Server里取數(shù)。紫金橋客戶端初始時(shí)采集A1的01-06通道,A2的01-02,A3的01-02,用戶可動(dòng)態(tài)選擇模塊通道,且程序完全退出下次再次運(yùn)行時(shí)修改依然有效。
 
模塊示意
 
OPC Server端
 
紫金橋客戶端運(yùn)行界面
程序運(yùn)行時(shí),對(duì)應(yīng)模塊通道采集的數(shù)據(jù)可以從表上看出。
2、切換通道
假設(shè)A1模塊1號(hào)通道壞了(Ia),將該通道改接到A4的1號(hào)通道上。如下圖:
 
選擇切換后通道A4—01
點(diǎn)擊確定后,動(dòng)態(tài)修改點(diǎn)的連接項(xiàng)。數(shù)據(jù)庫重新讀取所有點(diǎn)的數(shù)據(jù)。
 
 
 
修改前Ia的值(A1-01)
 
修改成功后Ia的值變成A4模塊1通道的數(shù)值
三、功能函數(shù)介紹
1、系統(tǒng)函數(shù)AddIOLink函數(shù)介紹
該示例主要應(yīng)用到了紫金橋軟件系統(tǒng)函數(shù)AddIOLink函數(shù)。
int AddIOLink(string DataSource,string ParVals,bool OverWrite)
說明:
增加連接項(xiàng)。
參數(shù):
DataSource : 字符串類型。數(shù)據(jù)源名,指示向哪個(gè)數(shù)據(jù)庫增加歷史項(xiàng)。為空表示向缺省數(shù)據(jù)庫。
ParVals : 字符串類型。連接項(xiàng)參數(shù)及其值列表。參數(shù)間以制表符分隔,參數(shù)名與參數(shù)值間以"="連接,以回車作為點(diǎn)間分隔。格式如下:
參數(shù)項(xiàng)\t參數(shù)項(xiàng)...\t參數(shù)項(xiàng)\r參數(shù)項(xiàng)\t參數(shù)項(xiàng)...\t參數(shù)項(xiàng)\r...
參數(shù)項(xiàng)間以\t分隔;各連接項(xiàng)間以\r分隔
參數(shù)項(xiàng) 參數(shù)名=值
\t:表示制表符(9);\r:表示回車(13)
OverWrite : BOOL類型。表示如果點(diǎn)已經(jīng)存在時(shí)是否對(duì)其修改,1:表示修改;0:表示不修改。
返回值:
整型類型。1表示成功,否則失敗。
2、其他函數(shù)介紹
除了上面的那個(gè)函數(shù),紫金橋軟件還有增加內(nèi)部連接項(xiàng)或網(wǎng)絡(luò)連接函數(shù)AddLink函數(shù)。
int AddLink(string DataSource,string ParVals,bool OverWrite)
說明
增加內(nèi)部連接項(xiàng)或網(wǎng)絡(luò)連接。
參數(shù)
DataSource : 字符串類型。數(shù)據(jù)源名,指示向哪個(gè)數(shù)據(jù)庫增加歷史項(xiàng)。為空表示向缺省數(shù)據(jù)庫。
ParVals : 字符串類型。連接項(xiàng)參數(shù)及其值列表。參數(shù)間以制表符分隔,參數(shù)名與參數(shù)值間以"="連接,以回車作為點(diǎn)間分隔。格式如下:
參數(shù)項(xiàng)\t參數(shù)項(xiàng)...\t參數(shù)項(xiàng)\r參數(shù)項(xiàng)\t參數(shù)項(xiàng)...\t參數(shù)項(xiàng)\r...
參數(shù)項(xiàng)間以\t分隔;各連接項(xiàng)間以\r分隔
參數(shù)項(xiàng) 參數(shù)名=值
\t:表示制表符(9);\r:表示回車(13)
OverWrite : BOOL類型。表示如果點(diǎn)已經(jīng)存在時(shí)是否對(duì)其修改,1:表示修改;0:表示不修改。
返回值
整型類型。1表示成功,否則失敗。
四、總結(jié)
紫金橋軟件強(qiáng)大的函數(shù)庫可滿足用戶復(fù)雜苛刻的系統(tǒng)要求,實(shí)現(xiàn)和完成更多的系統(tǒng)功能。
|