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