趙志坤,伍 春,黃玉清,張 巖,余恒松
(1. 西南科技大學(xué) 信息工程學(xué)院,四川 綿陽(yáng) 621000;2.西南科技大學(xué) 國(guó)防科技學(xué)院,四川 綿陽(yáng) 621000)
一種基于控制卡和RS422接口電纜的電機(jī)控制系統(tǒng)*
趙志坤1,伍 春2,黃玉清1,張 巖2,余恒松2
(1. 西南科技大學(xué) 信息工程學(xué)院,四川 綿陽(yáng) 621000;2.西南科技大學(xué) 國(guó)防科技學(xué)院,四川 綿陽(yáng) 621000)
用Microsoft Visual C++ 6.0編輯界面程序,設(shè)計(jì)一種基于絕對(duì)位置的電機(jī)控制系統(tǒng)。設(shè)置驅(qū)動(dòng)器、運(yùn)動(dòng)控制卡中的參數(shù),調(diào)用運(yùn)動(dòng)控制卡中的庫(kù)函數(shù),使用脈沖串加符號(hào)控制伺服電機(jī)的轉(zhuǎn)速與轉(zhuǎn)向。使用RS422接口電纜配合控制卡保證斷電又上電后伺服電機(jī)的原點(diǎn)回歸。
伺服電機(jī);運(yùn)動(dòng)控制卡;RS422
隨著工控機(jī)的普及,以運(yùn)動(dòng)控制卡為核心的伺服電機(jī)控制系統(tǒng)使用得越來越多,也必將成為伺服運(yùn)動(dòng)控制系統(tǒng)的主要發(fā)展趨勢(shì)[1]。運(yùn)動(dòng)控制卡的主要作用是控制驅(qū)動(dòng)器而不是直接的電機(jī), 一般有脈沖和模擬量?jī)煞N控制方式。脈沖控制即為驅(qū)動(dòng)器工作在位置環(huán),脈沖的多少代表運(yùn)動(dòng)的長(zhǎng)度,頻率表示速度;模擬量控制是驅(qū)動(dòng)器工作在速度環(huán)或者電流環(huán),模擬量的大小對(duì)應(yīng)電機(jī)的編碼器反饋的速度與位置。目前國(guó)內(nèi)通常采用運(yùn)動(dòng)控制卡的回零方式,通常要輔助近接開關(guān)或伺服電機(jī)的Z相信號(hào),并未對(duì)絕對(duì)位置伺服系統(tǒng)斷電記憶功能進(jìn)行很好的利用。本文采用研華PCI1245L運(yùn)動(dòng)控制卡利用三菱J3伺服放大器和RS-422串行通信功能實(shí)現(xiàn)伺服系統(tǒng)運(yùn)行、停止、斷電后上電高精度回歸原點(diǎn)等功能。
PCI-1245L 是 4 軸的 SoftMotion PCI 總線控制器卡,專為各種電機(jī)自動(dòng)化廣泛應(yīng)用設(shè)計(jì)。板卡配有高性能 FPGA,其中包括 SoftMotion 算法,能夠?qū)崿F(xiàn)運(yùn)動(dòng)軌跡和時(shí)間控制,以滿足精確運(yùn)動(dòng)中的同步應(yīng)用需求。PCI-1245L 支持以下 SoftMotion 特性:手輪及 MPG 控制、可編程的加速度和減速度,T&S 形速度曲線及 2 軸線性插補(bǔ)和同步起停等功能。所有研華運(yùn)動(dòng)控制器均采用 Common Motion API 架構(gòu), 采用統(tǒng)一的用戶編程接口。程序員無需大規(guī)模修改應(yīng)用碼即可集成任何研華 SoftMotion 運(yùn)動(dòng)控制器[2]。
將自制的RS-422串行通信電纜連接安裝有UT-713PCI的轉(zhuǎn)換卡的工控機(jī)422接口與伺服驅(qū)動(dòng)器的RJ45接口。伺服放大器使用三菱公司的J3系列產(chǎn)品,伺服電機(jī)選用中等功率的HF-SP152型號(hào)電機(jī),J3系列伺服電機(jī)采用了分辨率為262 144脈沖/轉(zhuǎn)的絕對(duì)位置編碼器,可以進(jìn)行高精度的位置控制,伺服放大器只需安裝電池就可以構(gòu)成絕對(duì)位置檢測(cè)系統(tǒng)從而實(shí)現(xiàn)精確定位。伺服放大器在主電路電源側(cè)接線為三相220 V交流電。接地時(shí)要將伺服電機(jī)的保護(hù)接地(PE)接至伺服放大器的保護(hù)接地(PE)端子上,再將伺服放大器的地線經(jīng)過控制柜的保護(hù)地端子接地,控制電路電源L和主電路電源同時(shí)接通或比主電路電源先接通。伺服放大器在主電路電源接通約1~2 s后便可接收伺服開啟信號(hào)(SON),約20 ms后準(zhǔn)備完畢信號(hào)(RD)將變?yōu)镺N,伺服放大器處于可運(yùn)行狀態(tài)。伺服放大器是通過控制功率晶體管的通斷來給電機(jī)供電。根據(jù)接線方式和地線的布線方法的不同,有時(shí)可能會(huì)受到伺服放大器晶體管的通斷產(chǎn)生的噪聲的影響。EMC濾波器可有效防止這種情況的發(fā)生并可降低高頻諧波的輻射干擾。
伺服驅(qū)動(dòng)器與伺服電機(jī)通過電機(jī)編碼器電纜線和動(dòng)力線實(shí)現(xiàn)連接[3]。編碼器電纜線連接伺服驅(qū)動(dòng)器的CN2接口,電機(jī)動(dòng)力線一端為伺服驅(qū)動(dòng)器接口,另一端為電機(jī)電源插頭(MR-PWCNS4)。伺服驅(qū)動(dòng)器編碼器電纜線和動(dòng)力線直接與伺服電機(jī)連接,伺服驅(qū)動(dòng)器輸入輸出接口用DC24 V±10% 、300 mA電源供電并由外部提供。伺服驅(qū)動(dòng)器輸入輸出信號(hào)線通過中轉(zhuǎn)板ADAM3955實(shí)現(xiàn)與運(yùn)動(dòng)控制卡連接及電源供電,運(yùn)行時(shí),緊急停止信號(hào)(EMG),正轉(zhuǎn)/反轉(zhuǎn)行程末端 (LSP/LSN)必須為ON。伺服開啟與關(guān)閉、運(yùn)動(dòng)停止、異常報(bào)警等都有具體指示燈顯示[4]。伺服電機(jī)及放大器外圍設(shè)備具體連接框圖如圖1所示。
基于PC+運(yùn)動(dòng)控制卡數(shù)控系統(tǒng)滿足標(biāo)準(zhǔn)化、柔性化與開放性的要求,使得它的開發(fā)和使用備受青睞。使用VC++6. 0 MFC應(yīng)用程序,利用研華PCI-1245L運(yùn)動(dòng)控制卡開發(fā),實(shí)現(xiàn)伺服電機(jī)正反轉(zhuǎn)、原點(diǎn)復(fù)位功能、分度操作、指令操作等功能[5]。其控制系統(tǒng)流程圖如圖2所示。
(1)打開串口,并進(jìn)行數(shù)據(jù)處理
if (m_com.GetCommEvent() == 2)
{variant_inp = m_com.GetInput();
//讀緩沖區(qū)
safearray_inp = variant_inp;
len = safearray_inp.GetOneDimSize();
if ( (rxdata[0] == 2) && (rxdata[1] == 48))
{for (k=0; k { safearray_inp.GetElement(&k,rxdata+k); rxArray.Add(rxdata[k]); unsigned char bt=*(char*)(rxdata+k); if (rxdata[k]<58) rxdata[k]=(rxdata[k]-48); else rxdata[k]=(rxdata[k]-55);} plus=(rxdata[3]*pow(16,7)+rxdata[4]*pow(16,6)+rxdata[5]*pow(16,5)+rxdata[6]*pow(16,4)+rxdata[7]*pow(16,3)+rxdata[8]*pow(16,2)+rxdata[9]*pow(16,1)+rxdata[10]*pow(16,0)); } //獲取斷電后上電返回信息 (2)打開板卡,獲取軸號(hào),伺服開 Acm_DevOpen(m_dwDevNum,&m_Devhand); buffLen=sizeof(AxisPerDev); Acm_GetProperty(m_Devhand,FT_DevAxesCount,&AxisPerDev,&buffLen); //獲取板卡號(hào) AxisNumber=AxisPerDev; buffLen=sizeof(slaveDevs); ZeroMemory(slaveDevs,sizeof(slaveDevs)); Acm_GetProperty(m_Devhand,CFG_DevSlaveDevs,slaveDevs,&buffLen); //獲取軸號(hào),支持4軸 Acm_AxOpen(m_Devhand,(USHORT)AxisNumber, &m_Axishand[AxisNumber]); //打開指定軸 Acm_AxSetSvOn(m_Axishand[AxisNum],0); (3)參數(shù)設(shè)置及運(yùn)動(dòng)示例 Acm_SetU32Property(m_Axishand[AxisNumber],CFG_AxPulseOutMode,1); //設(shè)置脈沖輸出方式 Acm_SetU32Property(m_Devhand,CFG_DevEmgLogic,1); //設(shè)置急停電平 Acm_AxMoveRel(m_Axishand[m_CurAxis],1000); Acm_AxGetActualPosition(m_Axishand[m_CurAxis],&CurPos[m_CurAxis]); strTemp.Format("%.2f",CurPos[m_CurAxis]/1000); (4)意外斷電上電后原點(diǎn)復(fù)位 Acm_AxSetCmdPosition(m_Axishand[m_CurAxis],Position); Acm_AxMoveAbs(m_Axishand[m_CurAxis], -plus); Acm_AxSetActualPosition(m_Axishand[m_CurAxis],0); //電機(jī)回歸電氣原點(diǎn)后運(yùn)動(dòng)控制卡脈沖置零 利用伺服放大器串行通信功能和運(yùn)動(dòng)控制卡實(shí)現(xiàn)伺服系統(tǒng)運(yùn)行、停止,斷電后上電所得到反饋位置信息與伺服測(cè)試控制平臺(tái)軟件上的信息一致,當(dāng)打開伺服測(cè)試控制平臺(tái)軟件后會(huì)自動(dòng)檢查電機(jī)是否在原點(diǎn)位置,若通過RS-422電纜與驅(qū)動(dòng)器通信返回信息確認(rèn)電機(jī)不在絕對(duì)位置零點(diǎn),將彈出如圖3所示的執(zhí)行回歸原點(diǎn)提示,原點(diǎn)回歸后的實(shí)際運(yùn)行界面如圖4所示,可觀察到返回的電機(jī)位置信息已處于零點(diǎn)。 此外,使用三菱公司提供的串口調(diào)試軟件也可進(jìn)行輔助實(shí)驗(yàn),利用 MR Configurator串口通信軟件反饋的絕對(duì)位置信息也與伺服測(cè)試控制平臺(tái)軟件一致,MR Configurator串口通信軟件原點(diǎn)回歸后界面如圖5所示,電機(jī)以1 ∶90的總減速比帶動(dòng)直徑210 mm的分度盤時(shí)多次原點(diǎn)回歸實(shí)驗(yàn)反饋接收到的命令脈沖均為0。分度盤轉(zhuǎn)動(dòng)一度將反饋65 320個(gè)絕對(duì)位置脈沖數(shù),執(zhí)行原點(diǎn)回歸時(shí)絕對(duì)位置反饋脈沖數(shù)為13個(gè),即重復(fù)誤差精度經(jīng)換算為0.7″,多次執(zhí)行原點(diǎn)回歸運(yùn)動(dòng)反饋絕對(duì)位置脈沖數(shù),經(jīng)換算重復(fù)誤差精度均小于4″。所以以運(yùn)動(dòng)控制卡和RS422通信電纜為核心的伺服控制系統(tǒng)具備很好的高精度定位、斷電記憶功能。 [1] 姜榮.一種基于運(yùn)動(dòng)控制卡的伺服電機(jī)控制系統(tǒng)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2006,19(3):113-114. [2] 研華股份有限公司.PCI-1245L 運(yùn)動(dòng)控制卡使用手冊(cè)[Z].2012. [3] 陳宇曉.電容式微機(jī)械靜電伺服加速度計(jì)系統(tǒng)分析[D].成都:電子科技大學(xué),2003. [4] 三菱電機(jī).三菱MR-J3驅(qū)動(dòng)器使用手冊(cè)[Z].2014. [5] 孫鑫.VC++深入詳解[M]. 北京:電子工業(yè)出版,2012. 黃玉清(1962-) ,女,碩士,教授,碩士生導(dǎo)師,主要研究方向: 網(wǎng)絡(luò)測(cè)控,圖像處理與機(jī)器視覺等。 A servo motor control system based on the control card and RS422 electric cable Zhao Zhikun1,Wu Chun2,Huang Yuqing1,Zhang Yan2,Yu Hengsong2 (1. School of Information Engineering, Southwest University of Science and Technology,Mianyang 621000, China; 2. School of National Defense Science and Technology,Southwest University of Science and Technology,Mianyang 621000,China) The operation interface is programmed with Microsoft Visual C++ 6.0, and a servo motor control system based on absolute position is designed. Controlling the direction of the servo motor by using the movement function. The servo motor is drived by the parameters of the pulses and the direction signals of the control card. The servo motor can back to the starting point using RS422 electric cable and the control card after power outage. servo motor; control card;RS422 中國(guó)兵器工業(yè)集團(tuán)項(xiàng)目 TP273+.5 A 10.19358/j.issn.1674- 7720.2017.05.006 趙志坤,伍春,黃玉清,等.一種基于控制卡和RS422接口電纜的電機(jī)控制系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(5):18-20. 2016-11-10) 趙志坤(1990-),通信作者,男,碩士,主要研究方向:嵌入式系統(tǒng)開發(fā)。E-mail: 1164693863@ qq.com。 伍春(1978-),男,博士, 副教授, 碩士生導(dǎo)師, 主要研究方向: 認(rèn)知無線電,網(wǎng)絡(luò)化測(cè)控技術(shù)等。4 結(jié)論