魯 興,喬 雙
(東北師范大學物理學院,吉林 長春 130024)
隨著工業(yè)技術的發(fā)展,傳統(tǒng)的大型核反應堆越來越不適合民用生產(chǎn).中子發(fā)生器以其小型化、價格低、產(chǎn)額高、產(chǎn)生與關閉的可控性的優(yōu)勢,在工業(yè)、國防、醫(yī)療等領域得到廣泛應用.它主要由中子管和控制臺組成,中子管是把離子源、加速系統(tǒng)、靶、氣壓調(diào)節(jié)系統(tǒng)密封在陶瓷管內(nèi)組成的電真空器件,配合中子發(fā)生器控制臺給予的低、中、高三路電壓,才能產(chǎn)生穩(wěn)定的中子.[1]傳統(tǒng)的控制臺使用電壓表、電流或者使用簡單的串口通信觸摸屏監(jiān)測中子管的三路電壓、電流情況.由于有高壓的存在,放電不可避免,因此會對電路及通信和控制造成干擾,使傳輸?shù)臄?shù)據(jù)不精確,傳輸不穩(wěn)定.MODBUS作為一種開放式現(xiàn)場總線通信協(xié)議,以其支持較多類型的電氣接口,具有透明通信、幀結構簡單、緊促、格式規(guī)范、易于傳輸、通俗易懂的優(yōu)點,而廣泛應用于電子控制裝置上.[2]本文將MODBUS協(xié)議移植到中子發(fā)生器控制臺中,實現(xiàn)現(xiàn)場設備與控制設備之間的雙向、串行通信,使得PC機、中子發(fā)生器控制臺對中子管的工作狀態(tài)的監(jiān)測與控制更加可靠和穩(wěn)定,最終實現(xiàn)中子發(fā)生器的長期穩(wěn)定工作.
MODBUS采用主從通信方式,在同一主設備下可控制多達255個從設備.標準MODBUS協(xié)議可以配合RS232、RS485物理接口使用.通信以幀為單位,一次有效的通信由若干幀組成.MODBUS通信一般有ASCII模式和RTU模式.當控制器設定在MODBUS網(wǎng)絡上時以ASCII模式通信,消息中的每個8 B字節(jié)都作為一個ASCII碼發(fā)送.這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達到1 s而不產(chǎn)生錯誤.當控制器設在MODBUS網(wǎng)絡上時以RTU模式通信,在消息中的每個8 B字節(jié)包含2個4 B的 十六進制字符.[3]這種方式的主要優(yōu)點:在同樣的波特率下,比ASCII方式傳送更多的數(shù)據(jù).現(xiàn)在工業(yè)上多數(shù)采用RTU模式,因為它傳輸速率更快.
RTU模式下通信的數(shù)據(jù)幀格式見表1.
MODBUS的RTU模式規(guī)定不同數(shù)據(jù)幀之間的間隔是3.5個字節(jié)以上.如果在一幀數(shù)據(jù)完成之前有超過3.5個字節(jié)時間的停頓,接收設備將刷新當前的消息并假定下一個字節(jié)是一個新的數(shù)據(jù)幀的開始.同樣,如果一個新消息在小于3.5個字節(jié)時間內(nèi)接著前邊一個數(shù)據(jù)開始,接收設備將會認為它是前一幀數(shù)據(jù)的延續(xù).這將會導致一個錯誤,因此RTU數(shù)據(jù)幀最后還有16 B的CRC校驗.[4-6]所以真正的第一幀數(shù)據(jù)是從機地址,第二幀為功能碼,數(shù)據(jù)的幀數(shù)是根據(jù)功能碼來確定的,最后的CRC校驗碼是由一種特定的數(shù)據(jù)算法所得的值,接收方在接收到數(shù)據(jù)后進行CRC計算,把得到的值與計算的值比較.如果正確,則接收.否則這幀數(shù)據(jù)將被丟棄.RTU模式的每個字節(jié)的位分布:1個起始位、8個數(shù)據(jù)位(最小有效位先發(fā)送)、1個奇偶校驗位(如果無校驗則沒有此位)、1個停止位(有校驗位時)或者2個停止位(無校驗位時).所以MODBUS編程時不僅要選好通信模式,而且要設置好一些串口參數(shù),如波特率、停止位等,MODBUS常用功能碼見表2.
表2 MODBUS常用功能碼
中子發(fā)生器控制臺的總體結構如圖1所示.上位機監(jiān)控界面通過基于MODBUS協(xié)議的串口將控制指令發(fā)給控制臺中的主控制器,主控制器按照該協(xié)議調(diào)節(jié)離子源電路、儲存器電路、高壓源電路的狀態(tài),產(chǎn)生用戶所需要的中子.同時通過A/D采樣通道實時監(jiān)測中子管工作情況,防止發(fā)生意外.
圖1 中子發(fā)生器控制臺的總體框圖結構
本文采用MODBUS RTU通信模式,主站利用LabVIEW人機交互界面實現(xiàn),從站使用DSP TMS320F2812實現(xiàn),主站與從站之間通過串口通信.過去普通的串口通信運用在中子發(fā)生器控制臺中,常常發(fā)生通信錯誤,造成通信中斷或數(shù)據(jù)堆積等現(xiàn)象.在普通串口通信中添加MODBUS通信協(xié)議,控制臺的主站會先給從站發(fā)送一個從機地址位,從站對此進行判斷,一旦從機地址位錯誤,即丟棄所有接收到的數(shù)據(jù).并且在控制臺里的從站接收完一個指令的數(shù)據(jù)后,計算出CRC碼并與主站傳輸?shù)腃RC碼對比,如果正確,則根據(jù)相應的功能碼對中子發(fā)生器進行控制.而且MODBUS協(xié)議還規(guī)定了一幀數(shù)據(jù)間傳輸時間,對數(shù)據(jù)的正確性進行了判斷,并且相較于普通串口通信,控制臺中MODBUS協(xié)議對數(shù)據(jù)傳輸錯誤有很多的處理機制,這使中子發(fā)生器在高壓放電干擾的環(huán)境下通信不會中斷,不會因為錯誤的數(shù)據(jù)傳輸而對中子發(fā)生器進行錯誤的調(diào)控,從而導致設備的損壞.
(1) 編寫超時定時器初始化函數(shù)、定時器中斷函數(shù).
在超時定時器初始化函數(shù)里設置3.5個字節(jié)以上通信時間.保證不同數(shù)據(jù)幀之間的良好區(qū)分.部分代碼如下:
void init_eva_timer2(void);
{ EvaRegs.T2PR = 0x5160 // Period;
EvaRegs.EVAIMRB.bit.T2PINT = 1;
EvaRegs.EVAIFRB.bit.T2PINT = 1;
EvaRegs.T2CNT = 0x0000;
EvaRegs.T2CON.all = 0x1040 // Clear the counter for GP timer 2}.
(2) 串口函數(shù)的編寫.
設置好串口的一些波特率、字節(jié)的位數(shù),奇偶校驗位、停止位的個數(shù)等參數(shù),以及串口字節(jié)數(shù)據(jù)的發(fā)送接收函數(shù)的編寫.
(3) 校驗函數(shù)(CRC)等的編寫.
(4) 應用層函數(shù)的編寫.
對保持寄存器的回函數(shù)、輸入寄存器回函數(shù)等進行編寫,根據(jù)外部功能碼進行功能操作,打開TMS320F2812芯片的AD采集功能,采集中子管此刻的電壓、電流值等[7-8],返回響應數(shù)據(jù).
上位機界面是由LabVIEW軟件進行編寫的[9].在基于MODBUS的設計中遵循LabVIEW串口編寫思路:(1)串口初始化組件的配置,設置好波特率、停止位等參數(shù);(2)發(fā)送和接收模塊制作時嚴格按照MODBUS協(xié)議數(shù)據(jù)發(fā)送、接收格式,加上CRC校驗子函數(shù)(如圖2所示);(3)關閉串口通信.
圖2 CRC校驗模塊
將中子發(fā)生器控制臺里面的DSP下載,基于MODBUS協(xié)議下的程序與PC機上位機界面通過串口相連,選定好波特率、從機地址等參數(shù),進行通信測試.監(jiān)控中子發(fā)生器的運行情況(如圖3所示).
為了驗證MODBUS協(xié)議對解決高壓放電等強干擾的有效性,本文將移植與沒移植MODBUS協(xié)議的控制臺帶到工業(yè)現(xiàn)場分別進行測試.保證離子源電流工作在400 μA,高壓源為110 kV的條件下,連續(xù)工作8 h,進行對比實驗,具體實驗數(shù)據(jù)見表3.
表3 控制臺實驗數(shù)據(jù)
將嵌入MODBUS協(xié)議的中子發(fā)生器控制臺用于工業(yè)物料實時在線元素分析現(xiàn)場[10],經(jīng)過長期使用證明控制臺相較于普通串口控制臺通信更加穩(wěn)定、可靠,表現(xiàn)出比較高的抗干擾性和可靠性,能有效快速控制中子發(fā)生器,完全滿足實際需要.
MODBUS通信協(xié)議已經(jīng)廣泛地應用于工業(yè)生產(chǎn)上,特別是在以嵌入式微處理器為核心的監(jiān)控系統(tǒng),它的可靠性和穩(wěn)定性經(jīng)過長期的驗證,在中子發(fā)生器控制臺的通信編程過程中運用到MODBUS協(xié)議,代替?zhèn)鹘y(tǒng)的通信方式,傳輸?shù)臄?shù)據(jù)更加可靠、穩(wěn)定,使中子發(fā)生器控制的精確度、可靠性大幅提升,為中子發(fā)生器的產(chǎn)業(yè)化奠定了堅實的基礎.
[參考文獻]
[1]周大立,張洋,喬雙.藍牙技術在中子發(fā)生器控制臺中的應用[J].東北師大學報(自然科學版),2015,47(2):72-74.
[2]朱小襄.MODBUS通信協(xié)議及編程[J].電子工程師,2005,31(7):42-44.
[3]彭道剛,張浩,李輝,等.基于MODBUS協(xié)議的ARM嵌入式監(jiān)控平臺設計與實現(xiàn)[J].電力自動化設備,2009,29(1):115-123.
[4]岳洋,張春光,袁愛進.一種基于MODBUS的嵌入式人際界面的設計與實現(xiàn)[J].工業(yè)控制計算機,2006,19(1):8-10.
[5]袁臣虎,王臻,李秀艷,等.基于MODBUS協(xié)議的觸摸屏與TMS320F2812串行通信研究[J].天津工業(yè)大學學報,2010,29(2):63-67.
[6]封亞斌.采用串口通信技術實現(xiàn)MODBUS數(shù)據(jù)通信[J].自動化儀表,2004,25(10):56- 58.
[7]顧衛(wèi)鋼.手把手教你學DSP[M].北京:北京航空航天大學出版社,2011:315-351.
[8]高翠云,江朝暉,孫冰.基于TMS320F2812的DSP最小系統(tǒng)設計[J].電氣電子教學學報,2009,31(1):83-85.
[9]謝啟,顧啟民,涂水林,等.基于LabVIEW的MODBUS RTU通信協(xié)議的實現(xiàn)[J].煤礦機械,2006,27(12):95-96.
[10]BACH P,CLUZEAU S,LAMBERMONT C.Application of nuclear analytical techniques using long-life sealed-tube neutron generators[J].Biological Trace Element Research,1994,45:131-139.