當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀] 以自主開(kāi)發(fā)的基于Freescale HCS08的運(yùn)動(dòng)控制嵌入式系統(tǒng)為平臺(tái),以用戶(hù)對(duì)數(shù)控工作臺(tái)的需求為基礎(chǔ),采用統(tǒng)一建模語(yǔ)言UML建立數(shù)控工作臺(tái)下位機(jī)用例圖,根據(jù)對(duì)用例圖的分析建立系統(tǒng)下位機(jī)狀態(tài)模型,明確各個(gè)狀態(tài)模型之間相互轉(zhuǎn)移的條件和約束關(guān)系,并對(duì)軟件總體流程做較為嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì),使設(shè)計(jì)出來(lái)的下位機(jī)程序不僅能夠滿(mǎn)足用戶(hù)對(duì)系統(tǒng)功能的需要,而且具有較高的可靠性和可維護(hù)性。

  隨著電子技術(shù)的發(fā)展和運(yùn)動(dòng)控制技術(shù)的成熟,人們開(kāi)始將運(yùn)動(dòng)控制技術(shù)應(yīng)用于測(cè)量設(shè)備,產(chǎn)生了數(shù)控工作臺(tái)。數(shù)控工作臺(tái)是利用運(yùn)動(dòng)控制系統(tǒng)控制工作臺(tái)的運(yùn)動(dòng)機(jī)構(gòu)動(dòng)作,以運(yùn)動(dòng)到需要的位置,大大提高了工件測(cè)量的效率。
 UML[1]是一種可用于大型系統(tǒng)建模的統(tǒng)一建模語(yǔ)言, 它不僅支持面向?qū)ο蟮姆治龊驮O(shè)計(jì), 還支持軟件開(kāi)發(fā)過(guò)程,利用不同的模型來(lái)描述一個(gè)應(yīng)用系統(tǒng)在不同生命周期中的各種靜態(tài)結(jié)構(gòu)方面和動(dòng)態(tài)行為方面的特征, 為任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)建模,同時(shí)提供模型擴(kuò)展和管理等方面的支持。
 本文針對(duì)數(shù)控工作臺(tái)的功能特點(diǎn),以自主開(kāi)發(fā)的基于HCS08運(yùn)動(dòng)控制系統(tǒng)為平臺(tái),并以UML為工具,設(shè)計(jì)相應(yīng)的軟件,滿(mǎn)足實(shí)際生產(chǎn)需要。
1 數(shù)控工作臺(tái)控制原理
 工作臺(tái)運(yùn)動(dòng)系統(tǒng)主要由手柄、載物臺(tái)等運(yùn)動(dòng)機(jī)構(gòu)組成。系統(tǒng)以Freescale HCS08型單片機(jī)為核心的運(yùn)動(dòng)控制器作為下位機(jī),通過(guò)控制伺服電機(jī)驅(qū)動(dòng)器來(lái)實(shí)現(xiàn)對(duì)載物臺(tái)上下、左右、前后運(yùn)動(dòng)的控制,以PC作為上位機(jī)來(lái)實(shí)現(xiàn)調(diào)速、自動(dòng)校零、自動(dòng)找零、位置顯示等。
 上下位機(jī)通過(guò)串口進(jìn)行數(shù)據(jù)傳輸。工作臺(tái)工作時(shí),用戶(hù)將測(cè)量工件(如絲桿)放在載物臺(tái)上,通過(guò)操作手柄讓載物臺(tái)走到測(cè)量范圍內(nèi),通過(guò)手柄的高低速按鍵控制電機(jī)的高速或低速運(yùn)動(dòng),方便測(cè)量時(shí)的粗調(diào)和微調(diào)。
2 數(shù)控工作臺(tái)功能分析
 本文的主要任務(wù)是根據(jù)用戶(hù)對(duì)系統(tǒng)功能需求進(jìn)行分析,通過(guò)對(duì)整個(gè)系統(tǒng)框架進(jìn)行構(gòu)造和實(shí)現(xiàn)下位機(jī)軟件設(shè)計(jì)與建模。下位機(jī)是整個(gè)系統(tǒng)的中間層,主要功能是根據(jù)接收的數(shù)據(jù)和指令控制工作臺(tái)運(yùn)動(dòng)。通過(guò)上位機(jī)界面可以設(shè)定各軸的速度和電機(jī)轉(zhuǎn)動(dòng)方向,以及實(shí)時(shí)位置顯示、零點(diǎn)位置顯示等,具體可為自動(dòng)找零、校零、手動(dòng)操作、伺服報(bào)警信號(hào)等。
 對(duì)于下位機(jī),參與者包括用戶(hù)、上位機(jī)、限位開(kāi)關(guān)、手柄、伺服電機(jī)。用戶(hù)除了可以通過(guò)上位機(jī)軟件顯示零點(diǎn)位置、實(shí)時(shí)位置之外,還可以通過(guò)調(diào)速界面調(diào)整伺服電機(jī)轉(zhuǎn)速和方向,故下位機(jī)的用戶(hù)用例為手柄控制。上位機(jī)和下位機(jī)的連接是系統(tǒng)的關(guān)鍵部分,是整個(gè)系統(tǒng)正常運(yùn)轉(zhuǎn)的通道。伺服電機(jī)是動(dòng)作的執(zhí)行者,根據(jù)下位機(jī)的指令進(jìn)行動(dòng)作,其用例主要是高低速度控制。限位開(kāi)關(guān)的用例主要包括I/O信號(hào)、限位、故障報(bào)警。
 根據(jù)上面的用例分析,使用UML構(gòu)造下位機(jī)的用例圖[6],如圖1所示。

3 下位機(jī)軟件結(jié)構(gòu)
3.1下位機(jī)軟件狀態(tài)模型

 通過(guò)對(duì)數(shù)控工作臺(tái)下位機(jī)用例圖的分析可以將下位機(jī)軟件按狀態(tài)分為幾個(gè)模塊:自動(dòng)找零點(diǎn)狀態(tài)、手動(dòng)控制狀態(tài)、校零狀態(tài)、故障狀態(tài)等。采用UML狀態(tài)圖可以將參與交互的模塊及模塊之間的消息交互表示清楚,可以比較直觀、高效地建立軟件的狀態(tài)模型。建模如圖2所示。

 系統(tǒng)進(jìn)入工作狀態(tài)時(shí)首先進(jìn)入自動(dòng)找零狀態(tài)。在自動(dòng)找零狀態(tài)下,下位機(jī)主程序讀取Flash存儲(chǔ)[3]的信息,對(duì)3個(gè)軸的電機(jī)按照先Z軸找零,再X軸、Y軸同時(shí)找零的順序發(fā)脈沖,使工作臺(tái)運(yùn)動(dòng)到工作起點(diǎn)位置。
 一旦自動(dòng)找零完成之后,系統(tǒng)狀態(tài)就會(huì)自動(dòng)轉(zhuǎn)移到手動(dòng)控制狀態(tài)中去。例如通過(guò)手柄控制讓電機(jī)走到某個(gè)位置,同時(shí)通過(guò)手柄上的高低速切換按鍵讓工作臺(tái)實(shí)現(xiàn)高或低速運(yùn)動(dòng)。
 校零是設(shè)定當(dāng)前的位置為零點(diǎn)位置,通過(guò)上位機(jī)操作將數(shù)據(jù)寫(xiě)入Flash中,在下次上電工作時(shí)工作臺(tái)會(huì)在自動(dòng)找零時(shí),自動(dòng)運(yùn)行到這個(gè)設(shè)定的零點(diǎn)位置。由圖2可以清楚地看到,整個(gè)狀態(tài)模型可以分為4個(gè)部分:自動(dòng)找零狀態(tài)、手動(dòng)控制狀態(tài)(包括高低速轉(zhuǎn)換、三軸電機(jī)運(yùn)動(dòng)的方向)、校零狀態(tài)和故障狀態(tài)。其中故障狀態(tài)可以與其他的狀態(tài)根據(jù)轉(zhuǎn)移條件發(fā)生狀態(tài)轉(zhuǎn)移,而手動(dòng)控制狀態(tài)只能與校零狀態(tài)和故障狀態(tài)根據(jù)轉(zhuǎn)移條件發(fā)生狀態(tài)轉(zhuǎn)移,其內(nèi)部各個(gè)狀態(tài)之間不能發(fā)生狀態(tài)轉(zhuǎn)移,這是由工作臺(tái)的工作特性所決定的。從上電開(kāi)始工作,在同一時(shí)間內(nèi)只允許進(jìn)行一種活動(dòng),只有在當(dāng)前活動(dòng)結(jié)束后才允許進(jìn)行其他的活動(dòng),這種工作臺(tái)的工作特性就可以用UML狀態(tài)圖[6]清晰地表現(xiàn)出來(lái),使得任何人都能對(duì)系統(tǒng)軟件模型有比較直觀的認(rèn)識(shí)。
   根據(jù)狀態(tài)來(lái)劃分整個(gè)系統(tǒng)軟件結(jié)構(gòu)[2],可以有效地對(duì)系統(tǒng)工作進(jìn)行掌控,防止軟件功能互相耦合而引起邏輯混亂。簡(jiǎn)單來(lái)說(shuō),當(dāng)系統(tǒng)正處在手動(dòng)控制中,如果此時(shí)收到校零指令,系統(tǒng)就可以根據(jù)當(dāng)前狀態(tài)轉(zhuǎn)移條件轉(zhuǎn)移到校零狀態(tài),工作臺(tái)會(huì)按順序依次走到各軸的兩端限位位置,將兩端限位之間的距離保存到Flash中以便下次讀取,這樣就提高了系統(tǒng)的穩(wěn)定性和可靠性。
3.2 下位機(jī)軟件算法活動(dòng)模型
   鑒于數(shù)控工作臺(tái)在日常生產(chǎn)中對(duì)于控制的要求,以及Freescale HCS08的特點(diǎn),在設(shè)計(jì)軟件算法程序時(shí),對(duì)電機(jī)發(fā)脈沖采用PWM重載中斷的方式,這樣極大地發(fā)揮了芯片的性能,并且提高了程序的可靠性。下面采用UML活動(dòng)圖將主循環(huán)流程按照時(shí)間的順序展開(kāi),如圖3所示。

   從圖3中能夠清楚地看到下位機(jī)程序就是一直循環(huán)采集和事件處理的過(guò)程。系統(tǒng)一上電首先對(duì)硬件模塊和軟件功能進(jìn)行初始化設(shè)置,保證程序處在可運(yùn)行狀態(tài)。然后程序進(jìn)入主循環(huán),先進(jìn)行事件采集,包括讀寫(xiě)Flash、串口數(shù)據(jù)接收、限位傳感器輸入信號(hào)以及伺服報(bào)警信號(hào)采集。如果沒(méi)有事件發(fā)生,則程序一直處于事件采集狀態(tài);如果有事件發(fā)生,則對(duì)采集到的事件進(jìn)行分析決策。事件決策則是對(duì)當(dāng)前系統(tǒng)狀態(tài)進(jìn)行判斷和轉(zhuǎn)移,決定哪些事件可以被執(zhí)行。最后事件分配和事件處理則是將被允許執(zhí)行的事件分配給相關(guān)的執(zhí)行函數(shù),調(diào)用相關(guān)函數(shù)來(lái)對(duì)事件進(jìn)行處理,完成后返回到主循環(huán)開(kāi)始,而程序也因此周而復(fù)始地一直執(zhí)行下去。
 由此可以看出,在程序中事件按從總體到個(gè)別的順序被執(zhí)行,每一步都有明確的目的性和層次性,條理清晰,邏輯清楚,這樣就使得程序在編制和維護(hù)時(shí)簡(jiǎn)單易行。
 由于下位機(jī)采用的Freescale HCS08型單片機(jī)作為控制系統(tǒng)核心,其運(yùn)算處理速度能達(dá)到每秒20 M條指令,這樣就使得下位機(jī)程序?qū)ν獠渴录辛溯^高的響應(yīng)速度和處理速度,其實(shí)時(shí)性可以比較好地滿(mǎn)足數(shù)控工作臺(tái)的應(yīng)用需求。
3.3 下位機(jī)軟件通信模塊設(shè)計(jì)
   Freescale HCS08單片機(jī)采用異步通信RS-232作為串行通信協(xié)議,其適用于設(shè)備之間的通信距離不大于15 m、傳輸速度最大為20 KB/s的數(shù)據(jù)傳輸領(lǐng)域。本系統(tǒng)采用標(biāo)準(zhǔn)不歸零NRZ(Non Return to Zero)的數(shù)據(jù)格式進(jìn)行數(shù)據(jù)交互。
    本文介紹了數(shù)控工作臺(tái)下位機(jī)程序設(shè)計(jì)與建模,分析和構(gòu)建了下位機(jī)軟件的主要功能、實(shí)現(xiàn)方式和軟件算法,并通過(guò)UML圖分別展示了下位機(jī)供需用例圖、軟件狀態(tài)模型和主循環(huán)活動(dòng)模型。使用UML圖進(jìn)行軟件設(shè)計(jì)使得軟件層次更加清晰,結(jié)構(gòu)嚴(yán)謹(jǐn),可維護(hù)性強(qiáng),充分體現(xiàn)出UML圖[7]在面向?qū)ο蟮能浖幊讨衅鸬降闹匾饔?。同時(shí),本文所敘述的軟件設(shè)計(jì)與建模的方法, 對(duì)其他下位機(jī)的軟件開(kāi)發(fā)也有很好的借鑒作用。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(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ì)日本游戲市場(chǎng)的投資。

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

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

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

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

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

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

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

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

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

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

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