999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于μCOS的多軸運動控制器的通信模型

2019-09-19 12:09:36
測控技術 2019年1期
關鍵詞:進程

(上海交通大學 電子信息與電氣工程學院 電氣工程系,上海 200240)

隨著現代控制技術的發展,運動控制器的出現在一定程度上滿足了新型數控系統的標準化和開放性需求,為各種工業設備、國防設備以及智能醫療設備的自動化控制系統的研制和改進提供了一個統一的硬件平臺。特別是在機器人控制、半導體加工、飛行模擬器等新興行業中,運動控制器都得到了廣泛的應用。運動控制器在傳統的機床控制領域所占的份額也在不斷擴大。

市場上國外工業運動控制器種類很多,主要分為日本系列和歐洲系列。歐洲系列價格高于日本系列,但使用壽命更長,運動穩定性和精度也較高,系統兼容性也略勝一籌。知名度較高的有發那科、ABB、愛普生、庫卡等。國內相關研究的起步較晚,由于歷史較短,技術水平也比較落后,創新能力不強。早期主要依賴于從日本和歐美進口。比較知名的國內廠商有廣州數控、沈陽新松、眾為興等[1]。

目前市面上絕大多數運動控制器都以LinuxCNC為藍本,根據具體的產品需求對LinuxCNC進行功能上的裁剪和改進。LinuxCNC是一款基于Linux操作系統的開放式數控軟件,能夠對G代碼進行譯碼并控制數控機床的運行。最初LinuxCNC是因銑床的應用而開發的,但之后它增加了對車床和其他機器的支持。現在LinuxCNC普遍用于銑床、車床、等離子切割機、路由器和機器人等。

LinuxCNC的功能強大,代碼庫完備,有利于定制式運動控制器的開發。然而LinuxCNC平臺并不是一個強實時性操作系統,在實時性要求較高的場合,將無法滿足實時性需求。另一方面,LinuxCNC平臺由于功能繁多,其在功能運行上會有較大的冗余[2]。

由于以上原因,需要構建一個實時性更強的多軸運動控制器平臺,而基于μCOS構建的多軸運動控制器平臺則是一個很好的選擇。

μCOS是一個可以基于ROM運行、可裁剪、搶占式的實時多任務內核,具有高度可移植性,特別適用于微處理器和控制器。μCOS使用ANSI C語言進行開發,其主要特點有源代碼公開、代碼結構清晰、可移植性好等,其內核屬于搶占式,可以管理多達60個任務。

以μCOS為基礎研發的多軸運動控制器,將最大程度地利用μCOS高實時性的特點,且在制造成本上也有著很大的優勢。

多軸運動控制器是一個多模塊的系統平臺,為了將系統中的各個功能模塊有機地結合在一起,需要構建一個全新的、可兼容基于μCOS的多軸運動控制器的通信模型。

1 多軸運動控制器的結構

由于LinuxCNC在運動控制器應用上的泛用性,基于μCOS的多軸運動控制器的功能模塊結構,大體上與基于LinuxCNC的多軸運動控制器的功能模塊結構相同,如圖1所示[3]。

圖1 運動控制器的功能模塊圖

多軸運動控制器的結構主要分為4個功能模塊,分別是:GUI(Graphic User Interface)模塊,即圖形用戶界面,用于與用戶之間進行交互,無實時性要求;EMCTASK模塊,即任務管理器,管理任務調度和分配,無實時性要求;EMCMOT模塊,即運動控制器,機械運動與軌跡規劃模塊,有實時性要求;EMCIO模塊,即輸入輸出管理器,管理一些無實時性要求的輸入輸出量,無實時性要求。

GUI模塊是整個系統中唯一與用戶交互的模塊,為用戶提供圖形操作界面,以LinuxCNC上的AXIS人機界面為例,如圖2所示。在圖形操作界面中,可以執行G代碼的導入、手動回零、校準等功能。用戶對整個系統運行功能的設置,都通過GUI模塊實現。

圖2 GUI模塊圖形操作界面

EMCTASK模塊向上連接GUI模塊,向下連接EMCMOT和EMCIO兩個模塊。其主要功能是接收從GUI模塊傳遞來的執行命令和G代碼,經過一系列的轉換和整合,將輸入輸出量相關的命令傳遞給EMCIO模塊,運動控制相關的命令傳遞給EMCMOT模塊。同時EMCTASK還從EMCIO和EMCMOT中收集狀態信息和錯誤信息,整合后通過GUI模塊反饋給用戶。

EMCIO模塊用來控制機器的輸入輸出量,主要是一些實時性要求不高的輸入輸出量,例如注入潤滑液、冷卻功能、控制燈光、轉換操作模式等[4-5]。

EMCMOT模塊是整個系統中運動控制的核心模塊,運動學計算和軌跡規劃等都由EMCMOT實現。EMCMOT模塊在功能上涉及很多實時運算,對通信方式的實時性需求很高。在LinuxCNC中,EMCMOT和其他模塊都在同一臺整機中運行,EMCTASK與EMCMOT之間的通信通過共享內存(Shared Memory)的方式實現。而在基于μCOS的多軸運動控制器中,EMCMOT模塊被分割到μCOS中運行,而μCOS的硬件平臺是STM32,所以無法采用共享內存通信方案。作為替代,使用Socket套接字通信來實現EMCMOT與EMCTASK之間的通信。

其他非實時模塊,如GUI、EMCTASK和EMCIO之間的通信,則采用RCS庫中的NML通信方式。

2 RCS庫中的NML通信

2.1 RCS庫

RCS(Real-Time Control Systems)是由美國國家標準與技術研究院研發和支持的一種模塊之間的實時通信系統,可用于復雜系統的模塊化開發。RCS是基于面向對象模式開發的,代碼開源,可以方便地按照需求進行代碼重構。

RCS庫中有兩個重要的子系統,分別是CMS(Communication Manage System)和NML(Neutral Message Language)。CMS是RCS庫的底層通信管理軟件,主要作用在于提供通信接口,完成不同平臺上的基本數據類型與中性格式數據之間的編碼和解碼,以實現數據的跨平臺通信。NML是RCS庫中獨立于控制系統的中性消息語言,實際上是CMS的一種更高級的封裝形式[6]。

2.2 CMS和NML

CMS為本地進程、本地服務器進程和遠程進程都提供了基本的通信功能模塊、編碼/解碼模塊,在本地進程訪問中還提供了相應的緩沖區管理和讀寫信息。

CMS的具體功能由封裝好的CMS類來實現。CMS類中比較重要的成員函數有以下幾類:

① Format函數:格式化函數,用來識別消息類型、建立進程與緩沖區之間的連接。

② Update函數:更新成員的信息,同時對數據進行編碼或解碼,使其通過命令通道、狀態通道或錯誤通道來傳輸信息。

③ CMS通信函數:CMS層的底層讀寫函數,用于向緩沖區中的消息進行讀寫操作。

NML是CMS的頂層封裝,是用戶直接操作的層級,用戶通過對NML層的操作,無需了解NML層以下的層級的具體操作,即可完成NML通信的需求。

NML層主要包括消息管理模塊和配置管理模塊,例如消息詞匯的定義、消息類型的聲明和NML應用中配置文件的配置。

2.3 NML在運動控制器中的應用

基于μCOS的多軸運動控制器中,EMCTASK與GUI之間、EMCTASK與EMCIO之間,都通過NML通信建立通信連接。通過NML通信建立通信連接的主要優點在于,NML可以實現不同平臺上的本地或遠程通信。這是由于NML通信可以將一個平臺上的數據類型,轉換成中間數據類型,到另一個平臺上再轉換成對應平臺的數據類型。利用NML進行通信的各個模塊之間,可以處于不同的系統平臺,這對通信接口的統一性和模塊的擴展性有極大的助益。

以EMCTASK與EMCIO之間的NML通信為例,其通信框圖如圖3所示。EMCTASK與EMCIO之間的NML通信通道構建,主要分為3個通道,分別是命令通道、狀態通道和錯誤通道。正常工作時,命令通道將EMCTASK下發的命令傳遞到EMCIO,而狀態通道將EMCIO的狀態反饋給EMCTASK。當EMCIO發生錯誤時,錯誤信息通過錯誤通道反饋給EMCTASK。

圖3 EMCTASK與EMCIO的通信框圖

NML通信的構建,首先需要配置NML配置文件,NML配置文件主要配置的對象有兩個:一是緩沖區配置,如表1所示;二是進程配置,如表2所示。

表1 NML配置文件中的緩沖區配置

表2 NML配置文件中的進程配置

緩沖區配置文件中,每一行參數為對一個緩沖區的配置,#號所在的行是注釋行。首位的關鍵字“B”表示配置類型為Buffer,即緩沖區配置類型。第2位是Name,表明緩沖區的名稱。第3位是Type,表明緩沖區內存類型,可選項有SHMEM(共享內存)、GLOBMEM(全局內存)、LOCMEM(本地內存)、FILEMEM(文件內存),EMCTASK和EMCIO處于同一個操作系統中,選用速度較快的SHMEM類型。第4位是Host,即緩沖區所在的主機名稱,用于遠程通信。第5位是size,即緩沖區容量,表明該緩沖區所能容納的最大字節數。第6位是neutral,該標志位表明消息是否轉換為中性格式,該位置為“0”表示消息在同一個操作系統上傳遞,無需改變當前的數據格式;該位置為“1”,則表示消息會在不同的操作系統上傳遞,傳遞時需要將消息轉換為中性格式,消息到達對應平臺時,再轉換成平臺對應的數據格式。第7位與配置文件的版本有關,默認置0即可。第8位是buffer number,即緩沖區標號,共享同一個服務器的緩沖區標號,必須是不同的。第9位是MP(Maximum Processes),即該緩沖區能連接的最大進程數。再之后的參數為可選參數,并不是必要的,依次是遠程通信端口號、遠程通信協議、使用的中性消息格式、是否隊列式讀寫等。

NML進程的配置,首位的關鍵字“P”表示配置類型為Process,即進程類型。第2位的Name表示進程名稱。第3位的Buffer表示該進程連接的緩沖區名稱。第4位的Type表示該進程的類型,類型只分為兩種,LOCAL本地類型和REMOTE遠程類型。第5位的Host表示該進程運行所在的主機名。第6位的Ops表示該進程所做的操作,可選項有R(只讀)、W(只寫)、RW(讀寫)3種。第7位server是一個標志位,置“0”表示該進程不是一個NML服務器,置“1”表示該進程為NML服務器進程。第8位的timeout表示進程執行的時限,單位為s。第9位的master是一個特殊的標志位,標志位置“0”時,該進程連接到的緩沖區如果不存在,則這是一個錯誤的操作;標志位置“1”時,該進程連接到的緩沖區如果不存在,則會新建一個緩沖區。第10位的cnum即connect number,是在0與緩沖區最大進程數之間的一個特殊數字,作為操作特定緩沖區的進程序號,用于信號量操作。

在配置完NML配置文件后,可以在工程代碼中初始化并使用NML函數庫實現通信功能。

3 Socket套接字通信

3.1 Socket套接字簡介

Socket套接字是支持TCP/IP協議族的網絡通信基本操作單元,是網絡通信層中的中間軟件抽象層。Socket包含兩個最基本的成員:IP和port,IP可標識通信網絡中的一臺主機,而port即端口號,可標識一臺主機中特定的一個進程,所以可將Socket套接字視為不同主機的進程之間進行通信的端點。

常見的Socket套接字類型有3種。

① 流套接字。面向連接,面向流,提供可靠的數據傳輸服務。這種類型的Socket套接字能實現數據的無差錯、無重復發送,接收時會按照發送的順序接收。由于流套接字使用TCP進行數據傳輸,接收端在接收數據后會返回ack信號。根據ack信號,發送端會決定該次傳輸是否成功,傳輸成功則結束該次傳輸,準備下一次傳輸;傳輸失敗則重新發送相同的數據。

② 數據包套接字。面向消息,提供無連接、高效率的服務。與流套接字不同,數據包套接字類型在傳輸數據時不需要建立連接,只需將目的地址信息和數據打包后發出即可,支持一對多傳輸。該Socket套接字使用UDP進行傳輸,高效率低延遲,但由于接收方對數據傳輸無反饋,所以無法保證數據傳輸的可靠性。

③ 原始套接字。允許操作者對訪問和控制底層的通信協議,即可以通過該類型的Socket套接字操縱網絡層和傳輸層應用。原始套接字主要用于通信協議的開發,能獲取通信協議的高級訪問權限,所以并不適合普通用戶使用[7]。

3.2 Socket套接字在多軸運動控制器中的應用

在基于μCOS的多軸運動控制器系統中,Socket套接字主要用于EMCTASK和EMCMOT之間的通信。其中EMCTASK模塊位于上位機系統中,而EMCMOT模塊位于作為下位機的STM32中。EMCMOT模塊中的Socket套接字通信模塊會不斷輪詢來自上位機的通信信息,并由此做出相應的操作和反饋。其通信框圖如圖4所示。

圖4 Socket套接字通信框圖

首先,EMCMOT和EMCTASK分別創建Socket套接字。EMCMOT需要用過bind()函數綁定IP地址和port端口,之后使用listen()函數開始監聽該端口。之后調用accept()函數,該函數在EMCTASK發起連接請求之前,會使通信功能一直處于阻塞狀態。EMCTASK模塊調用connect()函數向EMCMOT模塊發起Socket套接字通信連接請求。建立通信連接后,EMCMOT模塊會調用recv()函數輪詢來自EMCTASK模

塊的指令,EMCTASK模塊將從上個層級傳來的指令通過send()函數發送給EMCMOT模塊。EMCMOT模塊在處理完EMCTASK模塊發出的指令后,會調用send()函數反饋對應的信息給EMCTASK模塊,之后重新調用recv()函數等待下一個指令。

4 結束語

基于μCOS的多軸運動控制器相比于傳統的多軸運動控制器實時性更強,且生產成本更低,但需要重新設計通信結構。通信模型的構建以4大功能模塊為基礎,GUI、EMCTASK和EMCIO 3個模塊之間使用NML通信相連接,而EMCTASK和EMCMOT之間使用Socket套接字通信,這種通信模型既滿足了模塊的實時性要求,又具有一定程度的靈活性和擴展性。

猜你喜歡
進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進程中的國際收支統計
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進程
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
講效率 結束進程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
論文萊的民族獨立進程
主站蜘蛛池模板: 亚洲性日韩精品一区二区| 先锋资源久久| 欧洲在线免费视频| 中文字幕色在线| 韩国自拍偷自拍亚洲精品| 久久综合AV免费观看| 亚洲综合久久成人AV| 免费不卡在线观看av| 日韩精品资源| 97精品国产高清久久久久蜜芽| 久久福利网| 22sihu国产精品视频影视资讯| 麻豆国产在线不卡一区二区| 亚洲人成色在线观看| 亚洲最大综合网| 久99久热只有精品国产15| 国产一区二区福利| 制服丝袜一区二区三区在线| 久久青草精品一区二区三区 | 色综合日本| 四虎永久在线精品影院| 一级毛片在线播放免费观看| 看你懂的巨臀中文字幕一区二区| 91在线激情在线观看| 国产一级毛片网站| 久久精品这里只有精99品| 亚洲一区无码在线| 中文字幕第4页| 在线欧美a| 精品国产一区二区三区在线观看| 欧美啪啪精品| 国产精品思思热在线| 又污又黄又无遮挡网站| 欧美在线黄| 无码高潮喷水在线观看| 欧美久久网| 亚洲色欲色欲www网| 国产成人做受免费视频| 天天综合天天综合| 欧美日韩另类在线| 欧美成人一级| 亚洲天堂网在线观看视频| 蜜臀AV在线播放| 国产菊爆视频在线观看| 日韩黄色精品| 精品伊人久久久香线蕉| 日韩大乳视频中文字幕| 萌白酱国产一区二区| 永久免费av网站可以直接看的 | …亚洲 欧洲 另类 春色| 欧美成人精品高清在线下载| 五月激情婷婷综合| 亚洲一区二区三区香蕉| 国产高颜值露脸在线观看| 免费观看三级毛片| 欧美中文字幕无线码视频| 精品少妇人妻av无码久久| 国产亚洲精品自在久久不卡 | 乱人伦视频中文字幕在线| 国产欧美日韩另类| 99久久精品视香蕉蕉| 黑色丝袜高跟国产在线91| 亚洲Av综合日韩精品久久久| 久久综合结合久久狠狠狠97色| 中国国产高清免费AV片| 夜夜拍夜夜爽| 色偷偷男人的天堂亚洲av| 亚洲 欧美 偷自乱 图片| 国产不卡网| av一区二区三区在线观看 | 国产日本一线在线观看免费| 国产精品手机在线观看你懂的| 日韩一二三区视频精品| 97精品伊人久久大香线蕉| 中文字幕 欧美日韩| 久久黄色一级片| 日本在线亚洲| 国产成人亚洲日韩欧美电影| 亚洲精品成人片在线播放| 精品人妻系列无码专区久久| 99精品视频九九精品| 亚洲最大综合网|