向友洪,程 杰,閆曉鈺,張曹龍
(中國核動力研究設(shè)計院,成都 610213)
現(xiàn)場總線是現(xiàn)代計算機技術(shù)、通信技術(shù)和傳感器技術(shù)在工業(yè)領(lǐng)域典型的融合應(yīng)用[1],其提供了一種全數(shù)字式的通信模式來替代傳統(tǒng)的模擬信號進行儀控系統(tǒng)的數(shù)字化架構(gòu)構(gòu)建,提高工業(yè)測控系統(tǒng)的數(shù)字化程度;同時,與傳統(tǒng)的模擬信號相比,現(xiàn)場總線還具備多路設(shè)備連接、高速通信、高帶寬等優(yōu)點,可提高現(xiàn)場系統(tǒng)的集成度,大大減少工業(yè)現(xiàn)場的硬件成本。目前國際上已具備多種總線標(biāo)準(zhǔn),如CAN、Profibus、FF、Modbus等,設(shè)備制造商根據(jù)不同總線通信協(xié)議設(shè)計生產(chǎn)出了不同的現(xiàn)場儀表產(chǎn)品,而不同的總線接口需要不同的測試系統(tǒng),將會導(dǎo)致整個測控系統(tǒng)成本增加、系統(tǒng)臃腫。因此,在不同的應(yīng)用領(lǐng)域均對多總線兼容進行了探索。中國電子科技集團第20研究所計量站基于VISA庫IO接口開發(fā)了自動檢定/校準(zhǔn)測試系統(tǒng)[2];柯先云[3]提出了一種基于STM32的多總線協(xié)議轉(zhuǎn)換器,實現(xiàn)了無人艇控制系統(tǒng)中CAN、以太網(wǎng)、RS485和RS232的協(xié)議兼容。
在熱工水力試驗測控系統(tǒng)中,往往具有測點數(shù)量大、測量類型復(fù)雜的特點,需要在現(xiàn)場層對現(xiàn)場總線進行兼容處理,再為后續(xù)系統(tǒng)應(yīng)用層提供統(tǒng)一的編程調(diào)用接口,保證系統(tǒng)的簡潔、統(tǒng)一且可靠。
基于現(xiàn)場總線兼容的思想,有兩種基本解決方案:協(xié)議棧方案和協(xié)議模塊方案,其中協(xié)議模塊方案可分為協(xié)議轉(zhuǎn)換式和網(wǎng)橋式[4,5]。為了保證后續(xù)總線兼容的可擴展性和便利性,采用網(wǎng)橋式總線兼容的思想,同時結(jié)合熱工水力試驗對于控制器的可編程需求,提出了多總線兼容可編程控制器的解決方案。
多總線兼容可編程控制器采用模塊化形式設(shè)計,硬件結(jié)構(gòu)上由主控制器、功能模塊和系統(tǒng)背板構(gòu)成。其中,主控制器采用國產(chǎn)龍芯3A4000處理器,集成Loongnix操作系統(tǒng),支持通過板卡形式擴展數(shù)據(jù)采集功能模塊。功能模塊主要分為現(xiàn)場總線數(shù)字模塊和傳統(tǒng)模擬量模塊,前者支持Modbus RTU、CAN和Profibus-PA現(xiàn)場總線通信板卡,用于接入現(xiàn)場基于總線協(xié)議的設(shè)備,后者支持AI、AO、DI和DO,用于接入傳統(tǒng)設(shè)備的輸出信號。背板支持8個功能擴展槽,通過統(tǒng)一的上游接口,適配所有類型的功能模塊,通過高速通信總線實現(xiàn)功能模塊與主控制器的數(shù)據(jù)交互。設(shè)備基本硬件結(jié)構(gòu)如圖1所示。
圖1 設(shè)備基本硬件結(jié)構(gòu)Fig.1 Basic hardware structure of the device
多總線兼容可編程控制器支持模擬量、數(shù)字量、脈沖量及現(xiàn)場總線協(xié)議轉(zhuǎn)換功能,可涵蓋工業(yè)自動化的絕大多數(shù)應(yīng)用場景,便于用戶靈活、高效地實現(xiàn)定制化現(xiàn)場信號采集、協(xié)議轉(zhuǎn)換;同時,控制器整體具有較為強大的運算能力,支持邊緣計算的需求。
多總線兼容可編程控制器通過預(yù)裝Loongnix操作系統(tǒng),為用戶的測控應(yīng)用程序開發(fā)提供了一個開放、高效的軟件平臺,支持C/C++編程語言;結(jié)合熱工試驗需求,設(shè)計開發(fā)了嵌入式中間件API接口函數(shù),可更快速、方便和高效地完成應(yīng)用程序開發(fā)和調(diào)試;具備邏輯控制編程及算法編程開發(fā)功能;支持集成開發(fā)環(huán)境,支持中間件函數(shù)庫,支持遠(yuǎn)程設(shè)備管理。
1.2.1 總線兼容原理
多總線兼容可編程控制器的總線兼容原理基于網(wǎng)橋式思想,通過對總線功能模塊的上下游協(xié)議進行區(qū)分定義實現(xiàn)。對于某一總線功能模塊而言,上下游需連接不同的總線協(xié)議,實現(xiàn)協(xié)議轉(zhuǎn)換。上游作為它的主網(wǎng),功能模塊本質(zhì)為主網(wǎng)上掛的一個子設(shè)備;下游根據(jù)所需兼容現(xiàn)場總線協(xié)議進行選擇,功能模塊作為下游子網(wǎng)的主站,可完成與相同協(xié)議現(xiàn)場儀表設(shè)備的組態(tài)、數(shù)據(jù)交換等功能??偩€兼容原理如圖2所示。
圖2 基于網(wǎng)橋式思想的總線兼容原理Fig.2 Bus compatibility principle based on bridge thinking
1.2.2 多總線同步性
在多總線兼容過程中,需要考慮如何保證多總線的數(shù)據(jù)同步性,主要從以下兩種角度進行設(shè)計:
1)輸入同步性
在數(shù)據(jù)同步采集的過程中,引入時間計數(shù)器和數(shù)據(jù)緩存,主控制器定期通過硬觸發(fā)方式對功能模塊的時間計數(shù)器進行同步復(fù)位并記錄此刻的絕對時間。功能模塊將數(shù)據(jù)與時間計數(shù)器值組合后,暫存在緩存區(qū)并在總線空閑期上傳給主控制器,主控制器依據(jù)記錄的絕對時間和計數(shù)器值計算出數(shù)據(jù)的絕對時間。
2)輸出同步性
在數(shù)據(jù)同步輸出的過程中引入數(shù)據(jù)寄存和輸出觸發(fā)機制,主控制器將數(shù)據(jù)發(fā)送到各模塊的數(shù)據(jù)寄存區(qū)后,再通過觸發(fā)方式使功能模塊輸出各自數(shù)據(jù)寄存中的數(shù)據(jù)。
1.2.3 系統(tǒng)響應(yīng)時間
為了整體提高可編程控制器的系統(tǒng)響應(yīng)時間,保證現(xiàn)場控制的響應(yīng)指標(biāo),進行了以下設(shè)計:
1)更改數(shù)據(jù)傳輸方式
優(yōu)化數(shù)據(jù)傳輸模式,如DI模塊的數(shù)據(jù)傳輸方式由查詢方式改為定時和沿觸發(fā)方式。
2)提高總線帶寬
通過高速通信背板的千兆以太網(wǎng)實現(xiàn)主控制器和功能模塊之間的數(shù)據(jù)傳輸,降低數(shù)據(jù)傳輸延時。
3)優(yōu)化主控器處理能力
利用C++語言重新編寫各功能模塊和控制器系統(tǒng)的嵌入式API函數(shù);分配獨立的處理核心給采集的高并發(fā)數(shù)據(jù)。
多總線兼容可編程控制器整體采用功能模塊拔插式的板卡設(shè)計。硬件設(shè)計上,通過歸一化的以太網(wǎng)背板接口適配所有功能模塊;軟件設(shè)計上,通過背板高速通信總線,解決現(xiàn)場采集帶來的通信數(shù)據(jù)量較大的問題[6],利用socket接口實現(xiàn)功能模塊主控芯片與主控制器之間的數(shù)據(jù)通信。多總線兼容可編程控制器機箱如圖3所示。
圖3 多總線兼容可編程控制器機箱Fig.3 Multi bus compatible programmable controller chassis
CAN總線功能模塊設(shè)計了2路CAN總線,其中CAN-bus信號包括:CAN_H、CAN_L、CAN_GND,支持CAN2.0A和CAN2.0B幀格式,每通道最大128個節(jié)點,符合ISO/DIS 11898規(guī)范[7]。CAN功能模塊原理框圖如圖4所示,單路CAN硬件接口定義見表1。
表1 CAN接口(DB9公頭)定義Table 1 Definition of CAN interface (DB9 male)
圖4 CAN功能模塊原理框圖Fig.4 Schematic block diagram of CAN function module
Modbus RTU總線功能模塊設(shè)計了8路獨立的RS485通道,支持Modbus RTU協(xié)議,其作為Modbus RTU主站,可向從站發(fā)送數(shù)據(jù)請求并接收從站返回數(shù)據(jù),數(shù)據(jù)最大波特率115200bps。功能模塊原理框圖如圖5所示,模塊硬件接口定義見表2。
圖5 Modbus RTU功能模塊原理框圖Fig.5 Schematic block diagram of Modbus RTU function module
表2 Modbus RTU功能模塊接口定義Table 2 Modbus RTU function module interface definition
Profibus PA總線功能模塊設(shè)計了4路Profibus PA總線,每路可以連接最多10個Profibus PA總線儀表,支持GSD文件配置,可重復(fù)使用現(xiàn)有的Profibus網(wǎng)段而無需修改,支持Profibus PA通訊協(xié)議,波特率固定為31.25Kbps[8],使用IEC61158-2物理層,通過將信號調(diào)制到電源線上,使用直流平衡的曼徹斯特編碼。Profibus PA功能模塊原理框圖如圖6所示。
圖6 Profibus PA功能模塊原理框圖Fig.6 Schematic block diagram of Profibus PA function module
2.4.1 AIO功能模塊
表3 Profibus PA功能模塊接口定義Table 3 Profibus PA function module interface definition
AI模擬量采集模塊設(shè)計了8路模擬電壓輸入通道,設(shè)計輸入電壓范圍0V~5V。前置利用積分電路實現(xiàn)PWM到平滑電壓的轉(zhuǎn)換,不斷改變PWM占空比使其與輸入測量電壓通過比較器進行比較,階躍變化時,即是測量的輸入電壓值。AI功能模塊原理框圖如圖7所示。
圖7 AI功能模塊原理框圖Fig.7 Schematic block diagram of AI function module
AO模擬量輸出功能模塊設(shè)計了8路模擬電流輸出通道,輸出電流范圍4 mA~20mA。其中,模擬信號輸出電路與主電路隔離,功能模塊接收主控軟件接口參數(shù),通過板載嵌入式控制器實現(xiàn)控制DAC輸出。AO功能模塊原理框圖如圖8所示。
圖8 AO功能模塊原理框圖Fig.8 AO Functional module principle block diagram
2.4.2 DIO功能模塊
DIO功能模塊設(shè)計了8路開關(guān)量輸入和8路開關(guān)量輸出模塊,通過Cortex-M3高速處理芯片保證模塊具有強勁的數(shù)據(jù)處理能力;通過看門狗電路設(shè)計,確保系統(tǒng)長期運行穩(wěn)定可靠。其中,8路開關(guān)量輸入,通過光電隔離接入DIO功能模塊的嵌入式控制器;8路隔離的開關(guān)量輸出通道,通過8路繼電器輸出,保證驅(qū)動能力。DIO功能模塊原理框圖如圖9所示。
圖9 DIO功能模塊原理框圖Fig.9 Schematic block diagram of DIO function module
為了在總線兼容的基礎(chǔ)上,實現(xiàn)基于所兼容現(xiàn)場總線的熱工水力試驗測控程序編程需求,同時保證測控程序的便捷性和快速性,以及考慮多總線兼容可編程控制器后續(xù)的可擴展性,通過C++語言設(shè)計并開發(fā)了控制器嵌入式API接口函數(shù),包含各硬件功能模塊數(shù)據(jù)采集、通信及設(shè)備系統(tǒng)功能等軟件接口。通過該接口函數(shù)庫,用戶可直接利用組件化的思想,快速搭建測控現(xiàn)場數(shù)據(jù)采集測控程序,大大減少人力成本和程序開發(fā)難度。
嵌入式API接口函數(shù)根據(jù)各功能模塊的不同特性進行了定制化設(shè)計,涉及各功能模塊的通道設(shè)參數(shù)置、測量數(shù)據(jù)獲取、輸出控制等API函數(shù),實現(xiàn)中央控制器或其他第三方測控程序的快速開發(fā)調(diào)用。
通過嵌入式API編制多總線兼容可編程控制器測試程序,實現(xiàn)現(xiàn)場儀表測量數(shù)據(jù)采集及信號輸出。其中,CAN通信現(xiàn)場儀表為IMC數(shù)采設(shè)備,Profibus PA通信現(xiàn)場儀表為羅斯蒙特智能壓力變送器,MODBUS RTU通信現(xiàn)場儀表為RTD溫度采集模塊。通過標(biāo)準(zhǔn)信號源給現(xiàn)場熱工儀器儀表輸入標(biāo)準(zhǔn)信號,記錄CAN通信、Profibus PA通信、MODBUS RTU通信、AIO以及DIO所對應(yīng)的標(biāo)準(zhǔn)值和采集值,試驗數(shù)據(jù)如圖10所示。
試驗結(jié)果表明,測試程序運行正常,測試數(shù)據(jù)準(zhǔn)確,該多總線兼容可編程控制器可實現(xiàn)熱工水力試驗測控系統(tǒng)的應(yīng)用需求。
針對反應(yīng)堆熱工水力試驗過程中出現(xiàn)的多現(xiàn)場總線設(shè)備儀表帶來的測控系統(tǒng)成本增加、系統(tǒng)臃腫的問題,基于網(wǎng)橋式思想的總線兼容原理,進行了軟、硬件設(shè)計,最終研制了兼容Modbus RTU、CAN和Profibus-PA協(xié)議的多總線兼容可編程控制器。通過開展控制器的現(xiàn)場數(shù)據(jù)采集測試,測試結(jié)果表明,基于該控制器所編制程序運行正常,測試數(shù)據(jù)準(zhǔn)確。該控制器可實現(xiàn)熱工水力試驗中多種現(xiàn)場總線的兼容,提高系統(tǒng)的集成自動化程度,減少成本。
同時,該多總線兼容可編程控制器的軟硬件設(shè)計均考慮了組件化的思想,統(tǒng)一的背板接口、統(tǒng)一風(fēng)格的嵌入式API等,有利于后續(xù)實現(xiàn)對于更多現(xiàn)場總線的兼容,進一步保證熱工水力試驗測控系統(tǒng)的簡潔、統(tǒng)一且可靠。