金德華
(上海鍋爐廠有限公司,上海 200245)
目前,工廠中大量使用定位控制技術(shù),為了定位方便,絕對(duì)值位置定位系統(tǒng)是一種較好的選擇。在采用通用型伺服驅(qū)動(dòng)系統(tǒng)構(gòu)建的絕對(duì)定位系統(tǒng)中,選用的伺服系統(tǒng)必須是帶有絕對(duì)值編碼器。這種編碼器一般采用鋰電池來(lái)保持?jǐn)嚯娭笪恢脭?shù)據(jù)的儲(chǔ)存。在實(shí)際使用中,這種方式存在3 個(gè)問(wèn)題:①鋰電池壽命有限,2 年左右需要調(diào)換一次,對(duì)于維護(hù)力量不足的用戶,極易錯(cuò)過(guò)調(diào)換時(shí)機(jī)導(dǎo)致位置丟失;②在修理中,如果不小心拔下了編碼器電纜,也會(huì)導(dǎo)致位置數(shù)據(jù)丟失;③會(huì)發(fā)生隨機(jī)性的位置丟失現(xiàn)象,某些知名品牌也會(huì)發(fā)生這種現(xiàn)象。所以在實(shí)際應(yīng)用中,需要一種可靠實(shí)用的定位控制方案來(lái)解決這些問(wèn)題。
針對(duì)上述問(wèn)題,構(gòu)建全新的絕對(duì)值位置定位系統(tǒng)技術(shù)方案。
在圖1 中,伺服電機(jī)通過(guò)變速箱帶動(dòng)絲桿旋轉(zhuǎn),驅(qū)動(dòng)工作臺(tái)左右運(yùn)動(dòng);絕對(duì)值編碼器由絲桿通過(guò)變速箱驅(qū)動(dòng)。絕對(duì)編碼器用于確定工作臺(tái)停止時(shí)的當(dāng)前絕對(duì)位置值,伺服電機(jī)根據(jù)絕對(duì)編碼器在工作臺(tái)停止時(shí)測(cè)得的絕對(duì)位置值,作增量定位操作。
圖2 是絕對(duì)值定位系統(tǒng)的硬件配置與系統(tǒng)框圖,絕對(duì)值編碼器的位置信號(hào)通過(guò)PLC 上的RS485 接口,由PLC 讀入控制系統(tǒng);PLC 發(fā)出定位脈沖信號(hào)給伺服驅(qū)動(dòng)器,實(shí)現(xiàn)定位操作。工作機(jī)理:在伺服電機(jī)停止情況下,PLC 通過(guò)RS485 接口與絕對(duì)值編碼器通信,讀入工作臺(tái)的當(dāng)前位置值;PLC 根據(jù)定位要求(定位位置指令)和當(dāng)前的絕對(duì)位置值,計(jì)算出當(dāng)前位置到目標(biāo)位置的增量位置指令值,然后發(fā)出該指令值到伺服驅(qū)動(dòng)器,工作臺(tái)將移動(dòng)到給定的目標(biāo)位置處。
圖2 控制系統(tǒng)硬件配置與系統(tǒng)框架
絕對(duì)值編碼器選擇無(wú)需電池的真絕對(duì)值編碼器,支持通信接口及其通信協(xié)議。本方案選用GMX60 系列多圈絕對(duì)值編碼器,支持modbus RTU 通信協(xié)議。伺服驅(qū)動(dòng)器和伺服電機(jī)選用普通增量式伺服系統(tǒng),本方案選用臺(tái)達(dá)ASD-A2 系列。根據(jù)絕對(duì)值編碼器的通信要求及臺(tái)達(dá)伺服系統(tǒng)的控制要求,應(yīng)支持RS485 通信和定位脈沖輸出的小型PLC,在本方案中選用三菱FX3U 系列PLC。
為了實(shí)現(xiàn)絕對(duì)位置數(shù)據(jù)讀取,在硬件上,PLC 通過(guò)其485 接口與編碼器的通信接口相連;在軟件上,應(yīng)根據(jù)編碼器的通信協(xié)議編制相應(yīng)的通信程序。
該絕對(duì)值編碼器的通信速率支持9600 bps、192 00 bps、38 400 bps、57 600 bps、115 200 bps,默認(rèn)為19 200 bps。1 個(gè)停止位,1 個(gè)偶校驗(yàn)位,使用Modbus/RTU 通信協(xié)議。讀取主測(cè)量值指令見(jiàn)表1,A=站號(hào),這里設(shè)為1 號(hào)站;B=指令,04H 為讀取測(cè)量值指令;C、D=存儲(chǔ)測(cè)量值寄存器的起始地址,為0001H;E、F=讀取數(shù)據(jù)的長(zhǎng)度,即從起始地址開始的數(shù)據(jù)字的數(shù)量,這里為4個(gè)字的數(shù)據(jù);G、H=CRC 校驗(yàn)碼。
表1 讀取主測(cè)量值指令
當(dāng)編碼器接收上述指令后,回復(fù)下列數(shù)據(jù)串(表2)。a=編碼器地址,與讀取指令中的地址值一致;b=指令代碼值,與讀取指令中的指令代碼值一致;c=編碼器送出的數(shù)據(jù)字節(jié)數(shù),為8 個(gè)字節(jié);d~g=位置數(shù)據(jù)值;h~k=速度數(shù)據(jù)值;i、m=校驗(yàn)碼。在這些數(shù)據(jù)中,需要的數(shù)據(jù)是d~g 構(gòu)成的位置數(shù)據(jù)。
表2 回復(fù)數(shù)據(jù)串
FX3U PLC 支持無(wú)協(xié)議通信,提供了無(wú)協(xié)議通信指令RS 指令。根據(jù)2.1 節(jié)的編碼器通信指令規(guī)則,采用RS 指令實(shí)現(xiàn)PLC對(duì)編碼器位置值得讀取。
在圖3 程序段中,D10~D17 用于存儲(chǔ)讀取位置值的指令代碼,為RS 指令的發(fā)送數(shù)據(jù)區(qū);D100~D112 用于存儲(chǔ)接收的數(shù)據(jù),是RS 指令的接收數(shù)據(jù)區(qū)。當(dāng)運(yùn)動(dòng)停止標(biāo)志M10=1 時(shí),利用M8012 每100 ms 置位一次指令發(fā)送請(qǐng)求M8122,PLC 向編碼器發(fā)出讀取指令,然后M8122 自動(dòng)復(fù)位。當(dāng)接收數(shù)據(jù)完成時(shí),M8123=1,程序段④用于將接收區(qū)的數(shù)據(jù)存入D100~D112,同時(shí)將M8123 復(fù)位。在D100~D112 中,D103~D106 儲(chǔ)存了絕對(duì)編碼器的當(dāng)前位置值。由于原始位置數(shù)據(jù)的存儲(chǔ)格式與三菱PLC 的數(shù)據(jù)寄存器格式有差異,所以必須進(jìn)行轉(zhuǎn)換,其對(duì)應(yīng)關(guān)系見(jiàn)表3。程序段⑤用于完成這種轉(zhuǎn)換,轉(zhuǎn)換后的位置值存儲(chǔ)在數(shù)據(jù)寄存器D120、D121 中。
圖3 位置數(shù)據(jù)讀取程序
表3 對(duì)應(yīng)關(guān)系
該絕對(duì)值編碼器具備任意位置值設(shè)置功能,可將工作臺(tái)移到一參考機(jī)械位置后,將絕對(duì)值編碼器當(dāng)前位置設(shè)置為對(duì)應(yīng)的位置值。
編碼器置位原理如圖4 所示,當(dāng)繼電器觸點(diǎn)K 動(dòng)作時(shí),編碼器位置設(shè)置端SET 從正常狀態(tài)的低電平變?yōu)楦唠娖剑幋a器的當(dāng)前位置值被設(shè)置為一個(gè)固定的預(yù)置值。該預(yù)置值可用編碼器配套的專用設(shè)置軟件進(jìn)行設(shè)置。該預(yù)置值默認(rèn)為0,一般情況下,可將工作臺(tái)移到機(jī)械零位,然后使K 得電,將編碼器當(dāng)前值設(shè)置為0,使實(shí)際位置與編碼器位置同步。
圖4 編碼器置位原理
在圖2 中可以看到,PLC 控制伺服系統(tǒng)的方式是PLC 在其高速輸出端向伺服驅(qū)動(dòng)器發(fā)出定位脈沖指令,伺服電機(jī)(工作臺(tái))的運(yùn)動(dòng)距離取決于PLC 發(fā)出的脈沖數(shù)量,運(yùn)動(dòng)速度取決于脈沖頻率。
在這種控制方式中,對(duì)于伺服驅(qū)動(dòng)器而言,接收到伺服電機(jī)的脈沖編碼器輸出的位置脈沖反饋,構(gòu)成一個(gè)半閉環(huán)的位置控制系統(tǒng)。對(duì)于控制器PLC 而言,PLC 知道當(dāng)前發(fā)出的定位脈沖數(shù),但無(wú)法知道伺服電機(jī)或工作臺(tái)實(shí)際的位置,是一個(gè)開環(huán)位置控制系統(tǒng)。在伺服系統(tǒng)沒(méi)有報(bào)警的情況下,PLC 發(fā)出的定位脈沖數(shù)與工作臺(tái)的運(yùn)動(dòng)位置是嚴(yán)格對(duì)應(yīng)的,也就是說(shuō),PLC 通過(guò)自身發(fā)出的定位脈沖數(shù),從而間接測(cè)得工作臺(tái)當(dāng)前位置。當(dāng)伺服驅(qū)動(dòng)器報(bào)警,或者系統(tǒng)失電,位置立即丟失,需重新回參考點(diǎn)。
基于上述系統(tǒng)構(gòu)成,本系統(tǒng)將實(shí)現(xiàn)工作臺(tái)絕對(duì)位置定位控制和相對(duì)位置定位控制。
絕對(duì)值編碼器的絕對(duì)位置數(shù)據(jù)與工作臺(tái)的實(shí)際位置存在固定的對(duì)應(yīng)關(guān)系,即線性關(guān)系。設(shè)其比例系數(shù)為K1,該系數(shù)與絲桿螺距、安裝編碼器的變速箱速比及編碼器的分辨率有關(guān)。設(shè)編碼器絕對(duì)位置數(shù)據(jù)為N1,則工作臺(tái)位置P=K1×N1。
PLC 發(fā)出一定量的定位脈沖,驅(qū)動(dòng)伺服電機(jī)旋轉(zhuǎn),伺服電機(jī)通過(guò)傳動(dòng)變速箱帶動(dòng)絲桿旋轉(zhuǎn),絲桿再帶動(dòng)工作臺(tái)移動(dòng)。所以,工作臺(tái)移動(dòng)的距離與PLC 定位脈沖數(shù)具有固定的對(duì)應(yīng)關(guān)系。設(shè)其比例系數(shù)為K2,該系數(shù)與絲桿螺距、安裝電機(jī)的變速箱速比及驅(qū)動(dòng)伺服轉(zhuǎn)1 轉(zhuǎn)所需脈沖數(shù)有關(guān)。絲桿螺距和變速箱速比由機(jī)械設(shè)計(jì)決定,而驅(qū)動(dòng)伺服轉(zhuǎn)1 轉(zhuǎn)所需脈沖數(shù)可在伺服驅(qū)動(dòng)器參數(shù)中設(shè)置。設(shè)PLC 定位脈沖數(shù)為位置數(shù)據(jù)為N2,則工作臺(tái)移動(dòng)距離L=K2×N2。
在定位啟動(dòng)之前,工作臺(tái)處于停止?fàn)顟B(tài),PLC 讀取絕對(duì)值編碼器的一個(gè)固定的編碼器絕對(duì)位置數(shù)據(jù)值,通過(guò)運(yùn)算得到工作臺(tái)當(dāng)前位置P0=K1×N1。
(1)絕對(duì)定位方式。設(shè)定位目標(biāo)位置為Px,則需要移動(dòng)距離為L(zhǎng)=Pa-P0。PLC 執(zhí)行相對(duì)定位指令,位置指令脈沖數(shù)=L/K2。
(2)相對(duì)定位方式。設(shè)定位目標(biāo)距離為Px,則需要移動(dòng)距離為L(zhǎng)=Px。PLC 執(zhí)行相對(duì)定位指令,位置指令脈沖數(shù)N2=L/K2。
在程序(圖5)中,帶圈的字符在實(shí)際程序中是數(shù)據(jù)寄存器,這里是為方便敘述。程序段①用于在定位啟動(dòng)時(shí),將絕對(duì)值編碼器的位置數(shù)據(jù)轉(zhuǎn)換成工作臺(tái)絕對(duì)位置值。在定位啟動(dòng)前,工作臺(tái)處于停止?fàn)顟B(tài),系統(tǒng)讀取了絕對(duì)值編碼器的位置數(shù)據(jù)。在啟動(dòng)指令上升沿計(jì)算得到工作臺(tái)當(dāng)前的絕對(duì)位置值。該位置值可用于后續(xù)程序計(jì)算距離目標(biāo)位置的距離。程序段②用于計(jì)算絕對(duì)定位方式時(shí)工作臺(tái)需行走的距離,程序段③用于計(jì)算相對(duì)定位方式時(shí)工作臺(tái)需行走的距離。程序段④用于將工作臺(tái)需行走的距離換算成定位脈沖數(shù)。程序段⑤用于執(zhí)行定位操作。在這里,僅使用了相對(duì)定位指令,有關(guān)位置計(jì)算前面程序已完成。
圖5 定位控制程序
該定位方案應(yīng)用于一臺(tái)兩軸點(diǎn)位控制的專用設(shè)備上,取得了很好使用效果,方案得到了有效驗(yàn)證。該方案具有優(yōu)點(diǎn):①斷電后重啟時(shí),無(wú)需重回原點(diǎn);②伺服系統(tǒng)報(bào)警時(shí),位置不丟失;③無(wú)需換電池,維護(hù)簡(jiǎn)單;④系統(tǒng)可靠性高。