趙志坤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)回歸。
關(guān)鍵詞:伺服電機(jī);運(yùn)動(dòng)控制卡;RS422
中圖分類號(hào):TP273+.5文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.05.006
引用格式:趙志坤,伍春,黃玉清,等.一種基于控制卡和RS422接口電纜的電機(jī)控制系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(5):18-20.
0引言
*基金項(xiàng)目:中國(guó)兵器工業(yè)集團(tuán)項(xiàng)目隨著工控機(jī)的普及,以運(yùn)動(dòng)控制卡為核心的伺服電機(jī)控制系統(tǒng)使用得越來(lái)越多,也必將成為伺服運(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伺服放大器和RS422串行通信功能實(shí)現(xiàn)伺服系統(tǒng)運(yùn)行、停止、斷電后上電高精度回歸原點(diǎn)等功能。
1運(yùn)動(dòng)控制卡的介紹
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)一的用戶編程接口。程序員無(wú)需大規(guī)模修改應(yīng)用碼即可集成任何研華 SoftMotion 運(yùn)動(dòng)控制器[2]。
2系統(tǒng)硬件組成及平臺(tái)搭建
將自制的RS-422串行通信電纜連接安裝有UT713PCI的轉(zhuǎn)換卡的工控機(jī)422接口與伺服驅(qū)動(dòng)器的RJ45接口。伺服放大器使用三菱公司的J3系列產(chǎn)品,伺服電機(jī)選用中等功率的HFSP152型號(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)過(guò)控制柜的保護(hù)地端子接地,控制電路電源L和主電路電源同時(shí)接通或比主電路電源先接通。伺服放大器在主電路電源接通約1~2 s后便可接收伺服開啟信號(hào)(SON),約20 ms后準(zhǔn)備完畢信號(hào)(RD)將變?yōu)镺N,伺服放大器處于可運(yùn)行狀態(tài)。伺服放大器是通過(guò)控制功率晶體管的通斷來(lái)給電機(jī)供電。根據(jù)接線方式和地線的布線方法的不同,有時(shí)可能會(huì)受到伺服放大器晶體管的通斷產(chǎn)生的噪聲的影響。EMC濾波器可有效防止這種情況的發(fā)生并可降低高頻諧波的輻射干擾。
伺服驅(qū)動(dòng)器與伺服電機(jī)通過(guò)電機(jī)編碼器電纜線和動(dòng)力線實(shí)現(xiàn)連接[3]。編碼器電纜線連接伺服驅(qū)動(dòng)器的CN2接口,電機(jī)動(dòng)力線一端為伺服驅(qū)動(dòng)器接口,另一端為電機(jī)電源插頭(MRPWCNS4)。伺服驅(qū)動(dòng)器編碼器電纜線和動(dòng)力線直接與伺服電機(jī)連接,伺服驅(qū)動(dòng)器輸入輸出接口用DC24 V±10% 、300 mA電源供電并由外部提供。伺服驅(qū)動(dòng)器輸入輸出信號(hào)線通過(guò)中轉(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所示?!?/p>
3系統(tǒng)的軟件介紹
基于PC+運(yùn)動(dòng)控制卡數(shù)控系統(tǒng)滿足標(biāo)準(zhǔn)化、柔性化與開放性的要求,使得它的開發(fā)和使用備受青睞。使用VC++6. 0 MFC應(yīng)用程序,利用研華PCI1245L運(yùn)動(dòng)控制卡開發(fā),實(shí)現(xiàn)伺服電機(jī)正反轉(zhuǎn)、原點(diǎn)復(fù)位功能、分度操作、指令操作等功能[5]。其控制系統(tǒng)流程圖如圖2所示。
?。?)打開串口,并進(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<len; 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);
?。?)參數(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);
?。?)意外斷電上電后原點(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)控制卡脈沖置零
4結(jié)論
利用伺服放大器串行通信功能和運(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)位置,若通過(guò)RS422電纜與驅(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)具備很好的高精度定位、斷電記憶功能。
參考文獻(xiàn)
?。?] 姜榮.一種基于運(yùn)動(dòng)控制卡的伺服電機(jī)控制系統(tǒng)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2006,19(3):113-114.
?。?] 研華股份有限公司.PCI-1245L 運(yùn)動(dòng)控制卡使用手冊(cè)[Z].2012.
?。?] 陳宇曉.電容式微機(jī)械靜電伺服加速度計(jì)系統(tǒng)分析[D].成都:電子科技大學(xué),2003.
?。?] 三菱電機(jī).三菱MRJ3驅(qū)動(dòng)器使用手冊(cè)[Z].2014.
?。?] 孫鑫.VC++深入詳解[M]. 北京:電子工業(yè)出版,2012.