最新精品久久,欧美亚洲福利,表妹免费在线观看,久久国产二区,国产三级电影网站,日本特黄久久,成人a在线视频免费观看

數(shù)控系統(tǒng)中內(nèi)嵌式PLC編程軟件的實(shí)現(xiàn)

來源:互聯(lián)網(wǎng)

點(diǎn)擊:1230

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:數(shù)控系統(tǒng) 內(nèi)嵌式PLC

      內(nèi)嵌式可編程控制器(embedued PLC)具有結(jié)構(gòu)緊湊、成本低廉等優(yōu)點(diǎn),在中小型數(shù)控系統(tǒng)中得到了廣泛的應(yīng)用,但也存在通用性不高、擴(kuò)充性不強(qiáng)以及對用戶透明度較差等問題。本文根據(jù)其工作原理,用C語言建立了內(nèi)嵌式PLC的集成編程環(huán)境,使這些問題得到了較好的解決。

    1 編程軟件的功能和數(shù)據(jù)流向

      編程軟件的主要功能是在I/O接口卡和伺服控制卡等硬件平臺(tái)上針對不同的數(shù)控系統(tǒng)來完成內(nèi)嵌式PLC的軟件編程任務(wù)。在編程軟件的主界面中,有’‘輸人定義”、‘’輸出定義”、“中間變量”、“參數(shù)設(shè)置”、“系統(tǒng)組成”、“梯形圖”、“系統(tǒng)退出”等功能項(xiàng),其中“輸人定義”和“輸出定義”用來定義輸人信號(hào)和輸出信號(hào);“中間變量”用來定義PLC邏輯程序中用到的內(nèi)部變量;“參數(shù)設(shè)置卜,用來設(shè)定數(shù)控系統(tǒng)所用到的一些參數(shù);“系統(tǒng)組成‘’的功能是把已經(jīng)定義過的輸人信號(hào)、輸出信號(hào)、中間變量以及系統(tǒng)的參數(shù)根據(jù)所設(shè)計(jì)的數(shù)控系統(tǒng)的大小有選擇地組合在一起,并根據(jù)輸人/輸出點(diǎn)數(shù)的多少建立映射區(qū)川,形成一個(gè)名字為PLC. H的磁盤文件,供其他程序調(diào)用;“梯形圖”選項(xiàng)用來對梯形圖進(jìn)行編輯和編譯,形成數(shù)控系統(tǒng)能夠識(shí)別的代碼在本系統(tǒng)中,該代碼是一個(gè)名字為CPLC.C的C語言程序。該程序能被數(shù)控程序或仿形數(shù)字化程序調(diào)用,經(jīng)過和PLC的函數(shù)庫連接形成一個(gè)完整的可執(zhí)行文件。編程軟件的數(shù)據(jù)流向如圖1所示。

    2 信號(hào)定義

      在編程軟件的主界面中選擇“輸人定義”,其下拉式菜單有兩個(gè)子功能“新建”和“打開”。“新建”就是對一塊輸人卡上的32路輸人信號(hào)進(jìn)行定義,此時(shí)屏幕上會(huì)給出提示信息,讓用戶鍵人輸人卡的基地址,基地址的范圍在000H-3FFH之間,并且不能與系統(tǒng)所占用的地址以及已經(jīng)定義過的輸人卡的地址相沖突,例如,用戶鍵人的基地址為330貝y在屏幕上從上到下順序排列出該輸人卜上的4個(gè)口地址330.331,332,333,每個(gè)口地址對應(yīng)8路輸人信號(hào),用戶可以對這些信號(hào)進(jìn)行定義,信號(hào)定義完成后,按壓F2鍵,則該輸人卡的信號(hào)以330.adr文件名存于硬盤上。“打開”是用來對已經(jīng)定義過的一塊輸人卡的信號(hào)從硬盤上調(diào)出并顯示在屏幕上以便用戶查閱和修改。用同樣的方法在“輸出定義’‘中可以完成輸出信號(hào)的定義,

    3 梯形圖的編輯和雙向鏈表的存儲(chǔ)結(jié)構(gòu)

      編程軟件的“梯形圖”選項(xiàng)用來進(jìn)行梯形圖的編輯和編譯。本系統(tǒng)將梯形圖的基本符號(hào)如動(dòng)合觸點(diǎn)、動(dòng)斷觸點(diǎn)等歸納成14種基本圖素,圖素代號(hào)為“A”-“N”,排列在屏幕右側(cè),供操作者選擇。屏幕左側(cè)為梯形圖編輯窗口,光標(biāo)可在該窗口內(nèi)全屏幕搜索定位。梯形圖的每行可編輯9列圖素操作者只需移動(dòng)淺綠色的光標(biāo)塊到合適的位置然后在此光標(biāo)塊上分別鍵人需要輸人的圖素代碼和該圖素代碼所對應(yīng)的信號(hào)代碼,即可存該位置畫出相應(yīng)的梯形圖符號(hào),并標(biāo)有信號(hào)代碼。梯形圖的編輯有全中文界面和幫助信息,可吏現(xiàn)的功能主要有:梯形圖文件存盤、裝載;圖素的繪制、插入、刪除;圖形瀏覽;梯形圖整行的插入、刪除;錯(cuò)誤檢測;梯形圖編譯等。由于梯形圖的行數(shù)是不能預(yù)知的,因此,對梯形圖的編輯采用動(dòng)態(tài)數(shù)據(jù)存儲(chǔ),以雙向鏈表數(shù)據(jù)結(jié)構(gòu)來記錄梯形圖的所有信息,把梯形圖的每行作為一個(gè)鏈結(jié),其結(jié)構(gòu)如下:

      其中,BLOCK blk[9]為結(jié)構(gòu)體數(shù)組,每一項(xiàng)順序記錄著從第1列到第9列的基本圖素信息,其第9列限定為輸出項(xiàng),BLOCK的結(jié)構(gòu)如F:

      對梯形圖的編輯可以通過對結(jié)構(gòu)體LDA的前后項(xiàng)指針*prior和*next來進(jìn)行,如圖2所示。

    圖2梯形圖雙向鏈表數(shù)據(jù)結(jié)構(gòu)圖

      雙向鏈表結(jié)構(gòu)存放在內(nèi)存的堆中,所占用的內(nèi)存空間在程序運(yùn)行期間可以動(dòng)態(tài)地變化。用兩個(gè)全局指針變量LAD*listhead和LAD*lisitail分別指向雙向鏈表的鏈頭和鏈尾,用全局性指針變量LAD*info來指向正在編輯的鏈結(jié)一般情況下,一個(gè)完整的梯形圖不可能在一個(gè)屏幕內(nèi)全部顯示出來,而只能以屏幕為單位一屏一屏地顯示(本系統(tǒng)一屏幕顯示10行),因此用fistlin來記錄屏幕當(dāng)前顯示的梯形圖起始行,用rellin表示光標(biāo)塊所在行在當(dāng)前屏幕卜的位置,如果rellin >10或rellin < 1,則把當(dāng)前屏幕的內(nèi)容更換整個(gè)梯形圖通過LAD的前項(xiàng)指針*prior和后項(xiàng)指針*nex。按照行號(hào)順序鏈結(jié)在一起。這樣,對梯形圖的各種操作,如修改、刪除、插人等就轉(zhuǎn)化為對雙向鏈表的相應(yīng)操作,例如刪除梯形圖的某行,實(shí)際卜就是把內(nèi)存中的梯形圖雙向鏈表的鏈結(jié)刪除掉,并且這西操作均可用結(jié)構(gòu)體指針的運(yùn)算來實(shí)現(xiàn)。由于雙向鏈表的每個(gè)鏈結(jié)都具有向前和向后的指針,既可向前查找,也能向后訪間,因此各類操作十分靈活方便。

    4 梯形圖的編譯

      編輯好的梯形圖,根據(jù)其雙向鏈表中的圖素代號(hào)和信號(hào)代碼,可形成各種邏輯關(guān)系。利用編譯程序、把這種邏輯關(guān)系編譯成C程序困,以便嵌入到同樣用C語言編制的數(shù)控程序或仿形數(shù)字化程序中,完成機(jī)床的順序控制。在梯形圖編譯時(shí)按照梯形圖的梯級順序進(jìn)行,編譯過程中要進(jìn)行語法檢查,主要是檢查所編譯的梯形圖足否鈳臺(tái)規(guī)定的格式,如果梯形目不符合格式要求,則會(huì)給出錯(cuò)誤信啟,同時(shí),在編譯過程中還要枝驗(yàn)梯形嘲中的信號(hào)代碼與信號(hào)定義模塊PLC。H中所定義的信號(hào)是否~致,如果不一致,則提示該信號(hào)代碼未定義。用戶通過查看編譯過程中所給出的錯(cuò)誤信息,進(jìn)行相應(yīng)的修改,直到?jīng)]有錯(cuò)誤為止。梯形圖編譯程序的流程圖如圖3所示。

    圖3梯形圍編譯程序流程圈

    5 結(jié)束語

      該編程軟件簡化了采用常規(guī)方法時(shí)要根據(jù)系統(tǒng)不同的硬件配置從底層進(jìn)行設(shè)計(jì)的繁瑣步驟,縮短了設(shè)計(jì)周期,提高丁工作效率。從其在&ldquo;數(shù)控仿形銑床&rdquo;研制過程中的使用情況來看,取得了令人滿意的效果,為系統(tǒng)的設(shè)計(jì)、安裝和調(diào)試帶來了極大的便利。

    (審核編輯: Doris)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。