技術頻道

      基于MPC07運動控制卡的步進電機控制系統研究

      0 引言

      隨著機電一體化的不斷發展,現代工業中運動控制系統也隨之更新換代,從PLC、單片機、運動控制卡到專業的運動控制單元,控制方法越來越先進,控制策略越來越多,并不斷誕生出一代復雜而柔性的設備和機器。
      MPC07運動控制卡是基于PC機PCI總線的步進電機或數字式伺服電機的上位控制單元,它與PC機構成主從式控制結構, PC機負責人機交互界面的管理和控制系統的實時監控等方面的工作,MPC07卡完成運動控制的各種細節,譬如每個軸的運動依靠輸出脈沖和方向信號、在運動過程中能夠自動升降速的處理、以及實現回原點起保護作用的限位開關信號等。每塊MPC07卡可控制4軸步進電機或數字式伺服電機,并支持多卡共用以實現多于4個運動軸的控制。該卡是基于FPGA設計,能夠提供各種運動控制功能。
      用戶可根據控制系統的要求編制人機界面,并調用MPC07運動函數庫中的指令函數,就可以開發出滿足要求而且成本低廉的多軸運動控制系統。

      1 MPC07運動控制卡的原理

      MPC07配備了功能強大、內容豐富的Windows驅動程序、DLL函數庫。MPC07在插補算法和運動函數的執行效率方面采用了更有效的方法,提高了插補精度、插補速度和實時性。MPC07運動函數庫用于二次開發,用戶用VisualBasic或VC + +支持Windows標準32位動態鏈接庫(DLL)調用的開發工具編制所需的用戶界面程序,并把它與MPC07運動庫鏈接起來,就可以開發出自己的多軸運動控制系統,例如:數控系統、檢測設備、自動生產線等。MPC07的運動函數庫能夠完成與運動控制有關的復雜細節:升降速計算、行程控制、多軸插補等,這樣就可以大大縮短控制系統的開發周期。
      MPC07控制卡的運動控制功能主要取決于運動函數庫。運動函數庫為單軸及多軸的步進或伺服控制提供了許多運動函數:單軸運動、多軸獨立運動、多軸插補運動等等。
      另外,為了配合運動控制系統的開發,還提供了間隙補償功能。圖1為MPC07控制卡在三軸步進控制系統中的應用。

      2 運動控制系統工作過程

      利用MPC07的動態鏈接庫(DLL ) ,開發者可以很快開發出Windows平臺下的運動控制系統。MPC07動態鏈接庫是標準的Windows 32位動態鏈接庫,選用的開發工具應支持Windows標準的32位DLL調用。
      首先進行程序初始化,設置運動參數以及板卡參數,運動參數有各種運動速度、加/減速、升降速類型等,板卡參數有卡的數量、各卡上的軸數等。如果硬件設置錯誤,軟件在運行時發生錯誤,則調用失敗,需重新設置。
      步進電機的直線運動:獨立運動和插補運動。
      獨立運動指各控制軸的運動之間沒有聯動關系,可以是單軸運動,也可以是多軸同時按各自的速度運動。點位運動、連續運動和回原點運動都屬于獨立運動。
      插補運動是指兩軸或三軸按照一定的算法進行聯動,被控軸同時啟動,并同時到達目標位置。插補運動以矢量速度運行,矢量速度分為常矢量速度和梯形矢量速度。多軸插補運動(圖2)只有線性運動,它們的運動速度由矢量速度決定,各軸的速度為矢量速度在各軸上的分量。


      下面一段代碼是使兩軸以常速度作直線插補:
      set_vector conspeed (2000) 設置矢量常速度為2000個脈沖;
      con2line2 (1, 2000, 2, 2500) 軸l移動2000個脈沖,軸2移動2500個脈沖。
      下面一段代碼是使兩軸以梯形速度作直線插補:
      set_vector p rofile (500, 2000, l000)設置矢量梯形速度:低速為500個脈沖,高速為2000個脈沖,加速度為1000個脈沖;
      fast_line2 (1, 2000, 2, 4000)軸I移動2000個脈沖,軸2移動4000個脈沖。

      3 程序設計

      下面利用VB編制圖1三軸電機的運動,運動參數包括軸號、初速度、最高速度、加速度和移動距離等,使得三軸能夠連續運動、回原點,并能夠讀取當前軸號、位置和速度。圖3為用VB編制的三軸運動功能框圖。


      部分程序如下:
      Op tion Exp licit
      Dim AxesNum As Long軸號
      Dim lowspeed AsDouble初速度
      Dim highspeed AsDouble最高速度
      Dim Accel AsDouble加速度
      Dim DisAs Long移動距離
      ′*
      ********************************************
      該函數對板卡進行設置,可在窗體加載時調用:
      Private Function SetBoard ( ) As Integer
      Dim Rtn As Integer
      Rtn = auto_set( ) ′對板卡進行自動設置
      If Rtn < = 0 Then ′若自動設置錯誤則返回0
      SetBoard = - 1
      Exit Function
      End If
      Rtn = init_board
      If Rtn < 0 Then
      SetBoard = - 2
      Exit Function
      End If
      SetBoard = 0
      End Function
      ′*
      ********************************************
      ′讀取用戶設置的運動參數:
      Private Sub GetParam ( )
      AxesNum =Val( txtAxesNum. Text)
      lowspeed =Val( txtLowSpeed. Text)
      highspeed =Val( txtHighSpeed. Text) ′
      Accel =Val( txtAccel. Text)
      Dis =Val ( txtDis. Text) ′
      set_maxspeed AxesNum, highspeed
      set_conspeed AxesNum, lowspeed ′設置常速運動參數
      set_p rofile AxesNum, lowspeed, highspeed, Accel ′設置梯形速度運動參數
      End Sub
      讀取并顯示狀態(當前的位置和速度)
      Private Sub timGetdata_Timer( )
      Dim posAs Long
      Dim speed AsDouble
      get_abs_posAxesNum, pos ′讀取位置
      labPos. Cap tion = pos ′顯示位置
      speed = get_rate (AxesNum) ′讀取速度
      labSpeed. Cap tion = speed ′顯示速度
      End Sub

      4 結束語

      介紹了MPC07運動控制卡的工作原理及其應用,在VB環境下三軸步進電機的運動,當然,運動控制卡的運動函數庫還能夠完成與運動控制有關的復雜細節,比如升降速直線插補,梯形速度直線插補等,這樣就能夠實現更完善的運動控制系統。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 亚洲欧美国产国产一区二区三区 | 国产精品一区二区毛卡片| 亚欧免费视频一区二区三区| AV怡红院一区二区三区| 国产精品成人免费一区二区| 日本一区二区三区爆乳| 亚洲综合无码一区二区| 中文字幕在线精品视频入口一区| 合区精品久久久中文字幕一区| 精品欧洲AV无码一区二区男男| 国产一区二区精品久久| 一本AV高清一区二区三区| 亚洲片一区二区三区| 视频精品一区二区三区| 国产亚洲综合精品一区二区三区| 一区二区三区精密机械| 99久久精品日本一区二区免费| 国产精品毛片一区二区三区| 亚洲AV午夜福利精品一区二区| 精品一区二区在线观看| 精品一区二区在线观看| 久久久精品人妻一区二区三区 | 国产一区二区精品久久91| 中文字幕av人妻少妇一区二区| 亚洲欧美成人一区二区三区| 无码人妻精品一区二区三区99性| 一区二区三区国产精品 | 久久久精品日本一区二区三区| 久久中文字幕无码一区二区 | 丰满岳妇乱一区二区三区| 国产精品亚洲一区二区三区久久 | 久久一区不卡中文字幕| 国产精品丝袜一区二区三区 | 精品人妻无码一区二区三区蜜桃一 | 国产av一区二区三区日韩| 精品一区二区三区东京热| 亚洲欧美日韩一区二区三区在线| 日本精品一区二区三区视频| 日本在线视频一区| 中文字幕无码一区二区免费| 久久久av波多野一区二区|