李 榮 李 軍 武 剛
(①思凡(上海)石油設(shè)備有限公司;②中國(guó)石油大港油田分公司天津儲(chǔ)氣庫(kù)分公司)
SMART綜合錄井儀是思凡(上海)石油設(shè)備有限公司研制的新型綜合錄井儀,整體采用正壓防爆設(shè)計(jì),配備了智能快速色譜儀、高穩(wěn)定性的傳感器、CAN總線數(shù)據(jù)采集系統(tǒng)及功能強(qiáng)大的軟件系統(tǒng),適應(yīng)鉆井現(xiàn)場(chǎng)苛刻的工作條件。
傳感器數(shù)據(jù)采集系統(tǒng)是綜合錄井儀的核心組成部分,主要功能是在綜合錄井過(guò)程中通過(guò)對(duì)現(xiàn)場(chǎng)安裝的各種傳感器信號(hào)的采集,實(shí)現(xiàn)井深、泵沖及各種鉆井參數(shù)的實(shí)時(shí)計(jì)算和監(jiān)測(cè)。綜合錄井儀現(xiàn)場(chǎng)應(yīng)用的采集系統(tǒng)主要為分線型和總線型兩種。分線型采集系統(tǒng)通過(guò)將傳感器模擬量信號(hào)或者脈沖量信號(hào)引入綜合錄井儀,在綜合錄井儀安裝采集模塊或采集卡實(shí)現(xiàn)傳感器的信號(hào)采集,這種模式容易受到現(xiàn)場(chǎng)鉆機(jī)、變頻發(fā)電機(jī)等環(huán)境因素的干擾,造成采集信號(hào)不穩(wěn)定。總線型采集系統(tǒng)通過(guò)在傳感器附近直接安裝采集模塊,在傳感器工作現(xiàn)場(chǎng)直接進(jìn)行信號(hào)采集,然后通過(guò)數(shù)字總線將采集結(jié)果發(fā)送至采集計(jì)算機(jī),避免信號(hào)在傳輸過(guò)程中受到干擾??偩€型采集系統(tǒng)廣泛應(yīng)用RS 485總線和CAN總線,其中CAN總線技術(shù)能夠在現(xiàn)場(chǎng)實(shí)現(xiàn)高速的傳感器采集及簡(jiǎn)捷高效的現(xiàn)場(chǎng)組網(wǎng),簡(jiǎn)化綜合錄井現(xiàn)場(chǎng)布線,提高信號(hào)采集及傳輸?shù)姆€(wěn)定性和可靠性,因而被大多數(shù)新型綜合錄井儀在設(shè)計(jì)時(shí)采用[1-2]。
SMART綜合錄井儀采用CAN總線采集技術(shù),通過(guò)現(xiàn)場(chǎng)的CAN總線采集模塊和安裝在計(jì)算機(jī)內(nèi)的PCI CAN卡構(gòu)建完整的傳感器數(shù)據(jù)采集系統(tǒng)[3]?,F(xiàn)場(chǎng)應(yīng)用過(guò)程中,受限于計(jì)算機(jī)硬件配置和操作系統(tǒng),整個(gè)錄井軟件架構(gòu)必須基于WIN 7操作系統(tǒng)。為更好地滿足現(xiàn)場(chǎng)應(yīng)用,研究基于以太網(wǎng)架構(gòu)的CAN采集方案,采用分布式設(shè)計(jì),完全獨(dú)立于計(jì)算機(jī)系統(tǒng),使整個(gè)軟件系統(tǒng)設(shè)計(jì)更加靈活,不再區(qū)分采集機(jī)、工作站和服務(wù)器,同時(shí)可以應(yīng)用WIN 7/WIN 10操作系統(tǒng)。
以CAN總線協(xié)議為基礎(chǔ)的總線采集系統(tǒng),由一系列智能化現(xiàn)場(chǎng)CAN總線采集節(jié)點(diǎn)模塊、PC/PLC通信網(wǎng)卡/網(wǎng)橋以及一系列基于開(kāi)放式國(guó)際標(biāo)準(zhǔn)的應(yīng)用軟件構(gòu)成[4]。CAN總線技術(shù)是自動(dòng)化技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和儀表采集技術(shù)發(fā)展結(jié)合的成果,改變了傳統(tǒng)模擬信號(hào)傳輸模式,實(shí)現(xiàn)了現(xiàn)場(chǎng)傳感器與采集系統(tǒng)之間全數(shù)字化雙向通信,減少信號(hào)傳輸?shù)闹虚g環(huán)節(jié),提高系統(tǒng)精度和抗干擾性[5]。CAN總線采用單總線布線方式,將原來(lái)錄井儀井場(chǎng)布線安裝時(shí)間從原來(lái)的2至3天縮短到半天,顯著提高了現(xiàn)場(chǎng)傳感器安裝及布線效率。
CAN總線傳感器采集系統(tǒng)包括鉆臺(tái)區(qū)采集箱、入口區(qū)采集箱、出口區(qū)采集箱、終端電阻、CAN總線通信線纜、CAN采集卡、采集計(jì)算機(jī)、CAN數(shù)據(jù)采集軟件等(圖1)。CAN采集卡和CAN數(shù)據(jù)采集軟件都安裝在采集計(jì)算機(jī)中,與采集計(jì)算機(jī)綁定,依托采集計(jì)算機(jī)工作。每個(gè)采集箱內(nèi)包含多個(gè)CAN數(shù)據(jù)采集模塊,該模塊集成有安全隔離柵、數(shù)據(jù)采集、數(shù)據(jù)通信、總線控制等功能,實(shí)現(xiàn)對(duì)傳感器信號(hào)的本質(zhì)安全防爆隔離、信號(hào)采集及將計(jì)算的傳感器信號(hào)結(jié)果通過(guò)CAN總線傳給采集卡和采集軟件[6-7]。每個(gè)數(shù)據(jù)采集模塊都是總線系統(tǒng)中的一個(gè)子節(jié)點(diǎn),具有獨(dú)立的邏輯地址[8]。采集軟件通過(guò)作為主節(jié)點(diǎn)的CAN采集卡控制各個(gè)子節(jié)點(diǎn),實(shí)現(xiàn)各種控制功能,如采集頻率、濾波時(shí)間、節(jié)點(diǎn)地址等。采集計(jì)算機(jī)通過(guò)HUB與服務(wù)器及工作站計(jì)算機(jī)之間進(jìn)行通信,分別完成數(shù)據(jù)采集、數(shù)據(jù)服務(wù)、數(shù)據(jù)監(jiān)測(cè)等功能。
圖1 常規(guī)CAN總線傳感器采集系統(tǒng)結(jié)構(gòu)示意
在采用CAN采集卡進(jìn)行數(shù)據(jù)采集時(shí),CAN采集卡必須安裝在采集計(jì)算機(jī)內(nèi),既受到采集計(jì)算機(jī)的主板限制,同時(shí)也限制了計(jì)算機(jī)的選型,對(duì)每款不同的計(jì)算機(jī)配置都需要進(jìn)行兼容性試驗(yàn),驗(yàn)證計(jì)算機(jī)與CAN采集卡之間的適應(yīng)性,經(jīng)常出現(xiàn)CAN采集卡與計(jì)算機(jī)不兼容、采集運(yùn)行過(guò)程中突然無(wú)法采集數(shù)據(jù)的情況。
設(shè)計(jì)獨(dú)立于計(jì)算機(jī)的以太網(wǎng)CAN采集模式,將CAN數(shù)據(jù)采集模塊獨(dú)立于計(jì)算機(jī),通過(guò)HUB與計(jì)算機(jī)相連,使整個(gè)網(wǎng)絡(luò)中的每一臺(tái)計(jì)算機(jī)都可以作為采集計(jì)算機(jī)接收CAN網(wǎng)絡(luò)數(shù)據(jù),實(shí)現(xiàn)傳感器信號(hào)采集(圖2),不再區(qū)分采集機(jī)、服務(wù)器、工作站等。以太網(wǎng)CAN采集模塊采用工業(yè)級(jí)芯片設(shè)計(jì),可以在-40~85℃的溫度范圍內(nèi)正常工作,內(nèi)部集成一路100/1000 M自適應(yīng)的以太網(wǎng)接口,支持TCP Server、TCP Client、UDP三種工作模式,支持以太網(wǎng)冗余和CAN網(wǎng)絡(luò)冗余。模塊自帶磁耦隔離模塊,使其避免由于瞬間高壓而對(duì)設(shè)備造成損壞,具備強(qiáng)大的抗靜電和抗浪涌能力,使之可以在惡劣環(huán)境中使用。
圖2 以太網(wǎng)CAN總線傳感器采集系統(tǒng)結(jié)構(gòu)示意
CAN總線傳感器采集軟件主要實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)置、CAN總線節(jié)點(diǎn)初始化、節(jié)點(diǎn)搜索、節(jié)點(diǎn)地址設(shè)置、節(jié)點(diǎn)掛起、建立通信連接等功能。
針對(duì)以太網(wǎng)CAN采集模塊的三種工作模式(TCP Server、TCP Client、UDP),考慮到可能存在多臺(tái)計(jì)算機(jī)的并行采集,設(shè)計(jì)將以太網(wǎng)CAN采集模塊作為TCP Server服務(wù)器模式,錄井計(jì)算機(jī)作為客戶端接入并獲取數(shù)據(jù),可以最有效地對(duì)整個(gè)網(wǎng)絡(luò)負(fù)荷進(jìn)行管控。網(wǎng)絡(luò)中的任意計(jì)算機(jī)都可以通過(guò)TCP Client客戶端模式連接至采集模塊,對(duì)CAN總線采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)采集并處理,以便最大程度降低整個(gè)網(wǎng)絡(luò)負(fù)荷。而UDP模式用在任意計(jì)算機(jī)采集模式下,必須將以太網(wǎng)CAN采集模塊設(shè)置為網(wǎng)絡(luò)群發(fā),提升了整個(gè)網(wǎng)絡(luò)負(fù)荷。因此最終選擇以太網(wǎng)CAN采集模塊TCP Server,采集軟件在TCP Client模式作為采用自動(dòng)重連機(jī)制確保數(shù)據(jù)連接正常運(yùn)行。
采集軟件在第一次運(yùn)行時(shí)需要對(duì)整個(gè)CAN總線進(jìn)行初始化和搜索總線中所有的節(jié)點(diǎn),并對(duì)每一個(gè)節(jié)點(diǎn)進(jìn)行邏輯地址設(shè)置,確保所有的節(jié)點(diǎn)邏輯地址不會(huì)因沖突影響采集工作(圖3)。初始化操作主要完成總線通信速率、網(wǎng)絡(luò)地址、端口和通信模式設(shè)置,并建立與以太網(wǎng)CAN采集模塊的正常通信連接,實(shí)現(xiàn)對(duì)總線上所有節(jié)點(diǎn)的控制。初始化完成后采集軟件發(fā)送控制命令將總線上所有的節(jié)點(diǎn)設(shè)置處于監(jiān)聽(tīng)狀態(tài),以便讀取所有總線節(jié)點(diǎn)信息,每個(gè)節(jié)點(diǎn)默認(rèn)的邏輯地址為0~63,依次搜索所有邏輯地址,可以搜索到所有的節(jié)點(diǎn)信息并保存和顯示。搜索完成后對(duì)于搜索到的節(jié)點(diǎn)依次重新設(shè)置每一個(gè)節(jié)點(diǎn)的邏輯地址,確保沒(méi)有重復(fù)后,完成CAN總線初始化。
采集軟件在正常采集啟動(dòng)時(shí)對(duì)整個(gè)CAN總線進(jìn)行初始化并設(shè)置所有節(jié)點(diǎn)處于自動(dòng)采集發(fā)送模式(圖4)。
圖3 以太網(wǎng)CAN總線初始化流程
圖4 以太網(wǎng)CAN總線數(shù)據(jù)采集過(guò)程
在自動(dòng)采集發(fā)送模式下,所有節(jié)點(diǎn)按照預(yù)先設(shè)置的采樣間隔,采集傳感器信號(hào)并發(fā)送。發(fā)送模式為定時(shí)自主發(fā)送,節(jié)點(diǎn)自動(dòng)監(jiān)聽(tīng)CAN總線狀態(tài),發(fā)現(xiàn)空閑時(shí)自動(dòng)將采集結(jié)果發(fā)送至CAN總線網(wǎng)絡(luò),采集軟件收到總線數(shù)據(jù)后進(jìn)行解析,根據(jù)節(jié)點(diǎn)邏輯地址和預(yù)先設(shè)定的對(duì)應(yīng)關(guān)系,解析出模擬量、泵沖量、絞車量信號(hào)值,實(shí)現(xiàn)整個(gè)采集過(guò)程。當(dāng)采集軟件停止采集退出時(shí),將整個(gè)數(shù)據(jù)總線掛起,所有節(jié)點(diǎn)處于監(jiān)聽(tīng)狀態(tài)。
為了能夠更好地和錄井軟件對(duì)接及便于采集接口軟件的改進(jìn)升級(jí),采集軟件采用動(dòng)態(tài)鏈接庫(kù)(DLL)方式設(shè)計(jì),獨(dú)立于錄井軟件,同時(shí)采用C++設(shè)計(jì),以保證具有良好的兼容性和實(shí)時(shí)性。
動(dòng)態(tài)鏈接庫(kù)(DLL)提供了一種使軟件可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù),該函數(shù)的可執(zhí)行代碼位于一個(gè)DLL文件中,這樣可以更為容易地更新各個(gè)模塊,而不會(huì)影響該程序的其他部分。SMART錄井采集軟件通過(guò)調(diào)用采集軟件模塊DLL,輕松實(shí)現(xiàn)傳感器數(shù)據(jù)采集功能,后期需要對(duì)采集功能進(jìn)行升級(jí)時(shí),僅需要更新采集軟件模塊DLL,而無(wú)需重新開(kāi)發(fā)或安裝整個(gè)錄井軟件系統(tǒng)。
為滿足錄井軟件數(shù)據(jù)采集需求,設(shè)計(jì)完成了采集軟件(圖5)。在采集軟件模塊輸出DLL中提供標(biāo)準(zhǔn)調(diào)用函數(shù)接口供錄井軟件調(diào)用,更底層的采集功能則封裝在DLL中,使得錄井采集軟件在設(shè)計(jì)時(shí),不需要考慮底層軟件設(shè)計(jì),針對(duì)不同采集硬件僅需要更新該動(dòng)態(tài)鏈接庫(kù),可以保證不同采集硬件和錄井軟件之間實(shí)現(xiàn)無(wú)縫集成,同時(shí)不需要對(duì)錄井采集軟件本身予以任何更改。
在CAN采集軟件模塊DLL中提供了如下函數(shù)接口(實(shí)現(xiàn)了初始化、傳感器信號(hào)采集、泵速及轉(zhuǎn)盤轉(zhuǎn)速采集、獲取通道配置信息、關(guān)閉CAN采集等功能):
extern "C" _declspec(dllexport) int DRV_Open(CWnd*pParent); //初始化CAN采集模塊
extern "C" _declspec(dllexport) int ADV(float*dV,int nType);//采集64通道信號(hào)值
extern "C" _declspec(dllexport) int DIV(int*dV);//采集泵沖傳感器泵速和轉(zhuǎn)盤轉(zhuǎn)速值
extern "C" _declspec(dllexport) int GetChCfg(int*nID,int*nChIndex);//獲取通道配置信息(通道ID,通道號(hào))
extern "C" _declspec(dllexport) int DRV_Close(); //關(guān)閉CAN采集模塊
圖5 以太網(wǎng)CAN總線采集配置軟件界面
SMART綜合錄井儀采用CAN總線數(shù)據(jù)采集方式,極大地簡(jiǎn)化了現(xiàn)場(chǎng)的傳感器布線工作,CAN總線方式將傳感器信號(hào)在現(xiàn)場(chǎng)直接采集后通過(guò)數(shù)字總線傳輸?shù)戒浘畠x,提高了信號(hào)的抗干擾能力和可靠性。采用以太網(wǎng)CAN采集模塊替代PCI CAN采集卡,儀器整體結(jié)構(gòu)設(shè)計(jì)更加簡(jiǎn)單,對(duì)計(jì)算機(jī)硬件的適應(yīng)性更強(qiáng)。通過(guò)動(dòng)態(tài)鏈接庫(kù)設(shè)計(jì)方式,實(shí)現(xiàn)了傳感器采集軟件獨(dú)立于綜合錄井儀錄井采集軟件,便于后期軟件升級(jí)。