技術頻道

      基于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一区二区三区浪潮| 久久精品无码一区二区app| 日本韩国黄色一区二区三区| 国产一区二区三区小向美奈子| 精品一区二区三区| 无码aⅴ精品一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲国产老鸭窝一区二区三区| 香蕉久久av一区二区三区| 无码国产精品一区二区免费16 | 精品少妇ay一区二区三区 | 中文字幕一区二区在线播放| 亚洲人AV永久一区二区三区久久| 日韩精品无码Av一区二区| 一区二区三区四区在线视频| 亚洲高清成人一区二区三区| 精品国产亚洲一区二区在线观看| 一区二区免费电影| 久久无码一区二区三区少妇| 久久99国产精品一区二区| 国产内射在线激情一区| 亚洲国产韩国一区二区| 亚洲日韩AV一区二区三区四区 | 久久无码人妻精品一区二区三区| 福利视频一区二区牛牛| 99精品国产高清一区二区三区 | 国产精品亚洲不卡一区二区三区 |