專利名稱:一種基于Windows操作系統的仿真嵌入式數控系統及其實現方法
技術領域:
本發明涉及數控仿真技術,具體涉及一種基于Windows操作系統的仿真嵌入式數 控系統及其實現方法。
背景技術:
隨著嵌入式控制技術的不斷發展,嵌入式控制器日益普及于工業生產的方方面 面。而嵌入式控制模擬仿真技術也得到了快速發展,但是,現有國內的數控模擬仿真技術, 是根據數控系統的外在功能表現重新設計軟件進行模仿,難免出現功能不全,表現不一致 等問題。
發明內容
本發明的目的是克服現有技術中的不足之處,提供一種基于Windows操作系統的 仿真嵌入式數控系統,本發明在Windows環境下實現了虛擬的CNC (數控機床)系統驅動程 序,將uC/OS-II進行基于Windows線程的移植,為CNC應用軟件提供虛擬的運行環境,移植 后運行于Windows操作系統,實現對CNC的軟件仿真直接對數控系統軟件進行移植,與數控 系統實物的人機交互、功能表現高度一致,達到了很好的仿真效果。本發明的另一目的在于提供上述基于Windows操作系統的仿真嵌入式數控系統 的實現方法。本發明的目的是通過以下技術方案來實現的一種基于Windows操作系統的仿真 嵌入式數控系統,包括將嵌入式CNC軟件所連接的外部設備移植到Windows操作系統所生成的Windows 用戶界面程序;安裝運行indows操作系統的計算機;將嵌入式CNC軟件移植到Windows操作系統所生成的CNC仿真系統;將嵌入式CNC軟件中的驅動程序移植到Windows操作系統生成的虛擬驅動層;使用一個Windows線程虛擬嵌入式CNC軟件中的uC/OS-II操作系統所生成的虛 擬uC/OS-II操作系統。上述系統中,所述虛擬驅動層設置有使用Windows的標準文件10接口重定義嵌入式CNC軟件中的原文件系統接口所 生成的文件系統,使CNC仿真系統使用Windows的文件系統,直接使用計算機的磁盤作為存 儲器;顯示驅動,為CNC仿真系統的繪圖接口提供一塊連續內存存儲顯示數據,數據區 的大小由顯示分辨率和顏色質量決定,Windows用戶界面程序從顯示驅動讀取顯示數據轉 為位圖進行顯示,模擬CNC的液晶顯示;鍵盤驅動,為CNC仿真系統提供鍵盤掃描狀態數據訪問的接口,Windows用戶界面程序將軟件模擬的鍵盤狀態通過鍵盤驅動通知CNC仿真系統;非易失性隨機訪問存儲器(NVRAM),在虛擬驅動中,使用一個磁盤文件存儲NVRAM 變量值,CNC仿真系統啟動時,從文件讀取變量值到RAM空間,供CNC仿真系統使用;CNC仿 真系統關閉時,將變量值存儲到磁盤文件,使CNC仿真系統下次啟動時,NVRAM變量保持為 上次關閉時刻的值;輸入/輸出端口,用于CNC仿真系統的伺服軸移動量輸出、內嵌PLC的信號輸入/ 輸出、主軸轉速控制的模擬電壓輸出、主軸編碼器及手輪編碼器信號輸入,具體為伺服軸移動量輸出,當CNC仿真系統運行產生伺服軸移動時,通過虛擬驅動輸出 移動量,在CNC軟件中,移動量輸出的頻率很高,兩次輸出的間隔為毫秒級。虛擬驅動中采 用環行隊列來存儲各伺服軸每次輸出的移動量,提供給Windows用戶界面程序使用,以仿 真伺服軸的運動;內嵌PLC的輸入/輸出信號;進行主軸轉速控制的模擬電壓輸出;主軸編 碼器及手輪編碼器輸入。上述基于Windows操作系統的仿真嵌入式數控系統的實現方法,具體為將嵌入式CNC軟件移植到計算機的Windows操作系統生成CNC仿真系統;將嵌入式CNC軟件中的驅動程序移植到計算機的Windows操作系統生成虛擬驅動 層;使用一個Windows線程虛擬嵌入式CNC軟件中的uC/0S_II操作系統,生成虛擬 uC/OS-II操作系統。上述方法中,所述使用一個Windows線程虛擬嵌入式CNC軟件中的uC/0S_II操作 系統,生成虛擬UC/OS-II操作系統,具體包括時鐘TICK的獲得,時鐘中斷的產生,以及任務 上下文切換。本發明相比現有技術具有以下優點及有益效果本發明在Windows環境下實現了虛擬的CNC (數控機床)系統驅動程序,將uC/ OS-II進行基于Windows線程的移植,為CNC應用軟件提供虛擬的運行環境,移植后運行于 Windows操作系統,實現對CNC的軟件仿真直接對數控系統軟件進行移植,與數控系統實物 的人機交互、功能表現高度一致,達到了很好的仿真效果。
圖1是本發明的結構示意圖。圖2是本發明中時鐘中斷產生的具體流程圖;圖3是本發明中CNC系統移植的操作流程圖。
具體實施例方式下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限 于此。總的來說,本發明技術方案就是在Windows操作系統環境下通過軟件模擬嵌入式 系統的相關硬件驅動層,以及使用Windows線程模擬的uC/OS-II操作系統,創建一個虛擬 的嵌入式系統軟件運行環境,移植嵌入式控制器的應用軟件,以Windows用戶界面程序模 擬CNC連接的外部設備,使CNC軟件通過虛擬驅動層對這些設備進行操作,實現對嵌入式控制器的仿真。下面結合實施例及附圖對本發明作進一步詳細的描述。實施例1如圖1所示,基于Windows操作系統的仿真嵌入式數控系統,包括將嵌入式CNC軟件所連接的外部設備移植到Windows操作系統所生成的Windows 用戶界面程序;含Windows操作系統的計算機;將嵌入式CNC軟件移植到Windows操作系統所生成的CNC仿真系統;將嵌入式CNC軟件中的驅動程序移植到Windows操作系統生成的虛擬驅動層;使用一個Windows線程虛擬嵌入式CNC軟件中的uC/0S_II操作系統所生成的虛 擬uC/OS-II操作系統。一、虛擬驅動層虛擬驅動實現與原CNC軟件中驅動程序一致的接口函數,為應用層軟件提供與 硬件交互必需的接口,主要包括文件系統,顯示驅動,鍵盤驅動,非易失性隨機訪問存儲器 (NVRAM),輸入/輸出端口等。1. 1、文件系統 虛擬驅動使用Windows的標準文件10接口重定義原文件系統接口,使CNC軟件使 用Windows的文件系統,直接使用計算機的磁盤作為存儲器。1.2、顯示驅動顯示驅動為CNC軟件的繪圖接口提供一塊連續內存存儲顯示數據,數據區的大小 由顯示分辨率和顏色質量決定。Windows用戶界面程序從顯示驅動讀取顯示數據轉為位圖 進行顯示,模擬CNC的液晶顯示。1. 3、鍵盤驅動鍵盤驅動為CNC軟件提供鍵盤掃描狀態數據訪問的接口。Windows用戶界面程序 將軟件模擬的鍵盤狀態通過鍵盤驅動通知CNC軟件。1.4、非易失性隨機訪問存儲器(NVRAM)在虛擬驅動中,使用一個磁盤文件存儲NVRAM變量值,仿真CNC啟動時,從文件讀 取變量值到RAM空間,供CNC軟件使用;仿真CNC關閉時,將變量值存儲到磁盤文件。使仿 真CNC下次啟動時,NVRAM變量保持為上次關閉時刻的值。1. 5、輸入/輸出端口輸入/輸出端口驅動主要包含1. 5. 1伺服軸移動量輸出。當CNC軟件運行產生伺服軸移動時,通過虛擬驅動輸出 移動量。在CNC軟件中,移動量輸出的頻率很高,兩次輸出的間隔為毫秒級。虛擬驅動中采 用環行隊列來存儲各伺服軸每次輸出的移動量,提供給Windows用戶界面程序使用,以仿 真伺服軸的運動。1.5.2內嵌PLC的輸入/輸出信號。1. 5. 3進行主軸轉速控制的模擬電壓輸出。1.5. 4主軸編碼器及手輪編碼器輸入。二、虛擬uC/OS-II操作系統層
5
使用一個Windows線程實現虛擬的uC/0S_II操作系統,使得CNC軟件通過虛擬的 uC/OS-II操作系統直接運行于Windows,減少移植過程中與操作系統相關的工作。這個虛 擬層其實是將uC/OS-II進行基于Windows線程的移植,其所有任務都在Windows的一個線 程中運行。uC/OS-II的移植主要包括三個內容時鐘TICK的獲得,時鐘中斷的產生,任務上 下文切換。2. 1、時鐘TICK的獲得模擬軟件本身是運行在Windows下,不需要強實時性,因此采用Windows的軟件定 時器,通過使用定時精度ms級的timeSetEventO函數來產生模擬時鐘TICK。其函數原型 MMRESULT timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK IpTimeProc, WORD dwUser,UINT fuEvent),將需要周期性執行的任務定義在IpTimeProc回調函數中,從 而完成所需處理的事件。調用這個函數后會增加一個線程,時間一到則在這個線程中調用 回調函數。2. 2、時鐘中斷的產生timeSetEventO函數調用定時回調函數是和主線程同時被Windows操作系統調 度的,并沒有起到中斷的作用。所以在調用定時回調函數lpTimeProc的時候必須停止主線 程的運行,退出回調函數則恢復主線程的運行,這些事情都放在定時回調函數,也就是uC/ OS-II的時鐘中斷處理函數中完成,如圖2所示。2. 3任務上下文切換這里的任務上下文和uC/OS-II在x86上移植的不同點是段寄存器不用保存,因為 在Windows下的uC/OS-II任務其實只是在同一個線程中切換,而且在保護模式下段寄存 器,其值在同一個線程中是不會變的。三、CNC系統軟件移植CNC系統軟件是在外部定時中斷響應中進行插補處理的。模擬的CNC系統運行在 以Windows Thread虛擬的uC/OS-II系統之上,CNC的所有任務均運行在一個線程中,且只 模擬了時鐘TICK中斷。模擬軟件無實時性要求,所以可將插補處理在優先級最高的任務中 進行,周期性的調用原中斷服務函數,再對任務過程進行少許修改即可。如圖3為插補處理 任務的流程。上述實施例為本發明較佳的實施方式,但本發明的實施方式并不受上述實施例的 限制,其他的任何未背離本發明的精神實質與原理下所作的改變、修飾、替代、組合、簡化, 均應為等效的置換方式,都包含在本發明的保護范圍之內。
權利要求
一種基于Windows操作系統的仿真嵌入式數控系統,其特征在于,包括將嵌入式CNC軟件所連接的外部設備移植到Windows操作系統所生成的Windows用戶界面程序;安裝運行Windows操作系統的計算機;將嵌入式CNC軟件移植到Windows操作系統所生成的CNC仿真系統;將嵌入式CNC軟件中的驅動程序移植到Windows操作系統生成的虛擬驅動層;使用一個Windows線程虛擬嵌入式CNC軟件中的uC/OS II操作系統所生成的虛擬uC/OS II操作系統。
2.根據權利要求1所述的基于Windows操作系統的仿真嵌入式數控系統,其特征在于, 所述虛擬驅動層設置有使用Windows的標準文件IO接口重定義嵌入式CNC軟件中的原文件系統接口所生成 的文件系統,使CNC仿真系統使用Windows的文件系統,直接使用計算機的磁盤作為存儲 器;顯示驅動,為CNC仿真系統的繪圖接口提供一塊連續內存存儲顯示數據,數據區的大 小由顯示分辨率和顏色質量決定,Windows用戶界面程序從顯示驅動讀取顯示數據轉為位 圖進行顯示,模擬CNC的液晶顯示;鍵盤驅動,為CNC仿真系統提供鍵盤掃描狀態數據訪問的接口,Windows用戶界面程序 將軟件模擬的鍵盤狀態通過鍵盤驅動通知CNC仿真系統;非易失性隨機訪問存儲器,在虛擬驅動中,使用一個磁盤文件存儲非易失性隨機訪問 存儲器變量值,CNC仿真系統啟動時,從文件讀取變量值到RAM空間,供CNC仿真系統使用; CNC仿真系統關閉時,將變量值存儲到磁盤文件,使CNC仿真系統下次啟動時,非易失性隨 機訪問存儲器變量保持為上次關閉時刻的值;輸入/輸出端口,用于CNC仿真系統的伺服軸移動量輸出、內嵌PLC的信號輸入/輸出、 主軸轉速控制的模擬電壓輸出、主軸編碼器及手輪編碼器信號輸入。
3.根據權利要求2所述的基于Windows操作系統的仿真嵌入式數控系統,其特征在于, 所述輸入/輸出端口進行CNC仿真系統的伺服軸移動量輸出,具體為當CNC仿真系統運行 產生伺服軸移動時,通過虛擬驅動輸出移動量,在CNC軟件中,移動量輸出的頻率很高,兩 次輸出的間隔為毫秒級,虛擬驅動中采用環行隊列來存儲各伺服軸每次輸出的移動量,提 供給Windows用戶界面程序使用,以仿真伺服軸的運動。
4.根據權利要求1所述的基于Windows操作系統的仿真嵌入式數控系統的實現方法, 其特征在于,具體為將嵌入式CNC軟件移植到計算機的Windows操作系統生成CNC仿真系統; 將嵌入式CNC軟件中的驅動程序移植到計算機的Windows操作系統生成虛擬驅動層; 使用一個Windows線程虛擬嵌入式CNC軟件中的uC/OS-II操作系統,生成虛擬uC/ OS-II操作系統。
5.根據權利要求4所述的基于Windows操作系統的仿真嵌入式數控系統的實現方法, 其特征在于所述使用一個Windows線程虛擬嵌入式CNC軟件中的uC/OS-II操作系統,生 成虛擬uC/OS-II操作系統,具體包括時鐘TICK的獲得,時鐘中斷的產生,以及任務上下文 切換。全文摘要
本發明提供一種基于Windows操作系統的仿真嵌入式數控系統,本發明在Windows環境下實現了虛擬的CNC系統驅動程序,將uC/OS-II進行基于Windows線程的移植,為CNC應用軟件提供虛擬的運行環境,移植后運行于Windows操作系統,實現對CNC的軟件仿真直接對數控系統軟件進行移植,與數控系統實物的人機交互、功能表現高度一致,達到了很好的仿真效果。
文檔編號G06F9/455GK101950167SQ201010512889
公開日2011年1月19日 申請日期2010年10月20日 優先權日2010年10月20日
發明者吳蘇如, 李俊, 邱澤豐, 郭艷紅 申請人:廣州數控設備有限公司