黎一強(qiáng)
(羅定職業(yè)技術(shù)學(xué)院,廣東云浮 527200)
隨著經(jīng)濟(jì)發(fā)展和科技進(jìn)步,企業(yè)為了提高生產(chǎn)效率,采用了大量的自動(dòng)化生產(chǎn)線用于生產(chǎn)。這些自動(dòng)化生產(chǎn)線在生產(chǎn)過(guò)程中用到了許多位置控制,為了提高控制的精度,在自動(dòng)化生產(chǎn)線的位置控制中,往往都是采用PLC發(fā)脈沖控制步進(jìn)電機(jī)或伺服電機(jī)的位移來(lái)實(shí)現(xiàn)的。
這些自動(dòng)化生產(chǎn)線要設(shè)置有急停控制功能[1],用于保證操作人員的人身安全及生產(chǎn)線設(shè)備安全,保障生產(chǎn)線穩(wěn)定運(yùn)行。在生產(chǎn)過(guò)程中當(dāng)遇到緊急情況時(shí),按下急停控制按鈕[2],生產(chǎn)線的運(yùn)動(dòng)部分應(yīng)立即停止,禁止所有的輸出動(dòng)作。當(dāng)故障清除急停恢復(fù)后,希望生產(chǎn)線能按照急停前的工作狀態(tài)繼續(xù)運(yùn)行[3],以提高生產(chǎn)效率。但研究發(fā)現(xiàn)實(shí)際生產(chǎn)中許多采用PLC控制步進(jìn)電機(jī)或伺服電機(jī)驅(qū)動(dòng)的位置控制系統(tǒng),在自動(dòng)化生產(chǎn)線急停恢復(fù)后,都是設(shè)計(jì)先進(jìn)行機(jī)械歸零復(fù)位,然后再次啟動(dòng)從零位開(kāi)始重新工作,這樣就大大降低了生產(chǎn)效率[4],甚至造成原材料的浪費(fèi)。本文就是研究解決該生產(chǎn)問(wèn)題,以提高生產(chǎn)線的生產(chǎn)效率。
步進(jìn)電機(jī)是一種使用數(shù)字脈沖信號(hào)控制轉(zhuǎn)軸進(jìn)行機(jī)械角位移的電機(jī),數(shù)字脈沖的頻率和數(shù)量決定了電機(jī)的轉(zhuǎn)速和轉(zhuǎn)角[5]。自動(dòng)化生產(chǎn)線為了提高生產(chǎn)精度,許多機(jī)械位移都是采用PLC發(fā)脈沖控制步進(jìn)電機(jī)或伺服電機(jī)的拖動(dòng)控制系統(tǒng)。如某生產(chǎn)線要控制1個(gè)機(jī)械手臂在相距4 000 mm的A、B兩點(diǎn)之間進(jìn)行多點(diǎn)精準(zhǔn)定位往復(fù)運(yùn)動(dòng),可采用PLC控制步進(jìn)電機(jī)或伺服電機(jī)構(gòu)成拖動(dòng)系統(tǒng)。步進(jìn)電機(jī)或伺服電機(jī)的運(yùn)動(dòng)位移是由控制的脈沖數(shù)與脈沖當(dāng)量的乘積來(lái)決定的[6],所以要選擇晶體管輸出的PLC。
為了研究位置控制系統(tǒng)的急停控制,選擇FX3U-48MT的PLC作為控制器,該P(yáng)LC的Y0、Y1、Y2為高速脈沖輸出端子,輸出脈沖的最高頻率可達(dá)100 kHz。選用Kinco的三相步進(jìn)電機(jī)3S57Q-04056作為驅(qū)動(dòng)電機(jī),該步進(jìn)電機(jī)配套的驅(qū)動(dòng)器是Kinco 3M458,步進(jìn)電機(jī)的步距角在整步方式下為1.2°,半步方式下為0.6°,在無(wú)細(xì)分的條件下300個(gè)脈沖電機(jī)轉(zhuǎn)一圈,通過(guò)驅(qū)動(dòng)器設(shè)置細(xì)分精度最高可以達(dá)到10 000個(gè)脈沖電機(jī)轉(zhuǎn)一圈。3M458驅(qū)動(dòng)器DIP開(kāi)關(guān)細(xì)分設(shè)置如表1所示。
位置控制系統(tǒng)步進(jìn)電機(jī)的同步輪齒距為5 mm,共12個(gè)齒,當(dāng)步進(jìn)電機(jī)旋轉(zhuǎn)一周時(shí)帶動(dòng)機(jī)械手臂的位移為60 mm,通過(guò)驅(qū)動(dòng)器設(shè)置細(xì)分,當(dāng)10 000個(gè)脈沖步進(jìn)電機(jī)轉(zhuǎn)一圈時(shí),機(jī)械手臂位移的精度最高,脈沖當(dāng)量μ=60 mm/10 000=0.006 mm。在這里,設(shè)置步進(jìn)電機(jī)是1 000步/轉(zhuǎn),脈沖當(dāng)量μ=60 mm/1 000=0.06 mm。
表1 3M458驅(qū)動(dòng)器DIP開(kāi)關(guān)細(xì)分設(shè)置
根據(jù)位置控制系統(tǒng)設(shè)計(jì)急停處理的功能,可得到該系統(tǒng)的I/O分配表如表2、表3所示。
表2 PLC輸入分配表
表3 PLC輸出分配表
根據(jù)PLC的I/O分配表可畫(huà)出PLC的I/O接線圖如圖1所示。
圖1 PLC的I/O接線圖
FX3U-48MT的PLC內(nèi)置三軸的定位控制功能,這個(gè)功能輸出點(diǎn)為Y0、Y1、Y2,常采用脈沖輸出指令PLSY、相對(duì)定位指令DRVI及絕對(duì)定位指令DRVA從這些功能輸出點(diǎn)發(fā)出高速脈沖去驅(qū)動(dòng)步進(jìn)電機(jī)或伺服電機(jī)。為了實(shí)現(xiàn)急停發(fā)生后系統(tǒng)能立即停止運(yùn)動(dòng),保持急停發(fā)生的現(xiàn)有狀態(tài),排除急停故障復(fù)位重新啟動(dòng),系統(tǒng)不用回到初始狀態(tài),能直接從急停前的狀態(tài)繼續(xù)運(yùn)行,以提高生產(chǎn)效率。經(jīng)查閱相關(guān)文獻(xiàn)及實(shí)際生產(chǎn)操作的調(diào)研,發(fā)現(xiàn)PLC控制系統(tǒng)急停處理常用的控制方法有2種,一是采用主控指令MC;二是采用跳轉(zhuǎn)指令CJ[7]。
研究發(fā)現(xiàn)在PLC運(yùn)動(dòng)位置控制系統(tǒng)中,急停處理采用常用編程方法存在著嚴(yán)重的缺陷,許多運(yùn)行控制系統(tǒng)在急停復(fù)位后,不能實(shí)現(xiàn)從急停前的斷點(diǎn)處繼續(xù)運(yùn)行,都是先復(fù)位讓系統(tǒng)回復(fù)到初始狀態(tài),再?gòu)某鯌B(tài)開(kāi)始運(yùn)行,這樣大大降低了生產(chǎn)效率。
3.1.1 PLSY指令位置控制
圖2所示為圖1位置控制系統(tǒng)采用主控指令MC的急停控制梯形圖程序。該程序利用雙字脈沖輸出指令DPLSY,從Y0輸出頻率為5 kHz共30 000個(gè)脈沖控制步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移L=0.06 mm×30 000=1 800 mm。圖2所示為系統(tǒng)工作在急停發(fā)生時(shí)的狀態(tài),急停按鈕SB0被按下,置位M0發(fā)出急停信號(hào),主控開(kāi)關(guān)N0斷開(kāi),MC N0到MCR N0之間程序塊的輸出被停止,Y0處于OFF狀態(tài),也就是說(shuō)當(dāng)急停發(fā)生時(shí)Y0停止脈沖的輸出,Y0的輸出脈沖寄存器D8140的值保持為13 686不變,共輸了13 686個(gè)脈沖,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移L1=0.06 mm×13 686=821.16 mm而停止,急停起到停止運(yùn)行的作用。
圖2 MC控制PLSY指令急停發(fā)生時(shí)狀態(tài)
當(dāng)故障排除,急停復(fù)位,主控開(kāi)關(guān)接通,重新啟動(dòng)后,如果系統(tǒng)是從急停前的斷點(diǎn)繼續(xù)工作的話(huà),PLC的Y0端子應(yīng)再發(fā)送30 000-13 686=16 314個(gè)脈沖后停止,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂再次位移L2=0.06 mm×13 686=978.84 mm,L1+L2=1 800 mm。但DPLSY指令的特性是該指令每次得電啟動(dòng)后,都是連續(xù)輸出程序中設(shè)定的脈沖數(shù),所以急停恢復(fù)后Y0是連續(xù)發(fā)送30 000個(gè)脈沖才停止,也就是說(shuō)系統(tǒng)共發(fā)出了43 686個(gè)脈沖如圖3所示,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移為821.16 mm+1 800 mm=2 621.16 mm,超出了原來(lái)控制的運(yùn)動(dòng)范圍,造成機(jī)械事故。
圖3 MC控制PLSY指令急停恢復(fù)后狀態(tài)
3.1.2 DRVA指令位置控制
圖4、圖5所示為采用DRVA絕對(duì)位置指令,從PLC的Y0發(fā)脈沖控制步電機(jī)位移的梯形圖程序。該程序的功能也是從Y0輸出頻率為5 kHz共30 000個(gè)脈沖,控制步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移1 800 mm,D8340為Y0的輸出脈沖寄存器。圖4是系統(tǒng)工作在急停發(fā)生時(shí)的狀態(tài),主控開(kāi)關(guān)N0斷開(kāi),MC N0到MCR N0之間程序塊的輸出被停止,Y0處于OFF狀態(tài),Y0的輸出脈沖寄存器D8340的值保持為13 330不變,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移L1=0.06 mm×13 330=799.80 mm而停止,急停起到停止運(yùn)行的作用。
圖4 MC控制DRVA指令急停發(fā)生時(shí)狀態(tài)
圖5 MC控制DRVA指令急停恢復(fù)后的狀態(tài)
DRVA指令是以脈沖輸出端子的輸出脈沖寄存器為零時(shí),機(jī)械手的位置為電氣原點(diǎn)的。在這個(gè)系統(tǒng)中Y0的輸出脈沖寄存器D8340為0時(shí),機(jī)械手的位置為電氣原點(diǎn)。圖4是機(jī)械手距電氣原點(diǎn)799.80 mm時(shí)發(fā)生了急停動(dòng)作,如果不用斷開(kāi)PLC的電源進(jìn)行急停故障排查,當(dāng)急停恢復(fù)重啟后,D8340的值保持為13 330不變,系統(tǒng)的電氣原點(diǎn)沒(méi)有發(fā)生變化,根據(jù)DRVA絕對(duì)位置控制的功能,PLC驅(qū)動(dòng)Y0點(diǎn)再發(fā)送30 000-13 686=16 314個(gè)脈沖后停止,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂的位移為1 800 mm,達(dá)到控制的要求。
但控制系統(tǒng)發(fā)生急停事故之后,往往要停電進(jìn)行故障排查。D8340數(shù)據(jù)寄存器不具有停電保持功能,PLC斷電后,D8340的數(shù)值會(huì)清零。當(dāng)急停故障排除后,PLC系統(tǒng)上電重新啟動(dòng),因斷電時(shí)D8340的數(shù)值已清零,PLC系統(tǒng)是將D8340為0時(shí)機(jī)械手的位置看作電氣原點(diǎn),故PLC重新從Y0連續(xù)發(fā)送30 000個(gè)脈沖,步進(jìn)電機(jī)拖動(dòng)機(jī)械手臂位移為799.08 mm+1 800 mm=2 599.08 mm,也超出了原來(lái)控制的運(yùn)動(dòng)范圍,也沒(méi)達(dá)到急停控制的目的。
3.1.3 DRVI指令位置控制
采用相對(duì)位置控制指令DRVI從PLC的Y0發(fā)脈沖控制步電機(jī),它的程序結(jié)構(gòu)與采用DRVA指令的相似。當(dāng)急停發(fā)生,主控開(kāi)關(guān)斷開(kāi),Y0停止發(fā)脈沖。DRVI是將該指令啟動(dòng)信號(hào)看作相對(duì)電氣原點(diǎn)位置的,所以急停恢復(fù)后,DRVI指令將急停斷點(diǎn)看成相對(duì)電氣原點(diǎn),PLC驅(qū)動(dòng)Y0點(diǎn)重新連續(xù)發(fā)送30 000個(gè)脈沖控制步進(jìn)電機(jī)位移。它實(shí)現(xiàn)的功能與PLSY指令相似,機(jī)械手將超程運(yùn)行,這也是機(jī)械設(shè)計(jì)不允許的,達(dá)不到急停控制的要求。
圖6 CJ指令控制急停發(fā)生時(shí)狀態(tài)
許多PLC控制系統(tǒng)的急停設(shè)計(jì),也采用條件跳轉(zhuǎn)指令CJ來(lái)實(shí)現(xiàn)。當(dāng)跳轉(zhuǎn)指令CJ的條件滿(mǎn)足時(shí),跳到CJ指令指定的標(biāo)簽位置P,被跳過(guò)的程序模塊保存原來(lái)的輸出不變,但在PLC發(fā)脈沖定位控制系統(tǒng)中,這種急停設(shè)計(jì)也存在著嚴(yán)重的缺陷。按照常規(guī)的編程方法,圖6所示為位置控制系統(tǒng)采用CJ指令控制急停發(fā)生時(shí)的梯形圖程序,該程序利用DRVA指令從Y0端子發(fā)脈沖控制步進(jìn)電機(jī)。當(dāng)急停發(fā)生時(shí),M0得電CJ指令跳轉(zhuǎn)到指定的標(biāo)簽位置P0處,跳過(guò)了DRVA指令模塊,由圖可以看出啟動(dòng)信號(hào)M1雖然失電,但由于CJ指令的特性,被跳過(guò)的程序塊保持原來(lái)的輸出不變,所以Y0及Y1的值保持為ON不變,Y0一直有脈沖輸出,步進(jìn)電機(jī)不會(huì)停止。但Y0的脈沖存儲(chǔ)器D8340的值,在CJ發(fā)生跳轉(zhuǎn)時(shí)一直保持在12883不變,這會(huì)誤導(dǎo)編程者。采用PLSY及DRVI指令的控制結(jié)果與DRVA指令是一樣,也不能實(shí)現(xiàn)急停控制,圖7所示為CJ指令控制急停恢復(fù)后的狀態(tài)。
圖7 CJ指令控制急停恢復(fù)后的狀態(tài)
通過(guò)前面的分析,在基于PLC位置控制系統(tǒng)的急停處理中,不管是采用哪條脈沖發(fā)生指令,條件跳轉(zhuǎn)指令CJ都是無(wú)法實(shí)現(xiàn)急停控制。但在采用主控指令MC的急停處理控制系統(tǒng)中:(1)如果是采用PLSY或DRVI指令發(fā)脈沖的,只要在急停恢復(fù)時(shí),將原來(lái)設(shè)置的總脈沖數(shù)減去已發(fā)送的脈沖數(shù),即可實(shí)現(xiàn)要求的急停控制;(2)如果是采用DRVA指令發(fā)送脈沖的,只要在急停恢復(fù)時(shí),保持已經(jīng)發(fā)送的脈沖數(shù)即可。
采用PLSY發(fā)脈沖指令,Y0的脈沖存儲(chǔ)器是D8140,D8140不具有斷電保持功能,通過(guò)圖2的梯形圖分析,不能實(shí)現(xiàn)急停控制的主要原因:(1)急停斷電排故時(shí)D8140的數(shù)值已清零;(2)PLSY是以該指令啟動(dòng)信號(hào)看作重新開(kāi)始發(fā)送脈沖的信號(hào),所以急停恢復(fù)后,PLC驅(qū)動(dòng)Y0點(diǎn)重新連續(xù)發(fā)送設(shè)定的脈沖個(gè)數(shù)。
在急停發(fā)生時(shí),要解決這些問(wèn)題,先將D8140內(nèi)的數(shù)據(jù)存放到一個(gè)具有斷電保持功能的寄存器中如D202,急停恢復(fù)時(shí)再將D202的數(shù)據(jù)傳送給D8140;再用一個(gè)變量D200來(lái)存放PLSY指令要發(fā)送的脈沖數(shù),這個(gè)變量實(shí)時(shí)等于總的脈沖數(shù)減去已發(fā)送的脈沖數(shù)。這樣就能保證要發(fā)送的脈沖數(shù)不變達(dá)到急停控制的目的。圖8所示為MC控制PLSY指令急停控制的優(yōu)化梯形圖程序,在程序執(zhí)行時(shí)步10程序中采用M8000將要總發(fā)送的30 000個(gè)脈沖實(shí)時(shí)減去已發(fā)送脈沖D8140的數(shù)值存放在D200中,D200的數(shù)值就是PLSY要發(fā)送的脈沖數(shù)。同時(shí)用DMOV指令實(shí)時(shí)將D8140的數(shù)值傳送給D202。在程序運(yùn)行的第一個(gè)周期,步0采用初始化脈沖M8002將D202的數(shù)據(jù)傳送回給D8140。也就是說(shuō)D202是實(shí)時(shí)記錄PLC已發(fā)送的脈沖數(shù),D202具有斷電保持功能,當(dāng)PLC恢復(fù)運(yùn)行時(shí),M8002通過(guò)DMOV指令再將D202的數(shù)據(jù)傳送給D8140作為初始值,保持了原來(lái)已經(jīng)發(fā)送的脈沖數(shù),同時(shí)D200保持還要發(fā)送的脈沖數(shù),這樣就達(dá)到了急停控制的目的。
圖8 MC控制PLSY指令急停控制的優(yōu)化程序
采用DRVA發(fā)脈沖指令,因Y0的脈沖存儲(chǔ)器D8340不具有斷電保持功能,通過(guò)圖4的梯形圖分析,不能實(shí)現(xiàn)急停控制的主要原因,是急停斷電排故時(shí)D8340的數(shù)值已清零。所以要在急停發(fā)生時(shí),先將D8340內(nèi)的數(shù)據(jù)存放到一個(gè)具有斷電保持功能的寄存器中如D200,急停恢復(fù)時(shí)再將D200的數(shù)據(jù)傳送給D8340,這樣就能保持已發(fā)送的脈沖數(shù)不變達(dá)到急停控制的目的。
圖9是MC控制DRVA指令急停控制的優(yōu)化梯形圖程序,在程序執(zhí)行時(shí)步10程序中采用M8000將D8340的數(shù)據(jù)實(shí)時(shí)傳送給D200保存,在程序運(yùn)行的第一個(gè)周期,步0采用初始化脈沖M8002將D200的數(shù)據(jù)傳送給D8340。也就是說(shuō)D200是實(shí)時(shí)記錄PLC已發(fā)送的脈沖數(shù),D200具有斷電保持功能,當(dāng)PLC恢復(fù)運(yùn)行時(shí),M8002通過(guò)DMOV指令再將D200的數(shù)據(jù)傳送給D8340作為初始值,保持了原來(lái)已經(jīng)發(fā)送的脈沖數(shù),達(dá)到了急停控制的目的。
DRVI指令的程序優(yōu)化結(jié)構(gòu)與采用PLSY指令的相似。它也要保持已發(fā)送的脈沖數(shù)及用變量設(shè)定DRVI指令要發(fā)送的脈沖數(shù)。但DRVI指令驅(qū)動(dòng)Y0的脈沖存儲(chǔ)器是D8340,通過(guò)程序優(yōu)化后也能達(dá)到急停控制的要求。
圖9 MC控制DRVA指令急停控制的優(yōu)化程序
本文通過(guò)程序優(yōu)化設(shè)計(jì),實(shí)時(shí)將PLC已發(fā)送的運(yùn)動(dòng)脈沖數(shù)傳送給斷電保持存儲(chǔ)器,急停發(fā)生時(shí)能保持原來(lái)運(yùn)動(dòng)的數(shù)據(jù),急停恢復(fù)后,不管是采用哪條脈沖指令,運(yùn)動(dòng)機(jī)械都不用進(jìn)行歸零復(fù)位,實(shí)現(xiàn)從急停斷點(diǎn)連續(xù)工作。PLC控制伺服電機(jī)的運(yùn)動(dòng)系統(tǒng)可采用同樣的編程方法。通過(guò)實(shí)際生產(chǎn)應(yīng)用,該方法實(shí)現(xiàn)了急停控制的需求,保障了人身安全及設(shè)備安全,運(yùn)行效果明顯,有力地促進(jìn)了生產(chǎn)[8],提高了生產(chǎn)線的工作效率,節(jié)約了能源,減少了生產(chǎn)成本,創(chuàng)造了較大經(jīng)濟(jì)效益。