摘 要:直流高壓電源在離子束流傳輸中,對(duì)離子束進(jìn)行加速、偏轉(zhuǎn)和引出。本文介紹了基于研華ADAM-4000系列分布式模塊實(shí)現(xiàn)了10KV高壓直流電源的遠(yuǎn)程控制,其控制功能包括遠(yuǎn)程開關(guān)量操作、實(shí)時(shí)獲取電源運(yùn)行狀態(tài)和輸出高壓調(diào)節(jié)等。
關(guān)鍵詞:遠(yuǎn)程控制;分布式模塊;高壓
1 引言
直流高壓電源在離子束流傳輸中,對(duì)離子束進(jìn)行加速、偏轉(zhuǎn)和引出。在實(shí)際操作中,需要頻繁調(diào)節(jié)輸出高壓值,用電位器調(diào)節(jié)往往達(dá)不到輸出電壓調(diào)節(jié)精度的要求,也不易調(diào)節(jié)精確的輸出高壓值。由于高壓電源在離子束流傳輸中的重要性,實(shí)現(xiàn)對(duì)高壓電源的遠(yuǎn)程控制尤為重要。研華ADAM-4000系列分布式模塊采用RS-485總線標(biāo)準(zhǔn),有多種功能模塊,其中有數(shù)字量輸入輸出、數(shù)模轉(zhuǎn)換、模數(shù)轉(zhuǎn)換和通信等功能模塊。我們結(jié)合相應(yīng)模塊的功能,通過設(shè)計(jì)附加電路,實(shí)現(xiàn)了10KV高壓電源的遠(yuǎn)程控制。通過主控計(jì)算機(jī),實(shí)現(xiàn)了對(duì)直流高壓電源遠(yuǎn)程開機(jī)、關(guān)機(jī)和故障復(fù)位等開關(guān)量操作,實(shí)時(shí)獲取電源的運(yùn)行狀態(tài),調(diào)節(jié)輸出高壓等遠(yuǎn)程控制功能。
2 RS-485總線概述
RS-485是總線型通信網(wǎng)絡(luò),支持半雙工通信和全雙工通信模式。RS-485以差分平衡方式傳輸信號(hào),從根本上消除信號(hào)地線,具有很強(qiáng)的抗共模干擾能力,允許在一對(duì)雙絞線上一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備以及傳輸線成本低的特性。典型RS-485半雙工通信網(wǎng)絡(luò)如圖1所示。在RS-485網(wǎng)絡(luò)中,每個(gè)站點(diǎn)有固定的地址。同一時(shí)刻只能有一個(gè)站點(diǎn)與上位機(jī)建立數(shù)據(jù)通信,發(fā)送和接收數(shù)據(jù),而其他站點(diǎn)則只能處于接收狀態(tài),以免發(fā)生數(shù)據(jù)碰撞錯(cuò)誤。在標(biāo)準(zhǔn)的RS-485總線上最大允許接入32個(gè)控制節(jié)點(diǎn)。
[align=center]
圖1. 典型RS-485半雙工通信網(wǎng)絡(luò)[/align]
在當(dāng)前的自動(dòng)化領(lǐng)域中,由于RS-485構(gòu)成的控制網(wǎng)絡(luò)具有接口簡(jiǎn)單、信號(hào)傳輸距離遠(yuǎn)(達(dá)到4000英尺)、傳輸速率高(最大為10M)和可靠性高等特點(diǎn)而被廣泛采用。同時(shí),由于網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,由RS-485總線構(gòu)成的現(xiàn)場(chǎng)設(shè)備控制網(wǎng)絡(luò)可以通過網(wǎng)關(guān)等技術(shù)接入以太網(wǎng)中,實(shí)現(xiàn)網(wǎng)絡(luò)化控制的目的。
3 功能概述
主控計(jì)算機(jī)通過數(shù)字量輸入輸出模塊和電源內(nèi)部相應(yīng)的驅(qū)動(dòng)電路實(shí)現(xiàn)對(duì)高壓電源遠(yuǎn)程開關(guān)機(jī)操作和電源運(yùn)行狀態(tài)實(shí)時(shí)采集;通過數(shù)模轉(zhuǎn)換模塊對(duì)高壓電源的輸出電壓進(jìn)行調(diào)節(jié);通過模數(shù)轉(zhuǎn)換獲取電源的輸出高壓值和輸出電流值。ADAM-4000系列的數(shù)字量輸入輸出模塊、數(shù)模轉(zhuǎn)換模塊、模數(shù)轉(zhuǎn)換模塊采用RS-485標(biāo)準(zhǔn)總線,每個(gè)功能模塊均可設(shè)置地址。在RS-485網(wǎng)絡(luò)中使用的是主從模式,主控計(jì)算機(jī)作為一個(gè)主節(jié)點(diǎn),其余的功能模塊都是從節(jié)點(diǎn)。在組成控制系統(tǒng)后,主控計(jì)算機(jī)通過訪問各功能模塊的地址,發(fā)送控制指令字符串實(shí)現(xiàn)相應(yīng)的控制功能。采用RS-232/RS-485轉(zhuǎn)換器,可以通過將主控計(jì)算機(jī)的RS-232電平信號(hào)轉(zhuǎn)換成RS-485總線標(biāo)準(zhǔn)信號(hào),從而實(shí)現(xiàn)對(duì)各功能模塊的控制。高壓電源的控制原理如圖2所示。高壓電源遠(yuǎn)程控制系統(tǒng)中采用的模塊分別介紹如下:
數(shù)字量輸入輸出模塊ADAM4050:該模塊具有7路數(shù)字量輸入通道和8路數(shù)字量輸出通道。其數(shù)字量輸入信號(hào)為TTL電平或繼電器節(jié)點(diǎn),數(shù)字量輸出為集電極開路輸出,可驅(qū)動(dòng)微型繼電器。通過高壓電源內(nèi)部的控制接口驅(qū)動(dòng)電路部分,實(shí)現(xiàn)對(duì)高壓電源的開關(guān)機(jī)操作和運(yùn)行狀態(tài)獲取。
模擬量輸出模塊ADAM4024:該模塊可輸出4路模擬量,分辨率為12位。具有電流輸出和電壓輸出方式,采用電壓輸出方式時(shí)的輸出范圍是±10V,其輸出的上升斜率可以通過編程調(diào)節(jié)。該模塊的一路模擬量輸出作為高壓電源遠(yuǎn)程控制調(diào)節(jié)輸出的電壓基準(zhǔn)。
模擬量輸入模塊ADAM4017:該模塊具有6路差分信號(hào)輸入通道和2路單端信號(hào)輸入通道,信號(hào)輸入模式為電流信號(hào)和電壓信號(hào),其電壓信號(hào)的輸入范圍是±1V、±5V和±10V。其兩路差分信號(hào)輸入端分別采集高壓電壓的輸出電壓值和負(fù)載電流值。
隔離RS-232/RS-485轉(zhuǎn)換器ADAM4520:實(shí)現(xiàn)RS-232電平信號(hào)到RS-485總線信號(hào)的轉(zhuǎn)換,隔離電壓為3000VDC。主控計(jì)算機(jī)以RS-485總線協(xié)議實(shí)現(xiàn)與各功能模塊的控制通信。
用VisualBasic6.0集成開發(fā)環(huán)境開發(fā)高壓電源的控制軟件。其控制功能包括:高壓電源的開機(jī)、關(guān)機(jī)和故障復(fù)位;實(shí)時(shí)獲取電源運(yùn)行狀態(tài);調(diào)節(jié)輸出電壓值和輸出電壓值的實(shí)時(shí)測(cè)量及通信端口檢測(cè)等。通過在控制軟件中設(shè)計(jì)特殊的定時(shí)器,主控計(jì)算機(jī)實(shí)時(shí)獲取電源的運(yùn)行狀態(tài)和輸出高壓值。
[align=center]
圖2. 高壓電源的控制原理圖[/align]
4 通信軟件設(shè)計(jì)
主控計(jì)算機(jī)的控制軟件主要包括主要包含通信模塊、控制功能模塊、數(shù)據(jù)顯示與處理模塊。其中控制功能模塊實(shí)現(xiàn)對(duì)高壓電源的遠(yuǎn)程開機(jī)、關(guān)機(jī)、故障復(fù)位、輸出電壓調(diào)節(jié)和電源運(yùn)行狀態(tài)顯示等功能。通過通信控制軟件實(shí)現(xiàn)與各功能模塊的數(shù)據(jù)通信。當(dāng)計(jì)算機(jī)端發(fā)送數(shù)據(jù)給高壓電源時(shí),安裝在電源內(nèi)部的相應(yīng)的功能模塊會(huì)返回對(duì)應(yīng)的指令符,將執(zhí)行結(jié)果顯示在操作界面上。每一個(gè)控制指令指令中包含的地址和控制數(shù)據(jù)是以字符串的方式傳輸?shù)较鄳?yīng)的控制模塊,各模塊根據(jù)主控計(jì)算機(jī)發(fā)送的模塊地址和指令相應(yīng)的操作。
VB6.0提供了許多供用戶選擇的控件,其中MSComm32.OCX是用于串行通信的控件。MSComm通信控件具有豐富的用于串口通信的屬性及事件,可以創(chuàng)建全雙工、事件驅(qū)動(dòng)、高效實(shí)用的通信程序。
Microsoft Communications Control(以下簡(jiǎn)稱MSComm)是Microsoft公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法??梢杂盟鼊?chuàng)建全雙工、事件驅(qū)動(dòng)、高效實(shí)用的通信程序。具體的來(lái)說,它提供了兩種處理通信的方法:一是事件驅(qū)動(dòng)(Event-driven)方法,一是查詢法。
事件驅(qū)動(dòng)方法,事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在串口接收到或發(fā)送完指定數(shù)量的數(shù)據(jù)時(shí),或當(dāng)狀態(tài)發(fā)生改變時(shí),MSComm控件都觸發(fā)OnComm事件。OnComm 事件還可以檢查和處理通訊錯(cuò)誤。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。每個(gè)MSComm 控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問多個(gè)串行端口,必須使用多個(gè) MSComm 控件。
查詢方法,查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過查詢MSComm 控件的某些屬性,如CommEvent 屬性和InBufferCount屬性的值來(lái)檢測(cè)事件和通信錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。
以上兩種通信方式都可以達(dá)到數(shù)據(jù)發(fā)送和接收的目的,至于使用什么方式,必須根據(jù)實(shí)際的系統(tǒng)環(huán)境而定。對(duì)于高壓電源的控制通信軟件采用查詢法來(lái)設(shè)計(jì)。通信子程序的功能是將主控計(jì)算機(jī)發(fā)送的命令字符串傳輸?shù)絉S-485總線上,不同的控制模塊接收命令字符串,只有與命令字中所包含的地址信息相同的模塊才執(zhí)行相應(yīng)的控制功能并返回執(zhí)行結(jié)果的字符串,通信軟件子程序清單如下:
Private Sub sendadv(Outstring, n)
MSComm1.CommPort = Comm_Port ’選擇RS232通信端口
MSComm1.Settings = "9600,N,8,1" ’設(shè)置波特率、檢驗(yàn)位、數(shù)據(jù)位、停止位
MSComm1.InputLen = 512 ’設(shè)置緩沖區(qū)大小
MSComm1.PortOpen = True ’打開串行口
MSComm1.RThreshold = n
MSComm1.Output = Outstring + Chr(13) ’發(fā)送以回車符結(jié)束標(biāo)志的字符串
Do Until MSComm1.InBufferCount > 0
DoEvents
Error_Flag = Error_Flag + 1
If Error_Flag > 1000 Then
Error_info = "發(fā)送控制指令失敗!"
ok = MsgBox(Error_info, vbOKOnly + vbExclamation)
GoTo Return1
End If
Loop
Instring = MSComm1.Input
… …
Return1:
MSComm1.PortOpen = False
End Sub
5 模塊初始化
ADAM-4000系列模塊都有相應(yīng)的指令集以便控制軟件實(shí)現(xiàn)相應(yīng)的控制功能,各模塊的指令字是ASCII字符的形式??刂栖浖砸?guī)定的指令格式將指令發(fā)送到相應(yīng)的模塊,就可以實(shí)現(xiàn)相應(yīng)的控制功能。在控制軟件中,首先對(duì)各功能模塊進(jìn)行初始化,包括對(duì)各模塊的地址、波特率、輸入輸出模式和模塊類型等參數(shù)進(jìn)行設(shè)置。對(duì)模塊進(jìn)行設(shè)置的指令以字符串形式發(fā)送出去,以回車符為結(jié)束標(biāo)志。在控制軟件啟動(dòng)時(shí)對(duì)各模塊分別初始化如下:
… …
Outstring = "%0101400600" ’設(shè)置4050的地址為01H,I/O模塊,波特率為9600。
n = Len(Outstring)
Call sendadv(Outstring, n) ’調(diào)用通信子程序
Outstring = "%0202000603" ’設(shè)置4024的地址為02H,波特率為9600,輸出模擬量上升斜率。
n = Len(Outstring)
Call sendadv(Outstring, n)
Outstring = "$027C0R32" ’設(shè)置4024的0號(hào)通道的電壓輸出范圍是 -10V-+10V。
n = Len(Outstring)
Call sendadv(Outstring, n)
Outstring = "%0303080600" ’設(shè)置4017的地址為03H,模擬量輸入范圍是±10V,波特率為9600。
n = Len(Outstring)
Call sendadv(Outstring, n)
… …
6 結(jié)論
基于分布式模塊的直流高壓電源的遠(yuǎn)程控制系統(tǒng),具有高分辨率的數(shù)模轉(zhuǎn)換器和模數(shù)轉(zhuǎn)換器,滿足了對(duì)高壓電源輸出調(diào)節(jié)精度要求。由于采用RS485總線控制方式,系統(tǒng)具有較強(qiáng)的靈活性和可擴(kuò)充性;由于采用隔離通訊控制方式,系統(tǒng)的安全性和可靠性得到提高。通過高壓電源遠(yuǎn)程控制的實(shí)現(xiàn),減少了實(shí)驗(yàn)人員直接在實(shí)驗(yàn)場(chǎng)地調(diào)節(jié)高壓電源輸出的操作,使實(shí)驗(yàn)人員通過主控計(jì)算機(jī)就可以了解高壓電源的運(yùn)行狀態(tài)及輸出高壓值。經(jīng)過反復(fù)的調(diào)試和可靠性測(cè)試,達(dá)到了電源遠(yuǎn)程控制的要求。本文作者創(chuàng)新點(diǎn)是利用分布式模塊實(shí)現(xiàn)高壓直流電源的高精度遠(yuǎn)程控制,保證了物理實(shí)驗(yàn)人員地操作安全,在工程實(shí)踐中具有很好的推廣價(jià)值。
參考文獻(xiàn):
[1]范逸之, 陳立元. Visual Basic與RS-232串行通信控制[M]. 北京:清華大學(xué)出版社, 2002.
[2]毛曉波.基于RS-485的分布式溫度采集系統(tǒng)[J]. 微計(jì)算機(jī)信息, 2005, 9-1: 101-103
[3]B & B Electronics. RS-422 and RS-485 Application Note,1997
[4]石東海. 單片機(jī)數(shù)據(jù)通信技術(shù)從入門到精通[M]. 西安:西安電子科技大學(xué)出版社, 2002.
[5]ADAM 4000 Data Acquisition User’s Manual, http://www.advantech.com.cn/