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