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