0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于HCS08運動控制系統(tǒng)的數(shù)控工作臺的軟件設計與建模方法

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-05-03 08:55 ? 次閱讀

隨著電子技術(shù)的發(fā)展和運動控制技術(shù)的成熟,人們開始將運動控制技術(shù)應用于測量設備,產(chǎn)生了數(shù)控工作臺。數(shù)控工作臺是利用運動控制系統(tǒng)控制工作臺的運動機構(gòu)動作,以運動到需要的位置,大大提高了工件測量的效率。

UML是一種可用于大型系統(tǒng)建模的統(tǒng)一建模語言, 它不僅支持面向?qū)ο蟮姆治龊驮O計, 還支持軟件開發(fā)過程,利用不同的模型來描述一個應用系統(tǒng)在不同生命周期中的各種靜態(tài)結(jié)構(gòu)方面和動態(tài)行為方面的特征, 為任何具有靜態(tài)結(jié)構(gòu)和動態(tài)行為的系統(tǒng)建模,同時提供模型擴展和管理等方面的支持。

本文針對數(shù)控工作臺的功能特點,以自主開發(fā)的基于HCS08運動控制系統(tǒng)為平臺,并以UML為工具,設計相應的軟件,滿足實際生產(chǎn)需要。

1 數(shù)控工作臺控制原理

工作臺運動系統(tǒng)主要由手柄、載物臺等運動機構(gòu)組成。系統(tǒng)以Freescale HCS08型單片機為核心的運動控制器作為下位機,通過控制伺服電機驅(qū)動器來實現(xiàn)對載物臺上下、左右、前后運動的控制,以PC作為上位機來實現(xiàn)調(diào)速、自動校零、自動找零、位置顯示等。

上下位機通過串口進行數(shù)據(jù)傳輸。工作臺工作時,用戶將測量工件(如絲桿)放在載物臺上,通過操作手柄讓載物臺走到測量范圍內(nèi),通過手柄的高低速按鍵控制電機的高速或低速運動,方便測量時的粗調(diào)和微調(diào)。

2 數(shù)控工作臺功能分析

本文的主要任務是根據(jù)用戶對系統(tǒng)功能需求進行分析,通過對整個系統(tǒng)框架進行構(gòu)造和實現(xiàn)下位機軟件設計與建模。下位機是整個系統(tǒng)的中間層,主要功能是根據(jù)接收的數(shù)據(jù)和指令控制工作臺運動。通過上位機界面可以設定各軸的速度和電機轉(zhuǎn)動方向,以及實時位置顯示、零點位置顯示等,具體可為自動找零、校零、手動操作、伺服報警信號等。

對于下位機,參與者包括用戶、上位機、限位開關、手柄、伺服電機。用戶除了可以通過上位機軟件顯示零點位置、實時位置之外,還可以通過調(diào)速界面調(diào)整伺服電機轉(zhuǎn)速和方向,故下位機的用戶用例為手柄控制。上位機和下位機的連接是系統(tǒng)的關鍵部分,是整個系統(tǒng)正常運轉(zhuǎn)的通道。伺服電機是動作的執(zhí)行者,根據(jù)下位機的指令進行動作,其用例主要是高低速度控制。限位開關的用例主要包括I/O信號、限位、故障報警。

根據(jù)上面的用例分析,使用UML構(gòu)造下位機的用例圖,如圖1所示。

基于HCS08運動控制系統(tǒng)的數(shù)控工作臺的軟件設計與建模方法

圖1 下位機的用例圖

3 下位機軟件結(jié)構(gòu)

3.1下位機軟件狀態(tài)模型

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

基于HCS08運動控制系統(tǒng)的數(shù)控工作臺的軟件設計與建模方法

圖2 下位機軟件狀態(tài)模型

系統(tǒng)進入工作狀態(tài)時首先進入自動找零狀態(tài)。在自動找零狀態(tài)下,下位機主程序讀取Flash存儲的信息,對3個軸的電機按照先Z軸找零,再X軸、Y軸同時找零的順序發(fā)脈沖,使工作臺運動到工作起點位置。

一旦自動找零完成之后,系統(tǒng)狀態(tài)就會自動轉(zhuǎn)移到手動控制狀態(tài)中去。例如通過手柄控制讓電機走到某個位置,同時通過手柄上的高低速切換按鍵讓工作臺實現(xiàn)高或低速運動。

校零是設定當前的位置為零點位置,通過上位機操作將數(shù)據(jù)寫入Flash中,在下次上電工作時工作臺會在自動找零時,自動運行到這個設定的零點位置。由圖2可以清楚地看到,整個狀態(tài)模型可以分為4個部分:自動找零狀態(tài)、手動控制狀態(tài)(包括高低速轉(zhuǎn)換、三軸電機運動的方向)、校零狀態(tài)和故障狀態(tài)。其中故障狀態(tài)可以與其他的狀態(tài)根據(jù)轉(zhuǎn)移條件發(fā)生狀態(tài)轉(zhuǎn)移,而手動控制狀態(tài)只能與校零狀態(tài)和故障狀態(tài)根據(jù)轉(zhuǎn)移條件發(fā)生狀態(tài)轉(zhuǎn)移,其內(nèi)部各個狀態(tài)之間不能發(fā)生狀態(tài)轉(zhuǎn)移,這是由工作臺的工作特性所決定的。從上電開始工作,在同一時間內(nèi)只允許進行一種活動,只有在當前活動結(jié)束后才允許進行其他的活動,這種工作臺的工作特性就可以用UML狀態(tài)圖清晰地表現(xiàn)出來,使得任何人都能對系統(tǒng)軟件模型有比較直觀的認識。

根據(jù)狀態(tài)來劃分整個系統(tǒng)軟件結(jié)構(gòu),可以有效地對系統(tǒng)工作進行掌控,防止軟件功能互相耦合而引起邏輯混亂。簡單來說,當系統(tǒng)正處在手動控制中,如果此時收到校零指令,系統(tǒng)就可以根據(jù)當前狀態(tài)轉(zhuǎn)移條件轉(zhuǎn)移到校零狀態(tài),工作臺會按順序依次走到各軸的兩端限位位置,將兩端限位之間的距離保存到Flash中以便下次讀取,這樣就提高了系統(tǒng)的穩(wěn)定性和可靠性。

3.2 下位機軟件算法活動模型

鑒于數(shù)控工作臺在日常生產(chǎn)中對于控制的要求,以及Freescale HCS08的特點,在設計軟件算法程序時,對電機發(fā)脈沖采用PWM重載中斷的方式,這樣極大地發(fā)揮了芯片的性能,并且提高了程序的可靠性。下面采用UML活動圖將主循環(huán)流程按照時間的順序展開,如圖3所示。

基于HCS08運動控制系統(tǒng)的數(shù)控工作臺的軟件設計與建模方法

圖3 下位機程序主循環(huán)活動模型

從圖3中能夠清楚地看到下位機程序就是一直循環(huán)采集和事件處理的過程。系統(tǒng)一上電首先對硬件模塊和軟件功能進行初始化設置,保證程序處在可運行狀態(tài)。然后程序進入主循環(huán),先進行事件采集,包括讀寫Flash、串口數(shù)據(jù)接收、限位傳感器輸入信號以及伺服報警信號采集。如果沒有事件發(fā)生,則程序一直處于事件采集狀態(tài);如果有事件發(fā)生,則對采集到的事件進行分析決策。事件決策則是對當前系統(tǒng)狀態(tài)進行判斷和轉(zhuǎn)移,決定哪些事件可以被執(zhí)行。最后事件分配和事件處理則是將被允許執(zhí)行的事件分配給相關的執(zhí)行函數(shù),調(diào)用相關函數(shù)來對事件進行處理,完成后返回到主循環(huán)開始,而程序也因此周而復始地一直執(zhí)行下去。

由此可以看出,在程序中事件按從總體到個別的順序被執(zhí)行,每一步都有明確的目的性和層次性,條理清晰,邏輯清楚,這樣就使得程序在編制和維護時簡單易行。

由于下位機采用的Freescale HCS08型單片機作為控制系統(tǒng)核心,其運算處理速度能達到每秒20 M條指令,這樣就使得下位機程序?qū)ν獠渴录辛溯^高的響應速度和處理速度,其實時性可以比較好地滿足數(shù)控工作臺的應用需求。

3.3 下位機軟件通信模塊設計

Freescale HCS08單片機采用異步通信RS-232作為串行通信協(xié)議,其適用于設備之間的通信距離不大于15 m、傳輸速度最大為20 KB/s的數(shù)據(jù)傳輸領域。本系統(tǒng)采用標準不歸零NRZ(Non Return to Zero)的數(shù)據(jù)格式進行數(shù)據(jù)交互。

本文介紹了數(shù)控工作臺下位機程序設計與建模,分析和構(gòu)建了下位機軟件的主要功能、實現(xiàn)方式和軟件算法,并通過UML圖分別展示了下位機供需用例圖、軟件狀態(tài)模型和主循環(huán)活動模型。使用UML圖進行軟件設計使得軟件層次更加清晰,結(jié)構(gòu)嚴謹,可維護性強,充分體現(xiàn)出UML圖在面向?qū)ο蟮能浖?a href="http://www.ttokpm.com/v/tag/1315/" target="_blank">編程中起到的重要作用。同時,本文所敘述的軟件設計與建模的方法, 對其他下位機的軟件開發(fā)也有很好的借鑒作用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 驅(qū)動器
    +關注

    關注

    51

    文章

    7998

    瀏覽量

    145029
  • 控制系統(tǒng)

    關注

    41

    文章

    6420

    瀏覽量

    110105
  • 測量
    +關注

    關注

    10

    文章

    4614

    瀏覽量

    110587
收藏 人收藏

    評論

    相關推薦

    請問基于labview的X/Y工作臺運動控制系統(tǒng)該怎么辦寫?

    請問基于labview的X/Y工作臺運動控制系統(tǒng)該怎么辦寫?有這方面的資料嗎,求分享。
    發(fā)表于 12-03 10:10

    基于HCS08系列MCU的儀表步進電機驅(qū)動

    較貴的帶驅(qū)動電路的MCU,而是用普通的MCU直接去驅(qū)動步進電機。本文介紹了在Freescale的HCS08系列MCU上,如何用軟件來實現(xiàn)對VID29系列步進電機的直接驅(qū)動。本文所附帶的程序,已經(jīng)在Freescale的LG32 Cluster Reference Desig
    發(fā)表于 07-22 08:28

    怎么在HCS08系列MCU上用軟件實現(xiàn)儀表步進電機的驅(qū)動?

    VID29系列步進電機的工作原理是什么怎么在HCS08系列MCU上用軟件實現(xiàn)儀表步進電機的驅(qū)動?
    發(fā)表于 05-12 06:28

    如何對數(shù)控直線工作臺直線控制系統(tǒng)進行仿真?

    數(shù)控直線工作臺直線控制系統(tǒng)工作原理是什么?數(shù)控直線工作臺直線
    發(fā)表于 07-13 08:35

    兩坐標步進電機驅(qū)動運動工作臺控制系統(tǒng)的設計

    設計是完成一兩坐標步進電機驅(qū)動運動工作臺控制系統(tǒng)的設計;完成交流電機啟停的電氣控制系統(tǒng)設計。其硬件部分共包括鍵盤操作、單片機控制、輸入電路、控制
    發(fā)表于 04-11 18:19 ?7次下載

    深入討論HCS08的內(nèi)部時鐘源模塊

    本文檔將深入介紹內(nèi)部時鐘源模塊(Internal ClockSource, ICS),該模塊可以在部分HCS08 系列微控制器中找到。對HCS08 MCU 來說, ICS 模塊不但是一個非常靈活的時鐘源,而且對于該系列
    發(fā)表于 04-17 22:08 ?13次下載

    HCS08中文資料 pdf

    新型的FreescaleHCS08 系列微控制器,盡管包含新指令,可以執(zhí)行快速調(diào)試和開發(fā)功能,但仍然和舊的M68HC08 系列完全兼容。這個參考手冊使用第一個HCS08 系列的成員——
    發(fā)表于 01-11 14:20 ?90次下載

    HCS08系列單片機的低功耗特性

    摘要:本文主要介紹了飛思卡爾HCS08系列8位單片機的低功耗特性。丈章對比HC08系列單片機,介紹了HCS08系列單片機在STOP模式方面的改進,并評細說明了3種STOP子模式。另外,文幸還介
    發(fā)表于 09-19 21:07 ?40次下載

    基于HCS08數(shù)控工作臺控制系統(tǒng)設計

    以自主開發(fā)的基于Freescale HCS08運動控制嵌入式系統(tǒng)為平臺,以用戶對數(shù)控工作臺的需
    發(fā)表于 11-30 15:06 ?25次下載

    基于飛思卡爾HCS08的汽車ECAS設計

    基于飛思卡爾HCS08的汽車ECAS設計 摘要:設計了一種以飛思卡爾MC9S08GB60 單片機為控制核心的汽車電控空氣懸架系統(tǒng)。著重闡述了其硬件電路
    發(fā)表于 07-11 14:39 ?2967次閱讀
    基于飛思卡爾<b class='flag-5'>HCS08</b>的汽車ECAS設計

    MC9S08LC60,pdf(low-cost, high-performance HCS08)

    MC9S08LC60 Series MCUs are members of the low-cost, high-performance HCS08 Family
    發(fā)表于 05-12 15:14 ?35次下載
    MC9S<b class='flag-5'>08</b>LC60,pdf(low-cost, high-performance <b class='flag-5'>HCS08</b>)

    M68HC08HCS08系列MCU開發(fā)的串行引導程序

    針對M68HC08HCS08控制器單元(MCU)的串行引導程序,選用標準的通信媒介,如串行異步端口,對Freescale半導體公司的M68HC08
    發(fā)表于 08-31 15:19 ?57次下載
    M68HC<b class='flag-5'>08</b>和<b class='flag-5'>HCS08</b>系列MCU開發(fā)的串行引導程序

    HCS08系列微控制器介紹

    新型的FreescaleHCS08 系列微控制器,盡管包含新指令,可以執(zhí)行快速調(diào)試和開發(fā)功能,但仍然和舊的M68HC08 系列完全兼容。這個參考手冊使用第一個HCS08 系列的成員MC
    發(fā)表于 09-05 11:57 ?0次下載
    <b class='flag-5'>HCS08</b>系列微<b class='flag-5'>控制</b>器介紹

    工作臺

    基于FLASH軟件設計的動畫,演示工作臺的正反轉(zhuǎn)過程。
    發(fā)表于 05-27 16:44 ?0次下載

    基于單片機控制步進電機驅(qū)動的XY工作臺

    我設計的是單片機控制步進電動機驅(qū)動的XY工作臺。首先確定設計的總體方案,然后對機械部分進行設計,其中包括工作臺、滾動導軌、滾珠絲杠、步進電動機的設計和選用,最后對數(shù)控系統(tǒng)硬件和
    發(fā)表于 04-23 09:18 ?12次下載
    基于單片機<b class='flag-5'>控制</b>步進電機驅(qū)動的XY<b class='flag-5'>工作臺</b>