• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      數(shù)控系統(tǒng)加工過(guò)程遠(yuǎn)程監(jiān)控工具的設(shè)計(jì)與實(shí)現(xiàn)*

      2014-06-29 10:04:56田德偉陶耀東焦廣勝
      關(guān)鍵詞:共享內(nèi)存數(shù)控系統(tǒng)命令

      田德偉,陶耀東,焦廣勝

      (1.中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110004;2.中國(guó)科學(xué)院 研究生院,北京 100039 )

      0 引言

      隨著計(jì)算機(jī)技術(shù)、通信技術(shù)、控制技術(shù)的迅速發(fā)展,出現(xiàn)了IPC 工控機(jī)以及大量的智能儀表,其應(yīng)用使得工業(yè)生產(chǎn)過(guò)程的自動(dòng)化水平得到了很大的提高。過(guò)程分析技術(shù)(Process Analytical Technology,PAT)的出現(xiàn),促使裝備制造業(yè)引入該技術(shù)來(lái)提高產(chǎn)品的精度以及生產(chǎn)過(guò)程自動(dòng)化的水平。遠(yuǎn)程監(jiān)控是指利用計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)系統(tǒng)實(shí)現(xiàn)對(duì)遠(yuǎn)程工業(yè)生產(chǎn)過(guò)程控制系統(tǒng)的監(jiān)視和控制。工業(yè)生產(chǎn)過(guò)程的監(jiān)控信息接入Internet,在一定條件下就可以通過(guò)Internet 監(jiān)控生產(chǎn)系統(tǒng)和現(xiàn)場(chǎng)設(shè)備的運(yùn)行狀態(tài)和各種參數(shù),控制者就不必親臨現(xiàn)場(chǎng),這能夠節(jié)省大量的人力物力[1]。

      本文采用硬件抽象層、共享內(nèi)存以及I/O 多路復(fù)用技術(shù)實(shí)現(xiàn)對(duì)數(shù)控系統(tǒng)加工過(guò)程的遠(yuǎn)程監(jiān)控。數(shù)控系統(tǒng)加工過(guò)程中軸位置、軸速等信息通過(guò)共享內(nèi)存技術(shù)與服務(wù)器進(jìn)行交互,以C/S 模式構(gòu)成遠(yuǎn)程監(jiān)控系統(tǒng),client 可以通過(guò)運(yùn)行客戶(hù)端應(yīng)用程序監(jiān)控?cái)?shù)控系統(tǒng)加工過(guò)程的狀態(tài)信息。

      1 相關(guān)技術(shù)

      1.1 硬件抽象層(Hardware Abstract Layer,HAL)

      數(shù)控系統(tǒng)作為一個(gè)復(fù)雜的嵌入式系統(tǒng),具有專(zhuān)用性強(qiáng)、外圍設(shè)備多樣的特性,這決定了其應(yīng)用的硬件環(huán)境差異性較大。系統(tǒng)軟件模塊與硬件之間的接口是系統(tǒng)設(shè)計(jì)過(guò)程中的必需環(huán)節(jié),也是影響數(shù)控系統(tǒng)應(yīng)用前景的關(guān)鍵問(wèn)題之一。HAL 的引入可有效的解決該問(wèn)題,HAL 是將硬件平臺(tái)與應(yīng)用軟件隔離開(kāi)來(lái)的的軟件層次,通過(guò)硬件抽象層技術(shù)實(shí)現(xiàn)硬件相關(guān)和硬件無(wú)關(guān)兩部分程序代碼的隔離,為應(yīng)用程序提供一個(gè)沒(méi)有硬件特性的接口。硬件抽象層的引入不僅是系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)方法的改進(jìn),更直接關(guān)系到整個(gè)系統(tǒng)的開(kāi)發(fā)模式以及嵌入式操作系統(tǒng)的可移植性。硬件抽象層的引入大大推動(dòng)了嵌入式系統(tǒng)開(kāi)發(fā)的規(guī)范化進(jìn)程[2]。

      EMC2 中設(shè)計(jì)硬件抽象層的目的是使EMC2 可以快速的針對(duì)不同的硬件進(jìn)行配置而不需要改變上層程序,實(shí)現(xiàn)在I/O 接口和其他底層模塊之間傳輸實(shí)時(shí)數(shù)據(jù)。HAL 的設(shè)計(jì)采用了傳統(tǒng)的電路設(shè)計(jì)的模式,I/O設(shè)備以軟元件的形式存在于HAL 中,HAL 軟元件和傳統(tǒng)元件類(lèi)似,包括引腳(pin)、參數(shù)(parameter)等信息??梢酝ㄟ^(guò)HAL 中軟元件的加載和相連形成復(fù)雜多樣的控制系統(tǒng),如圖1 所示,利用HAL 組件構(gòu)建并口輸出PWM 信號(hào)驅(qū)動(dòng)X-Y 軸的直流伺服電機(jī)的連接圖[2]。

      1.2 I/O 多路復(fù)用

      在Linux 服務(wù)器編程中,系統(tǒng)資源的利用率是一個(gè)令人關(guān)注的問(wèn)題。本系統(tǒng)通過(guò)采用單進(jìn)程I/O 多路復(fù)用的方式解決了傳統(tǒng)的創(chuàng)建子進(jìn)程方式帶來(lái)的系統(tǒng)資源消耗,并極大地提高了CPU 的利用率,同時(shí)也可以方便的支持多個(gè)客戶(hù)端,理論上,在一個(gè)線(xiàn)程中可支持63 個(gè)客戶(hù)端;可以采用多線(xiàn)程支持更大數(shù)量的clients。

      I/O 多路復(fù)用,即一個(gè)進(jìn)程需要在多個(gè)I/O 端口上等待讀取或?qū)懭霐?shù)據(jù),可選擇將自己掛起,如果一個(gè)或多個(gè)I/O 滿(mǎn)足數(shù)據(jù)操作時(shí),進(jìn)程將被通知,繼續(xù)運(yùn)行,并作相應(yīng)的判斷處理和I/O 操作。select()方法可以對(duì)多路I/O 進(jìn)行阻塞式查詢(xún)。它提供同時(shí)對(duì)多個(gè)I/O 描述符進(jìn)行阻塞式查詢(xún)方法,可以方便地實(shí)現(xiàn)I/O多路復(fù)用[3]。

      圖1 井口輸出PWM 信號(hào)驅(qū)動(dòng)X-Y 軸的直流伺服電機(jī)HAL 連接圖

      2 系統(tǒng)設(shè)計(jì)

      遠(yuǎn)程監(jiān)控工具利用模塊化的設(shè)計(jì)思想,從縱向來(lái)看總體框架自底向上包含linux 操作系統(tǒng)、RTAI 模塊、硬件抽象層模塊、數(shù)據(jù)采集程序和客戶(hù)端程序。RTAI模塊和硬件抽象層模塊運(yùn)行在內(nèi)核空間,數(shù)據(jù)采集程序和客戶(hù)端程序運(yùn)行在用戶(hù)空間,它們之間的數(shù)據(jù)通信利用rtai 提供的共享內(nèi)存和I/O 多路復(fù)用技術(shù)來(lái)實(shí)現(xiàn)的,總體結(jié)構(gòu)如2 圖所示。

      圖2 遠(yuǎn)程監(jiān)控工具總體結(jié)結(jié)構(gòu)圖

      2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

      數(shù)據(jù)采集方法的設(shè)計(jì)以RTAI 的共享內(nèi)存為數(shù)據(jù)傳輸介質(zhì)。共享內(nèi)存在內(nèi)核空間和用戶(hù)空間之間進(jìn)行數(shù)據(jù)傳輸,具有較高的靈活性,所以在數(shù)控系統(tǒng)中應(yīng)用廣泛,因此提高共享內(nèi)存的管理效率對(duì)各種使用共享內(nèi)存的應(yīng)用具有很重要的意義。采用兩級(jí)數(shù)據(jù)管理結(jié)構(gòu),能夠有效的分配和釋放共享內(nèi)存,使用C 語(yǔ)言實(shí)現(xiàn)的該共享內(nèi)存管理層具有很好的可移植性,能夠減少共享內(nèi)存分配和釋放時(shí)間,同時(shí)互斥量的使用也能保證共享內(nèi)存的并發(fā)訪(fǎng)問(wèn)。數(shù)控系統(tǒng)加工過(guò)程遠(yuǎn)程監(jiān)控工具的設(shè)計(jì)是基于一個(gè)共享內(nèi)存的管理工具來(lái)實(shí)現(xiàn)的。使用共享內(nèi)存池和共享內(nèi)存塊這兩種結(jié)構(gòu)來(lái)完成對(duì)共享內(nèi)存管理工具的設(shè)計(jì)[4],共享內(nèi)存管理工具的結(jié)構(gòu)如圖3 所示。

      圖3 共享內(nèi)存管理工具結(jié)構(gòu)圖

      2.2 遠(yuǎn)程監(jiān)控工具設(shè)計(jì)

      主要是描述利用I/O 多路復(fù)用技術(shù)實(shí)現(xiàn)多個(gè)客戶(hù)端的登錄服務(wù)器的流程,登陸處理流程圖如圖4 所示。

      圖4 客戶(hù)端登陸流程圖

      客戶(hù)端登陸服務(wù)器端,首先需要打開(kāi)遠(yuǎn)程調(diào)試模式,并利用I/O 多路復(fù)用技術(shù)創(chuàng)建TCP 并發(fā)服務(wù)器;客戶(hù)端登陸成功后,可以通過(guò)終端輸入halcmd 命令,實(shí)現(xiàn)遠(yuǎn)程查看數(shù)控系統(tǒng)運(yùn)行狀態(tài)。當(dāng)輸入exit 或quit命令時(shí),客戶(hù)端終止這一次的連接。

      利用I/O 多路復(fù)用技術(shù)設(shè)計(jì)的服務(wù)器端架構(gòu)大致如下:

      與多進(jìn)程并發(fā)方式相比,采用I/O 復(fù)用技術(shù)的最大優(yōu)勢(shì)是服務(wù)器只需要一個(gè)進(jìn)程來(lái)處理所有的客戶(hù)機(jī)請(qǐng)求,所有程序沒(méi)有創(chuàng)建和管理進(jìn)程的開(kāi)銷(xiāo),減少了系統(tǒng)運(yùn)行中的系統(tǒng)開(kāi)銷(xiāo),提高了服務(wù)質(zhì)量;同時(shí)服務(wù)器運(yùn)行在單一進(jìn)程上下文中,因此每個(gè)邏輯流都能訪(fǎng)問(wèn)該進(jìn)程的全部地址空間使得在流之間共享變量很容易[1]。

      3 系統(tǒng)實(shí)現(xiàn)

      3.1 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

      在內(nèi)核空間和用戶(hù)空間之間的通信主要是嵌入硬件抽象層來(lái)實(shí)現(xiàn)的,硬件抽象層的設(shè)計(jì)又采用了共享內(nèi)存技術(shù)。共享內(nèi)存結(jié)構(gòu)體hal_data_t 的主要組成為:

      該結(jié)構(gòu)作為全局變量,halcmd 的命令是通過(guò)獲取互斥信號(hào)量來(lái)對(duì)該內(nèi)存區(qū)域進(jìn)行訪(fǎng)問(wèn)的。以loadrt siggen 為例,流程圖5 如所示。

      用戶(hù)輸入loadrt siggen 命令時(shí),該命令的功能是實(shí)現(xiàn)加載軟元件siggen,通過(guò)halcmd_commands 查找loadrt 對(duì)應(yīng)的操作函數(shù)do_loadrt_cmd(),如果siggen模塊尚未插入,則利用insmod siggen. ko 將該模塊插入。并將siggen 加入到hal_data - >pin_list_ptr 的鏈表中。命令執(zhí)行完畢,返回halcmd 命令行。

      圖5 處理loadrt siggen 命令流程圖

      3.2 遠(yuǎn)程監(jiān)控工具的實(shí)現(xiàn)

      遠(yuǎn)程監(jiān)控工具是halcmd 應(yīng)用程序的一部分,它的主要任務(wù)是完成對(duì)輸入命令的讀入,解析命令,執(zhí)行命令,返回命令執(zhí)行結(jié)果。

      其中halcmd_parse_cmd(tokens)主要是根據(jù)tokens,按照命令索引跳轉(zhuǎn)到相應(yīng)的命令函數(shù)中執(zhí)行??梢詫?shí)現(xiàn)加載模塊,模塊互聯(lián),模塊信息讀取等命令功能;print_info()根據(jù)tokens 執(zhí)行的結(jié)果將命令反饋信息發(fā)送給相應(yīng)的客戶(hù)端程序,從而實(shí)現(xiàn)對(duì)數(shù)控系統(tǒng)的加工狀態(tài)的遠(yuǎn)程監(jiān)測(cè)過(guò)程。

      4 實(shí)驗(yàn)

      在pc1 上運(yùn)行數(shù)控系統(tǒng)仿真軟件EMC2,打開(kāi)終端,使用halcmd -kfr 啟用加工過(guò)程遠(yuǎn)程監(jiān)測(cè)模式。分別在pc2 和pc3 上運(yùn)行. /monitor 192.168.2.14,連接到pc1 服務(wù)器端。查看pc2 和pc3 的輸出情況,同時(shí)也可以執(zhí)行halcmd 命令。實(shí)驗(yàn)結(jié)果如圖6 所示。

      圖6

      上圖是在pc2 和pc3 上顯示的對(duì)引腳變化的圖形化顯示的結(jié)果,顯示了三種不同的引腳曲線(xiàn):正弦,余弦和方形曲線(xiàn)。用戶(hù)可以方便使用該工具遠(yuǎn)程查看各個(gè)引腳的變化情況。

      5 總結(jié)與展望

      本文使用硬件抽象層技術(shù)和I/O 多路復(fù)用技術(shù),提出了一個(gè)數(shù)控系統(tǒng)加工過(guò)程遠(yuǎn)程監(jiān)測(cè)工具的設(shè)計(jì)方案,并利用EMC2 開(kāi)源數(shù)控軟件對(duì)數(shù)控?cái)?shù)控加工過(guò)程進(jìn)行仿真,運(yùn)用該遠(yuǎn)程監(jiān)測(cè)工具進(jìn)行對(duì)其進(jìn)行遠(yuǎn)程監(jiān)測(cè),能夠獲得數(shù)控加工過(guò)程中的軸的速度、軸的當(dāng)前位置、軸的位置反饋等信息,表明了該設(shè)計(jì)方案在對(duì)加工過(guò)程遠(yuǎn)程監(jiān)控方面是可行的。

      [1]于海晨,仲崇權(quán). 基于Ineternet 的控制系統(tǒng)遠(yuǎn)程監(jiān)控方案與實(shí)例[J]. 計(jì)算機(jī)自動(dòng)測(cè)量與控制,2001,9(5):14-16.

      [2]許軍,李華. EMC2 中的HAL 實(shí)現(xiàn)機(jī)理和應(yīng)用研究[J].自動(dòng)化與控制,2009(5):62 -64.

      [3]胡書(shū),衛(wèi)陸培倫. 一種基于Linux 的嵌入式視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)[J]. 安防科技,2009(1):7 -9.

      [4]王煜,林滸,陶耀東,等. 一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)[J]. 組合機(jī)床與自動(dòng)化加工技術(shù),2013(1):27 -30.

      [5]侯鳳媛. 數(shù)控技術(shù)的研究現(xiàn)狀與發(fā)展方向[J]. 機(jī)電技術(shù),2012(6):167 -169.

      [6]吳文江,王興舉,秦承剛,等.基于RTAI 的數(shù)控系統(tǒng)跟蹤調(diào)試模型的設(shè)計(jì)與實(shí)現(xiàn)[J]. 小型微型計(jì)算機(jī),2011,32(5):850 -853.

      [7]陶耀東,林滸. 高性能開(kāi)放式數(shù)控系統(tǒng)框架設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng),2009,30(9):1911 -1916.

      [8]Torrisi NM,de Oliveira J F G. Remote monitoring for high -speed CNC processes over public IP networks using CyberOPC[J]. The International Journal of Advanced Manufacturing Technology,2012,60:191-200.

      猜你喜歡
      共享內(nèi)存數(shù)控系統(tǒng)命令
      只聽(tīng)主人的命令
      通過(guò)QT實(shí)現(xiàn)進(jìn)程間的通信
      移防命令下達(dá)后
      基于FANUC 32i A數(shù)控系統(tǒng)的外部測(cè)量設(shè)計(jì)
      西門(mén)子840D sl數(shù)控系統(tǒng)在SC125大型車(chē)銑鏜床技術(shù)改造中的應(yīng)用
      基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動(dòng)功能開(kāi)發(fā)
      數(shù)控系統(tǒng)中GUI軟件平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)
      基于PCI總線(xiàn)的多處理器協(xié)同機(jī)制研究
      這是人民的命令
      QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動(dòng)設(shè)計(jì)
      電子世界(2014年21期)2014-04-29 06:41:36
      新兴县| 平陆县| 修文县| 永康市| 陈巴尔虎旗| 手游| 长岛县| 乡城县| 张家界市| 陇南市| 天峻县| 鄢陵县| 富宁县| 昌图县| 门源| 霍山县| 锡林郭勒盟| 永泰县| 香河县| 普洱| 林甸县| 北辰区| 叶城县| 自贡市| 灯塔市| 山西省| 扬中市| 日照市| 微博| 凌海市| 上蔡县| 东乡| 桐梓县| 临澧县| 宣威市| 辛集市| 昆明市| 山阳县| 嘉善县| 陇川县| 怀来县|