怎麼利用PLC對步進電機進行精準定位控制?

三菱PLC和步進電機驅動器的接線圖


怎麼利用PLC對步進電機進行精準定位控制?


步進電機是一種將電脈衝轉化為角位移的執行機構。當步進驅動器接收到一個脈衝信號時就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),其旋轉以固定的角度運行。可以通過控制脈衝個數來控制角位移量以達到準確定位的目的;同時也可以通過控制脈衝頻率來控制電機轉動的速度和加速度而達到調速的目的。步進電機作為一種控制用的特種電機,因其沒有積累誤差(精度為100%)而廣泛應用於各種開環控制。

定位原理及方案

步進電機加減速控制原理

步進電機驅動執行機構從一個位置向另一個位置移動時,要經歷升速、恆速和減速過程。當步進電機的運行頻率低於其本身起動頻率時,可以用運行頻率直接起動並 以此頻率運行,需要停止時,可從運行頻率直接降到零速。

當步進電機運行頻率fb>fa(有載起動時的起動頻率)時,若直接用fb頻率起動會造成步進 電機失步甚至堵轉。同樣在fb頻率下突然停止時,由於慣性作用,步進電機會發生過沖,影響定位精度。如果非常緩慢的升降速,步進電機雖然不會產生失步和過 衝現象,但影響了執行機構的工作效率。

所以對步進電機加減速要保證在不失步和過沖前提下,用最快的速度(或最短的時間)移動到指定位置。

步進電機常用的升降頻控制方法有2種:直線升降頻和指數曲線升降頻。指數曲線法具有較強的跟蹤能力,但當速度變化較大時平衡性差。直線法平穩性好,適用於速度變化較大的快速定位方式。以恆定的加速度升降,規律簡練,用軟件實現比較簡單,本文即採用此方法。

定位方案

要保證系統的定位精度,脈衝當量即步進電機轉一個步距角所移動的距離不能太大,而且步進電機的升降速要緩慢,以防止產生失步或過沖現象。但這兩個因素合在 一起帶來了一個突出問題:定位時間太長,影響執行機構的工作效率。

因此要獲得高的定位速度,同時又要保證定位精度,可以把整個定位過程劃分為兩個階段:粗定位階段和精定位階段。

粗定位階段,採用較大的脈衝當量,如0.1mm/步或1mm/步,甚至更高。

精定位階段,為了保證定位精度,換用較小的脈衝當量, 如0.01mm/步。雖然脈衝當量變小,但由於精定位行程很短(可定為全行程的五十分之一左右),並不會影響到定位速度。為了實現此目的,機械方面可通過 採用不同變速機構實現。

工業機床控制在工業自動化控制中佔有重要位置,定位鑽孔是常用工步。設刀具或工作臺欲從A點移至C點,已知AC=200mm,把AC劃分為AB與BC兩 段,AB=196mm,BC=4mm,AB段為粗定位行程,採用0.1mm/步的脈衝當量依據直線升降頻規律快速移動,BC段為精定位行程,採用 0.01mm/步的脈衝當量,以B點的低頻恆速運動完成精確定位。在粗定位結束進入精定位的同時,PLC自動實現變速機構的更換。

定位程序設計內容梗概

PLC脈衝輸出指令

目前較為先進的PLC不僅具有滿足順序控制要求的基本邏輯指令,而且還提供了豐富的功能指令。Siemens S7-200系列PLC的PLUS指令在Q0.0和Q0.1輸出PTO或PWM高速脈衝,最大輸出頻率為20KHz。脈衝串(PTO)提供方波輸出 (50%佔空比),用戶控制週期和脈衝數。脈衝寬度可調製(PWM)酮能提供連續、變佔空比輸出,用戶控制週期和脈衝寬度。

本文采用PTO的多段管線工作 方式實現粗定位,PTO的單段管線方式實現精定位。

上述例子中,假定電機的起動和結束頻率是2KHz,最大脈衝頻率是10KHz。在粗定位過程中,用200個脈衝完成升頻加速,400個脈衝完成降頻減速。使用PLC的PTO多段管線脈衝輸出時,用下面的公式計算升降頻過程中的脈衝增量值。

給定段的週期增量=(ECT—ICT)/Q

式中:ECT=該段結束週期時間,ICT=該段初始週期時間。利用這個公式,加速部分(第1段)週期增量為2,減速部分(第3段)週期增量為1。因第2段是恆速部分,故週期增量為0。如果PTO的包絡表從VB500開始存放,則表1為上例的包絡表值。

源程序

主程序

LD SM0.1 //首次掃描為1

R Q0.0,1 //復位映像寄存器位

CALL 0 //調用子程序0,初始化粗定位相關參數

LD M0.0 //粗定位完成

R Q0.0,1

CALL 1 //調用子程序1,初始化精定位相關參數

//子程序0,粗定位

LD SM0.0

MOVB 16#A0,SMB67 //設定控制字:允許PTO操作,選擇ms增量,選擇多段操作

MOVW 500,SMW168 //指定包絡表起始地址為V500

MOVB 3,VB500 //設定包絡表段數是3

MOVW 500,VW501 //設定第一段初始週期為500ms

MOVW -2,VD503 //設定第一段週期增量為-2ms

MOVD 200,VD505 //設定第一段脈衝個數為200

MOVW 100,VW509 //設定第二段初始週期為100ms

MOVW 0,VD511 //設定第二段週期增量為0ms

MOVD 1360,VD513 //設定第二段脈衝個數為1360

MOVW 100,VW517 //設定第三段初始週期為100ms

MOVW 1,VD519 //設定第三段週期增量為1ms

MOVD 400,VD521 //設定第三段脈衝個數為400

ATCH 2,19 //定義中斷程序2處理PTO完成中斷

ENI //允許中斷

PLS 0 //啟動PTO操作

子程序1,精定位

LD SM0.0 //首次掃描為1

MOVB 16#8D,SMB67 //允許PTO功能,選擇ms增量,設定脈衝數和週期

MOVW 500,SMW68 //設定精定位週期為500ms

MOVD 400,SMD72 //設定脈衝個數為400

ATCH 3,19 //定義中斷程序3處理PTO完成中斷

ENI //允許中斷

PLS 0 //啟動PTO操作

//中斷程序2

LD SM0.0 //一直為1

= M0.0 //啟動精定位

//中斷程序3

LD SM0.0 //一直為1

= M0.1 //實現其他功能

-------End-------


分享到:


相關文章: