,,,
(中國衛(wèi)星海上測控部,江蘇 江陰 214431)
某成品油船的貨油監(jiān)控系統(tǒng)已使用10年,除貨油艙電測單元本身顯示正常外,上位機各參數(shù)顯示均不正常。對于貨油艙的監(jiān)測,保留仍然正常的監(jiān)測單元,即測量儀表在現(xiàn)場采用單片機做數(shù)據(jù)處理,但更換RS—485總線,設計通信接口,編寫Modbus協(xié)議;對于其他設備的監(jiān)測,采用數(shù)據(jù)采集卡更換已損壞的單片機數(shù)據(jù)采集系統(tǒng);在主控室,由工控機對測量數(shù)據(jù)進行顯示、存儲、打印、參數(shù)設置等。
RS—485總線通信速率高、距離遠、穩(wěn)定性好;所設計的接口電路結構簡單、抗干擾能力強、可靠性高;Modbus協(xié)議具有方便易用、傳輸高速、高效等優(yōu)點;對數(shù)據(jù)采集卡優(yōu)化配置,保證較高的采集速度和精度,且安裝使用靈活,節(jié)省制作時間。以上構成的數(shù)據(jù)采集系統(tǒng)在實際中運行良好,性能穩(wěn)定。
該貨油監(jiān)控系統(tǒng)的功能是監(jiān)測影響船舶狀態(tài)的設備參數(shù):貨油艙(液位、溫度),壓載水艙(液位),泵艙(各類泵的工況)、機艙(柴油機運行狀態(tài))和排油監(jiān)控報警等,并根據(jù)需要控制相關設備。
原貨油監(jiān)控臺系統(tǒng)和貨油監(jiān)控系統(tǒng)內(nèi)部接線分別如圖1、2所示。貨油艙電測單元(下位機)本身實時顯示參數(shù)值,也與工控機(上位機)串行通信;GK監(jiān)測機(下位機)由單片機數(shù)據(jù)采集系統(tǒng)組成,采集各參數(shù)值,再與工控機串行通信;最后,所有參數(shù)在終端顯示器上顯示,當參數(shù)值超出設定的上限時,發(fā)出聲光報警信號。所有的控制操作,如泵的啟停、調(diào)速等均在貨油監(jiān)控臺上完成。系統(tǒng)狀況:貨油艙電測單元本身正常,但通信異常;GK監(jiān)測機中的線路板已毀壞,無法進行參數(shù)監(jiān)測與顯示;工控機老化,部分功能已失效;貨油監(jiān)控臺部分數(shù)據(jù)顯示和實際測量值有誤差。
設計方案主要為:設計上位機與貨油艙電測單元串行通信接口,編寫通信程序,保證數(shù)據(jù)傳輸;采用研華PCL—813、PCL—818HD更換GK監(jiān)測機的數(shù)據(jù)采集系統(tǒng),并設計相應接線端子卡;編制監(jiān)測軟件,實現(xiàn)數(shù)據(jù)采集、記錄保存、報警等功能,并根據(jù)液體容積進行數(shù)字、圖形雙顯示;對系統(tǒng)檢測、調(diào)校與恢復,保證測量精度。所設計的貨油監(jiān)控系統(tǒng)結構如圖3。
2.2.1 硬件設計
1) PCL—813。PCL—813的作用是和端子卡、傳感器、變送器配合,采集設備的工況信號。圖4為PCL-813與信號的連接圖。在圖5中,板卡上單端輸入電路一端接輸入信號2,一端是公共地3;輸入信號一端接到2,另一端接到模擬地。
圖1 貨油監(jiān)控臺系統(tǒng)
圖2 貨油監(jiān)控系統(tǒng)內(nèi)部接線
圖3 貨油監(jiān)控系統(tǒng)結構
圖4 PCL—813與信號的連接
圖5 單端信號輸入連接
2) PCL—813端子卡。變送器等將測得的壓力、溫度、速度轉換成4~20 mA電流信號,并傳輸?shù)絇CL—813端子卡轉換為1~5 V電壓信號,再經(jīng)PCL—813輸入工控機。該端子卡調(diào)理電路如圖6。
圖6 輸入信號調(diào)理電路
圖6中輸入和輸出部分的放大器兩端均形成負反饋,正相和反相輸入端相當于“虛短路”,電壓為0 V。在輸入端流過PD1的電流為:IPD1=ILOOP×R3/(R1+R3),隔離電路的輸出電壓為:VOUT=IPD2×R5,所以VOUT=(IPD2/IPD1)×R3×R5。而IPD2/IPD1≈1,調(diào)節(jié)R3的阻值為30 Ω左右時,可使4~20 mA的電流值轉化為1~5 V的電壓輸出,且滿足嚴格的線性關系。
3) PCL—818HD。采用標準ISA接口,直接插在計算機主板的擴展ISA插槽即可。液位差分電壓信號直接輸入該卡,開關量經(jīng)端子卡處理后再送入,由該卡輸出開關量控制信號,見圖7。PCL—818HD的地端和信號源的地端之間會存在電壓差,即共模干擾,為了避免,將輸入信號源地端和差分輸入信號的低壓端相接,將板卡模擬地端和信號源地端相連,見圖8。
圖7 PCL-818HD與信號的連接
圖8 差分模擬信號輸入連接
4) PCL—818HD端子卡。PCL—818HD端子卡由輸入通道光耦電路和控制聲光報警的輸出通道繼電器電路組成。
①輸入通道光耦電路。在圖9中,采用4N25光電耦合器將現(xiàn)場開關量輸入信號與卡件內(nèi)部隔離,實現(xiàn)信號的準確測量。
圖9 輸入通道光耦電路
②輸出通道繼電器電路。在圖10中,工控機發(fā)出聲光報警控制指令,使PCL—818HD的某一數(shù)字量輸出通道輸出相應的數(shù)字信號,通過輸出通道繼電器電路輸出電壓控制聲光報警[1]。本系統(tǒng)采用4N25光電耦合器進行隔離防止干擾,并采用三極管9013加強電路驅動能力。
圖10 輸出通道繼電器電路
5) 串行通信接口電路。該通信采用RS—485總線,它是半雙工傳輸方式。工控機的串行接口為RS—232或USB總線,這里采用ICL232芯片和MAX485芯片構成RS—232/485轉換模塊,此模塊一邊與RS—232標準9針相連,另一邊與RS—485總線相連。單片機串行接口為TTL電平,通過MAX485芯片轉換成RS—485接口進行通信。由于采用光電隔離,可避免總線上的共模干擾進入工控機。見圖11所示。
圖11 工控機與下位機通信電路
2.2.2 軟件設計
軟件系統(tǒng)采用Visual C++開發(fā),其結構見圖12。參數(shù)設置及初始化主要獲取監(jiān)測標準、監(jiān)測信息、監(jiān)測時間等,并對軟件初始化。工控機與貨油電測單元進行串行通信;數(shù)據(jù)采集模塊驅動PCL—818HD和PCL—813,讀取I/O口的值;數(shù)據(jù)處理模塊將采集到的數(shù)據(jù)按照要求換算和處理,再調(diào)用顯示模塊,以數(shù)據(jù)、圖形的形式顯示;數(shù)據(jù)存儲和打印模塊可在按下保存按鈕時將數(shù)據(jù)存儲為文本,并能打印報表。
圖12 主程序結構
1)串行通信。原貨油艙電測單元運行正常,只需改造通信線路。經(jīng)與該貨油艙電測單元原設計單位聯(lián)系,獲知原通信協(xié)議及下位機設計參數(shù)。該通信采用Modbus RTU協(xié)議,主機和從機都要實現(xiàn)該協(xié)議。所用波特率為9 600 bit/s,無校驗,8位數(shù)據(jù)位,2位停止位。Modbus協(xié)議采用Master/Slave(主/從)結構通信方式,即主機請求,從機應答。主機首先向從機發(fā)送通信請求指令,從機響應接收數(shù)據(jù)后作數(shù)據(jù)分析,如果數(shù)據(jù)滿足通信規(guī)約,從機根據(jù)請求指令中的功能碼向主站發(fā)回數(shù)據(jù)。每個從機都有自己獨立地址,只讀發(fā)給自己的指令[2]。
在本通信中,貨油艙電測單元只有采集板一個子機,其地址為01。在Modbus協(xié)議中,不同通信消息幀功能碼對應的數(shù)據(jù)域格式也不同,此處用04(表示讀輸入寄存器)。讀取與接收返回數(shù)據(jù)模式如表1、2所示。
表1 主機查詢命令報文格式
表2 從機應答命令報文格式
應用Visual C++實現(xiàn)串口通信有多種方法,如Windows API通信函數(shù)、標準通信函數(shù)直接對串口操作、串行通信ActiveX控件(MSComm)、第三方編寫的通信類。本系統(tǒng)使用最后一種方法,利用一個專門針對串行通信的Cserial類,由Remon Spekreijse提供的免費串口工具,封裝了串口的初始化、打開、關閉、偵測及讀寫等操作,而且是基于多線程的。
2) PCL—813數(shù)據(jù)采集。對PCL—813進行Windows應用程序開發(fā)的方法有多種,本系統(tǒng)采用通用的開發(fā)環(huán)境Visual C++,調(diào)用“研華”提供的標準動態(tài)鏈接庫(DLL,Dynamic Link Library)文件和第三方制作的ActiveX控件[3-4]。該方法可以降低程序開發(fā)的難度,靈活性和移植性較好。PCL—818HD數(shù)據(jù)采集所用方法與此類似。
選用PCL—813觸發(fā)模式為軟件觸發(fā),相關寄存器地址為BASE+12——軟件觸發(fā)許可,數(shù)據(jù)傳輸方式為軟件控制,A/D轉換狀態(tài)由BASE+5中D4位(DRDY)判斷,DRDY=1或0分別表示A/D轉換忙或轉換完成。
3) PCL—818HD數(shù)據(jù)采集。PCL—818支持的觸發(fā)模式:軟件觸發(fā)、可編程計數(shù)器(Intel 8254)觸發(fā)和外部脈沖觸發(fā),數(shù)據(jù)傳輸方式:程序查詢、中斷和DMA(直接存儲器存取)。本系統(tǒng)采用計數(shù)器觸發(fā),DMA方式傳輸A/D轉換后的數(shù)據(jù)。
A/D轉換數(shù)據(jù)首先暫存在板卡的FIFO中,當FIFO半滿或全滿時,使用DMA方式將數(shù)據(jù)輸出到內(nèi)部緩沖區(qū),它和用戶緩沖區(qū)都是動態(tài)分配的內(nèi)存區(qū)域,不同在于前者存放的是從FIFO中傳送來的原始值,而后者存放的是經(jīng)轉換后的電壓值[5]。因為DRV_EnableEvent啟動了事件機制,當內(nèi)部緩沖區(qū)半滿時會產(chǎn)生一個ADS_EVT_BUFCHANGE事件,此時要用DRV_FAICheck()來檢測內(nèi)部緩沖區(qū)的哪個半?yún)^(qū)已滿。
4) 軟件界面。軟件在結構上采用多窗體,實現(xiàn)友好的對話窗口。系統(tǒng)又分成前臺和后臺兩個主要部分:前臺主要完成顯示、窗體設計等任務;后臺主要在采集數(shù)據(jù)的同時調(diào)出動態(tài)數(shù)組中的測量數(shù)據(jù)進行圖形顯示,并通過與參考值的比較確定報警輸出。
原貨油監(jiān)控系統(tǒng)是10年前的產(chǎn)品,在對原系統(tǒng)勘驗的基礎上,重新設計并更換了上位機和編制監(jiān)控軟件,由上位機完成統(tǒng)一的操作顯示任務,形成了一個結構簡化、性能穩(wěn)定的小型監(jiān)控系統(tǒng)。系統(tǒng)還可以擴展串行通信的從機數(shù)量,由主機依次查詢各從機,與各從機進行通信。
[1] 魏云冰,黃 進.異步電動機定子電流信號的數(shù)據(jù)采集與處理[J].中小型電機,2002,29(4):27-30.
[2] 李媚秋,戴瑜興.Modbus協(xié)議在電能質(zhì)量綜合檢測裝置中的應用[J].中國儀器儀表,2005(10):98-100.
[3] 張 偉,姚建領,劉國柱.在C++Builder環(huán)境下應用PCL-813[J].計算機時代,2005(6):49-50.
[4] 周恩濤,廖生行.基于LabVIEW的虛擬比例閥測試系統(tǒng)[J].機床與液壓,2003(1):251-252.
[5] 于 鋒,候永海,王建國.基于PCI-1714的高速數(shù)據(jù)采集系統(tǒng)方案設計[J].微計算機信息,2005,21(8):60-62.