在機床數控系統中,電氣設備的控制占有重要的地位。目前,一般采用可編程控制器(PLC)進行機床電氣控制。PLC可靠性高,使用方便,對于復雜的,控制點數較多的應用場合,可以在PLC基本單元外加上一定數目的擴展單元,實現復雜的電氣控制功能。在數控機床上.如果采用PLC進行電氣控制,必需在PLC與NC 間建立電氣聯系,否則,NC程序中的MST指令反映不到PLC中,PLC也就不可能做出相應的動作。目前市場上出售的PLC一般都具有通訊功能,可以利用這種功能在PLC與NC之間建立聯系。由于PLC的通訊方式為串行通訊,通訊速度比較低,對于數控機床的某些實時性要求很強的信號如急停,超程等.就難以勝任一必需采取其它措施滿足這些特殊需要,但這又增加了系統的復雜程度。為了提高速度,降低戚本.在數控系統中t可以采用開關量I/O板加外接繼電器,配臺主機的軟件對電氣開關進行控制。但此方案周NC主機要直接參與電氣控制邏輯的運算過程.占用了主機的部分工作時間,增加了軟件的復雜程度。更重要的是.把過多的功能集中到主機使主機-發生故障的風險加大 出于對實時性和可靠性的考慮.作者在研制五軸聯動數控系統的過程中.設計了一種嵌入式PLC.在保證實時性的同時.使故障風險相對分散。
1 嵌入式PLC的硬件結構
我們研制的五軸聯動數控系統是一種基于工業PC 的多CPU 分布式開放化數控系統。做為其中的一部分,嵌入式PLC的設計也必需遵循開放化的原則。其硬件是模塊化的.按照標準的工控機插卡進行設計。目前,工控機的底板總線有兩類:ISA總線和PCI總線。ISA總線的數據轉輸速率比PCI總線要低得多.但已完全能夠滿足一般工業控制的需要,而且ISA 總線對工控機擴展卡的要求比PCI要寬松。 從已有的工業應用經驗看.可靠性也比較高。因此我們仍選擇ISA總線做為嵌入式PLC設計的基礎。
嵌入式PLC的組成參圖1
嵌入式PLC的CPU 采用Intel16 位單片機80C196。其獨特的寄存器一累加器結構以及三操作數指令可以大大減少程序中數據傳送類指令的數目,提高程序運行的效率 圖1中雙口存儲器用于PLC與數控系統主機之間交換信息,數控系統運行過程中.PLC在不斯地進行電氣控制邏輯運算的同時.也周期性地刷新雙口RAM 中的內容,把電氣開關狀態.PLC運行狀態等反映到雙口RAM中。有一部分面板按鍵如循環啟動,進給保持.手動等用于NC操作,不能按一般的I/O點處理.嵌入式PLC識別按鍵操作并在雙口RAM 中維護一個循環隊刊記錄這些按鍵操作。另一方面,NC 軟件根據加工程序中的M、S和T指夸修改雙口RAM 中特定的數據,PLC周期性地讀取這些數據,并據此控制電氣設備的通斷。對于實時性要求很高的信號,PLC可在更新雙口RAM 內容后,通過ISA總線向NC發出中斷。
這里運用雙口RAM 完成NC與嵌入式PLC之間的信息交換,與采用并行口的方案相比.該方法簡潔明了,無需復雜的通訊協議,NC可以隨時了解外部設備開關狀態而不需額外消耗時間.效率高于其它實現方式。
圖1中包括一片的靜態RAM 芯片6264,用后備電池供電-主要用于存儲PLC梯形圖程序。在NC中對電氣控制邏輯進行編程,編譯后經雙口RAM 存入6264中。PLC運行這部分程序.完成電氣控制。
2 軟件設計
嵌入式PLC軟件設計有兩部分內容,一個是工控PC機中相關程序設計,另一個是嵌入式PLC 自身所帶監控程序設計。前者的主要功能模塊參圖2。
梯形圖編程模塊為用戶提供方便的PLC電氣控制邏輯編程手段,其生成結果為梯形圖文件。梯形圖文件僅存儲I/0點之間的邏輯關系,其格式與嵌入式PLC所用CPU類型無關,以提高編程模塊的適應性及可重用性.梯形圖編譯模塊則用于把該文件轉化為一系列的80C196機器指令,并加上一些必要的附加指令,產生BIN文件,即機器碼文件。此部分應當考慮到PLC中I/O點的資源分布情況,使最后生成的BIN 文件的指令與實際I/O 資源協調一致。通訊模塊用于把BIN文件傳輸到雙口 RAM 中,再由PLC監控程序把它轉儲到6264中。此部分提供用戶開發接口,以便用戶自行控制BIN文件的傳輸,為用戶提供對PLC進行現場編程的功能。監控模塊提供用戶I/O 點監視與設置、PLC運行狀態/編程狀態設置等功能,方便用戶現場調試。另外,為了使用戶能夠在自主開發的應用程序中對嵌入式PLC進行有效的監控,此部分也提供開放的用戶接口。
嵌入式PLC的監控程序主要實現以下功能:6264中邏輯處理程序(即由工控機傳來的BIN文件)及運行狀態的有效性檢驗,I/O 點及雙口RAM 映射區域的周期性刷新,運行故障監鍘,面板按鍵的檢測等。當6264中已存有有效的BIN文件,且已設置好有效的運行標志時,啟動運行6264中的邏輯處理程序。另外在運行期問.運用Watch Dog對運行是否正常加以監視.防止并處理諸如運行6264中程序時發生超時錯,6264中的邏輯處理程序出錯等異常情況此系統設計的優點總結如下:
(1)采用插卡式設計,NC與PLC之間無多余導線連接,可靠性高,實時性有保證。
(2)運用雙口RAM 進行信息交換.速度快,線路簡潔。
(3)嵌入到工拉機系統中.開發、調試、使用和維護方便.便于與用戶的軟硬件組臺成更復雜的系統。
3 在數控系統中使用嵌入式PLC
如前所述.數控機床的電氣控制可以采用三類方法。即:外裝式PLC,虛擬PLC和嵌入式PLC 如果采用常規的程序設計方法,對于 以上三種電氣控制方式.就得設計不同的軟件接口,數控系統軟件主體就會直接涉及到電氣控制的實現方式及其細節.一但控制方式發生變化,將不得不對軟件進行大量修改。這樣編寫出的軟件通用性差,難以適應變化 為了增加軟件與設備之間的相互獨立性.我們運用面向對象技術對系統進行了開放化設計。
顯然,不論哪一種控制方式,其目標都是相同的。經認真分析,我們找出了三者之問的共同點,由此得出一抽象類CPLC,它提供了數控機床電氣控制所有的外部特征,為數控系統主體軟件提供了完備的接口函數,數控系統中其它部分只需調用相應接口函數就可使電氣開關做出相應的動作。但該部分不涉及電氣操作過程中的細節.考慮到數控系統中電氣控制點數比較多,為每個控制動作如液壓開,液壓關等等各設計一個接口函數會導致過多的接口函數,應用不方便,因此,我們設計了一個通用的接口函數,其定義如下:
如果定義液壓開關編號為1,冷卻開關編號為2,……,
則開液壓的函數調用為
在抽象類CPIC的基礎上,針對三種方式分別定義了派生類CExternalPlc、CVirtualPLc和CEmbedPLc,在這些類中,才真正對接口函數編程,完成硬件操作。按照這種設計思想得到的電氣控制部分軟件具有圖3所示的結構。由圖中3可以看出,這種設計方法在數控系統主體軟件與電氣控制硬件之間加入了抽象類層次,使其相互依賴性減弱,成為相對獨立的兩部分。運用這種方法得到的數控系統軟件具有與設備無關的特征 當有新的硬件設備出現時.只需在原抽象類上派生出新的類,按照共同的標準對接口函數進行解釋.操縱硬件做出相應的動作即可,無需對軟件其它部分做任何修改.太太提高了軟件設計的效率。實際上.在對接口函數參數的意義做出明確的規范后,其它任何人都可以參照該規范設計出新的電氣控制硬件及相應的驅動程序,集成人系統中。這也就是數控系統開放化設計的主要目的。
4 結束語
數控系統的開放化設計設計者的知識范圍和經駐密切相關.只有在充分了解現有設計技術及用戶需要,并對其近期內的發展做出預測的基礎上,運用工程設計方法,才有可能得到完善的開放化數控系統。目前對開放化的討論多著眼于系統硬件結構.操作系統及開發環境.具體如何實現開放化特別是軟件的開放化則談的很少。本文從硬件到軟件對電氣控制子系統進行了開放化設計.對此做出了有益的探索。該子系統已集成人我們開發的五軸聯動數控系統中.從使用效果來看,其開放的接口標準以及與設備無關的軟件設計有助于減少編寫數控系統主體軟件時的錯誤,有較強的適應性和可靠性。
(審核編輯: 滄海一土)
分享