專利名稱:一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)控系統(tǒng)領(lǐng)域,具體地說是一種用于數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)的實時采集方法。
背景技術(shù):
數(shù)控系統(tǒng)對實時性、同步性、可靠性和安全性的要求較高,其運動控制器與用戶界面之間數(shù)據(jù)交互的主要問題在于由于周期不匹配導致的用戶界面不能實時的顯示運動控制的時間信息。運動控制器對現(xiàn)場總線驅(qū)動的反饋數(shù)據(jù)以及現(xiàn)場總線驅(qū)動使用運動控制器發(fā)送來的插補數(shù)據(jù)的實時采集成為系統(tǒng)調(diào)試的關(guān)鍵。目前運動控制器和現(xiàn)場總線驅(qū)動之間數(shù)據(jù)互操作的方法主要有以下幾種:1.不改變運動控制器結(jié)構(gòu),通過觀察用戶界面的反饋值進行調(diào)試;2.更改運動控制器結(jié)構(gòu),將關(guān)鍵數(shù)據(jù)等信息通過傳統(tǒng)的系統(tǒng)調(diào)用的方式輸出;3.不改變運動控制器和現(xiàn)場總線驅(qū)動的結(jié)構(gòu),采用將調(diào)試信息保存在某個文件中進行離線分析。第一種種方法要求運動控制器和用戶界面刷新周期嚴格匹配。然而受到硬件條件限制,運動控制器的周期通常在毫秒級,而由于數(shù)控系統(tǒng)加工精度的要求,現(xiàn)場總線驅(qū)動的周期通常為微秒級,但是用戶界面的刷新頻率為秒級;另一方面,如果提高界面的刷新頻率,則會增加系統(tǒng)的負載,影響數(shù)控系統(tǒng)的性能。采用傳統(tǒng)的系統(tǒng)調(diào)用的方式輸出調(diào)試信息,由于運動控制器的運行頻率高,大量的數(shù)據(jù)輸出會將系統(tǒng)內(nèi)核堵死,影響數(shù)控系統(tǒng)的性能。采用離線分析的方法雖然能夠解決系統(tǒng)效率的問題,但是不能實時的反映系統(tǒng)的運行信息,能實時跟蹤和故障診斷。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的上述不足之處,本發(fā)明要解決的技術(shù)問題是提供一種能夠滿足運動控制器的實時性要求,且占用空間小的用于實時輸出數(shù)控系統(tǒng)運動控制器關(guān)鍵數(shù)據(jù)的操作方法。本發(fā)明為實現(xiàn)上述目的所采用的技術(shù)方案是:一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,包括以下步驟:在數(shù)控系統(tǒng)端調(diào)試代理模塊申請共享緩沖隊列,并進行初始化;數(shù)控系統(tǒng)運動控制器線程共享調(diào)試代理模式的共享緩沖隊列;在上述申請的共享緩沖隊列,通過和運動控制器寫操作,數(shù)據(jù)輸出裝置的讀操作和發(fā)送操作實現(xiàn)數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集操作;在數(shù)據(jù)輸出裝置輸出的過程中直接使用串口輸出;顯示終端通過串口接收并顯示數(shù)控系統(tǒng)實時輸出的調(diào)試信息。所述共享緩沖隊列為環(huán)形緩沖隊列,具有一個讀指針和一個寫指針,每個數(shù)據(jù)區(qū)大小為運動控制器每周期發(fā)送調(diào)試信息的數(shù)據(jù)大小。
所述運動控制器寫操作是運動控制器向緩沖隊列頭指針所指向的數(shù)據(jù)區(qū)中寫入數(shù)控機床伺服系統(tǒng)反饋信息。所述數(shù)據(jù)輸出裝置從調(diào)試代理模塊中讀取運動控制器返回的狀態(tài)信息和調(diào)試信
肩、O所述數(shù)據(jù)模塊與調(diào)試代理模塊相互獨立。所述數(shù)據(jù)輸出裝置使用的運動控制器的剩余處理器時間進行輸出。所述串口符合RS232電氣標準。所述顯示終端包括MCU單元,實時獲取串口的數(shù)據(jù),將數(shù)據(jù)在顯示單元實時顯示。本發(fā)明具有以下優(yōu)點:1.能夠解決運動控制器和用戶界面之間周期不匹配問題。本發(fā)明方法將運動控制器的關(guān)鍵數(shù)據(jù)直接通過硬件串口設(shè)備輸出,需要監(jiān)測的運動控制器和現(xiàn)場總線驅(qū)動的調(diào)試信息,不通過用戶界面,這樣可以提高監(jiān)測的實時性。2.占用空間小。本發(fā)明只是在系統(tǒng)使用一個環(huán)形的緩沖區(qū)接受運動控制器向外輸出的調(diào)試信息。3.有效提高實時性。本發(fā)明通過緩沖區(qū)接收運動控制器實時發(fā)送的調(diào)試信息,并且利用運動控制器的調(diào)度間隙將調(diào)試信息輸出。采用這樣的方法,不會占用運動控制器自身的執(zhí)行時間,也不影響調(diào)試信息輸出的實時性。4.通用性好。本發(fā)明方法不依賴于所傳輸?shù)臄?shù)據(jù)類型和數(shù)據(jù)內(nèi)容,能夠應(yīng)用于多種類型的數(shù)控系統(tǒng)中。
圖1為本發(fā)明方法的總體結(jié)構(gòu)圖;圖2為本發(fā)明方法運動控制器發(fā)送調(diào)試信息操作流程圖;圖3為本發(fā)明方法緩存輸出數(shù)據(jù)操作流程圖;圖4為本發(fā)明方使用串口輸出數(shù)據(jù)操作流程圖;圖5為本發(fā)明方顯示終端顯示數(shù)據(jù)操作流程圖。
具體實施例方式下面結(jié)合附圖及實施例對本發(fā)明做進一步的詳細說明。實現(xiàn)本發(fā)明方法的總體結(jié)構(gòu)圖如圖1所示。本發(fā)明的方法分為數(shù)控系統(tǒng)端和嵌入式的顯示終端兩個部分組成。數(shù)控系統(tǒng)端包含的模塊有調(diào)試代理模塊和數(shù)據(jù)輸出裝置;嵌入式顯示終端為一套專用的嵌入式系統(tǒng),包括數(shù)據(jù)接收裝置,MCU單元和顯示裝置。數(shù)控系統(tǒng)的運動控制器為數(shù)控系統(tǒng)插補命令發(fā)送端,向現(xiàn)場總線驅(qū)動發(fā)送插補數(shù)據(jù),同時向調(diào)試代理模塊實時發(fā)送調(diào)試數(shù)據(jù);調(diào)試代理模塊是數(shù)控系統(tǒng)運動控制器和數(shù)據(jù)輸出裝置之間的傳輸通道,負責將運動控制器的調(diào)試信息發(fā)送給數(shù)據(jù)輸出裝置;數(shù)據(jù)輸出裝置從調(diào)試代理模塊中讀取運動控制器輸出的調(diào)試信息,并且利用處理器的非實時空閑時間將調(diào)試信息編碼之后經(jīng)由串口直接輸出。嵌入式顯示終端為一套專用的嵌入式系統(tǒng),顯示終端通過串口接收數(shù)控系統(tǒng)發(fā)送的數(shù)據(jù),數(shù)據(jù)經(jīng)過MCU解析之后在顯示單元顯示。
本發(fā)明用于總線式數(shù)控系統(tǒng)的數(shù)據(jù)采集方法包括以下步驟:調(diào)試代理模塊程序負責申請共享緩沖隊列,并進行初始化,該共享緩沖隊列分為一個環(huán)形的隊列,該隊列具有一個讀指針和一個寫指針;數(shù)控系統(tǒng)運動控制器線程進行加載操作;數(shù)控系統(tǒng)運動控制器線程共享調(diào)試代理模塊申請的共享緩沖隊列;在上述申請的緩沖隊列空間內(nèi),通過和運動控制器的寫操作和數(shù)據(jù)輸出裝置的讀操作,實現(xiàn)數(shù)控系統(tǒng)調(diào)試信息地實時輸出。運動控制器將調(diào)試信息寫入共享數(shù)據(jù)緩沖隊列,數(shù)據(jù)輸出裝置從共享數(shù)據(jù)緩沖隊列中讀該調(diào)試信息。在向調(diào)試代理模塊寫調(diào)試數(shù)據(jù)過程中,運動控制器按照固定的控制周期將調(diào)試信息寫入緩沖隊列寫指針所指向的數(shù)據(jù)區(qū)中。同樣地,數(shù)據(jù)輸出程序從緩沖隊列讀指針所指向的數(shù)據(jù)區(qū)中讀取運行狀態(tài)反饋信息等調(diào)試信息。所述運動控制器寫操作是指運動控制器向緩沖隊列寫指針所指向的數(shù)據(jù)區(qū)中寫入數(shù)控機床伺服系統(tǒng)反饋信息。其具體執(zhí)行步驟如圖2所示:,執(zhí)行步驟如下:步驟2.0接收到運動控制器的調(diào)時信息步驟2.1判斷調(diào)試代理模塊緩沖隊列是否為滿,如果調(diào)試代理模塊緩沖隊列狀態(tài)不為滿,則進行步驟2.3 ;如果調(diào)試代理模塊緩沖隊列狀態(tài)已滿,則進行步驟2.2.1 ;步驟2.2.1將緩沖隊列的讀指針加I ;步驟2.2.2將緩沖隊列讀指針執(zhí)行加I的結(jié)果與緩沖隊列的長度進行比較,如果緩沖隊列的讀指針與緩沖隊列的長度相等,則進行步驟2.2.3 ;如果緩沖隊列的讀指針位置和緩沖隊列長度不相等,進行步驟2.3 ;步驟2.3.3緩沖隊列的讀指針置為O ;步驟2.3運動控制器向接收緩沖隊列寫指針所指向的數(shù)據(jù)區(qū)寫入出反饋數(shù)據(jù)和調(diào)試信息;步驟2.4將緩沖隊列的寫指針位置向前移動一位;步驟2.5判斷緩沖隊列的寫指針與緩沖隊列的大小是否相等,如果緩沖隊列的寫指針與緩沖隊列大小相等,則執(zhí)行步驟2.6 ;如果緩沖隊列的寫指針位置與緩沖隊列大小不相等,本次操作結(jié)束步驟2.6將緩沖隊列寫指針置為O ;本次寫操作結(jié)束;所述數(shù)據(jù)輸出裝置讀操作是指位于數(shù)控系統(tǒng)端的數(shù)據(jù)輸出裝置從調(diào)試代理模塊中讀取運動控制器返回的狀態(tài)信息和調(diào)試信息,并且通過串口發(fā)送到顯示終端。其具體執(zhí)行步驟如圖3所示:數(shù)據(jù)輸出裝置讀操作是指數(shù)據(jù)輸出裝置從緩沖隊列讀指針所指向的數(shù)據(jù)區(qū)讀出調(diào)試信息和狀態(tài),并且通過串口發(fā)送到顯示終端執(zhí)行步驟如下:步驟3.0判斷緩沖隊列是否為空;如果隊列不為空,則進行步驟3.1 ;如果為空,則本次操作結(jié)束;步驟3.1將緩沖隊列讀指針所指向的數(shù)據(jù)讀到數(shù)據(jù)輸出裝置,將讀取到數(shù)據(jù)輸出裝置中的數(shù)據(jù)進行編碼;將數(shù)據(jù)輸出裝置中完成編碼的數(shù)據(jù)通過串口輸出;步驟3.2緩沖隊列的讀指針加I ;
步驟3.3將緩沖隊列讀指針加I操作的結(jié)果與緩沖隊列長度進行比較,如果緩沖隊列的讀指針與緩沖隊列長度相等,進行步驟3.4 ;否則,執(zhí)行步驟3.0步驟3.4將緩沖隊列的讀指針設(shè)置為0,執(zhí)行步驟3.4所述數(shù)據(jù)輸出裝置使用串口發(fā)送數(shù)據(jù)是指數(shù)據(jù)輸出裝置使用串口硬件將數(shù)據(jù)輸出。其具體執(zhí)行步驟如圖4所示:步驟4.0接收來自數(shù)據(jù)緩沖隊列的調(diào)試信息;步驟4.1打開串口設(shè)備;步驟4.2設(shè)置串口的屬性,包括波特率,校驗碼;步驟4.3使用串口設(shè)備發(fā)送數(shù)據(jù);步驟4.4判斷數(shù)據(jù)是否發(fā)送成功;如果沒發(fā)送成功,執(zhí)行步驟4.3 ;如果發(fā)送成功,執(zhí)行步驟4.4步驟4.4關(guān)閉串口設(shè)備;本次發(fā)送結(jié)束。所述顯示終端為一嵌入式的顯示設(shè)備。該設(shè)備主要由三個部分組成,分別是串口單元,MCU單元和顯示單元,如圖1所示。顯示終端的功能就是通過串口接收來自數(shù)控機床的調(diào)試信息,并且實時將其顯示出來。顯示終端的具體執(zhí)行步驟如圖5所示:步驟5.0顯示終端的MCU單元初始化顯示終端的顯示單元;步驟5.1顯示終端的MCU單元打開顯示終端的串口單元;步驟5.2顯示終端的MCU單元設(shè)置顯示終端的串口單元屬性;步驟5.3監(jiān)聽串口;步驟5.4判斷是否收到數(shù)據(jù),沒有收到數(shù)據(jù),執(zhí)行步驟5.4 ;串口設(shè)備接收到數(shù)據(jù),執(zhí)行步驟5.5 ;步驟5.5將數(shù)據(jù)解析,在顯示終端的顯示模塊顯示出來;步驟5.6判斷是否結(jié)束,判斷結(jié)果不為真,執(zhí)行步驟5.3 ;判斷結(jié)果為真,執(zhí)行步驟
5.7 ;步驟5.7關(guān)閉嵌入式顯示終端;為了測試本發(fā)明的實際運行效果及性能,在SSB-1II總線數(shù)控系統(tǒng)上應(yīng)用本發(fā)明并實際帶動伺服電機運行。伺服電機的實際運行情況平穩(wěn),不存在震動情況,實時數(shù)據(jù)觀測未存在數(shù)據(jù)丟失和數(shù)據(jù)讀寫錯誤情況。本發(fā)明的測試環(huán)境:SSB-1II (Synchronous-Serial-Bus,同步串行總線)數(shù)控總線;數(shù)控系統(tǒng)硬件平臺為CPU 5X86-133MHZ、RAM-32M、FLASH-32M ;操作系統(tǒng)為linux-2.4.22 (RTAI);執(zhí)行結(jié)果測試方式:電機實際轉(zhuǎn)動情況,運動插補數(shù)據(jù)和伺服反饋數(shù)據(jù)的實時打印觀測。顯示終端采用的是0MAP3530處理器作為MCU單元,使用符合RS232電氣特性的串口線與數(shù)控系統(tǒng)進行連接,顯示終端的顯示單元采用的是7寸液晶屏。
權(quán)利要求
1.一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,包括以下步驟: 在數(shù)控系統(tǒng)端調(diào)試代理模塊申請共享緩沖隊列,并進行初始化; 數(shù)控系統(tǒng)運動控制器線程共享調(diào)試代理模式的共享緩沖隊列; 在上述申請的共享緩沖隊列,通過和運動控制器寫操作,數(shù)據(jù)輸出裝置的讀操作和發(fā)送操作實現(xiàn)數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集操作; 在數(shù)據(jù)輸出裝置輸出的過程中直接使用串口輸出; 顯示終端通過串口接收并顯示數(shù)控系統(tǒng)實時輸出的調(diào)試信息。
2.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述共享緩沖隊列為環(huán)形緩沖隊列,具有一個讀指針和一個寫指針,每個數(shù)據(jù)區(qū)大小為運動控制器每周期發(fā)送調(diào)試信息的數(shù)據(jù)大小。
3.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述運動控制器寫操作是運動控制器向緩沖隊列頭指針所指向的數(shù)據(jù)區(qū)中寫入數(shù)控機床伺服系統(tǒng)反饋信息。
4.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述數(shù)據(jù)輸出裝置從調(diào)試代理模塊中讀取運動控制器返回的狀態(tài)信息和調(diào)試信息。
5.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述數(shù)據(jù)模塊與調(diào)試代理模塊相互獨立。
6.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述數(shù)據(jù)輸出裝置使用的運動控制器的剩余處理器時間進行輸出。
7.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述串口符合RS232電氣標準。
8.根據(jù)權(quán)利要求1所述的一種用于總線式數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集方法,其特征在于,所述顯示終端包括MCU單元,實時獲取串口的數(shù)據(jù),將數(shù)據(jù)在顯示單元實時顯示。
全文摘要
本發(fā)明涉及數(shù)控系統(tǒng)領(lǐng)域,具體地說是一種用于數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)的實時采集方法。本發(fā)明在數(shù)控系統(tǒng)端調(diào)試代理模塊申請共享緩沖隊列,并進行初始化;數(shù)控系統(tǒng)運動控制器線程共享調(diào)試代理模式的共享緩沖隊列;在上述申請的共享緩沖隊列,通過和運動控制器寫操作,數(shù)據(jù)輸出裝置的讀操作和發(fā)送操作實現(xiàn)數(shù)控系統(tǒng)的關(guān)鍵數(shù)據(jù)采集操作;在數(shù)據(jù)輸出裝置輸出的過程中直接使用串口輸出;顯示終端通過串口接收并顯示數(shù)控系統(tǒng)實時輸出的調(diào)試信息。本發(fā)明能夠解決運動控制器和用戶界面之間周期不匹配問題,有效提高實時性,具有占用空間小,通用性好的優(yōu)點。
文檔編號G05B19/18GK103163827SQ20111041834
公開日2013年6月19日 申請日期2011年12月14日 優(yōu)先權(quán)日2011年12月14日
發(fā)明者于東, 陸小虎, 胡毅, 秦承剛, 林立明, 馮強, 賈曉波 申請人:沈陽高精數(shù)控技術(shù)有限公司