劉 濤
摘要:文章針對(duì)開(kāi)放式數(shù)控機(jī)床主軸控制問(wèn)題,采用VC編譯器成功完成了PLC程序的編譯、運(yùn)行和基本功能,實(shí)現(xiàn)了開(kāi)放式數(shù)控機(jī)床主軸運(yùn)行的軟PLC控制。運(yùn)行實(shí)踐表明所開(kāi)發(fā)的系統(tǒng)界面友好、操作簡(jiǎn)單、功能齊全、運(yùn)行可靠,達(dá)到了預(yù)期邏輯控制的目的;對(duì)軟PLC的性能測(cè)試表明軟PLC的執(zhí)行速度較硬PLC有了大幅度提高,為軟PLC在開(kāi)放式數(shù)控系統(tǒng)中的應(yīng)用提供了借鑒。
關(guān)鍵詞:軟PLC;開(kāi)放式數(shù)控系統(tǒng);梯形圖
中圖分類(lèi)號(hào):TP273
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1000-8136(2009)29-0123-03
PLE是數(shù)控系統(tǒng)與數(shù)控機(jī)床間的接口,主要處理各種開(kāi)關(guān)量的控制信息。軟PLC(son PLC)是基于IPC工業(yè)控制計(jì)算機(jī)或EPC(嵌入式PC)的軟邏輯控制軟件,主要用于工業(yè)控制領(lǐng)域的開(kāi)關(guān)量邏輯控制、順序控制、定時(shí)器控制、技術(shù)控制、模擬量控制和閉環(huán)過(guò)程控制(PID控制)等。眾所周知,PLC可靠性高、抗干擾能力強(qiáng),適用于惡劣的控制現(xiàn)場(chǎng),在工業(yè)控制和其他行業(yè)得到了廣泛的應(yīng)用。然而隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展和廣泛應(yīng)用,PLC較差的通用性和兼容性及昂貴的價(jià)格制約了其發(fā)展。國(guó)際標(biāo)準(zhǔn)IEC1131的推出和實(shí)施。進(jìn)一步打破了PIE生產(chǎn)廠商產(chǎn)品互不兼容的局限性,使充分利用工業(yè)控制計(jì)算機(jī)IPE或EPC的硬件和軟件資源成為可能,表現(xiàn)為全部用軟件來(lái)實(shí)現(xiàn)傳統(tǒng)PLC的功能。研究軟PIE技術(shù)可以縮短產(chǎn)品開(kāi)發(fā)周期,提高PIE性價(jià)比,帶來(lái)巨大經(jīng)濟(jì)效益。本文利用Visual c++6.0軟件,成功開(kāi)發(fā)出了軟PLc系統(tǒng),實(shí)現(xiàn)了PLC程序的編譯、運(yùn)行和基本功能,并實(shí)現(xiàn)了開(kāi)放式數(shù)控系統(tǒng)車(chē)床主軸的軟PLC控制。
1軟PLC的開(kāi)發(fā)
本文研制的軟PLC開(kāi)發(fā)系統(tǒng)的總體流程見(jiàn)圖1,由繪制梯形圖、編譯梯形圖、生成中間文件和查找替換生成最終文件等幾個(gè)主要部分組成。
1.1梯形圖的繪制
繪制梯形圖是編程方法中最基本、最常用的方法。它與繼電器邏輯的梯形圖概念相同。表達(dá)了系統(tǒng)中全部動(dòng)作的相互關(guān)系。在繪制梯形圖時(shí)首先要知道梯形圖由哪些輸入元素和輸出元素組成。由于PLC與繼電器控制電路相比,以軟器件代替了硬器件,以軟觸點(diǎn)代替了硬觸點(diǎn)。以軟接線代替了硬接線,故其YO的使用不受次數(shù)限制。相同的I/O點(diǎn)可以在梯形圖程序中出現(xiàn)多次??梢杂糜邢薜妮斎胼敵鲈貙?shí)現(xiàn)多種邏輯控制。在得到輸入輸出元素的信息后,本文采用Vc++資源中的工具欄實(shí)現(xiàn)梯形圖的繪制。圖2為輸入輸出元素的界面圖。
1.2梯形圖的編譯
梯形圖是作為一種圖像文件顯示的。本文中采用了把梯形圖各個(gè)節(jié)點(diǎn)元素的信息存放到一個(gè)矩陣?yán)铮缓蟀凑找欢樞虼嫒〉姆椒?。這種包含了梯形圖各個(gè)節(jié)點(diǎn)元素全部信息的矩陣稱為矩陣表。
把各節(jié)點(diǎn)數(shù)據(jù)的全部信息存放到鏈表里,對(duì)于繪制、修改梯形圖及實(shí)現(xiàn)重繪非常方便。但是用鏈表存取的數(shù)據(jù)只表明了各元素繪制時(shí)間上的先后順序,而要實(shí)現(xiàn)從梯形圖到結(jié)構(gòu)化語(yǔ)言的轉(zhuǎn)化,則要借助數(shù)組來(lái)實(shí)現(xiàn)。因此必須將鏈表里的數(shù)據(jù)拷貝一份到數(shù)組中,并對(duì)其進(jìn)行操作以得到真正意義上的矩陣表。繪制完梯形圖、生成矩陣表后,在運(yùn)行程序前,先要對(duì)梯形圖進(jìn)行編譯,以檢查其中的錯(cuò)誤。
1.3從梯形圖轉(zhuǎn)化到C程序文件
轉(zhuǎn)化c程序時(shí),先將矩陣表各元素的符號(hào)地址做替換標(biāo)志字符“$”,以方便實(shí)際地址和符號(hào)地址進(jìn)行替換,生成PIE開(kāi)發(fā)系統(tǒng)可操作的地址文件。轉(zhuǎn)化時(shí)遵循“從下到上,從里而外”的原則將梯形圖各“網(wǎng)絡(luò)”由并聯(lián)最終轉(zhuǎn)換為一個(gè)串聯(lián)結(jié)構(gòu),然后針對(duì)這行梯形圖寫(xiě)結(jié)構(gòu)化if語(yǔ)句,進(jìn)而實(shí)現(xiàn)整個(gè)梯形圖到C文件的轉(zhuǎn)化。由梯形圖轉(zhuǎn)化為c文件的流程圖見(jiàn)圖3。經(jīng)過(guò)并聯(lián)處理轉(zhuǎn)換成的C程序文件稱為Csourse,c文件。如:
可以看到,每個(gè)元素變量前都有標(biāo)記字符“$”,在stop前還有多了一個(gè)“!”因?yàn)閟top作為常閉觸點(diǎn)存在。這樣就可以通過(guò)查找替換方便地把Csourse.c轉(zhuǎn)換為PLC開(kāi)發(fā)系統(tǒng)操作的地址文件address.c。
2開(kāi)放式數(shù)控系統(tǒng)的軟硬件平臺(tái)
2.1軟件平臺(tái)
基于SERCOS接口的軟件平臺(tái)要求如下:WindowsNT 4.0,至少32M內(nèi)存(一般要求64M);實(shí)時(shí)操作子系統(tǒng)Ventur CornRTX 5.0;Microsoft Visual c++6.0(或具有實(shí)時(shí)內(nèi)核的Borlandc++5.0);Soft SERCANS。其結(jié)構(gòu)體系見(jiàn)圖4所示。
2.2硬件平臺(tái)
由于微處理器性能增長(zhǎng)速度驚人,Pc機(jī)的CPU不僅用于運(yùn)動(dòng)控制和人機(jī)界面,而且有能力處理SERCOS接口的控制?;赟oft SERCANS的運(yùn)動(dòng)控制器不再需要專用的硬件和處理器,每臺(tái)控制器可插4張SERCOS接口卡,構(gòu)成4個(gè)光纜環(huán)。而對(duì)于每個(gè)光纜環(huán),Soft SERCANS可支持高達(dá)40根軸,支持的最小循環(huán)周期為500us,所以硬件平臺(tái)選擇通用PC機(jī)體系結(jié)構(gòu)。其好處在于能大大縮短軟件開(kāi)發(fā)產(chǎn)品的開(kāi)發(fā)周期和設(shè)計(jì)周期,且有龐大的軟件工具為后援。因此,以其作為數(shù)控系統(tǒng)的硬件平臺(tái)不但可以大幅度提高數(shù)控系統(tǒng)的性價(jià)比,而且還可充分利用通用微機(jī)已有軟硬件資源、分享計(jì)算機(jī)領(lǐng)域的最新成果。此外,以通用微機(jī)作為數(shù)控平臺(tái)還可獲得快速的技術(shù)進(jìn)步:當(dāng)PC機(jī)升級(jí)換代時(shí),數(shù)控系統(tǒng)也可相應(yīng)升級(jí)換代,從而長(zhǎng)期保持技術(shù)上的優(yōu)勢(shì);同時(shí)還為軟件的開(kāi)發(fā)和擴(kuò)展提供了優(yōu)良的平臺(tái)。
2.3軟PLC的軟件平臺(tái)
軟PLC由開(kāi)發(fā)系統(tǒng)和運(yùn)行系統(tǒng)兩部分組成。開(kāi)發(fā)系統(tǒng)就是用戶按照要求繪制梯形圖,然后將梯形圖轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)C程序,這樣可以利用vc++編譯器將其編譯為目標(biāo)代碼[10];運(yùn)行系統(tǒng)就是運(yùn)行開(kāi)發(fā)系統(tǒng)通過(guò)Vc++程序編譯鏈接成的可執(zhí)行文件,得到期望的輸出結(jié)果,然后用此結(jié)果反應(yīng)I/O狀態(tài)的改變。基于SERCOS接口的軟PLC其軟件驅(qū)動(dòng)器仍為Soft SERCANS。SoftSERCANS是PLC與底層運(yùn)動(dòng)執(zhí)行部件的接口(SERCOS接口的國(guó)際標(biāo)準(zhǔn)化已經(jīng)完全實(shí)現(xiàn)向底層運(yùn)動(dòng)執(zhí)行部件的開(kāi)放性),而Soft PLC作為Soft SERCANS與用戶界面及網(wǎng)絡(luò)通訊等模塊之間的接口的一部分,為用戶開(kāi)發(fā)出專用的數(shù)控軟件提供了一個(gè)最簡(jiǎn)潔的平臺(tái)。見(jiàn)圖5所示的為軟PLG軟件體系結(jié)構(gòu)。
3數(shù)控機(jī)床主軸控制的軟PLC實(shí)現(xiàn)
本文通過(guò)一個(gè)基于數(shù)控機(jī)床主軸控制的實(shí)例來(lái)驗(yàn)證開(kāi)發(fā)的軟PLC系統(tǒng)。見(jiàn)圖6所示的是主軸運(yùn)動(dòng)控制的梯形圖。
主軸可以在手動(dòng)和自動(dòng)方式下工作,其旋轉(zhuǎn)有正轉(zhuǎn)和逆轉(zhuǎn)兩種情況。手動(dòng)和自動(dòng)兩種工作方式互鎖,正轉(zhuǎn)和逆轉(zhuǎn)也互鎖。不管主軸處于正轉(zhuǎn)還是逆轉(zhuǎn),當(dāng)停止旋鈕開(kāi)關(guān)接通時(shí)。主軸都會(huì)停轉(zhuǎn)。表1所列的就是要用到的一些元素。
按照表1的對(duì)應(yīng)關(guān)系,初始化輸入輸出元素后,就可以開(kāi)始繪制梯形圖了。完整的梯形圖見(jiàn)圖6。經(jīng)過(guò)編譯后的運(yùn)行界面見(jiàn)圖7。點(diǎn)擊“開(kāi)始”按鈕,讀入address.c程序后,用鼠標(biāo)左鍵點(diǎn)擊輸入框各個(gè)指示燈,讓它發(fā)亮(變黑),PLC程序就開(kāi)始運(yùn)行。要實(shí)現(xiàn)正確的邏輯控制,必須通過(guò)單擊鼠標(biāo)左鍵給各變量重新賦值。圖8所示的界面就是當(dāng)手動(dòng)信號(hào)為ON、主軸順轉(zhuǎn)時(shí),梯形圖的輸出情況。從此圖可以看到,手動(dòng)和自動(dòng)互鎖,因?yàn)楫?dāng)手動(dòng)信號(hào)HS.M和自動(dòng)信號(hào)AS.M都為ON時(shí),只有HAND有輸出,AUTO沒(méi)有,當(dāng)然這與先給手動(dòng)信號(hào)置“I”有關(guān)。同理,可以看出主軸順轉(zhuǎn)和逆轉(zhuǎn)互鎖。
4軟PLC的速度測(cè)試
本文開(kāi)發(fā)的軟PIE系統(tǒng)把梯形圖掃描語(yǔ)言變成了結(jié)構(gòu)化c語(yǔ)言,并采用if語(yǔ)句成功實(shí)現(xiàn)了所有邏輯。由于結(jié)構(gòu)化if語(yǔ)句執(zhí)行速度非???,因此軟PIE的執(zhí)行速度也相應(yīng)地得到了提高。為了驗(yàn)證這一點(diǎn),本文采用數(shù)字示波器結(jié)合PTX實(shí)時(shí)子系統(tǒng)提供的實(shí)時(shí)函數(shù)對(duì)3800多行控制機(jī)床主軸的if語(yǔ)句進(jìn)行了測(cè)試。結(jié)果顯示其執(zhí)行時(shí)間為528us(一般的PLE掃描時(shí)間為幾毫秒到幾十毫秒)??梢?jiàn),軟PLC的執(zhí)行速度得到了大幅度提高。
5結(jié)論
本文針對(duì)開(kāi)放式數(shù)控系統(tǒng)的主軸控制的軟PLC實(shí)現(xiàn)問(wèn)題進(jìn)行了研究,主要結(jié)論如下:
(1)利用vC++編譯器成功開(kāi)發(fā)出了軟PLC系統(tǒng),并實(shí)現(xiàn)了PLC程序編譯、運(yùn)行和基本功能。
(2)數(shù)控機(jī)床主軸控制的運(yùn)行實(shí)例證明所開(kāi)發(fā)的軟PLC系統(tǒng)能準(zhǔn)確可靠地運(yùn)行,達(dá)到了預(yù)期邏輯控制的目的,表明所開(kāi)發(fā)的軟PLC系統(tǒng)在開(kāi)放式數(shù)控系統(tǒng)中應(yīng)用穩(wěn)定,經(jīng)數(shù)字示波器結(jié)合FI'X實(shí)時(shí)子系統(tǒng)提供的實(shí)時(shí)函數(shù)測(cè)試,表明軟PLC的執(zhí)行速度得到了大幅度提高。