隨著計(jì)算機(jī)軟、硬件技術(shù)的飛速發(fā)展,計(jì)算機(jī)及其外圍設(shè)備的性能價(jià)格比、平均無故障率等技術(shù)指標(biāo)均優(yōu)于專用控制器,在計(jì)算機(jī)上以軟件實(shí)現(xiàn)成為新的發(fā)展熱點(diǎn),即所謂的7‘。目前,歐美等西方國家都把作為一個(gè)重點(diǎn)投資對象進(jìn)行研究開發(fā),已經(jīng)投入市場的產(chǎn)品較多,如德國公司的、法國公司的以及公司的等0(1.目前國內(nèi)有關(guān)部門也正著手研究開發(fā)具有自主版權(quán)的中文產(chǎn)品。這些產(chǎn)品多在或操作系統(tǒng)中嵌入某一種實(shí)時(shí)操作系統(tǒng),來滿足對實(shí)時(shí)性的要求。操作系統(tǒng)及實(shí)時(shí)平臺(tái)的售價(jià)或版權(quán)費(fèi)等在開發(fā)成本中占有一半以上的比例。
是一種免費(fèi)的、開放內(nèi)核源代碼的實(shí)時(shí)操作系統(tǒng),對于開發(fā)有自主版權(quán)的是一個(gè)較為理想的選擇。
文章在操作系統(tǒng)基礎(chǔ)上,借助于圖形支持系統(tǒng)開發(fā)了一種軟件‘,并在自行開發(fā)的型五軸聯(lián)動(dòng)數(shù)控系統(tǒng)中得到了成功的應(yīng)用。
系統(tǒng)任務(wù)調(diào)度機(jī)制是基于操作系統(tǒng)并可運(yùn)行于多種硬件平臺(tái)的位硬實(shí)時(shí)操作系統(tǒng)。它通過修改內(nèi)核的硬件層,在內(nèi)核和硬件之間實(shí)現(xiàn)了一個(gè)小而高效的實(shí)時(shí)內(nèi)核,通過中斷仿真技術(shù)將內(nèi)核與硬件中斷控制器隔離,并在實(shí)時(shí)內(nèi)核的基礎(chǔ)上形成了微型實(shí)時(shí)系統(tǒng),而內(nèi)核僅作為實(shí)時(shí)系統(tǒng)最低優(yōu)先級的任務(wù)運(yùn)行。對于普通的硬件結(jié)構(gòu),擁有出色的實(shí)時(shí)性能和穩(wěn)定性,無論系統(tǒng)負(fù)載如何,其最大中斷延遲時(shí)間不超過。O,最大任務(wù)切換誤差小于)。O.正是由于這種卓越的實(shí)時(shí)性能,在嵌入式設(shè)備以及實(shí)時(shí)性要求高的場合有很好的應(yīng)用前景。
作者在工控機(jī)平臺(tái)上,基于實(shí)時(shí)操作系統(tǒng)開發(fā)了基于的軟件的研究與開發(fā)游華云葉佩青楊開明汪勁松清華大學(xué)精密儀器與機(jī)械學(xué)系制造工程研究所,北京實(shí)時(shí)操作系統(tǒng)的軟件‘,既可以作為一個(gè)獨(dú)立模塊和不同的系統(tǒng)協(xié)同工作,也可以嵌入到型數(shù)控系統(tǒng)內(nèi)部運(yùn)行在同一臺(tái)計(jì)算機(jī)上,其實(shí)時(shí)性和可靠性已經(jīng)在國產(chǎn)和立式加工中心上得到了驗(yàn)證。
軟件數(shù)控系統(tǒng)計(jì)算機(jī)工程與應(yīng)用型數(shù)控系統(tǒng),該數(shù)控系統(tǒng)具有實(shí)時(shí)性和多任務(wù)的特性。在機(jī)床運(yùn)動(dòng)控制過程中,數(shù)控系統(tǒng)需要完成軌跡插補(bǔ)、位置控制等任務(wù)。其中,實(shí)現(xiàn)了一個(gè)基于固定優(yōu)先級的搶先調(diào)度機(jī)制的實(shí)時(shí)多任務(wù)內(nèi)核,數(shù)控系統(tǒng)執(zhí)行的任務(wù)按照優(yōu)先級高低主要有:用戶控制命令,數(shù)控系統(tǒng)接收來自控制面板按鈕、鍵盤、其他輸入設(shè)備的輸入指令保存到命令寄存器,將執(zhí)行結(jié)果保存在狀態(tài)寄存器中;伺服更新,計(jì)算各坐標(biāo)軸新的命令位置,獲取當(dāng)前的實(shí)際位置,并根據(jù)兩者之間的差計(jì)算伺服命令輸出;實(shí)時(shí)任務(wù)中斷,通過實(shí)時(shí)中斷執(zhí)行數(shù)控程序,對數(shù)控程序中的運(yùn)動(dòng)指令進(jìn)行計(jì)算,輸出下一運(yùn)動(dòng)序列的插補(bǔ)數(shù)據(jù);后臺(tái)任務(wù),在每伺服周期沒有高優(yōu)先級任務(wù)執(zhí)行時(shí),掃描命令寄存器并執(zhí)行新的用戶命令,按照優(yōu)先級執(zhí)行各級用戶程序,非實(shí)時(shí)數(shù)據(jù)更新等。
系統(tǒng)利用硬實(shí)時(shí)的特性實(shí)現(xiàn)對任務(wù)的調(diào)度和軟硬件同步。每次任務(wù)調(diào)度由一次伺服中斷開始。系統(tǒng)首先運(yùn)行優(yōu)先級高的任務(wù),接收用戶命令,伺服更新。然后根據(jù)實(shí)時(shí)中斷任務(wù)的運(yùn)行頻度啟動(dòng)實(shí)時(shí)中斷任務(wù)。如圖所示,每三次伺服中斷執(zhí)行一次實(shí)時(shí)中斷任務(wù),其他時(shí)間運(yùn)行后臺(tái)任務(wù)。通過這種固定優(yōu)先級的調(diào)度機(jī)制,時(shí)間得到了合理的分配,使得優(yōu)先級高的任務(wù)能夠得到及時(shí)執(zhí)行,保證了整個(gè)系統(tǒng)的安全有效執(zhí)行。
圖/數(shù)控系統(tǒng)的任務(wù)調(diào)度軟件的實(shí)現(xiàn)軟件的功能描述軟件采取循環(huán)掃描工作機(jī)制。對于不同的程序掃描周期一般在之間。
在每個(gè)掃描周期主要完成以下任務(wù):自診斷,首先對寄存器單元、輸入輸出信號等進(jìn)行故障診斷,若自診斷正常便繼續(xù)掃描過程,一旦發(fā)現(xiàn)故障或異常則轉(zhuǎn)入異常處理程序,保存現(xiàn)場工作狀態(tài)、關(guān)閉全部輸出、停機(jī)并顯示出錯(cuò)信息。
與通信,掃描通信接口,如有通信請求便響應(yīng)處理。
接收并執(zhí)行來自的起動(dòng)、停止、變量設(shè)置等命令。
掃描輸入點(diǎn),讀入各輸入點(diǎn)的狀態(tài)和數(shù)據(jù),如開關(guān)的通斷狀態(tài)、轉(zhuǎn)換值、碼數(shù)據(jù)等,并把這些狀態(tài)值和數(shù)據(jù)保存到中間變量中,用于解算用戶邏輯。在下一掃描周期再對這些中間變量進(jìn)行刷新。
解算用戶邏輯,即執(zhí)行用戶程序。從用戶程序第一條指令開始,按用戶程序進(jìn)行邏輯判斷和算術(shù)運(yùn)算。在一個(gè)掃描周期內(nèi),某個(gè)輸入點(diǎn)的狀態(tài)不管外部實(shí)際情況是否已經(jīng)變化,其對應(yīng)的中間變量總保持不變,以保證運(yùn)算結(jié)果的穩(wěn)定。
輸出刷新,將本次掃描過程中解算邏輯的最新結(jié)果送到輸出模塊取代前一次掃描解算的結(jié)果,直到用戶程序結(jié)束為止。
依次完成上述五步操作后又從自診斷開始進(jìn)行下一輪掃描。如此不斷地循環(huán)掃描,實(shí)現(xiàn)對電氣設(shè)備的連續(xù)控制。
軟件依賴的硬件結(jié)構(gòu)從計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)可知,軟件和硬件在邏輯上是等效的。
軟件的邏輯計(jì)算、算術(shù)運(yùn)算等均由軟件來實(shí)現(xiàn),但它與機(jī)床之間的信號傳遞則必須通過輸入輸出模塊實(shí)現(xiàn)。因此,軟件所依賴的外部設(shè)備主要是接口。
目前,所有系列可尋址的開關(guān)量和模擬量接口設(shè)備,在軟件中均可使用。只需向配置工具提供相應(yīng)的訪問地址范圍,由配置工具對地址進(jìn)行內(nèi)存映射。這樣設(shè)計(jì)優(yōu)點(diǎn)在于采用工業(yè)上通用的設(shè)備,縮短開發(fā)周期,提高系統(tǒng)可靠性。圖為系統(tǒng)的硬件結(jié)構(gòu)圖,其接口部分為計(jì)算機(jī)通用接口。
圖! 硬件結(jié)構(gòu)圖軟件的軟件實(shí)現(xiàn)的軟件實(shí)現(xiàn)分兩個(gè)部分,其一是系統(tǒng)軟件,是得以運(yùn)行的核心部分;其二是用戶編制的程序。對于用戶編制的程序,系統(tǒng)提供了個(gè)不同的優(yōu)先級,用戶可以根據(jù)實(shí)際需要分配機(jī)床各電氣模塊的優(yōu)先級,即在中分別編制不同電氣模塊的控制程序。
系統(tǒng)軟件系統(tǒng)軟件用來管理、協(xié)調(diào)不同優(yōu)先級的揮的軟硬件功能,方便用戶對的管理和調(diào)試。
系統(tǒng)軟件主要包括以下功能:系統(tǒng)初始化。初始化完成輸入、輸出單元地址定義,命令寄存器、狀態(tài)寄存器定義,定時(shí)器、計(jì)數(shù)器及其他中間變量的定義和初始值設(shè)定。
系統(tǒng)自診斷。
命令識(shí)別與處理,對來自操作面板、鍵盤的每一個(gè)命令加以解釋,執(zhí)行相應(yīng)操作,記錄執(zhí)行狀態(tài)。
用戶程序編譯,對用戶程序進(jìn)行語法檢查,發(fā)現(xiàn)錯(cuò)誤便返回提示信息,無誤則編譯成系統(tǒng)可執(zhí)行代碼。
用戶程序編制用戶程序是用戶根據(jù)系統(tǒng)控制的需要使用的程序語言編寫的。國際電工委員會(huì)制定的國際標(biāo)準(zhǔn)中規(guī)定了在中使用的五種編程語言:順序功能計(jì)算機(jī)工程與應(yīng)用功能語句指令啟動(dòng)邏輯與邏輯或邏輯非輸出計(jì)時(shí)計(jì)數(shù)移位主控繼電器起始,主控繼電器結(jié)束,置位復(fù)位圖、功能塊圖、梯形圖、指令表及結(jié)構(gòu)化文體。其中梯形圖和指令表是最通用的編程語言。
考慮到軟件的可移植性,系統(tǒng)參照標(biāo)準(zhǔn)制定了用戶程序的編程規(guī)范,借助于系統(tǒng)上的小型圖形開發(fā)系統(tǒng),7872,為用戶提供了圖形化的編程工具,用戶可以選擇指令表和梯形圖兩種方式編制用戶程序。
梯形圖梯形圖是中應(yīng)用最廣泛的一種編程方式。梯形圖中采用了繼電器線路的一些圖形符號,這些圖形符號稱之為編程元件,每一個(gè)編程元件對應(yīng)一個(gè)編號。系統(tǒng)對常用的編程元件建立了一個(gè)可編輯的元件庫。采取梯形圖編程時(shí),系統(tǒng)首先從元件庫中提取出所有元件,用戶只需在圖形界面上使用鍵盤或鼠標(biāo)選取元件,并進(jìn)行連線,即可完成編程。系統(tǒng)編程元件庫部分元件符號如表所示。
梯形圖編程元件指令表指令表類似于匯編語言程序,每一語句由操作碼和操作數(shù)組成。操作碼即編程指令,表列出了系統(tǒng)采用的基本編程指令。操作數(shù)給出了執(zhí)行操作碼所需的數(shù)據(jù),可能是編程元件的編號或常數(shù),代表了輸入、輸出繼電器、中間繼電器、定時(shí)器、計(jì)數(shù)器以及定時(shí)器、計(jì)數(shù)器的設(shè)定值等。
表! 31基本指令用戶可以根據(jù)需要選擇編程方式,系統(tǒng)還提供了梯形圖和指令表相互轉(zhuǎn)換的功能。
計(jì)時(shí)器和計(jì)數(shù)器在初始化階段為用戶分配個(gè)位定時(shí)器和個(gè)位計(jì)數(shù)器,分別以指定編號索引。編程時(shí)只需指定一個(gè)索引編號并設(shè)置時(shí)間常數(shù)或計(jì)數(shù)常數(shù),在適當(dāng)?shù)膱龊嫌|發(fā)定時(shí)器或計(jì)數(shù)器。不允許在不同優(yōu)先級的用戶程序中使用同一個(gè)計(jì)時(shí)器或計(jì)數(shù)器。
用戶程序的編譯接受用戶輸入的梯形圖或者指令表后,對程序進(jìn)行語法檢查,如果沒有錯(cuò)誤,系統(tǒng)將其編譯成系統(tǒng)的可加載模塊,并將其加載到系統(tǒng)中,從而實(shí)現(xiàn)和系統(tǒng)內(nèi)核的連接。
類似于其他控制系統(tǒng)中采用的FGHIAJ,系統(tǒng)采用了一個(gè)獨(dú)立運(yùn)行的守護(hù)進(jìn)程來監(jiān)視各優(yōu)先級的掃描過程是否超過規(guī)定時(shí)間,避免由于程序執(zhí)行進(jìn)入死循環(huán)而造成整個(gè)系統(tǒng)癱瘓。若超過規(guī)定的時(shí)間,守護(hù)進(jìn)程將停止所有輸入輸出操作,向發(fā)出報(bào)警信息,等待操作人員作相應(yīng)處理。
軟件和外部通信為了便于在和數(shù)控系統(tǒng)之間建立通信聯(lián)系,系統(tǒng)設(shè)計(jì)階段為軟件模塊建立了命令寄存器表和狀態(tài)寄存器表以及數(shù)據(jù)寄存器表,這些寄存器表表征了絕大多數(shù)機(jī)床電氣特征,是和之間的通信接口,由系統(tǒng)在后臺(tái)負(fù)責(zé)刷新寄存器表。這些寄存器表可以方便地映射到計(jì)算機(jī)的內(nèi)存單元中,實(shí)現(xiàn)和之間高速通信。利用這種數(shù)據(jù)結(jié)構(gòu)也可方便地通過網(wǎng)絡(luò)、串行通信和其他或之間進(jìn)行數(shù)據(jù)傳送。
結(jié)束語在飛速發(fā)展的計(jì)算機(jī)軟硬件技術(shù)的支撐下,軟件是可編程控制器的一個(gè)發(fā)展趨勢,其突出的特點(diǎn)是以通用的計(jì)算機(jī)及其外圍設(shè)備代替專用控制器,結(jié)構(gòu)開放,開發(fā)周期短、成本低。