基于HCS08的數(shù)控工作臺(tái)控制系統(tǒng)設(shè)計(jì)與建模
UML[1]是一種可用于大型系統(tǒng)建模的統(tǒng)一建模語(yǔ)言, 它不僅支持面向?qū)ο蟮姆治龊?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/設(shè)計(jì)">設(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)的軟件,滿足實(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í),用戶將測(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ù)用戶對(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ī),參與者包括用戶、上位機(jī)、限位開(kāi)關(guān)、手柄、伺服電機(jī)。用戶除了可以通過(guò)上位機(jī)軟件顯示零點(diǎn)位置、實(shí)時(shí)位置之外,還可以通過(guò)調(diào)速界面調(diào)整伺服電機(jī)轉(zhuǎn)速和方向,故下位機(jī)的用戶用例為手柄控制。上位機(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所示。本文引用地址:http://m.butianyuan.cn/article/163078.htm
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)。
評(píng)論