1 引言
隨著自動化設(shè)備對控制的高精度、高響應(yīng)性需求的不斷增加,自動化控制技術(shù)不斷提高,精確的高速定位控制得到廣泛應(yīng)用,PLC這一工業(yè)控制產(chǎn)品也從早期的邏輯控制領(lǐng)域不斷擴展到運動控制領(lǐng)域,實現(xiàn)了以往PLC無法完成的運動控制功能。
在運動控制中大多數(shù)采用我們熟悉的數(shù)控系 統(tǒng)或者是計算機運動板卡來完成,雖然作為專門的產(chǎn)品能夠?qū)崿F(xiàn)復(fù)雜的運動軌跡控制,但同時要完成一些邏輯動作的控制就不如PLC靈活方便。臺達DVP20PM系列PLC高速定位、雙軸線性及圓弧插補多功能可編程控制器,結(jié)合了PLC邏輯動作控制和數(shù)控系統(tǒng)運動控制的各自優(yōu)點,在功能上滿足雙軸插補的高速定位需求。
2 臺達運動控制型PLC硬件結(jié)構(gòu)
DVP20PM是臺達運動控制型PLC。DVP20PM通過前后兩個擴展口既可作為PLC主機執(zhí)行也可作為EH2型主機的擴展模塊使用,具有X0-X7、Y0-Y7數(shù)字量輸入輸出各八點,并配置了手搖輪、零點信號、原點信號、極限信號、啟動、停止等各種信號接口滿足應(yīng)用需求。
DVP20PM主機包含64K超大程序容量內(nèi)存(Flash),可支持100段運動程序,脈沖輸出最高可達500KHz,并具備電子原點返回模式,支持PLC順序語言及定位語言(G 碼與M碼),下面先由硬件部分簡單介紹20PM 組成。
2.1 電源
DVP20PM電源規(guī)格參見表1。
表1 電源規(guī)格
2.2 I/O點規(guī)格
參見圖1,DVP20PM提供的數(shù)字量輸入輸出點規(guī)格與臺達通用PLC規(guī)格基本相同,輸入點支持SINK(漏極)和SOURCE(源極)兩種方式,輸出點也有繼電器輸出和晶體管輸出可選。
圖1
需要提到的是其在運動控制中的特殊輸入輸出點,簡述如下:
START0、START1:啟動輸入
STOP0、STOP1:停止輸入
LSP0/LSN0、LSP1/LSN1:右極限輸入/左極限輸入
A0+、A0-、A1+、A1-:手搖輪A相脈波輸入+,-(差動信號輸入)
B0+、B0-、B1+、B1-:手搖輪B相脈波輸入+,-(差動信號輸入)
PG0+、PG0-、PG1+、PG1-:零點訊號輸入+,- (差動信號輸入)
DOG0、DOG1:原點回歸的近點信號輸入或多段運動的啟動信號
CLR0+、CLR0-、CLR1+、CLR1-:清除信號(Servo驅(qū)動器內(nèi)部偏差計數(shù)器清除信號)
FP0+、FP0-、FP1+、FP1-:脈沖輸出端口
RP0+、RP0-、RP1+、RP1-:脈沖輸出端口
(注:0表示第一軸,1表示第二軸,如START0表示啟動第一軸,START1表示啟動第二軸,其他信號依次類推)
從端子分布可以看到,除了常用的極限和啟動停止信號外,配置了過零脈沖PG和手搖輪功能輸入端,手搖輪是機床應(yīng)用中常用而必備功能,而利用過零信號在精確控制場合往往會用到,當(dāng)然更不用說定位控制中都會用到的DOG原點信號。
2.3 配線規(guī)格
一般I/O點配線就不再贅言了,可以關(guān)注一下PLC比較少用到的差分輸入輸出方式,在信號中有一部分是這樣的,一定要注意否則將不能正確完成,參見圖2、圖3。
圖2差分輸入配線示意圖
圖3差分輸出配線示意圖
3 臺達運動控制型PLC軟件結(jié)構(gòu)
3.1 DVP20PM程序結(jié)構(gòu)
由于20PM主機結(jié)合了PLC順序邏輯控制及雙軸插補定位控制的功能,因此在程序架構(gòu)上主要分為O100主程序、Ox運動子程序及Pn子程序等三大類,結(jié)合了基本指令、應(yīng)用指令、運動指令及G Code指令,使程序設(shè)計更多元化,結(jié)構(gòu)更清晰;程序采用PMSOFT軟件進行編輯,參見圖4。
圖4 程序設(shè)計界面
(1)主程序。主程序以O(shè)100作為起始標(biāo)記,M102作為結(jié)束標(biāo)記,是PLC順序控制程序,主要為控制主機動作執(zhí)行,在O100主程序區(qū)域中,可以使用基本指令及應(yīng)用指令,或在程序中啟動Ox0~Ox99運動子程序及調(diào)用Pn子程序。主要提供主控制程序的建立,以及運動子程序的設(shè)定及啟動控制。
(3)運動子程序。Ox0~Ox99運動子程序為運動控制程序,主要為控制20PM系列主機進行X-Y軸雙軸運動之子程序,于Ox0~Ox99運動子程序區(qū)段中,有支持基本指令、應(yīng)用指令、運動指令及G碼指令,并在程序中可規(guī)劃呼叫Pn指針子程序,通過PLC提供的內(nèi)部特D特M進行子程序的控制。主要提供運動子程序的建立,以及運動子程序的運動控制,在架構(gòu)上可算是20PM的運動指令及G碼指令規(guī)劃區(qū)域。
(4) 子程序。這里所說的子程序是指以Pn開頭的一般用子程序,主要是被O100主程序及Ox運動子程序調(diào)用的子程序。如在O100主程序調(diào)用Pn指針,則Pn指針子程序支持基本指令及應(yīng)用指令;若在Ox0 ~ Ox99運動子程序中調(diào)用Pn指針時,則Pn指針子程序區(qū)段可支持基本指令、應(yīng)用指令、運動指令及G碼指令。
3.2 PMSOFT軟件介紹
與臺達PLC的WPLSoft軟件相似,DVP20PM的編程軟件PMSOFT按照IEC61131標(biāo)準(zhǔn)設(shè)計,具有梯形圖和語句表兩種編程方式,且具有G碼匯入、錯誤提示、區(qū)段注釋、裝置注釋、標(biāo)尺、完善的監(jiān)控窗口、運動指令追蹤等便利工具提供給用戶,特別值得一提的是該軟件具有運動軌跡仿真功能,當(dāng)您編輯好程序后可利用此功能對加工軌跡進行模擬演示,參見圖5。
為方便切換階梯窗口,只要點選系統(tǒng)信息列中的樹枝狀對應(yīng)的程序編號,自動切換對應(yīng)的程序編輯窗口,在PMSoft編輯環(huán)境中同時只能有一個階梯圖窗口,這是為了在龐大復(fù)雜程序中找尋程序方便,同時將主程序、運動子程序、一般子程序這三種程序模塊化處理,O100主程序只有一個編輯窗口,Oxn運動程序有100個編輯窗口,Pm子程序有256個編輯窗口,總共有357個窗口,每個窗口未編輯都有10 network。程序編輯由網(wǎng)絡(luò)區(qū)段組成,每個網(wǎng)絡(luò)區(qū)段是由輸入與輸出編輯區(qū)域所組成,在編輯過程中,自動產(chǎn)生邏輯結(jié)構(gòu)正確的階梯圖,使用者無須再做額外補線的動作,網(wǎng)絡(luò)區(qū)段編輯并具有錯誤提示功能。
圖5 梯形圖編程界面
4 運動控制編程
4.1 相關(guān)概念
在談到DVP20PM產(chǎn)品的應(yīng)用之前,我們對以下概念進行一個簡要介紹。
?。?)插補。插補是在組成軌跡的直線段或曲線段的起點和終點之間,按一定的算法進行數(shù)據(jù)點的密化工作,以確定一些中間點。從而為軌跡控制的每一步提供逼近目標(biāo)。
逐點比較法是以四個象限區(qū)域判別為特征,每走一步都要將加工點的瞬時坐標(biāo)與相應(yīng)給定的圖形上的點相比較,判別一下偏差,然后決定下一步的走向。如果加工點走到圖形外面去了,那么下一步就要向圖形里面走;如果加工點已在圖形里面,則下一步就要向圖形外面走,以縮小偏差,這樣就能得到一個接近給定圖形的軌跡,其最大偏差不超過一個脈沖當(dāng)量(一個進給脈沖驅(qū)動下工作臺所走過的距離)。
?。?)直線插補。這個概念一般是用在計算機圖形顯示,或者數(shù)控加工的近似走刀等情況下,以數(shù)控加工為例子:
一個零件的輪廓往往是多種多樣的,有直線,有圓弧,也有可能是任意曲線,樣條線等。數(shù)控機床的刀具往往是不能以曲線的實際輪廓去走刀的,而是近似地以若干條很小的直線去走刀,走刀的方向一般是x和y方向。
插補方式有:直線插補,圓弧插補,拋物線插補,樣條線插補等等。
所謂直線插補就是只能用于實際輪廓是直線的插補方式(如果不是直線,也可以用逼近的方式把曲線用一段段線段去逼近,從而每一段線段就可以用直線插補了).首先假設(shè)在實際輪廓起始點處沿x方向走一小段(一個脈沖當(dāng)量),發(fā)現(xiàn)終點在實際輪廓的下方,則下一條線段沿y方向走一小段,此時如果線段終點還在實際輪廓下方,則繼續(xù)沿y方向走一小段,直到在實際輪廓上方以后,再向x方向走一小段,依次循環(huán)類推.直到到達輪廓終點為止.這樣,實際輪廓就由一段段的折線拼接而成,雖然是折線,但是如果我們每一段走刀線段都非常小(在精度允許范圍內(nèi)),那么此段折線和實際輪廓還是可以近似地看成相同的曲線的--這即是直線插補。
?。?)聯(lián)動與插補。一個點的空間位置需要三個坐標(biāo),決定空間位置需要六個坐標(biāo)。
一個運動控制系統(tǒng)可以控制的坐標(biāo)的個數(shù)稱做該運動控制系統(tǒng)的軸數(shù)。而可以同時控制運動的坐標(biāo)的個數(shù)稱做該運動控制系統(tǒng)可聯(lián)動的軸數(shù)。聯(lián)動各軸的運動軌跡具有一定的函數(shù)關(guān)系,例如直線,園弧,拋物線,正弦曲線。直接計算得出運動軌跡的坐標(biāo)值往往要用到乘除法,高次方