摘 要:直流高壓電源在離子束流傳輸中,對離子束進行加速、偏轉和引出。本文介紹了基于研華ADAM-4000系列分布式模塊實現了10KV高壓直流電源的遠程控制,其控制功能包括遠程開關量操作、實時獲取電源運行狀態和輸出高壓調節等。
關鍵詞:遠程控制;分布式模塊;高壓
1 引言
直流高壓電源在離子束流傳輸中,對離子束進行加速、偏轉和引出。在實際操作中,需要頻繁調節輸出高壓值,用電位器調節往往達不到輸出電壓調節精度的要求,也不易調節精確的輸出高壓值。由于高壓電源在離子束流傳輸中的重要性,實現對高壓電源的遠程控制尤為重要。研華ADAM-4000系列分布式模塊采用RS-485總線標準,有多種功能模塊,其中有數字量輸入輸出、數模轉換、模數轉換和通信等功能模塊。我們結合相應模塊的功能,通過設計附加電路,實現了10KV高壓電源的遠程控制。通過主控計算機,實現了對直流高壓電源遠程開機、關機和故障復位等開關量操作,實時獲取電源的運行狀態,調節輸出高壓等遠程控制功能。
2 RS-485總線概述
RS-485是總線型通信網絡,支持半雙工通信和全雙工通信模式。RS-485以差分平衡方式傳輸信號,從根本上消除信號地線,具有很強的抗共模干擾能力,允許在一對雙絞線上一個發送器驅動多個負載設備以及傳輸線成本低的特性。典型RS-485半雙工通信網絡如圖1所示。在RS-485網絡中,每個站點有固定的地址。同一時刻只能有一個站點與上位機建立數據通信,發送和接收數據,而其他站點則只能處于接收狀態,以免發生數據碰撞錯誤。在標準的RS-485總線上最大允許接入32個控制節點。
[align=center]

圖1. 典型RS-485半雙工通信網絡[/align]
在當前的自動化領域中,由于RS-485構成的控制網絡具有接口簡單、信號傳輸距離遠(達到4000英尺)、傳輸速率高(最大為10M)和可靠性高等特點而被廣泛采用。同時,由于網絡技術的迅速發展,由RS-485總線構成的現場設備控制網絡可以通過網關等技術接入以太網中,實現網絡化控制的目的。
3 功能概述
主控計算機通過數字量輸入輸出模塊和電源內部相應的驅動電路實現對高壓電源遠程開關機操作和電源運行狀態實時采集;通過數模轉換模塊對高壓電源的輸出電壓進行調節;通過模數轉換獲取電源的輸出高壓值和輸出電流值。ADAM-4000系列的數字量輸入輸出模塊、數模轉換模塊、模數轉換模塊采用RS-485標準總線,每個功能模塊均可設置地址。在RS-485網絡中使用的是主從模式,主控計算機作為一個主節點,其余的功能模塊都是從節點。在組成控制系統后,主控計算機通過訪問各功能模塊的地址,發送控制指令字符串實現相應的控制功能。采用RS-232/RS-485轉換器,可以通過將主控計算機的RS-232電平信號轉換成RS-485總線標準信號,從而實現對各功能模塊的控制。高壓電源的控制原理如圖2所示。高壓電源遠程控制系統中采用的模塊分別介紹如下:
數字量輸入輸出模塊ADAM4050:該模塊具有7路數字量輸入通道和8路數字量輸出通道。其數字量輸入信號為TTL電平或繼電器節點,數字量輸出為集電極開路輸出,可驅動微型繼電器。通過高壓電源內部的控制接口驅動電路部分,實現對高壓電源的開關機操作和運行狀態獲取。
模擬量輸出模塊ADAM4024:該模塊可輸出4路模擬量,分辨率為12位。具有電流輸出和電壓輸出方式,采用電壓輸出方式時的輸出范圍是±10V,其輸出的上升斜率可以通過編程調節。該模塊的一路模擬量輸出作為高壓電源遠程控制調節輸出的電壓基準。
模擬量輸入模塊ADAM4017:該模塊具有6路差分信號輸入通道和2路單端信號輸入通道,信號輸入模式為電流信號和電壓信號,其電壓信號的輸入范圍是±1V、±5V和±10V。其兩路差分信號輸入端分別采集高壓電壓的輸出電壓值和負載電流值。
隔離RS-232/RS-485轉換器ADAM4520:實現RS-232電平信號到RS-485總線信號的轉換,隔離電壓為3000VDC。主控計算機以RS-485總線協議實現與各功能模塊的控制通信。
用VisualBasic6.0集成開發環境開發高壓電源的控制軟件。其控制功能包括:高壓電源的開機、關機和故障復位;實時獲取電源運行狀態;調節輸出電壓值和輸出電壓值的實時測量及通信端口檢測等。通過在控制軟件中設計特殊的定時器,主控計算機實時獲取電源的運行狀態和輸出高壓值。
[align=center]

圖2. 高壓電源的控制原理圖[/align]
4 通信軟件設計
主控計算機的控制軟件主要包括主要包含通信模塊、控制功能模塊、數據顯示與處理模塊。其中控制功能模塊實現對高壓電源的遠程開機、關機、故障復位、輸出電壓調節和電源運行狀態顯示等功能。通過通信控制軟件實現與各功能模塊的數據通信。當計算機端發送數據給高壓電源時,安裝在電源內部的相應的功能模塊會返回對應的指令符,將執行結果顯示在操作界面上。每一個控制指令指令中包含的地址和控制數據是以字符串的方式傳輸到相應的控制模塊,各模塊根據主控計算機發送的模塊地址和指令相應的操作。
VB6.0提供了許多供用戶選擇的控件,其中MSComm32.OCX是用于串行通信的控件。MSComm通信控件具有豐富的用于串口通信的屬性及事件,可以創建全雙工、事件驅動、高效實用的通信程序。
Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發數據的簡便方法。可以用它創建全雙工、事件驅動、高效實用的通信程序。具體的來說,它提供了兩種處理通信的方法:一是事件驅動(Event-driven)方法,一是查詢法。
事件驅動方法,事件驅動通訊是處理串行端口交互作用的一種非常有效的方法。在串口接收到或發送完指定數量的數據時,或當狀態發生改變時,MSComm控件都觸發OnComm事件。OnComm 事件還可以檢查和處理通訊錯誤。這種方法的優點是程序響應及時,可靠性高。每個MSComm 控件對應著一個串行端口。如果應用程序需要訪問多個串行端口,必須使用多個 MSComm 控件。
查詢方法,查詢方式實質上還是事件驅動,但在有些情況下,這種方式顯得更為便捷。在程序的每個關鍵功能之后,可以通過查詢MSComm 控件的某些屬性,如CommEvent 屬性和InBufferCount屬性的值來檢測事件和通信錯誤。如果應用程序較小,并且是自保持的,這種方法可能是更可取的。
以上兩種通信方式都可以達到數據發送和接收的目的,至于使用什么方式,必須根據實際的系統環境而定。對于高壓電源的控制通信軟件采用查詢法來設計。通信子程序的功能是將主控計算機發送的命令字符串傳輸到RS-485總線上,不同的控制模塊接收命令字符串,只有與命令字中所包含的地址信息相同的模塊才執行相應的控制功能并返回執行結果的字符串,通信軟件子程序清單如下:
Private Sub sendadv(Outstring, n)
MSComm1.CommPort = Comm_Port ’選擇RS232通信端口
MSComm1.Settings = "9600,N,8,1" ’設置波特率、檢驗位、數據位、停止位
MSComm1.InputLen = 512 ’設置緩沖區大小
MSComm1.PortOpen = True ’打開串行口
MSComm1.RThreshold = n
MSComm1.Output = Outstring + Chr(13) ’發送以回車符結束標志的字符串
Do Until MSComm1.InBufferCount > 0
DoEvents
Error_Flag = Error_Flag + 1
If Error_Flag > 1000 Then
Error_info = "發送控制指令失敗!"
ok = MsgBox(Error_info, vbOKOnly + vbExclamation)
GoTo Return1
End If
Loop
Instring = MSComm1.Input
… …
Return1:
MSComm1.PortOpen = False
End Sub
5 模塊初始化
ADAM-4000系列模塊都有相應的指令集以便控制軟件實現相應的控制功能,各模塊的指令字是ASCII字符的形式。控制軟件以規定的指令格式將指令發送到相應的模塊,就可以實現相應的控制功能。在控制軟件中,首先對各功能模塊進行初始化,包括對各模塊的地址、波特率、輸入輸出模式和模塊類型等參數進行設置。對模塊進行設置的指令以字符串形式發送出去,以回車符為結束標志。在控制軟件啟動時對各模塊分別初始化如下:
… …
Outstring = "%0101400600" ’設置4050的地址為01H,I/O模塊,波特率為9600。
n = Len(Outstring)
Call sendadv(Outstring, n) ’調用通信子程序
Outstring = "%0202000603" ’設置4024的地址為02H,波特率為9600,輸出模擬量上升斜率。
n = Len(Outstring)
Call sendadv(Outstring, n)
Outstring = "$027C0R32" ’設置4024的0號通道的電壓輸出范圍是 -10V-+10V。
n = Len(Outstring)
Call sendadv(Outstring, n)
Outstring = "%0303080600" ’設置4017的地址為03H,模擬量輸入范圍是±10V,波特率為9600。
n = Len(Outstring)
Call sendadv(Outstring, n)
… …
6 結論
基于分布式模塊的直流高壓電源的遠程控制系統,具有高分辨率的數模轉換器和模數轉換器,滿足了對高壓電源輸出調節精度要求。由于采用RS485總線控制方式,系統具有較強的靈活性和可擴充性;由于采用隔離通訊控制方式,系統的安全性和可靠性得到提高。通過高壓電源遠程控制的實現,減少了實驗人員直接在實驗場地調節高壓電源輸出的操作,使實驗人員通過主控計算機就可以了解高壓電源的運行狀態及輸出高壓值。經過反復的調試和可靠性測試,達到了電源遠程控制的要求。本文作者創新點是利用分布式模塊實現高壓直流電源的高精度遠程控制,保證了物理實驗人員地操作安全,在工程實踐中具有很好的推廣價值。
參考文獻:
[1]范逸之, 陳立元. Visual Basic與RS-232串行通信控制[M]. 北京:清華大學出版社, 2002.
[2]毛曉波.基于RS-485的分布式溫度采集系統[J]. 微計算機信息, 2005, 9-1: 101-103
[3]B & B Electronics. RS-422 and RS-485 Application Note,1997
[4]石東海. 單片機數據通信技術從入門到精通[M]. 西安:西安電子科技大學出版社, 2002.
[5]ADAM 4000 Data Acquisition User’s Manual, http://www.advantech.com.cn/