《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于HCS08的數控工作臺控制系統設計與建模
基于HCS08的數控工作臺控制系統設計與建模
于 鐳, 任保勝, 李 佳
(青島科技大學 自主導航與智能控制研究所, 山東 青島266042)
摘要: 以自主開發(fā)的基于Freescale HCS08的運動控制嵌入式系統為平臺,以用戶對數控工作臺的需求為基礎,采用統一建模語言UML建立數控工作臺下位機用例圖,根據對用例圖的分析建立系統下位機狀態(tài)模型,明確各個狀態(tài)模型之間相互轉移的條件和約束關系,并對軟件總體流程做較為嚴謹的設計,使設計出來的下位機程序不僅能夠滿足用戶對系統功能的需要,而且具有較高的可靠性和可維護性。
Abstract:
Key words :

摘   要: 以自主開發(fā)的基于Freescale HCS08的運動控制嵌入式系統為平臺,以用戶對數控工作臺的需求為基礎,采用統一建模語言UML建立數控工作臺下位機用例圖,根據對用例圖的分析建立系統下位機狀態(tài)模型,明確各個狀態(tài)模型之間相互轉移的條件和約束關系,并對軟件總體流程做較為嚴謹的設計,使設計出來的下位機程序不僅能夠滿足用戶對系統功能的需要,而且具有較高的可靠性和可維護性。
關鍵詞: HCS08; 數控工作臺; 統一建模語言; 用例; 狀態(tài)模型

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

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

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

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

   從圖3中能夠清楚地看到下位機程序就是一直循環(huán)采集和事件處理的過程。系統一上電首先對硬件模塊和軟件功能進行初始化設置,保證程序處在可運行狀態(tài)。然后程序進入主循環(huán),先進行事件采集,包括讀寫Flash、串口數據接收、限位傳感器輸入信號以及伺服報警信號采集。如果沒有事件發(fā)生,則程序一直處于事件采集狀態(tài);如果有事件發(fā)生,則對采集到的事件進行分析決策。事件決策則是對當前系統狀態(tài)進行判斷和轉移,決定哪些事件可以被執(zhí)行。最后事件分配和事件處理則是將被允許執(zhí)行的事件分配給相關的執(zhí)行函數,調用相關函數來對事件進行處理,完成后返回到主循環(huán)開始,而程序也因此周而復始地一直執(zhí)行下去。
 由此可以看出,在程序中事件按從總體到個別的順序被執(zhí)行,每一步都有明確的目的性和層次性,條理清晰,邏輯清楚,這樣就使得程序在編制和維護時簡單易行。
 由于下位機采用的Freescale HCS08型單片機作為控制系統核心,其運算處理速度能達到每秒20 M條指令,這樣就使得下位機程序對外部事件有了較高的響應速度和處理速度,其實時性可以比較好地滿足數控工作臺的應用需求。
3.3 下位機軟件通信模塊設計
   Freescale HCS08單片機采用異步通信RS-232作為串行通信協議,其適用于設備之間的通信距離不大于15 m、傳輸速度最大為20 KB/s的數據傳輸領域。本系統采用標準不歸零NRZ(Non Return to Zero)的數據格式進行數據交互。
    本文介紹了數控工作臺下位機程序設計與建模,分析和構建了下位機軟件的主要功能、實現方式和軟件算法,并通過UML圖分別展示了下位機供需用例圖、軟件狀態(tài)模型和主循環(huán)活動模型。使用UML圖進行軟件設計使得軟件層次更加清晰,結構嚴謹,可維護性強,充分體現出UML圖[7]在面向對象的軟件編程中起到的重要作用。同時,本文所敘述的軟件設計與建模的方法, 對其他下位機的軟件開發(fā)也有很好的借鑒作用。
參考文獻
[1]   BERGENTI F, POGGI A. Supporting agent-oriented modelling with UML [J]. International Journal of Software  Engineer and Knowledge Engineering,2002,12(6):605-618.
[2]   LUCKHAM D C, VERA J. An event-based architecture  definition language[J]. IEEE Transactions on Software  Engineering, 1996,21(9):717-734.
[3]   余永權.89系列Flash單片機原理及應用[M].北京:電子工業(yè)出版社,1997.
[4]   葉旺勝,王宜懷,劉曉升. HCS08 MCU背景調試技術的研究與底層設計[J].軍民兩用技術與產品,2007(4):39-40,46.
[5]   余翔, 吳友宇.基于89S51單片機的微型熱敏打印機軟件設計[J]. 微計算機信息,2007,1(2):12-2.
[6]   Hans-Erik Eriksson, Magnus Penker著.UML工具箱[M]. 俞俊平,余安萍,徐敏,等,譯. 北京:電子工業(yè)出版社, 2004.
[7] GOMAA H著. 用UML設計并發(fā)、分布式、實時應用[M].呂慶中,李燁,羅方斌,譯.北京:北京航空航天大
    學出版社,2004.

此內容為AET網站原創(chuàng),未經授權禁止轉載。