當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于RT-Linux的嵌入式PLC設(shè)計(jì)及實(shí)現(xiàn)

   引言

  在數(shù)控機(jī)床中, 通常用可編程控制器( PLC) 對(duì)機(jī)床開關(guān)量信號(hào)進(jìn)行控制。PLC可靠性高, 使用方便。但在大多數(shù)數(shù)控機(jī)床, 特別是經(jīng)濟(jì)型數(shù)控機(jī)床中, 要求的輸入輸出點(diǎn)數(shù)并不多, 通常在60點(diǎn)以下,因此, 為了降低數(shù)控機(jī)床成本, 在基于工業(yè)PC機(jī)的數(shù)控系統(tǒng)中, 可以采用開關(guān)量I/O板加外接繼電器,配合主機(jī)的軟件對(duì)機(jī)床開關(guān)進(jìn)行控制。但如果PC機(jī)采用單任務(wù)操作系統(tǒng)(如DOS) , 數(shù)控系統(tǒng)的所有任務(wù)運(yùn)行都置于一個(gè)總體的消息循環(huán)中, 軟件的模塊化和可維護(hù)性較差, 系統(tǒng)故障的風(fēng)險(xiǎn)相對(duì)集中, 而且不能充分利用PC機(jī)系統(tǒng)資源。而采用非實(shí)時(shí)多任務(wù)操作系統(tǒng)(如Windows) 時(shí), Win32 API的設(shè)計(jì)沒有考慮到實(shí)時(shí)環(huán)境的開發(fā)用途, 其系統(tǒng)調(diào)用的效率不高,不能滿足數(shù)控系統(tǒng)PLC控制的實(shí)時(shí)性要求。

  為此, 本文提出一種基于RT - Linux操作系統(tǒng)的嵌入式PLC, 利用RT - Linux的開放性、模塊化和可擴(kuò)展性的系統(tǒng)結(jié)構(gòu)特性和多線程/多任務(wù)的系統(tǒng)環(huán)境,在保證實(shí)時(shí)性的同時(shí), 使故障風(fēng)險(xiǎn)相對(duì)分散。

  數(shù)控系統(tǒng)嵌入式PLC的硬件結(jié)構(gòu)

  數(shù)控系統(tǒng)硬件建立在通用工業(yè)PC的開放體系之上, 數(shù)控系統(tǒng)嵌入式PLC硬件包括: 工控機(jī)及其外圍設(shè)備, 基于ISA總線的開關(guān)量輸入輸出接口卡, 光電隔離模塊, 繼電器輸出模塊。其結(jié)構(gòu)如圖1所示。

數(shù)控系統(tǒng)嵌入式PLC的硬件結(jié)構(gòu)

  工控機(jī)采用RedHatLinux810 + RTLinux311操作系統(tǒng), 數(shù)控系統(tǒng)的人機(jī)界面、數(shù)控代碼處理、軌跡規(guī)劃、參數(shù)管理以及PLC控制都通過工控機(jī)由軟件來實(shí)現(xiàn), 不需要獨(dú)立的PLC控制器, 減少了數(shù)控系統(tǒng)對(duì)硬件的依賴, 有利于提高系統(tǒng)的開放性。

  I/O輸入輸出信息通過PC機(jī)I/O接口卡實(shí)現(xiàn)主機(jī)與伺服接口模塊和I/O接口模塊之間的信息交換,PC機(jī)I/O接口卡基于ISA或者PCI總線。

  RT - Linux的體系結(jié)構(gòu)

  RT - Linux是基于Linux系統(tǒng)并可運(yùn)行于多種硬件平臺(tái)的32位硬實(shí)時(shí)操作系統(tǒng)( hard real - time operating system) 。

它繼承了MERT系統(tǒng)的設(shè)計(jì)思想, 即以通用操作系統(tǒng)為基礎(chǔ), 在同一操作系統(tǒng)中既提供嚴(yán)格意義上的實(shí)時(shí)服務(wù), 又提供所有的標(biāo)準(zhǔn)POSIX服務(wù)。RT - Linux源代碼公開, 易于修改, 使系統(tǒng)成本降低, 源代碼的公開使數(shù)控系統(tǒng)的開發(fā)擺脫了對(duì)國外軟件公司的依賴, 有利于提高數(shù)控軟件國產(chǎn)化程度。

  RT - Linux是基于Linux并可運(yùn)行于多種硬件平臺(tái)的多任務(wù)實(shí)時(shí)操作系統(tǒng)。通過修改Linux內(nèi)核的硬件層, 采用中斷仿真技術(shù), 在內(nèi)核和硬件之間實(shí)現(xiàn)了一個(gè)小而高效的實(shí)時(shí)內(nèi)核, 并在實(shí)時(shí)內(nèi)核的基礎(chǔ)上形成了小型的實(shí)時(shí)系統(tǒng), 而Linux內(nèi)核僅作為實(shí)時(shí)系統(tǒng)最低優(yōu)先級(jí)的任務(wù)運(yùn)行。對(duì)于普通X86的硬件結(jié)構(gòu),RT - Linux擁有出色的實(shí)時(shí)性和穩(wěn)定性, 其最大中斷延遲時(shí)間不超過15μs, 最大任務(wù)切換誤差不超過35μs。這些實(shí)時(shí)參數(shù)與系統(tǒng)負(fù)載無關(guān), 而取決于計(jì)算機(jī)的硬件, 如在PII350, 64M內(nèi)存的普通PC機(jī)上,系統(tǒng)最大延遲時(shí)間不超過1μs。RT - Linux按實(shí)時(shí)性不同分為實(shí)時(shí)域和非實(shí)時(shí)域, 其結(jié)構(gòu)如圖2所示。

RT - Linux的構(gòu)造結(jié)構(gòu)圖

  實(shí)時(shí)域在設(shè)計(jì)上遵循實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)原則,即系統(tǒng)具有透明性、模塊化和可擴(kuò)展性。RT - Linux的實(shí)時(shí)內(nèi)核由一個(gè)核心部分和多個(gè)可選部分組成, 核心部分只負(fù)責(zé)高速中斷處理, 支持SMP操作且不會(huì)被底層同步或中斷例程延遲或重入。其它功能則由可動(dòng)態(tài)加載的模塊擴(kuò)充。RT - Linux把不影響系統(tǒng)實(shí)時(shí)性的操作(即非實(shí)時(shí)域的操作) 都留給了非實(shí)時(shí)的Linux系統(tǒng)完成?;诙嗳蝿?wù)環(huán)境的Linux為軟件開發(fā)提供了豐富的系統(tǒng)資源, 如多種進(jìn)程間通訊機(jī)制,靈活的內(nèi)存管理機(jī)制。

  嵌入式PLC的設(shè)計(jì)及實(shí)現(xiàn)

  嵌入式PLC的模塊組成

  數(shù)控系統(tǒng)的PLC控制模塊實(shí)時(shí)性要求較高, 因而必須在系統(tǒng)的實(shí)時(shí)域內(nèi)運(yùn)行。根據(jù)通用數(shù)控系統(tǒng)的PLC控制以及數(shù)控系統(tǒng)軟件模塊化設(shè)計(jì)的要求, 將數(shù)控系統(tǒng)的PLC控制模塊作為RT - Linux系統(tǒng)的實(shí)時(shí)任務(wù)之一, 其優(yōu)先級(jí)和調(diào)用周期取決于數(shù)控系統(tǒng)各任務(wù)的實(shí)時(shí)性要求以及控制要求的響應(yīng)時(shí)間。PLC控制模塊主要完成數(shù)控系統(tǒng)的邏輯控制, 而被控制的輸入輸出也就是I/O的輸入輸出由PC機(jī)I/O接口卡輸入輸出模塊來完成, 即完成數(shù)控系統(tǒng)的PLC控制需要兩個(gè)RT - Linux實(shí)時(shí)任務(wù), 如圖3所示, 這兩個(gè)任務(wù)分別為RT - Task1 (以下稱“適配卡輸入輸出”) 、RT - Task2 (以下稱“PLC控制”) 。

    圖3是基于RT - Linux系統(tǒng)的嵌入式PLC實(shí)時(shí)任務(wù)關(guān)系圖, 其中適配卡輸入輸出主要是完成數(shù)控系統(tǒng)的輸入輸出, 即各軸位置控制命令的輸出、I/O的輸出、I/O輸入以及位置反饋輸入, 它實(shí)際上是數(shù)控系統(tǒng)控制卡的設(shè)備驅(qū)動(dòng)模塊, 其優(yōu)先級(jí)在數(shù)控系統(tǒng)的各實(shí)時(shí)任務(wù)中為最高級(jí)。根據(jù)其硬件特征以及運(yùn)動(dòng)控制要求, 其響應(yīng)周期為100μs, 響應(yīng)時(shí)鐘周期由PC機(jī)I/O接口卡上的硬件定時(shí)器產(chǎn)生。根據(jù)RT - Linux系統(tǒng)對(duì)硬件中斷的響應(yīng)機(jī)制, 輸入輸出控制任務(wù)的實(shí)時(shí)性是可以保證的, 這一點(diǎn)在我們的數(shù)控系統(tǒng)已經(jīng)得到驗(yàn)證。

基于RT - Linux系統(tǒng)的嵌入式PLC實(shí)時(shí)任務(wù)關(guān)系圖

  圖3中PLC控制主要是完成數(shù)控系統(tǒng)的PLC控制功能, 其任務(wù)優(yōu)先級(jí)低于適配卡輸入輸出, 同時(shí)也低于數(shù)控系統(tǒng)的精插補(bǔ)實(shí)時(shí)任務(wù)和位置伺服實(shí)時(shí)任務(wù)。根據(jù)通用數(shù)控系統(tǒng)的PLC控制要求, 確定其響應(yīng)周期為5ms, 響應(yīng)周期由RT - Linux的軟件定時(shí)器產(chǎn)生, 根據(jù)RT - Linux系統(tǒng)的實(shí)時(shí)多任務(wù)調(diào)度機(jī)制,PLC控制任務(wù)的實(shí)時(shí)性是可以保證的。在實(shí)際應(yīng)用中也得到驗(yàn)證。

  嵌入式PLC的實(shí)時(shí)任務(wù)模塊數(shù)據(jù)通訊

  完成數(shù)控系統(tǒng)PLC控制的兩個(gè)實(shí)時(shí)任務(wù)之間由于需要輸入輸出的數(shù)據(jù)量(一般情況下為64 輸入,64輸出, 但輸入輸出根據(jù)需要還可以擴(kuò)展) 不太大,因而采用共享內(nèi)存的通訊方式, 在適配卡輸入輸出和PLC控制

兩個(gè)實(shí)時(shí)任務(wù)之間開兩塊共享內(nèi)存, 一塊用于適配卡向PLC控制傳輸I/O 口狀態(tài)信息, 另一塊用于PLC控制向適配卡輸入輸出任務(wù)傳輸經(jīng)PLC邏輯處理后的控制信息。

  在這里, 兩個(gè)實(shí)時(shí)任務(wù)間不采用RT - FIFO進(jìn)行通訊的原因在于這兩個(gè)實(shí)時(shí)任務(wù)間通訊的數(shù)據(jù)量不是很大, 而這兩個(gè)實(shí)時(shí)任務(wù)運(yùn)行周期差別較大, 采用RT - FIFO傳輸數(shù)據(jù), 為了避免FIFO的阻塞, 相應(yīng)地要增加兩個(gè)任務(wù)間的協(xié)調(diào)機(jī)制, 這樣的通訊效果未必比采用共享內(nèi)存好, 而且共享內(nèi)存的讀寫速度比FIFO相對(duì)較快。

  嵌入式PLC的實(shí)時(shí)任務(wù)的實(shí)現(xiàn)

  適配卡輸入輸出為動(dòng)態(tài)可加載模塊, 適配卡輸入輸出模塊(任務(wù)) 以100μs為周期的硬件定時(shí)中斷,完成各軸位置控制指令和I/O的輸出、各軸位置反饋值和I/O的輸入, 適配卡輸出值來自于位置伺服任務(wù)和PLC控制任務(wù), 輸入值來自于適配卡的輸入接口。PLC控制模塊(任務(wù)) 同樣也是一個(gè)動(dòng)態(tài)可加載模塊, 它以5ms的軟定時(shí), 周期性地從它與總控模塊通訊的RT - FIFO讀取控制信息(如M指令, S指令及T指令) , 同時(shí)從它與適配卡輸入輸出模塊通訊的共享內(nèi)存中讀取I/O信息, 然后進(jìn)行邏輯處理, 最后將結(jié)果寫入共享內(nèi)存供適配卡輸入輸出模塊讀取并輸出。

  結(jié)論

  目前該嵌入式PLC模塊已成功應(yīng)用于清華大學(xué)精儀系制造工程研究所THHP - III數(shù)控系統(tǒng)(基于RedHatLinux8.0 + RTL inux3.1) 中, 該模塊可以滿足對(duì)普通數(shù)控系統(tǒng)和加工中心PLC控制要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉