1、引言
ANC-45M 全功能數(shù)控系統(tǒng)是大連機床廠高新技術(shù)開發(fā)中心與日本AVAIL 技研株式會社合作開發(fā)的立式、半閉環(huán)三軸加工中心數(shù)控系統(tǒng)。她使用了32 位RISC 型CPU,專用的多任務(wù)實時操作系統(tǒng),改進的哈佛結(jié)構(gòu),9″彩色液晶顯示器,雙CPU、雙主板設(shè)計,其中一個CPU 所在的主板是加工中心的控制子系統(tǒng),另一個CPU 及其主板是它的輸入、輸出子系統(tǒng),它是機床的人機用戶界面。本文詳細論述了數(shù)控ANC-45M 加工中心PLC 編輯器的設(shè)計與實現(xiàn)。
2、ANC—45M 加工中心的組成結(jié)構(gòu)
兩個CPU 及其主板之間用一根通信電纜線將兩個主板上的RS-232 異步串行通信接口連接起來,用報文形式進行數(shù)據(jù)交換。其中交換的數(shù)據(jù)包括:MMC 側(cè)(人機接口控制器)和CNC側(cè)加工程序以及PLC 梯形圖程序等的交換,MMC 側(cè)和CNC 側(cè)的實時坐標數(shù)據(jù)、機床狀態(tài)參數(shù)的交換等。
3、軟件系統(tǒng)結(jié)構(gòu)
3.1 主程序算法結(jié)構(gòu)
PLC 編輯器是MMC 部分的一個子程序,為了能更好地描述本文的內(nèi)容,我們應(yīng)首先分析一下MMC 部分主程序的設(shè)計算法,其三個主要程序模塊算法如下:
(1) main 函數(shù)算法如圖1 所示。
圖 1 Main 函數(shù)算法
(2) 任務(wù)管理模塊如圖 2 所示。
圖 2 任務(wù)管理模塊算法
(3) 狀態(tài)任務(wù)模塊如圖 3 所示。
圖3 狀態(tài)任務(wù)模塊算法
主程序為每一個子功能模塊預(yù)留了對應(yīng)的兩個子函數(shù),PLC 編輯器有其相應(yīng)的無鍵處理子函數(shù)和向鍵處理子函數(shù)。在向鍵處理子函數(shù)中進行輸入鍵值的判斷處理,而無鍵處理子函數(shù)則進行實時狀態(tài)參數(shù)的屏幕刷新處理。對于每個子功能模塊,都有一個共同的特點,那就是其無鍵處理子程序相對于向鍵處理子程序較為短小。在當前子功能模塊狀態(tài)下、沒有鍵值輸入時就調(diào)用無鍵處理子函數(shù),并且每一主程序循環(huán)周期都要調(diào)用它;當在有鍵值輸入的情況下,就轉(zhuǎn)而調(diào)用向鍵處理子程序。一旦有按鍵輸入,系統(tǒng)是以中斷方式被CPU 所接收的,它首先進行相應(yīng)的預(yù)處理,然后再調(diào)用任務(wù)管理模塊子程序。任務(wù)管理模塊程序是通過判斷當前狀態(tài)變量是否為初始狀態(tài),如果是則進入相應(yīng)的初始處理,如果不是則判斷是否按鍵狀態(tài),如是則分別進入相應(yīng)的分支程序。
在有按鍵的情況下,程序首先判斷該鍵值的類型,如果是改變功能子函數(shù)模塊的命令時,則首先調(diào)用相應(yīng)的功能鍵值子函數(shù)模塊,并送去狀態(tài)變量值TASKSTART,同時把當前運行中的功能子模塊放入后臺等待該中斷執(zhí)行完后,接著執(zhí)行完;如果不是改變功能子模塊,而是在當前功能子函數(shù)狀態(tài)下的鍵值輸入,系統(tǒng)則調(diào)用該功能鍵值處理子函數(shù)模塊,并且送去TASKRUN 狀態(tài),這樣也就進入了各子程序的鍵值處理子程序。
3.2 操作系統(tǒng)
該數(shù)控系統(tǒng)的操作系統(tǒng)采用的是AVAIL 公司自行開發(fā)設(shè)計的,并已經(jīng)成功應(yīng)用于公司生產(chǎn)的繡花機上,該公司生產(chǎn)的繡花機多年行銷中國大陸等地,已經(jīng)得到實踐和用戶的驗證和認可。該操作系統(tǒng)是專門為任務(wù)相對比較單一的控制系統(tǒng)所設(shè)計的,其中有一個非常重要的時間任務(wù)控制模塊,它負責對各任務(wù)的處理分配運行時間,并對任務(wù)執(zhí)行時間進行監(jiān)控。我們知道,對于一個實時系統(tǒng)來說,系統(tǒng)的正確性不僅取決于計算的邏輯結(jié)果,而且還依賴于產(chǎn)生結(jié)果的時間。為了保證數(shù)控加工的精度,該操作系統(tǒng)采用一種硬實時任務(wù)的管理模式,即系統(tǒng)給一個特定的任務(wù)指定了一個最后的期限,而系統(tǒng)必須在這個最后期限之前處理完所規(guī)定的任務(wù),否則系統(tǒng)就會強制中斷該任務(wù)的執(zhí)行。這個時間任務(wù)模塊決定了該數(shù)控系統(tǒng)的加工精度,依賴于多種因素的制約,比如CPU 執(zhí)行速度的快慢、通訊口傳輸速率等等。由于該操作系統(tǒng)功能簡單、任務(wù)可預(yù)測且單一,這就為該系統(tǒng)可靠性更高,穩(wěn)定性更強提供了根本的保證。
4 梯形圖主要功能實現(xiàn)
4.1梯形圖符號的輸入和編輯
該梯形圖編輯器采用軟鍵盤按菜單梯形圖編輯器[1-4]工具繪制相應(yīng)的圖形符號,具有增加、刪除、修改等功能,操作方便。操作者在使用時,只需移動到合適的位置,然后用鍵盤按相應(yīng)的梯形圖符號,即可在該位置畫出該符號,并可以標注編號。將作圖窗口劃分成一定間隔的行與列,使插入的圖形符號只能定位在網(wǎng)格點上。這既不影響梯形圖編輯的直觀性,又使解釋程序易于實現(xiàn)。
4.2 梯形圖符號的存儲和提取
每個梯形圖符號是一幅位圖,我們存儲每幅位圖的類型、位置、文本顯示信息等。提取時仍按照原來的順序繪制各幅位圖。由于梯形圖的行數(shù)是不能預(yù)知的,因此,對梯形圖的編輯采用動態(tài)數(shù)據(jù)存儲,以雙向鏈表數(shù)據(jù)結(jié)構(gòu)來記錄梯形圖的所有信息。由于雙向鏈表的每個鏈結(jié)都具有向前和向后的指針,既能向前查找,又可向后訪問,因此各類操作十分靈活方便。
4.3 語法檢查
主要檢查所繪制的梯形圖是否符合規(guī)定的格式,如果梯形圖不符合格式要求,則會給出錯誤信息。首先對存儲好的文件進行逐行掃描,看支路是否有輸出,如有則指出錯誤,沒有則繼續(xù)掃描;繼續(xù)檢查編號是否為X、Y、R、T等事先規(guī)定好的字母,如不是則指出錯誤,正確則繼續(xù)掃描;然后看編號后面是否為數(shù)字,是則正確,檢查數(shù)字是否小于127,是則語法檢查成功,不是則報警。
4.4 邏輯檢查
由于在編輯梯形圖時,存儲的是行與行之間的順序以及每行中各元素的信息,并沒有存儲各個元素間的邏輯關(guān)系,所以檢查比較困難。我們采用先把梯形圖轉(zhuǎn)換成語句表的方法來達到目的。本文提出了以二叉樹為中心的轉(zhuǎn)換方法。二叉樹的特點:一個父結(jié)點有且只有兩個子結(jié)點。這種數(shù)據(jù)結(jié)構(gòu)用來表示邏輯關(guān)系很方便。梯形圖中有序排列的階梯,可以表示成若干有序排列的二叉樹森林,通過對每棵二叉樹設(shè)計遍歷算法,可以唯一地得到相應(yīng)指令集。
5 語句表主要功能設(shè)計與實現(xiàn)
5.1 MMC 部分主程序的設(shè)計原理
MMC 部分主程序采用的是主循環(huán)的總體結(jié)構(gòu),每隔大致30ms 就對各子程序模塊掃描執(zhí)行一次。而每一模式下的子程序又包括向鍵任務(wù)子程序和無鍵任務(wù)子程序,在主程序的每一掃描周期中,有鍵值輸入的情況下,則運行相應(yīng)的向鍵任務(wù)子程序,如果沒有輸入鍵值,則運行相應(yīng)的無鍵任務(wù)子程序。在每一次循環(huán)之前,先進行模式的檢查,如果當前模式已經(jīng)改變,則把相應(yīng)模式的子程序調(diào)入前臺執(zhí)行,而把在這之前運行的前臺程序轉(zhuǎn)入后臺繼續(xù)執(zhí)行。
5.2 設(shè)計原理
MMC 部分main 主程序采用定周期循環(huán)讀取鍵值的處理方式,當遇到某一中斷,首先對其合法化進行判斷,在其合法的情況下,將其中斷子程序從后臺轉(zhuǎn)移至前臺執(zhí)行并顯示之。所以,全屏幕編輯子程序采用每一個循環(huán)周期接收一個字符或一個控制指令并執(zhí)行之的思路。
5.2.1 指令的輸入處理
考慮到編輯器應(yīng)能適應(yīng)順序輸入語句表程序以及進行程序段中間某部分的修改兩種情況,每輸入一個指令時首先應(yīng)對其合法性進行檢查判斷,合法的情況下,首先應(yīng)將當前位置后面的所有字符后移一位,然后在當前位置處依次、前后相連地把該指令字符存放在一緩存里。在存入緩存的同時將其顯示在監(jiān)視器上,監(jiān)視器采用的是800×600 的LCD,其普通字符模式下顯示參數(shù)為50×18。字符和數(shù)字輸入的算法如圖4 所示。
圖 4 輸入流程圖
5.2.2 確認鍵的輸入處理
(1)編輯功能。當一PLC 語句表程序段編輯完以后必須按下確認鍵才能進行下一程序段的編輯工作。一旦按下確認鍵,編輯器需要對該程序段依次進行查錯、容錯、格式化和規(guī)整化一系列處理。語法檢查用戶語句程序有無拼寫、指令格式、指令地址越界等語法錯誤;語言程序邏輯檢查語句表程序是否存在邏輯錯誤。
(2)檢錯功能。開發(fā)系統(tǒng)在將PLC程序轉(zhuǎn)換為中間代碼之前必須先檢查PLC程序是否有語法錯誤。該系統(tǒng)為了方便PLC編程者修改PLC程序,按照梯形圖的梯級順序進行,編譯過程中要進行語法檢查,主要是檢查所編譯的梯形圖是否符合規(guī)定的格式,如果梯形圖不符合格式要求,則會給出錯誤信息,同時,在編譯過程中還要校驗梯形圖中的信號代碼與信號定義模塊中所定義的信號是否一致,如果不一致,則提示該信號代碼未定義。用戶通過查看編譯過程中所給出的錯誤信息,進行相應(yīng)的修改,直到?jīng)]有錯誤為止。
5.2.3 其它功能鍵的處理
在PLC 編程中為了方便用戶進行指令的編輯,還提供了行選擇、行復(fù)制、行粘貼、字選擇、字復(fù)制、字粘貼,行號檢索等功能。當然在進行屏幕編輯以及上面介紹的所有功能中還會遇到上、下自動移屏顯示,這是每個編輯器都應(yīng)具有的最基本的功能。值得指出的是:在這個編輯系統(tǒng)中,光標總是隨著輸入自動地指向下一位置處,指導(dǎo)用戶將輸入的字符輸?shù)疆斍拔恢锰?,光標是不能隨便自由地移到屏幕的空格處。并且在行選擇和字選擇時均以反色形式重新在原位置處對所選內(nèi)容重新刷新一遍。
6 結(jié)束語
本文提出的內(nèi)嵌式軟PLC 編輯器體現(xiàn)了數(shù)控系統(tǒng)的開放性要求,易于實現(xiàn)與硬件無關(guān)性要求,統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)易于實現(xiàn)深度的系統(tǒng)開放,方便的編程環(huán)境、靈活的編程方式可降低PLC 編程門檻,方便用戶使用,另外該方法降低了系統(tǒng)成本。該PLC 編輯器根據(jù)輸入的離散信息,在內(nèi)部進行邏輯運算,并完成輸入輸出控制功能,完全能夠滿足經(jīng)濟型數(shù)控加工中心的要求。PLC 已成功應(yīng)用于ANC_45M 經(jīng)濟型加工中心的數(shù)控系統(tǒng)設(shè)計中,隨著數(shù)控產(chǎn)品即將銷往全國各地。
-
plc
+關(guān)注
關(guān)注
5013文章
13327瀏覽量
464077 -
cpu
+關(guān)注
關(guān)注
68文章
10879瀏覽量
212196 -
數(shù)控系統(tǒng)
+關(guān)注
關(guān)注
5文章
260瀏覽量
24267
發(fā)布評論請先 登錄
相關(guān)推薦
評論