李志明 李衛超 吳榮華 胡海龍 王培德
(①燕山大學信息科學與工程學院(軟件學院),河北 秦皇島 066004;②河北省計算機虛擬技術與系統集成重點實驗室,河北 秦皇島 066004;③北京機床所精密機電有限公司,北京 100102)
在基于UMAC的開放式數控系統開發過程中,需要編寫上位機數控軟件和UMAC內部的軟PLC程序兩部分。其中上位機數控軟件主要負責程序編輯及下載、機床位置信息顯示、機床運動參數設定、錯誤及報警信息顯示處理等功能,而UMAC運動控制器中運行的軟PLC程序要負責數控面板、外圍設備控制、異常處理、安全防護等功能的實現,是數控機床穩定性、可靠性的重要基礎。由于數控面板上各按鍵及波段開關等根據機床工作模式的不同體現的功能各異,再加之其他功能的耦合等,使得開放式數控系統中的PLC程序結構較為復雜;若稍有處理不當,輕則可致機床功能故障,重則可引起嚴重事故。因此,研究一套通用性強、結構良好、響應速度快的PLC程序結構,對研發可靠性高、穩定性強的開放式數控系統具有重要意義[1-2]。
本文以某型號開放式精密激光切割數控機床相關功能的開發經驗為基礎,對軟PLC程序的結構及其設計方法展開研究。

該數控機床的主要硬件設備及其相互連接關系如圖1所示。從圖1可知,UMAC運動控制器是整個硬件平臺的控制核心,它的主要作用是完成伺服運動控制;通過軟PLC程序的周期性執行實現數控面板、外設狀態測控、激光器切割功率控制、報警及安全防護、上下位機通信數據傳遞等功能。
UMAC運動控制器內部程序分為在前臺實時運行的運動程序(加工程序)、在后臺循環掃描運行的軟PLC程序[3];從而,集成了運動控制和過程控制兩大功能。UMAC中的軟PLC程序分為兩種,一是未經編譯的PLC程序,一是經編譯的PLCC程序;它們的編號均從0至31。由于省卻了編譯時間及可使用特殊的數據類型,PLCC程序比PLC程序的運行速度可快10倍以上[4-5]。
假設UMAC中有PLC0~PLC2以及PLCC0~PLCC31等程序,則其運行機制如圖2所示。
通過圖2,可以發現PLC程序的運行機制具有如下幾點規律:
(1)PLC及PLCC程序執行的優先級與其程序編號呈反比,即PLC1程序比PLC2的優先級高。
(2)1個伺服周期內(后臺),首先按優先級執行1個PLC程序,之后,執行所有PLCC1至PLCC31程序;若有時間空余,則執行第2個PLC程序。

(3)在下一個伺服時鐘(前臺)到來前,若不能執行完PLC程序,則可將其暫停;在伺服時鐘內,首先進行伺服計算,繼而執行1次PLC0和PLCC0程序;最后執行上次中斷的或新的PLC程序。由此可見,0號PLC及PLCC程序是和伺服算法一起在前臺執行的,具有很高的優先級。這也決定了PLC及PLCC的0號程序適合處理實時性要求很高、緊急的任務,但不可以過大;否則,將會占用伺服算法時間致使系統混亂。
(4)各PLC及PLCC程序依據各自優先級循環往復執行。
數控面板主要由按鍵及波段開關等操控元件組成,是數控系統中人機交互的重要接口之一。各操控元件依托軟PLC程序實現各自的功能。
為規范操作流程、防止誤操作,操控元件可分為不受模式控制和受模式控制兩類。不受模式控制的操控元件的生效與否和機床工作模式無關,主要完成對外圍設備的輔助控制任務;受模式控制的操控元件和數控功能密切相關,只有在特定的機床工作模式下才生效。
機床的工作模式,有自動模式、手動模式、回零模式等5種;而在受模式控制的操控元件之中,有相當數量的操控元件在多種模式下生效,從而形成了模式疊加狀態,如圖3所示。

從PLC程序設計的角度來看,對數控面板操控元件功能的實現,需考慮元件的受控性以及工作模式疊加性,從而增加了PLC程序的結構復雜性。
數控面板上的操控元件,從元件類別角度,可分為按鍵和波段開關等;從生效條件角度,可分為受模式控制操控元件和不受模式控制操控元件兩大類。用戶通過對數控面板不同操控元件的操作,可將其對機床的操作指令轉化為數控面板I/O接口的特定電平狀態集。通過軟PLC程序,實時檢測并解析電平狀態集,進而判斷機床的工作模式并調用相應的程序模塊以實現操控元件功能。
從UMAC運動控制器的角度來看,需檢測及控制的外部設備較多,如激光發生器、激光切割頭調整箱、防護門、輔助氣體、吸塵器等。這些設備的狀態檢測及控制功能均需通過軟PLC程序對I/O端口電平狀態的掃描或控制加以實現。
為防止系統故障對操作人員及設備造成意外損害,需針對系統運行過程中出現的問題制定完善的報警及安全防護措施。總體而言,系統報警的來源可分為兩類,一是運動控制器的數控系統內部,一是外部設備。軟PLC程序通過對相關I/O端口電平狀態及UMAC內部寄存器狀態進行實時檢測,并對系統的嚴重錯誤及時啟動應對動作,從而實現對整個數控系統的報警及安全防護功能。
在激光切割時,起點、終點、拐角處切割質量不佳是個通病;造成該問題的本質是切割速度與切割功率不匹配。文獻[6]指出,最有效和推薦的激光功率控制方法是脈沖調制。脈沖調制的優點在于即時作用,通過改變平均功率和維持峰值功率的方法來調節功率,符合切割工藝和材料的要求。該方法中,激光光斑的重疊率是關鍵的參數之一,直接影響著切割質量[7]。
在本激光切割設備中,利用UMAC的軟PLC程序,可超前獲取各進給軸的預進給速度并計算出預矢量速度,并依據特定的加工工藝實時調整圖1中軸卡6輸出信號PFM的脈沖頻率及占空比[8],從而實現切割速度與切割功率的實時匹配。
在開放式激光切割數控系統中,上位機數控軟件是另一重要的人機交互接口。一方面,整個數控系統的運動狀態、設備狀態、報警信息等均需上位機數控軟件從UMAC運動控制器獲取;另一方面,用戶對數控系統的各種參數設置、控制命令等,也需通過上位機軟件發送給UMAC運動控制器。由此可見,在系統運行過程中,上位機軟件與UMAC運動控制器之間需要進行頻繁的雙向通訊。若采用UMAC的字符命令方式實現二者的通信,勢必會導致占用大量的硬軟件系統資源,且通信實時性及穩定性難以保證。
基于此,本文采用了基于雙端口DPRM的通訊方式。首先,統籌規劃DPRM的內存區域,劃分出上傳數據區和下發數據區。利用軟PLC程序實現欲上傳數據的采集工作,并將其送至上傳數據區的指定地址空間;將上位機數控軟件下發的參數送至下發數據區的指定地址空間,再經軟PLC程序實時讀取并處理,使之生效。這樣,上位機數控軟件與UMAC運動控制器的實時通信就能夠像計算機訪問自身內存一樣穩定、高效。
功能模塊劃分是指在軟件設計過程中,為了能夠對系統開發流程進行管理,保證系統的穩定性以及后續的可維護性,從而對軟件開發按照一定的準則進行模塊的劃分。根據模塊來進行系統開發,可提高系統的開發進度,明確系統的需求,保證系統的穩定性。
在對開放式數控系統軟PLC程序功能模塊劃分時,應遵循如下原則:
(1)全面充分地分析系統功能的總體需求,得出需求類表。
(2)對需求歸類分析,形成核心功能主模塊。
(3)結合軟PLC程序的運行機理,合理分析系統結構層次,確定系統框架。
(4)依據功能需求,分析各核心功能主模塊的運行頻率及狀態,并依據優先級,確定PLC及PLCC程序編號。
(5)事先規劃好各種功能的連鎖反應,以增強程序的邏輯性及穩定性。
(6)對核心功能主模塊進行細化,得到各功能子模塊。
(7)遵循一般程序設計方法中模塊劃分的基本原則,如“高內聚、低耦合”等。
圖4是依據上述原則,結合文中所述某型號精密激光切割數控機床功能需求劃分的軟PLC功能模塊圖。

在軟件設計過程中,需要結合系統功能對軟件的結構層次進行分析,并確定程序框架的主體。一個良好的系統框架是決定整個系統穩定性、封閉性、可維護性的重要條件之一;同時,也可更好地指導程序功能模塊的劃分。
在5.1節功能模塊劃分的基礎上,確定該機床軟PLC的程序結構及其簡要流程如圖5所示。其中,需要特別注意的是,UMAC內部的軟PLC程序運行機理與一般的程序不同;它的特點在于每隔一段時間,就會執行一遍已啟動的獨立PLC程序,即自循環模式。
在圖5中,各程序模塊可分為兩大類,一類是常運行功能模塊,如激光功率控制、外設狀態測控等模塊;另一類是選擇運行程序模塊,如手搖模式、自動模式等模塊。依據機床工作模式,啟動相應模式的程序模塊并關停無關模式程序模塊的做法,具有節省UMAC運行資源、加快運行速度、提升系統穩定性等優點。此外,系統狀態初始化模塊執行且初始化成功后,將被徹底關閉,不再自循環執行。

I/O端口電平狀態檢測與封裝模塊是操控元件、外設狀態測控、報警及安全防護等功能實現的基礎。所有I/O端口狀態都應按位封裝到DPRM中的內存地址中;然后通過位操作來實現對操控元件、外設狀態的提取和外設的控制。
在通信數據傳遞模塊實施前,應根據詳細的功能需求,事先分配好存放上傳數據、下發數據的DPRAM內存空間地址。
在報警及安全防護功能模塊實施前,應根據報警、錯誤等進行歸類,然后劃定存儲報警及錯誤信息的空間地址,利用軟PLC程序將各類信息集中到指定地址中,再加以解析處理。
此外,還要保證各功能的“原子性操作”,尤其是數控面板上操控元件的功能。例如,當處于回零模式時,X軸正在執行回零操作;在未執行完畢前,用戶又選擇了手動模式,則系統應確保 X軸的回零操作完成。
圖6是該精密激光切割數控機床的操控面板及上位機數控軟件界面。本文依據上述思想及方法設計開發的軟PLC程序已成功應用于該套設備之中。系統集成測試和實際使用表明,本文所構建的軟PLC程序具有功能完善、運行穩定可靠、響應及時、系統資源占用低等優點,滿足了該精密激光切割數控機床的設計要求。

[1]白江,王宇晗,金永喬.數控系統軟PLC模塊的研究與開發[J].機械設計與制造,2011(2):138-140.
[2]王飛,裴海龍.開放式數控系統中軟PLC系統的開發及應用[J].制造技術與機床,2010(8):73-76.
[3]王宏,安波,張永生,等.基于PMAC的抗干擾軟件PLC延時技術的應用[J].工業控制計算機,2006(7):72-73.
[4]劉瑛,謝富春.基于UMAC的開放式數控平臺的構建與應用[J].制造技術與機床,2008(12):93-95.
[5]Delta Tau data systems,Inc.Turbo PMAC user manual[Z].2008:183-194.
[6]孫國軍.激光切割控制中幾個與數控相關的常見問題[J].金屬加工:熱加工,2011(4):21-22.
[7]楊偉.高精密激光切割的理論及應用技術研究[D].煙臺:煙臺大學,2009:32-33.
[8]李志明,胡海龍,吳榮華,等.基于UMAC的數控系統虛擬平臺及其應用[J].制造技術與機床,2013(7):140-143.