《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 基于iFIX高速公路隧道監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
基于iFIX高速公路隧道監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2011年第12期
蔡曉霞1,趙丹兵2,錢新標3
1.紹興職業(yè)技術(shù)學院 通信與信息工程系,浙江 紹興312000; 2.諸暨市市政管理處,浙江 諸暨311800; 3.杭州銀界科技有限公司,浙江 杭州310013
摘要: 高速公路及隧道監(jiān)控系統(tǒng)中,沒有現(xiàn)成可用的I/O驅(qū)動,無法直接通過組態(tài)軟件的I/O驅(qū)動獲取數(shù)據(jù),只能通過用戶編寫大量復(fù)雜的通信程序與之進行數(shù)據(jù)交換。為降低開發(fā)難度、提高開發(fā)效率,提出在組態(tài)軟件腳本語言環(huán)境下運用API函數(shù)實現(xiàn)系統(tǒng)的通信設(shè)計。該系統(tǒng)以iFIX組態(tài)軟件為平臺,開發(fā)上位機監(jiān)控系統(tǒng)軟件,系統(tǒng)硬件部分搭建了以光纖作為傳輸介質(zhì)的PLC冗余環(huán)網(wǎng)。運行結(jié)果表明,該系統(tǒng)占用資源小、維護方便、通信穩(wěn)定且數(shù)據(jù)傳輸率高。
中圖分類號: TP27
文獻標識碼: A
文章編號: 0258-7998(2011)12-0022-03
Design and realization of freeway tunnel monitoring system based on iFIX
Cai Xiaoxia1,Zhao Danbing2,Qian Xinbiao3
1.Department of Communication and Information Engineering, Shaoxing Vocational & Technical College, Shaoxing 312000,China; 2.Zhuji Management Office, Zhuji 311800,China; 3.Hangzhou Silver Bounded Technology Co., Hangzhou 310013,China
Abstract: Freeway and tunnel monitoring system has no ready available I/O drive,cannot access data directly by configuration software I/O drive. They can only exchange data in the way users write plenty of complicated communication programs. In order to reduce the difficulty of development and raise the development efficiency,using API function to realize the communication design under the condition that configuration software script language is put forward.The system regards iFIX configuration software as platform to develop PC monitoring system software; The system hardware part built PLC redundant nets whose transmission mediumis is optical. It is proved on the running spot that the designed program occupies less resource,maintains more conveniently, stable and high rate of data transmission.
Key words : freeway tunned;monitor system;data communication;iFIX;API function


    隨著我國高速公路隧道里程的日益增長,高速公路隧道的高效、安全運行面臨著嚴峻的挑戰(zhàn)[1]??焖?、安全、可靠的高速公路隧道監(jiān)控系統(tǒng),是指揮車輛有序通行、實時掌控交通流參數(shù)值、車輛運行環(huán)境指標和現(xiàn)場設(shè)備運行狀況、減少和及時處理交通事故的主要保障措施[2]。
    在高速公路隧道監(jiān)控系統(tǒng)開發(fā)方面,國內(nèi)有許多案例采用Windows下通用的軟件開發(fā)平臺(如VC++、VB、DELPHI)進行開發(fā)。由于高速公路隧道監(jiān)控系統(tǒng)是一個典型的系統(tǒng)集成工程,現(xiàn)場設(shè)備的接口形式和數(shù)據(jù)類型多樣,數(shù)據(jù)量和集成難度大[3],尤其在使用大量PLC的場合,實現(xiàn)監(jiān)控系統(tǒng)與PLC的通信比較困難。因此,使用通用軟件開發(fā)平臺,其開發(fā)難度大、周期長、調(diào)試困難。由于所開發(fā)的監(jiān)控系統(tǒng)是非開放的軟件,后期的維護難度更大。
    而目前廣泛使用的組態(tài)軟件,能夠更好地解決這個問題[4]。組態(tài)軟件作為專業(yè)的工控軟件,在系統(tǒng)界面設(shè)計、數(shù)據(jù)接口、功能組合等方面的開發(fā)非常方便和穩(wěn)定,可以很容易地實現(xiàn)和完成監(jiān)控層的各項功能[5]。此外,由于組態(tài)軟件的開放性,系統(tǒng)管理人員可以輕松維護系統(tǒng)。因此最近幾年,組態(tài)軟件開始被系統(tǒng)設(shè)計人員應(yīng)用到高速公路隧道監(jiān)控系統(tǒng)的開發(fā)中。
    由于組態(tài)軟件采用腳本語言,提供給用戶的編程開發(fā)的功能相對較弱。在缺少I/O驅(qū)動的情況下,如在使用組態(tài)王的案例中,還需使用通用開發(fā)平臺編寫通信程序,并為組態(tài)軟件提供OPC服務(wù)器功能;在與情報板這類可變長度數(shù)據(jù)、非實時刷新的設(shè)備交換數(shù)據(jù)時,組態(tài)軟件同樣存在困難。針對以上問題,本文的設(shè)計思路是利用組態(tài)軟件及其腳本語言,實現(xiàn)與所有設(shè)備的通信時無需再借用OPC技術(shù)開發(fā)通信程序,以減少數(shù)據(jù)的交換次數(shù),提高系統(tǒng)的運行效率,同時提高系統(tǒng)的完整性和開放性。
    本文介紹了高速公路隧道監(jiān)控系統(tǒng)的結(jié)構(gòu)及實現(xiàn)方法,針對現(xiàn)場數(shù)據(jù)采集和執(zhí)行設(shè)備的接口形式多樣、數(shù)據(jù)集成難度大等問題,既有針對PLC使用的穩(wěn)定可靠的I/O驅(qū)動,也有大量使用API函數(shù)設(shè)計的通信程序,并使用腳本語言直接完成實時數(shù)據(jù)與情報板的通信。通過系統(tǒng)實際調(diào)試運行驗證了該設(shè)計方案的可行性。
1 監(jiān)控系統(tǒng)的構(gòu)成
    某高速公路的一個機電標段中包含多條隧道,每個隧道采用了7~8套OMRON公司CS1D-S系列的PLC,并配有以太網(wǎng)模塊。這些PLC負責車道指示器、汽通門、風機、照明燈、水泵等開關(guān)量的輸入/輸出,照度、一氧化碳(CO)、能見度(VI)、風速(TW)等模擬量的輸入。該機電標段,還包含了雷達車輛檢測儀28臺,各種規(guī)格的情報信息標志35套,還有3套能見度檢測儀和3套氣象數(shù)據(jù)檢測儀。所有這些設(shè)備分布在大約200 km高速公路沿線收費站和服務(wù)區(qū)的附近路段,并且通過RS-232接口,先用光纖傳輸?shù)骄徒母鱾€收費站或者服務(wù)區(qū)的機房內(nèi),再接入串口服務(wù)器,然后進入由光纖構(gòu)成的以太網(wǎng)。其網(wǎng)絡(luò)結(jié)構(gòu)框圖如圖1所示。

    這些現(xiàn)場設(shè)備通常不采用標準的MODBUS協(xié)議,無法通過組態(tài)軟件的I/O驅(qū)動獲取數(shù)據(jù),只能通過用戶編寫通信程序與其進行數(shù)據(jù)交換。
2 監(jiān)控系統(tǒng)軟件設(shè)計
    本文采用iFIX2.6的浙大中控OEM版Sview2.6,該軟件的腳本語言是Microsoft VBA6.0,與VB6.0相比,Sview2.6除了不能編譯成獨立的可執(zhí)行程序外,其他的編程語法、語句及調(diào)試方法等功能兩者基本相同。
2.1 實時數(shù)據(jù)庫的建立
    運行iFIX軟件,打開Sview數(shù)據(jù)庫管理器。從菜單欄選擇“驅(qū)動器”,打開“OMF”,對驅(qū)動程序進行設(shè)置和添加PLC站點,并為每個站點定義數(shù)據(jù)塊。驅(qū)動程序以數(shù)據(jù)塊的形式與PLC交換數(shù)據(jù),這是一種高效的通信方式;同時,在PLC編程時,對于要組態(tài)的數(shù)據(jù),盡量集中存放,避免過多的數(shù)據(jù)塊。在數(shù)據(jù)庫中添加標簽,要注意“I/O地址”的輸入格式,如圖2所示。

2.2 建立控制系統(tǒng)主畫面
    在iFIX工作臺中,建立所需要的各個畫面,并鏈接動畫。如果需要報警,則在建立實時數(shù)據(jù)庫時,設(shè)置好報警條件,然后在畫面中增加報警控件;如果需要曲線,則啟動歷史定義程序,定義好要儲存的歷史數(shù)據(jù),并在后臺啟動歷史儲存程序,然后在畫面中增加曲線顯示控件[6]。到此,作為一般性的組態(tài)任務(wù)基本完成。
    考慮到通信程序必須和監(jiān)控軟件始終同時運行,而且腳本程序通常是畫面文件的一部分,因此在畫面設(shè)計時,做成了上(占12%)、下(占88%)兩部分。其中上部是始終運行,下部則可以通過上部的切換按鈕,進行畫面切換。上部畫面稱之為“主菜單”,并在此畫面的代碼中編寫通信程序,如圖3所示。

2.3 實時通信的實現(xiàn)
    微波車輛檢測器設(shè)置為每分鐘自動發(fā)送一幀數(shù)據(jù);氣象和能見度檢測則先發(fā)送命令,然后讀取數(shù)據(jù)。所有的串口服務(wù)器,在監(jiān)控計算機上映射為虛擬的串口。微軟的MSComm控件是被廣泛應(yīng)用于串口通信的控件,但由于MSComm控件只能支持最多16個串口,故不適合在本系統(tǒng)的環(huán)境中使用。為此,本系統(tǒng)嘗試使用API函數(shù)實現(xiàn)串口通信。API函數(shù)的聲明是:可以使用VB的API文本瀏覽器,復(fù)制到iFIX項目中。使用API初始化串口步驟如下:
    (1)調(diào)用CreateFile創(chuàng)建句柄,如果結(jié)果大于0,可以進入下一步,否則中止。
    (2)調(diào)用GetCommState取得設(shè)備參數(shù),根據(jù)實際需要修改其中部分參數(shù)(如波特率、校驗、數(shù)據(jù)位和停止位等)。
    (3)調(diào)用SetCommState設(shè)置修改后的設(shè)備參數(shù)。
    (4)調(diào)用SetCommTimeouts設(shè)置超時參數(shù),其中ReadIntervalTimeout須設(shè)置為-1(即為16進制FFFFFFFF)。
    (5)調(diào)用SetupComm設(shè)置輸入/輸出緩沖區(qū)大小。
    至此,串口的初始化完成,然后可以定時接收(ReadFile)和發(fā)送(WriteFile)數(shù)據(jù)了。CloseHandle則用于關(guān)閉串口。串口初始化和能見度、氣象儀程序流程圖如圖4所示。

 

 

    能見度和氣象儀共6套,利用一個500 ms定時器,輪流進行數(shù)據(jù)收發(fā),數(shù)據(jù)刷新周期為3 s。采用的通信方式是先接收,對數(shù)據(jù)長度和頭尾幾個字節(jié)進行校驗,若校驗符合,則進行數(shù)據(jù)處理,然后發(fā)送讀命令。能見度接收數(shù)據(jù)長度為22 B,其中15 B~18 B為單精度浮點數(shù)。數(shù)據(jù)處理采用API函數(shù)CopyMemory,采用傳遞地址的方式,把字節(jié)數(shù)組中的內(nèi)容復(fù)制到一個單精度變量中(如按照IEEE 754標準進行換算,但計算紛繁復(fù)雜),然后把這個單精度變量的內(nèi)容寫到iFIX實時數(shù)據(jù)庫標簽中(標簽的I/O地址采用SIM驅(qū)動器的地址空間)。
2.4 情報信息標志通信的實現(xiàn)
    考慮到情報信息標志為非實時刷新,因此采用Access數(shù)據(jù)庫來保存每塊信息標志有關(guān)的內(nèi)容。當程序打開時,自動讀取數(shù)據(jù)庫中的所有記錄,并把其中的關(guān)鍵信息添加到“選擇對象”ComboBox中。當用戶在復(fù)合框選擇一塊信息標志時,程序從數(shù)據(jù)庫中讀取該信息標志的有關(guān)信息及上次發(fā)送的內(nèi)容,并顯示給用戶。當用戶成功下載內(nèi)容到信息標志時,把相關(guān)內(nèi)容更新到數(shù)據(jù)庫中。
    在VBA中處理漢字的方法是:一個漢字為一個字符,可以使用MID()函數(shù)截取一個字符,然后用ASC()函數(shù)取得該字符的值,如果是漢字,則該值為負數(shù),否則為正數(shù)。該負值加65 536,得到該漢字的雙字節(jié)機內(nèi)碼,整數(shù)除256得到高字節(jié),取模256得到低字節(jié)。
    如圖5所示,畫面右下角的“高級功能”按鈕用于啟動情報信息標志設(shè)備廠家專用軟件。雖然設(shè)備廠家軟件功能齊全,但從使用結(jié)果來看,本文開發(fā)的系統(tǒng)響應(yīng)速度快,一個請求過程平均耗時在0.1~0.6 s之間(包括數(shù)據(jù)庫的處理時間、通過日志記錄的數(shù)據(jù)計算),而情報信息標志設(shè)備廠家專用軟件正常情況下處理時間需10 s左右,有時還有錯誤的響應(yīng)(如網(wǎng)絡(luò)不通),但顯示狀態(tài)仍為正常等現(xiàn)象。

    以iFIX為平臺開發(fā)的高速公路及其隧道項目數(shù)據(jù)監(jiān)控系統(tǒng)已投入正常運行,并取得了比較滿意的效果,系統(tǒng)運行穩(wěn)定可靠、占用資源小、維護方便。使用組態(tài)軟件開發(fā)隧道監(jiān)控系統(tǒng),能夠充分發(fā)揮組態(tài)軟件靈活多樣的組態(tài)功能;同時使用大量的VBA6.0腳本語言編寫通信程序,解決了組態(tài)軟件數(shù)據(jù)集成難度大的問題,提高了系統(tǒng)運行效率,降低了系統(tǒng)的開發(fā)成本。
參考文獻
[1] 王志偉,楊超.高速公路隧道監(jiān)控系統(tǒng)的現(xiàn)狀與發(fā)展[J]. 現(xiàn)代隧道技術(shù),2009,46(6):8-16.
[2] 趙忠杰,陳井偉,朱斌.基于PLC網(wǎng)絡(luò)的公路隧道測控系統(tǒng)實現(xiàn)[J].微計算機信息,2007,23(1):43-44.
[3] 袁向陽,鄭宏,孟峰.基于PLC的高速公路隧道監(jiān)控系統(tǒng)及其數(shù)據(jù)集成[J].電氣應(yīng)用,2006,8(4):34-39.
[4] 周曉軍,劉洪亮,胡康.WinCC及S7-300在電封閉交流傳動測試臺中的應(yīng)用[J].控制工程,2010,17(5):655-657.
[5] 鐘路,戴遠.城市隧道監(jiān)控系統(tǒng)的集成設(shè)計[J].武漢理工大學學報,2010,32(15):119-122.
[6] 浙大中控.Sview2.6電子手冊[Z].2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。