魯 興,喬 雙
(東北師范大學物理學院,吉林 長春 130024)
隨著工業技術的發展,傳統的大型核反應堆越來越不適合民用生產.中子發生器以其小型化、價格低、產額高、產生與關閉的可控性的優勢,在工業、國防、醫療等領域得到廣泛應用.它主要由中子管和控制臺組成,中子管是把離子源、加速系統、靶、氣壓調節系統密封在陶瓷管內組成的電真空器件,配合中子發生器控制臺給予的低、中、高三路電壓,才能產生穩定的中子.[1]傳統的控制臺使用電壓表、電流或者使用簡單的串口通信觸摸屏監測中子管的三路電壓、電流情況.由于有高壓的存在,放電不可避免,因此會對電路及通信和控制造成干擾,使傳輸的數據不精確,傳輸不穩定.MODBUS作為一種開放式現場總線通信協議,以其支持較多類型的電氣接口,具有透明通信、幀結構簡單、緊促、格式規范、易于傳輸、通俗易懂的優點,而廣泛應用于電子控制裝置上.[2]本文將MODBUS協議移植到中子發生器控制臺中,實現現場設備與控制設備之間的雙向、串行通信,使得PC機、中子發生器控制臺對中子管的工作狀態的監測與控制更加可靠和穩定,最終實現中子發生器的長期穩定工作.
MODBUS采用主從通信方式,在同一主設備下可控制多達255個從設備.標準MODBUS協議可以配合RS232、RS485物理接口使用.通信以幀為單位,一次有效的通信由若干幀組成.MODBUS通信一般有ASCII模式和RTU模式.當控制器設定在MODBUS網絡上時以ASCII模式通信,消息中的每個8 B字節都作為一個ASCII碼發送.這種方式的主要優點是字符發送的時間間隔可達到1 s而不產生錯誤.當控制器設在MODBUS網絡上時以RTU模式通信,在消息中的每個8 B字節包含2個4 B的 十六進制字符.[3]這種方式的主要優點:在同樣的波特率下,比ASCII方式傳送更多的數據.現在工業上多數采用RTU模式,因為它傳輸速率更快.
RTU模式下通信的數據幀格式見表1.
MODBUS的RTU模式規定不同數據幀之間的間隔是3.5個字節以上.如果在一幀數據完成之前有超過3.5個字節時間的停頓,接收設備將刷新當前的消息并假定下一個字節是一個新的數據幀的開始.同樣,如果一個新消息在小于3.5個字節時間內接著前邊一個數據開始,接收設備將會認為它是前一幀數據的延續.這將會導致一個錯誤,因此RTU數據幀最后還有16 B的CRC校驗.[4-6]所以真正的第一幀數據是從機地址,第二幀為功能碼,數據的幀數是根據功能碼來確定的,最后的CRC校驗碼是由一種特定的數據算法所得的值,接收方在接收到數據后進行CRC計算,把得到的值與計算的值比較.如果正確,則接收.否則這幀數據將被丟棄.RTU模式的每個字節的位分布:1個起始位、8個數據位(最小有效位先發送)、1個奇偶校驗位(如果無校驗則沒有此位)、1個停止位(有校驗位時)或者2個停止位(無校驗位時).所以MODBUS編程時不僅要選好通信模式,而且要設置好一些串口參數,如波特率、停止位等,MODBUS常用功能碼見表2.

表2 MODBUS常用功能碼
中子發生器控制臺的總體結構如圖1所示.上位機監控界面通過基于MODBUS協議的串口將控制指令發給控制臺中的主控制器,主控制器按照該協議調節離子源電路、儲存器電路、高壓源電路的狀態,產生用戶所需要的中子.同時通過A/D采樣通道實時監測中子管工作情況,防止發生意外.

圖1 中子發生器控制臺的總體框圖結構
本文采用MODBUS RTU通信模式,主站利用LabVIEW人機交互界面實現,從站使用DSP TMS320F2812實現,主站與從站之間通過串口通信.過去普通的串口通信運用在中子發生器控制臺中,常常發生通信錯誤,造成通信中斷或數據堆積等現象.在普通串口通信中添加MODBUS通信協議,控制臺的主站會先給從站發送一個從機地址位,從站對此進行判斷,一旦從機地址位錯誤,即丟棄所有接收到的數據.并且在控制臺里的從站接收完一個指令的數據后,計算出CRC碼并與主站傳輸的CRC碼對比,如果正確,則根據相應的功能碼對中子發生器進行控制.而且MODBUS協議還規定了一幀數據間傳輸時間,對數據的正確性進行了判斷,并且相較于普通串口通信,控制臺中MODBUS協議對數據傳輸錯誤有很多的處理機制,這使中子發生器在高壓放電干擾的環境下通信不會中斷,不會因為錯誤的數據傳輸而對中子發生器進行錯誤的調控,從而導致設備的損壞.
(1) 編寫超時定時器初始化函數、定時器中斷函數.
在超時定時器初始化函數里設置3.5個字節以上通信時間.保證不同數據幀之間的良好區分.部分代碼如下:
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) 串口函數的編寫.
設置好串口的一些波特率、字節的位數,奇偶校驗位、停止位的個數等參數,以及串口字節數據的發送接收函數的編寫.
(3) 校驗函數(CRC)等的編寫.
(4) 應用層函數的編寫.
對保持寄存器的回函數、輸入寄存器回函數等進行編寫,根據外部功能碼進行功能操作,打開TMS320F2812芯片的AD采集功能,采集中子管此刻的電壓、電流值等[7-8],返回響應數據.
上位機界面是由LabVIEW軟件進行編寫的[9].在基于MODBUS的設計中遵循LabVIEW串口編寫思路:(1)串口初始化組件的配置,設置好波特率、停止位等參數;(2)發送和接收模塊制作時嚴格按照MODBUS協議數據發送、接收格式,加上CRC校驗子函數(如圖2所示);(3)關閉串口通信.

圖2 CRC校驗模塊
將中子發生器控制臺里面的DSP下載,基于MODBUS協議下的程序與PC機上位機界面通過串口相連,選定好波特率、從機地址等參數,進行通信測試.監控中子發生器的運行情況(如圖3所示).
為了驗證MODBUS協議對解決高壓放電等強干擾的有效性,本文將移植與沒移植MODBUS協議的控制臺帶到工業現場分別進行測試.保證離子源電流工作在400 μA,高壓源為110 kV的條件下,連續工作8 h,進行對比實驗,具體實驗數據見表3.

表3 控制臺實驗數據
將嵌入MODBUS協議的中子發生器控制臺用于工業物料實時在線元素分析現場[10],經過長期使用證明控制臺相較于普通串口控制臺通信更加穩定、可靠,表現出比較高的抗干擾性和可靠性,能有效快速控制中子發生器,完全滿足實際需要.
MODBUS通信協議已經廣泛地應用于工業生產上,特別是在以嵌入式微處理器為核心的監控系統,它的可靠性和穩定性經過長期的驗證,在中子發生器控制臺的通信編程過程中運用到MODBUS協議,代替傳統的通信方式,傳輸的數據更加可靠、穩定,使中子發生器控制的精確度、可靠性大幅提升,為中子發生器的產業化奠定了堅實的基礎.
[參考文獻]
[1]周大立,張洋,喬雙.藍牙技術在中子發生器控制臺中的應用[J].東北師大學報(自然科學版),2015,47(2):72-74.
[2]朱小襄.MODBUS通信協議及編程[J].電子工程師,2005,31(7):42-44.
[3]彭道剛,張浩,李輝,等.基于MODBUS協議的ARM嵌入式監控平臺設計與實現[J].電力自動化設備,2009,29(1):115-123.
[4]岳洋,張春光,袁愛進.一種基于MODBUS的嵌入式人際界面的設計與實現[J].工業控制計算機,2006,19(1):8-10.
[5]袁臣虎,王臻,李秀艷,等.基于MODBUS協議的觸摸屏與TMS320F2812串行通信研究[J].天津工業大學學報,2010,29(2):63-67.
[6]封亞斌.采用串口通信技術實現MODBUS數據通信[J].自動化儀表,2004,25(10):56- 58.
[7]顧衛鋼.手把手教你學DSP[M].北京:北京航空航天大學出版社,2011:315-351.
[8]高翠云,江朝暉,孫冰.基于TMS320F2812的DSP最小系統設計[J].電氣電子教學學報,2009,31(1):83-85.
[9]謝啟,顧啟民,涂水林,等.基于LabVIEW的MODBUS RTU通信協議的實現[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.