1、引 言
可編程控制器(PLC)以其運行可靠、易學(xué)易用、抗干擾性強等特點,在工業(yè)控制中得到廣泛應(yīng)用。然而較多的應(yīng)用只是根據(jù)工藝編制相應(yīng)的梯形圖,用以代替?zhèn)鹘y(tǒng)的繼電器電器控制線路,功能非常有限。近年來各種型號的PLC 在功能上已經(jīng)有了極大的提高,允許用戶做許多底層操作,幾乎可以象單片機一樣靈活,加上有眾多的外圍設(shè)備可以選用,這就給軟件、硬件設(shè)計帶來了很大的靈活性和先進性。本文通過三菱FX2N-PLC 在一條電鍍自動線上的應(yīng)用,說明如何充分開發(fā)PLC 的先進功能,達到行車動作的靈活設(shè)定、動態(tài)修改的功能,以及斷電恢復(fù)、通訊、新型人機界面的應(yīng)用。
2、系統(tǒng)簡介
系統(tǒng)采用集散控制,參見圖1,上位機使用工控微機,負責(zé)工藝調(diào)度、質(zhì)量管理等宏觀控制;下位機使用三菱FX2N-PLC,控制行車的動作。行車吊勾(提升電鍍工件用)的垂直定位采用接近開關(guān),水平定位采用旋轉(zhuǎn)編碼器,垂直和水平的運動都使用變頻控制普通交流異步電機來驅(qū)動,控制面板使用三菱的F940GOT 觸摸屏人機界面。

圖1 系統(tǒng)組成示意圖
3、PLC的應(yīng)用
3.1 動作表
行車動作無非就是上下左右受控移動,按照指定的順序(即動作表)完成一系列的動作。要求有幾套動作表可以選擇,動作可以靜態(tài)修改,也可以在運行時由上位機動態(tài)修改。這種要求若是僅用簡單的梯形圖是無法實現(xiàn)的,因為動作都是由梯形圖中的觸點指令實現(xiàn),而梯形圖指令在運行時是不能修改的?,F(xiàn)在的FX2N-PLC 增加了許多應(yīng)用指令(底層操作,相當(dāng)于微機的匯編指令),以及提供了許多可供用戶使用的數(shù)據(jù)存儲單元,并且有間接尋址功能,這就使表結(jié)構(gòu)操作成為可能。在這里,我們把行車的一個動作定義為:“到幾號工位上升,再到幾號工位下降”,或者是“延時幾秒”,每個動作由一個字(16 位)組成,每個動作表由若干個動作字組成,放在PLC 的數(shù)據(jù)寄存器里,動作表由PLC 程序初始化,也可以在運行時通過串行通訊由上位機讀取和修改,PLC 程序在運行時只是不斷地解釋和執(zhí)行動作表。
3.2 動作的解釋和執(zhí)行
動作字有3種:行車動作字、延時動作字、結(jié)束標(biāo)志。
(1)行車動作字
動作字的高字節(jié)表示“上升所到的工位號”, 低字節(jié)表示“下降所到的工位號”,例如:“0205”表示讓行車開到02 號工位,上升,再開到05 號工位,下降。
由于一個行車動作字表示的是宏動作,由:“前進或后退,水平到位,上升,上到位,再前進或后退,水平到位,下降,下到位,完成”幾個微動作組成,通過FX2N-PLC 的步進階梯指令STL 實現(xiàn)非常合適。我們可以把行車的宏動作分解為幾個狀態(tài),在到位時進行狀態(tài)轉(zhuǎn)移。參見圖2 的STL 狀態(tài)轉(zhuǎn)移圖。垂直到位比較簡單,用上下到位接近開關(guān)直接控制即可。

圖2 STL狀態(tài)轉(zhuǎn)移圖
水平到位稍微復(fù)雜一些。在程序初始化時將每個工位的準確位置送到數(shù)據(jù)寄存器里,稱做工位位置表,每個工位的實際位置數(shù)據(jù)通過實測得到。動作表、工位位置表、行車水平運動的關(guān)系請參見圖3。運行時通過旋轉(zhuǎn)編碼器得到行車的當(dāng)前位置,每毫米大約發(fā)3 個脈沖。在做水平動作時,先取出動作字,分離高低字節(jié),得到目標(biāo)工位號,將此工位號作為工位位置表的偏移量,用間接尋址方法得到目標(biāo)工位位置,若當(dāng)前位置大于目標(biāo)位置則令行車后退,反之則前進,直到行車到目標(biāo)位置前一個提前量時,令行車轉(zhuǎn)為慢速;當(dāng)行車到目標(biāo)位置前另一個提前量時,令行車制動。這二個提前量都根據(jù)實際情況加以調(diào)整,慢速提前量通常為半個工位間隔,制動提前量根據(jù)實際的行車速度、慣性而定。經(jīng)過調(diào)整,最終定位精度可以達到±1mm 左右。

圖3 水平動作
圖4是行車水平處理子程序,在二個水平進退STL 狀態(tài)中先設(shè)置好目標(biāo)工位,再調(diào)用該子程序,行車就會前進或后退,直到目標(biāo)位置停下來,發(fā)出完成標(biāo)志M86,即可轉(zhuǎn)入下一STL狀態(tài)。

圖4 水平處理子程序
(2)延時動作字
延時動作字的高字節(jié)用7EH作為標(biāo)識,低字節(jié)為延時值,如“7E30”。延時動作比較簡單,取出動作字,分析一下若是延時動作,將延時值送延時定時器就可以了。以前的PLC 定時器常數(shù)在梯形圖中設(shè)定,運行時不能改變,F(xiàn)X2N-PLC 定時器允許將數(shù)據(jù)存儲器的內(nèi)容作為定時值,才使在運行時改變定時常數(shù)成為可能。
(3)結(jié)束標(biāo)志
每個動作表用7FFFH作為結(jié)束標(biāo)志,執(zhí)行到結(jié)束標(biāo)志表示一圈做完。若是單圈模式的話就進入停止?fàn)顟B(tài),若是連續(xù)模式的話就讓動作表指針重新指向表首,繼續(xù)運行。










