0 引言
隨著開放式數(shù)控系統(tǒng)的發(fā)展,采用軟件控制縮小硬件規(guī)模、降低成本是目前高端數(shù)控機床的發(fā)展趨勢。軟PLC以軟件形式實現(xiàn)了傳統(tǒng)PLC的控制功能,具有開放的體系結(jié)構(gòu)、強大的網(wǎng)絡通訊功能和更強的數(shù)據(jù)處理能力等特點。目前,國外已有成熟的軟PLC產(chǎn)品,如:Servo Works軟件中的PLC引擎模塊、SOFTPLC公司的SoftPLC、西門子的SIMATIC WinAC等等。國內(nèi)對軟PLC也進行了研究,取得了一些進展。文獻給出了一種基于DSP/BIOS嵌入式的軟PLC執(zhí)行系統(tǒng)構(gòu)架,文獻提出了一種基于tLC/OS.II的軟PLC的實現(xiàn)方法,從一定程度上提升了軟PLC的穩(wěn)定性,但他們采用的是專用操作系統(tǒng),不符合開放的要求和趨勢,且軟PLC控制系統(tǒng)的功能和穩(wěn)定性與國外相比有很大差距。
五軸數(shù)控銑床具有很高的加工精度和效率,能夠一次性完成三軸銑床很難加工的大型、復雜的自由曲面,但需要其軟PLC控制系統(tǒng)更快地做出響應。因此,性能穩(wěn)定的軟PLC和更快的數(shù)據(jù)傳輸速率非常重要。文獻提出了一種基于SERCOS接口的軟PLC系統(tǒng),但未對軟PLC運行系統(tǒng)深人分析,文獻則詳細描述了軟PLC多任務的實現(xiàn)方法,但未給出實現(xiàn)函數(shù)等細節(jié)。因此,本文針對上述問題對五軸數(shù)控銑床的軟PLC控制系統(tǒng)進行了研究。
1 軟PLC控制系統(tǒng)的總體結(jié)構(gòu)
1.1 軟件平臺的選擇
與其它開放的操作系統(tǒng)相比,Windows具有豐富的軟件資源和極高的市場占有率,有利于多任務軟件的開發(fā)。但它不是實時操作系統(tǒng),無法滿足軟PLC實時性的要求歸j。可向WindowsXP系統(tǒng)內(nèi)核嵌入實時擴展子系統(tǒng)RTX(Real—Time Extension)解決實這一問題。所以本文選用WindowsXP+RTX5.0作為軟PLC的開發(fā)和運行的軟件平臺,既符合開放的要求,又能滿足數(shù)控系統(tǒng)和軟PLC的實時性。
1.2 軟PLC控制系統(tǒng)的總體結(jié)構(gòu)
五軸數(shù)控銑床軟PLC的控制流程如圖1所示。當有加工信息輸入時,首先軟CNC進行分析、譯碼,然后將M、S、T等開關(guān)量信息交由軟PLC進行處理,最后將CPU處理完的開關(guān)量信息通過I/O接口輸出,通過控制主電路電器元件通斷來驅(qū)動銑床部件動作。
圖1五軸數(shù)控銑床軟PLC的控制流程
軟PLC控制系統(tǒng)由開發(fā)系統(tǒng)和運行系統(tǒng)兩部分組成。開發(fā)系統(tǒng)是一個標準通用的開發(fā)環(huán)境,采用國際標準IEC61131.3中的五種開發(fā)語言編寫用戶程序,利用通信接口模塊將可執(zhí)行的目標代碼傳送給運行系統(tǒng)。運行系統(tǒng)是整個軟PLC控制的核心,負責解釋和執(zhí)行用戶程序,將開關(guān)量控制信息輸出給電氣部分,以驅(qū)動設(shè)備動作。
合理的設(shè)計軟PLC的結(jié)構(gòu)有利于提升控制系統(tǒng)的穩(wěn)定性。根據(jù)軟件組件的思想,可將軟PLC控制系統(tǒng)分為幾個具有獨立功能的模塊,模塊間定義規(guī)范的接口。五軸數(shù)控銑床軟PLC控制系統(tǒng)總體結(jié)構(gòu)如圖2所示。
圖2軟PLC控制系統(tǒng)結(jié)構(gòu)框圖
由于軟PLC開發(fā)系統(tǒng)只是提供一個開發(fā)環(huán)境和控制方案,而目標代碼的執(zhí)行是由運行系統(tǒng)完成,因此下面重點對軟PLC運行系統(tǒng)各模塊進行分析。
2 軟PLC運行系統(tǒng)的設(shè)計
2.1 系統(tǒng)管理模塊
系統(tǒng)管理模塊是軟PLC運行系統(tǒng)的“大腦”,用于運行時分配系統(tǒng)資源,調(diào)度任務線程并監(jiān)控系統(tǒng)的運行狀態(tài)。在一個掃描周期內(nèi),如何調(diào)度各任務線程是保證軟PLC穩(wěn)定運行的關(guān)鍵。本文利用RTXAPI函數(shù)庫中提供的RtSetThreadPriority()函數(shù)根據(jù)執(zhí)行的先后順序設(shè)定各任務線程優(yōu)先級,當某一任務事件觸發(fā)后,線程隊列中等級最高的線程優(yōu)先獲得CPU時間片被執(zhí)行,從而實現(xiàn)任務線程的合理調(diào)度。任務線程執(zhí)行過程如圖3圖示。
圖3軟PLC任務線程執(zhí)行過程
2.2 通信接口模塊
通訊接口模塊用于建立軟PLC運行系統(tǒng)與開發(fā)系統(tǒng)、軟CNC、人機操作面板以及其它應用程序進行數(shù)據(jù)通訊任務。其中,軟PLC開發(fā)系統(tǒng)與運行系統(tǒng)采用COM組件方式進行通訊,即開發(fā)系統(tǒng)作為客戶端向運行系統(tǒng)傳送目標代碼,運行系統(tǒng)作為服務器端接收目標代碼并反饋軟PLC的運行狀態(tài)。
軟PLC運行系統(tǒng)與軟CNC、人機操作面板通過訪問自創(chuàng)建的共享內(nèi)存區(qū)單元PLC—CNCbuffer、PLC—Platebuffer進行數(shù)據(jù)交換。由Communication類來實現(xiàn)上述通信任務。
2.3 存儲模塊
存儲模塊用來保存軟PLC運行過程中所需的數(shù)據(jù)、操作指令和數(shù)據(jù)地址,可表示為:存儲模塊=數(shù)據(jù)地址+數(shù)據(jù)+操作指令,因此將其分為三個子模塊:用戶程序存儲模塊、數(shù)據(jù)存儲模塊和指令存儲模塊。
用戶程序存儲模塊用于保存開發(fā)系統(tǒng)編譯完成的目標代碼。這些目標代碼是C/C++語句;例如ANDx0操作對應如下C++代碼:
{strcpy(m—statement.m—basicorder.a(chǎn)ddress[O],”x0”); //提取軟元件X0中保存的數(shù)據(jù)m—statement.m—basicorder.funcname=INSTRUCTION—AndBit;//提供對數(shù)據(jù)Xo的操作p_execute一>pstru—fun·clist一>insertAtBack(m—statement); //更新鏈表數(shù)據(jù)域中的數(shù)據(jù)}
數(shù)據(jù)存儲模塊用于存儲輸入/輸出端子的狀態(tài)、內(nèi)部繼電器、定時器的狀態(tài)和功能塊邏輯運算的中間結(jié)果等數(shù)據(jù)。這些數(shù)據(jù)作為全局變量供軟PLC控制系統(tǒng)各模塊進行訪問和修改。在執(zhí)行用戶程序過程中,CPU根據(jù)指令存儲模塊中指令參數(shù)的地址來訪問數(shù)據(jù)存儲模塊區(qū),獲取數(shù)據(jù)進行邏輯運算。
指令存儲模塊用于存儲PLC指令。每條指令對應一個C++函數(shù),函數(shù)中封裝了對數(shù)據(jù)的操作。例如:邏輯與指令對應函數(shù)ReadInputAndBit(),具體實現(xiàn)如下:
2.4 程序執(zhí)行模塊
程序執(zhí)行模塊用于解釋和執(zhí)行目標代碼,通過調(diào)用相應的C++函數(shù)對堆棧進行操作,獲取控制信息。下面以五軸數(shù)控銑床主軸正轉(zhuǎn)梯形圖程序(圖4)說明軟PLC指令的執(zhí)行過程。
圖4五軸數(shù)控銑床主軸正轉(zhuǎn)梯形圖程序
圖3所示梯形圖程序執(zhí)行過程如下:
第一步:清除堆棧stack,遇到X0串聯(lián),將X0壓人棧頂;第二步:遇到xl串聯(lián),彈出棧頂元素,將xl和X0邏輯或運算的結(jié)果壓人棧頂;第三步:遇到并聯(lián)分支點A;創(chuàng)建臨時變量temp=0,將棧頂元素的值賦給temp,并彈出棧頂元素;第四步:遇到)(3串聯(lián),將)(3壓人棧頂;第五步:遇到X4串聯(lián),彈出棧頂元素)(3,將X4與X3進行邏輯或運算,結(jié)果壓人棧頂;第六步:遇到并聯(lián)分支點B,彈出棧頂元素,將棧頂元素與temp進行邏輯或運算,結(jié)果賦給temp;第七步:遇到Y(jié)0串聯(lián),將Y0壓入棧頂;第八步:遇到Y(jié)1串聯(lián),彈出棧頂元素Y0,將Yl和Y0邏輯與運算的結(jié)果壓入棧頂;第九步:遇到并聯(lián)分支點C;彈出棧頂元素,將棧頂元素與temp進行邏輯或運算,結(jié)果賦給temp;第十步:遇到x2串聯(lián),將temp與X2邏輯與運算的結(jié)果壓入棧頂;第十一步:遇到Y(jié)0線圈,將棧頂元素的值賦給Y0并彈出堆棧;第十二步:將Y0值輸出,清除堆棧stack。程序執(zhí)行模塊不斷循環(huán)解釋執(zhí)行軟PLC指令,直到執(zhí)行END指令。軟PLC程序執(zhí)行模塊工作過程如圖5所示。注意:這里的跳轉(zhuǎn)指令不是指PLC系統(tǒng)中的跳轉(zhuǎn)指令,而是指梯形圖程序中復雜的并聯(lián)分支塊引起的跳轉(zhuǎn)。
圖5軟PLC解釋和執(zhí)行指令流程圖
2.5 I/O接口模塊
I/O接口模塊是軟PLC與輸入輸出設(shè)備進行數(shù)據(jù)交換的通道,用于將I/O板卡采集到的機床信號寫進輸人映像寄存器,同時將輸出映像寄存器中軟元件的狀態(tài)輸出給端子。I/O讀寫過程分為兩步:第一,根據(jù)五軸數(shù)控銑床電氣I/O端口分配表在軟PLC系統(tǒng)內(nèi)存中建立對應物理I/O節(jié)點變量,完成端口配置;第二,調(diào)用I/O接口模塊內(nèi)部的讀寫函數(shù),在下一個掃描周期開始將軟元件狀態(tài)輸出,完成數(shù)據(jù)交換。
為智能讀取數(shù)據(jù)和進一步提高I/O接口物理層的開放性,軟PLC采用圖6所示結(jié)構(gòu)對I/O數(shù)據(jù)存儲區(qū)的變量統(tǒng)一編址。
圖6按字節(jié)、字和雙字方式編址
I/O接口模塊采用按位、字節(jié)、字和雙字的尋址方式向讀寫函數(shù)提供操作數(shù)地址,并把I/O數(shù)據(jù)存儲器變量區(qū)劃分為6個區(qū)域,每個區(qū)域存儲相應變量數(shù)據(jù)。其中,按位尋址的尾部編址采用了字節(jié)號加分隔符加位號的形式。
3 軟PLC控制系統(tǒng)的接口設(shè)計
SERCOS(Serial Real—time Communication System)是一種用于CNC和數(shù)字伺服傳動系統(tǒng)之間通信的數(shù)字接口和數(shù)據(jù)交換協(xié)議,能夠?qū)崿F(xiàn)工業(yè)控制計算機與數(shù)字伺服系統(tǒng)、傳感器和可編程控制器I/O口之間的實時數(shù)據(jù)通信。SERCOS—III是SERCOS發(fā)展的最新階段,采用光纖傳輸,速率高達100Mbit/s;可利用軟件SoftSERCANS對主站進行控制,縮減了數(shù)控系統(tǒng)的硬件;此外還具有雙環(huán)型拓撲結(jié)構(gòu)¨引,增強了系統(tǒng)的安全性。軟PLC控制系統(tǒng)采用sERCOS一Ⅲ接口可縮減數(shù)據(jù)采集的時間,進一步提升系統(tǒng)的響應能力、開放性和可靠性;赟ERCOS.III接口的開放式數(shù)控系統(tǒng)結(jié)構(gòu)如圖7所示。
圖7 基于SERCOS·Ⅲ接口的開放式數(shù)控系統(tǒng)結(jié)構(gòu)
圖7 基于SERCOS·Ⅲ接口的開放式數(shù)控系統(tǒng)結(jié)構(gòu)SERCOS.III采用報文形式實現(xiàn)主從站的通訊,報文有三種類型:主站數(shù)據(jù)報文MDT、應答報文AT和以太網(wǎng)報文。其工作時序如圖8所示。
圖8 SERCOS-Ⅲ工作時序
SERCOS-III主站在接收到AT后將所有報文信息存儲到SofiSERCANS創(chuàng)建的共享緩存區(qū)。軟PLC和軟CNC通過指針訪問該存儲單元獲取所需數(shù)據(jù)。類CPLCIOControl提供了訪問該共享區(qū)域的接口。
4 軟PLC運行系統(tǒng)的仿真測試
軟4牛-3己臺為WindowsXP+RTX5.0,硬件平臺為PC。利用VC++6.0編輯開發(fā)的軟PLC運行系統(tǒng)仿真界面如圖9所示。運行軟PLC運行系統(tǒng),當點擊主軸正轉(zhuǎn)按鈕時,所對應的軟邏輯在輸入映像區(qū)的狀態(tài)發(fā)生改變,通過調(diào)用程序中的指令,將主軸正轉(zhuǎn)控制信號輸出,主軸正轉(zhuǎn)指示燈亮。
經(jīng)圖10所示五軸數(shù)控銑床測試,軟PLC控制系統(tǒng)實現(xiàn)了對五軸數(shù)控銑床開關(guān)量的控制。
5 結(jié)束語
通過研究傳統(tǒng)PLC對五軸數(shù)控銑床開關(guān)量信號的控制,利用C++面向?qū)ο蠹夹g(shù)和模塊化的思想編輯開發(fā)了軟PLC控制系統(tǒng),實現(xiàn)了對五軸數(shù)控銑床開關(guān)量的控制,進一步增強了數(shù)控系統(tǒng)的開放性,促進了全軟件開放式數(shù)控系統(tǒng)和軟PLC技術(shù)的進一步發(fā)展。
核心關(guān)注:拓步ERP系統(tǒng)平臺是覆蓋了眾多的業(yè)務領(lǐng)域、行業(yè)應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業(yè)務領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標題:五軸數(shù)控銑床軟PLC控制系統(tǒng)的研究
本文網(wǎng)址:http://www.ezxoed.cn/html/support/11121513871.html