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