西門子s7-1500CPU
RT-Linux的體系結(jié)構(gòu)
RT-Linux是基于Linux系統(tǒng)并可運行于多種硬件平臺的32位硬實時操作系統(tǒng)(hardreal-timeoperatingsystem)。
它繼承了MERT系統(tǒng)的設(shè)計思想,即以通用操作系統(tǒng)為基礎(chǔ),在同一操作系統(tǒng)中既提供嚴(yán)格意義上的實時服務(wù),又提供所有的標(biāo)準(zhǔn)POSIX服務(wù)。RT-Linux源代碼公開,易于修改,使系統(tǒng)成本降低,源代碼的公開使數(shù)控系統(tǒng)的開發(fā)擺脫了對國外軟件公司的依賴,有利于提高數(shù)控軟件國產(chǎn)化程度。
RT-Linux是基于Linux并可運行于多種硬件平臺的多任務(wù)實時操作系統(tǒng)。通過修改Linux內(nèi)核的硬件層,采用中斷仿真技術(shù),在內(nèi)核和硬件之間實現(xiàn)了一個小而高效的實時內(nèi)核,并在實時內(nèi)核的基礎(chǔ)上形成了小型的實時系統(tǒng),而Linux內(nèi)核僅作為實時系統(tǒng)優(yōu)先級的任務(wù)運行。對于普通X86的硬件結(jié)構(gòu),RT-Linux擁有出色的實時性和穩(wěn)定性,其中斷延遲時間不超過15μs,任務(wù)切換誤差不超過35μs。這些實時參數(shù)與系統(tǒng)負(fù)載無關(guān),而取決于計算機的硬件,如在PII350,64M內(nèi)存的普通PC機上,系統(tǒng)延遲時間不超過1μs。RT-Linux按實時性不同分為實時域和非實時域,其結(jié)構(gòu)如圖2所示。

實時域在設(shè)計上遵循實時操作系統(tǒng)的設(shè)計原則,即系統(tǒng)具有透明性、模塊化和可擴展性。RT-Linux的實時內(nèi)核由一個核心部分和多個可選部分組成,核心部分只負(fù)責(zé)高速中斷處理,支持SMP操作且不會被底層同步或中斷例程延遲或重入。其它功能則由可動態(tài)加載的模塊擴充。RT-Linux把不影響系統(tǒng)實時性的操作(即非實時域的操作)都留給了非實時的Linux系統(tǒng)完成?;诙嗳蝿?wù)環(huán)境的Linux為軟件開發(fā)提供了豐富的系統(tǒng)資源,如多種進(jìn)程間通訊機制,靈活的內(nèi)存管理機制。
嵌入式PLC的設(shè)計及實現(xiàn)
嵌入式PLC的模塊組成
數(shù)控系統(tǒng)的PLC控制模塊實時性要求較高,因而必須在系統(tǒng)的實時域內(nèi)運行。根據(jù)通用數(shù)控系統(tǒng)的PLC控制以及數(shù)控系統(tǒng)軟件模塊化設(shè)計的要求,將數(shù)控系統(tǒng)的PLC控制模塊作為RT-Linux系統(tǒng)的實時任務(wù)之一,其優(yōu)先級和調(diào)用周期取決于數(shù)控系統(tǒng)各任務(wù)的實時性要求以及控制要求的響應(yīng)時間。PLC控制模塊主要完成數(shù)控系統(tǒng)的邏輯控制,而被控制的輸入輸出也就是I/O的輸入輸出由PC機I/O接口卡輸入輸出模塊來完成,即完成數(shù)控系統(tǒng)的PLC控制需要兩個RT-Linux實時任務(wù),如圖3所示,這兩個任務(wù)分別為RT-Task1(以下稱“適配卡輸入輸出")、RT-Task2(以下稱“PLC控制")。
圖3是基于RT-Linux系統(tǒng)的嵌入式PLC實時任務(wù)關(guān)系圖,其中適配卡輸入輸出主要是完成數(shù)控系統(tǒng)的輸入輸出,即各軸位置控制命令的輸出、I/O的輸出、I/O輸入以及位置反饋輸入,它實際上是數(shù)控系統(tǒng)控制卡的設(shè)備驅(qū)動模塊,其優(yōu)先級在數(shù)控系統(tǒng)的各實時任務(wù)中為。根據(jù)其硬件特征以及運動控制要求,其響應(yīng)周期為100μs,響應(yīng)時鐘周期由PC機I/O接口卡上的硬件定時器產(chǎn)生。根據(jù)RT-Linux系統(tǒng)對硬件中斷的響應(yīng)機制,輸入輸出控制任務(wù)的實時性是可以保證的,這一點在我們的數(shù)控系統(tǒng)已經(jīng)得到驗證。

西門子s7-1500CPU