伺服電機廣泛用于各類工業(yè)傳動裝置中,對伺服電機運行參數(shù)進行監(jiān)控檢測是控制系統(tǒng)中必要的環(huán)節(jié)中,特別是在多臺電機協(xié)同工作的系統(tǒng)中。本文以三軸交流伺服傳動系統(tǒng)為例,闡述如何用VC++設(shè)計伺服驅(qū)動系統(tǒng)上位機監(jiān)控軟件,并通過串行通信口與交流伺服驅(qū)動器進行數(shù)據(jù)交換。
1 系統(tǒng)基本組成
交流伺服電機驅(qū)動器由于其應(yīng)用簡便和性能可靠,已廣泛的應(yīng)用在工業(yè)位置傳動裝置中。市場上新型的交流伺服電機驅(qū)動器都具有符合RS485協(xié)議的串行通信接口,計算機可利用這一接口電路與驅(qū)動器之間實現(xiàn)串行通信,向驅(qū)動器發(fā)出相應(yīng)的位置運行指令和速度運行指令,控制伺服電機的運行,并及時反饋電機的運行數(shù)據(jù),供計算機分析。由于這種方法控制的穩(wěn)定性好、精度高、傳輸距離遠、可雙向交流控制信息、線路簡單、很有發(fā)展前景。采用計算機與多臺交流伺服電機驅(qū)動器構(gòu)成串行控制網(wǎng)絡(luò)圖1所示。
網(wǎng)絡(luò)中計算機是主機,而各驅(qū)動器為分支從機。在電機驅(qū)動器上各有一個旋轉(zhuǎn)開關(guān)。如圖1中分別為ID1,ID2,ID3。每個開關(guān)一般有01H~0FH共16個位置,用以確定唯一的驅(qū)動器識編碼。計算機以廣播方式發(fā)出控制指令,由于識別碼唯一,每次只有一臺驅(qū)動器可以有效地收到計算機發(fā)出的指令。相反,當(dāng)各驅(qū)動器信息反饋給計算機時,識別碼是唯一的,因此計算機不會出現(xiàn)誤判。
三維運動系統(tǒng)工作原理為:伺服電機驅(qū)動器在計算機控制下,通過絲杠帶動三維工作臺X,Y,Z軸作三軸聯(lián)動運行,將工件固定在X,Y軸上,雕刻工具(激光)固定在Z軸上。從而形成空間軌跡曲線,從而雕刻出設(shè)計好的模型。
2 系統(tǒng)上位機的人機界面設(shè)計
在軟件編程過程中,人機界面(HMI)的設(shè)計非常重要,它將直接與操作員產(chǎn)生信息交流,友好的人機界面要求真實再現(xiàn)控制設(shè)備的狀態(tài)以及準(zhǔn)確地采集所需參數(shù)的數(shù)據(jù),這主要依靠VC++的控件組合及原代碼完成。整個人機界面包括主畫面、參數(shù)設(shè)置畫面、歷史曲線畫面、狀態(tài)測試畫面、報警畫面,各畫面間可以相互切換。當(dāng)然也可根據(jù)用戶習(xí)慣編輯不同的人機界面。
主畫面主要有三軸聯(lián)動圖像雕刻控件、參數(shù)設(shè)置控件、歷史曲線控件、狀態(tài)測試控件、報警控件、圖像重復(fù)雕刻控件、圖像雕刻暫停控件、圖像雕刻停止控件、程序進程退出控件及客戶區(qū)實時圖像雕刻顯示曲線。主畫面為監(jiān)控系統(tǒng)的窗口,基本上所有操作員需要了解的數(shù)據(jù)都集中在這里,其畫面的友好程度及功能完整性直接影響人機界面成功與否。
參數(shù)設(shè)置畫面集中了所有需要修改的參數(shù),它包括導(dǎo)程設(shè)置、運行速度、雕刻范圍、分解步長、最小點距、坐標(biāo)原點、位置控制PID參數(shù)、正反轉(zhuǎn)間隙誤差補償、步序、分步時間、滾珠絲杠螺距長度誤差補償、出光延時等。該畫面功能多,操作較為復(fù)雜。為了限制操作員的訪問權(quán)限,設(shè)置了模態(tài)口令對話框,主要是確保工藝的保密性,防止不必要的誤操作,口令可以在輸入正確口令后修改。
為方便操作者記錄原始數(shù)據(jù),每天雕刻的圖像都存放在當(dāng)天的數(shù)據(jù)庫里,要查看哪天的雕刻記錄,只要打開當(dāng)天的數(shù)據(jù)庫就可以畫出當(dāng)天的歷史曲線畫面。
[IMG=圖1 三維交流伺服驅(qū)動串口網(wǎng)絡(luò)監(jiān)控檢測系統(tǒng)結(jié)構(gòu)圖]/uploadpic/THESIS/2007/11/2007111609003578911J.jpg[/IMG]
圖1 三維交流伺服驅(qū)動串口網(wǎng)絡(luò)監(jiān)控檢測系統(tǒng)結(jié)構(gòu)圖
[IMG=表1 通信功能一覽表]/uploadpic/THESIS/2007/11/20071116090325955347.jpg[/IMG]
表1 通信功能一覽表
報警畫面顯示機電設(shè)備的報警信息,一旦出現(xiàn)異常情況,報警畫面中顯示報警文字和指示燈信息,同時連接在上位機的音箱發(fā)出聲音或?qū)缶畔鬟f給報警鈴。提醒操作員及時采取措施處理故障。
狀態(tài)測試畫面能顯示出三運動軸的運動狀態(tài),可觀察到三運動軸的是否回到坐標(biāo)原點的信息以及單軸正反轉(zhuǎn)運動狀態(tài)。通過該畫面,可以檢測X,Y,Z軸到位開關(guān)是否處于正常的工作狀態(tài),每軸的旋轉(zhuǎn)方向是否與規(guī)定一致,確保在雕刻圖像時電機按正確的指令運行,達到要求的空間運行軌跡。
3 上位機與伺服驅(qū)動器間的通信設(shè)計
現(xiàn)在工業(yè)用伺服驅(qū)動器通常都配置了RS485通信接口,利用該接口通過編制相應(yīng)的驅(qū)動程序即可以實現(xiàn)上位機與伺服驅(qū)動器的信息交互。
3.1 RS485串行通信
工業(yè)RS485通信采用2線雙絞傳輸方式,即數(shù)據(jù)D+和數(shù)據(jù)D-,這種數(shù)據(jù)差動傳輸方式可以有效地消除干擾的影響。另外,RS485通信為1:N方式,1臺主控機(上位機)可級連多達16臺被控機(伺服驅(qū)動器)。
3.2 RS485通信規(guī)則
采用選擇/查詢方式,被控機常處于等待主機選擇或查詢狀態(tài)。伺服驅(qū)動器在待機狀態(tài)時,符合編號的被控機接收到主機的要求幀,判斷為正常接收信號后,對要求幀處理,并返回肯定應(yīng)達幀,否則返回否定應(yīng)達幀。
3.3 通信功能
上位機與伺服驅(qū)動器之間進行通信主要完成如表1所示的功能。
3.4 通信連接
主控機側(cè):RS232/RS485轉(zhuǎn)換接口。
被控機側(cè):RS485通信口。
在主控機和被控機之間用2不著線雙絞屏蔽電纜連接,末端被控機加終端電阻。
3.5 通信軟件的開發(fā)
①初始化串行通信口。通過計算機串口進行通信之前,必須根據(jù)監(jiān)控設(shè)備的有關(guān)通信參數(shù),約定雙方的通信方式,包括波特率的設(shè)置、奇偶位校驗及停止位的設(shè)立。確定數(shù)據(jù)傳輸幀格式,確定UART操作方式,逐個對線路控制寄存器和MODEM寄存器寫入操作。
②查詢發(fā)送流程。只需CPU檢測到UART發(fā)送器保持寄存器為空,即向UART輸出一個字符,發(fā)送方首先輸出RTS和DTR有效,檢測MODEM寄存器,只有收到DEC輸入的CTS、DSR有效,CPU才向UART輸出一發(fā)送字符。
③查詢接收流程。只需CPU檢測到UART接收器數(shù)據(jù)準(zhǔn)備就緒,既可從接收器數(shù)據(jù)寄存器中讀取一字符,接收方首先輸出終端就緒有效(DTR=1),然后檢測MODEM狀態(tài)寄存器,只有DSR=1,CPU才接收一字符。
下面一段程序是采用VC++編程實現(xiàn)在Win98環(huán)境下讀取規(guī)定數(shù)目的全部數(shù)據(jù)代碼:
......
COMMTIMEOUTS timeOver;
memset (&timeOver, 0, sizeof (timeOver));
DWORD timeMultiplier, timeConstant;
timeOver.ReadTotalTimeoutMultiplier=
timeMultiplier;
timeOver.ReadTotalTimeoutConstant=
timeConstant;
SetCommTimeouts (hComport, &timeOver);
......
ReadFile (hComport, inbuffer, nWantRead, &nRealRead, NULL)
......
COMMTIMEOUTS結(jié)構(gòu)用于設(shè)置超時,指定讀寫函數(shù)的等待時間。
在ReadFile( )函數(shù)中hComport為待讀串口句柄;inBuffer為輸入緩沖區(qū)大?。籲WantRead為每次調(diào)用ReadFile( )時,函數(shù)試圖讀出的字節(jié)數(shù);nRealRead為實際讀出的字節(jié)數(shù);最后一個參數(shù)值NULL代表ReadFile( )將采用同步文件讀寫方式。
通過這段代碼,應(yīng)用程序中的某一線程定時地查詢串口的接收緩沖區(qū),如果緩沖區(qū)有數(shù)據(jù),就讀取數(shù)據(jù);若緩沖區(qū)中沒有數(shù)據(jù),該線程繼續(xù)執(zhí)行。
3.6 通信實驗
將上位計算機和伺服驅(qū)動器通過RS485連接,并設(shè)置好伺服驅(qū)動器內(nèi)01H~0FH的單元定義,啟動應(yīng)用程序運行,在屬性設(shè)置窗口中輸入通信口的參數(shù),實驗驗證如下:
頻率設(shè)定:在送入框中設(shè)置頻率,通過對比伺服驅(qū)動器顯示面板的讀數(shù),證明送入正確性。
頻率讀出:置伺服驅(qū)動器為鍵盤操作模式,通過上下鍵選定頻率,在窗口的讀出框中顯示頻率與設(shè)定一致,證明讀出正確。
4 結(jié)論
本例已成功地應(yīng)用于三維激光內(nèi)雕機伺服控制系統(tǒng)中,控制精度高,操作方便,可靠性高,具有良好的性能價格比,對用不同的交流伺服電機位置驅(qū)動的三維控制系統(tǒng)的檢測可參考本設(shè)計進行。
第二屆伺服與運動控制論壇論文集
第三屆伺服與運動控制論壇論文集