<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于HCS08的數控工作臺控制系統設計與建模

基于HCS08的數控工作臺控制系統設計與建模

作者: 時(shí)間:2010-05-18 來(lái)源:網(wǎng)絡(luò ) 收藏

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

本文引用地址:http://dyxdggzs.com/article/163078.htm

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>