葛伊倫,韓震宇
USB通信在開放式機床數控系統(tǒng)中的應用
葛伊倫,韓震宇
(四川大學 機械工程學院,四川 成都 610065)
介紹了一種基于USB通信的開放式數控系統(tǒng)架構,并通過實驗驗證USB通信傳輸的可行性與正確性。實現了經由USB通信將數控系統(tǒng)上下位機資源整合,提升了系統(tǒng)資源利用率,并大大提升了數控系統(tǒng)開發(fā)通用性與使用便利性,并為將來其他外設接入預留升級接口。為推動開放式數控系統(tǒng)研究提供數據通信方面的支持。
USB通信;數控系統(tǒng);通信協(xié)議;運動控制
近些年來,中國勞動力人口紅利呈現遞減態(tài)勢,制造業(yè)用工成本上升,國際上前有德國工業(yè)4.0的技術浪潮,后有印度等發(fā)展中經濟體的快速追趕試圖取代中國世界工廠的地位。國家為扶持制造業(yè)的發(fā)展而減稅降費并戰(zhàn)略性地提出中國制造2025,諸多因素促進了運動控制器產量增長速度高于年均GDP增速。此外,數控加工、印刷、電子等行業(yè)的發(fā)展也拉動了市場需求。運動控制器作為伺服系統(tǒng)的控制裝置,近年來保持著穩(wěn)定增長的需求量。
自20世紀50年代數控機床誕生以來,數控技術在國計民生諸多領域發(fā)揮著不可替代的作用,取得舉世矚目的成就,為制造業(yè)行業(yè)生態(tài)實現跨越式飛速發(fā)展打下堅實基礎。與此同時,全球化所帶來的行業(yè)變化使制造業(yè)市場競爭空前激烈,成本低、質量好、產品個性化強等諸多要求對行業(yè)發(fā)展不斷提出挑戰(zhàn),傳統(tǒng)數控系統(tǒng)因其專用性、封閉性的特點,也越來越不能滿足市場需要。新的市場環(huán)境要求數控系統(tǒng)朝著開放式控制系統(tǒng)轉化,開放式機床數控系統(tǒng)應運而生。
開放式結構數控系統(tǒng)是運動控制器的發(fā)展趨勢,將傳統(tǒng)的封閉型數控系統(tǒng)向通用型開放式的數控系統(tǒng)轉化[1],其接口規(guī)范標準統(tǒng)一,軟件協(xié)議對外開放,但凡市面上接口匹配的設備,均可實現與開放式運動控制器的連接,用戶借由通行的開發(fā)軟件平臺調用開放的API函數進行數控功能開發(fā),具有極大的易用性、便利性,模塊化的設計開發(fā)理念也讓系統(tǒng)擁有極大柔性。
伴隨硬件發(fā)展水平的日新月異和計算機技術的突飛猛進,數控系統(tǒng)架構主要經歷了單處理器(MCU)、專業(yè)運動控制PLC、PC-I/O卡、專用運動控制芯片,直到開放式的發(fā)展歷程[2]。
本系統(tǒng)為基于PC的開放式運動控制器,總體框架為PC+運動控制卡。PC作為上位機,利用其強大的運算能力于內存容量,完成運動計算與路徑規(guī)劃。運動控制卡作為下位機,接收、執(zhí)行上位機運算結果,實現運動控制功能。USB通信模塊負責完成兩者間的數據傳輸。其對外軟件接口為運動控制API函數,PC機使用API函數進行二次開發(fā),自行設計人機界面,硬件上通過高速總線(PCI、USB等)實現連接。
USB即通用串行總線,是一種快速、雙向、基于令牌的同步傳輸串行接口。具有接口統(tǒng)一、技術成熟、傳輸可靠、成本低廉、開發(fā)方便等優(yōu)點[3]。因此,市面上現已有各類基于USB接口的工業(yè)控制設備,使用USB作接口的智能機床控制器的研究也十分熱門。
USB數據傳輸以包(packet)為基本單位,從應用層的角度來說,數據傳輸屬于透明傳輸,單純作為USB協(xié)議的使用者,用戶只需要掌握如何調用API函數收發(fā)數據即可。
USB通信根據特點不同分為不同的傳輸方式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸。其中,控制傳輸是一種特殊的傳輸方式,當USB設備初次連接主機時,用控制傳輸傳送控制命令等對設備進行配置。同步傳輸一般用于要求數據連續(xù)、實時且數據量大的場合,其對傳輸延時十分敏感。中斷傳輸一般用于小批量的和非連續(xù)的數據傳輸,即數據量小的數據不連續(xù)但實時性高的場合。批量傳輸可以不定期傳輸大量數據,且具備錯誤檢查機制,在傳輸出錯的情況下會重新發(fā)送數據包,也是在空閑總線中,傳輸速度最快的方式[4]。
數控系統(tǒng)在數據傳輸中具有傳輸數據量大、傳輸正確性要求高、傳輸速率要求快的特點,據此對比以上四種傳輸方式的優(yōu)劣,選用批量傳輸方式。
USB經過多次升級,有不同的接口速度,現行最常用的USB2.0和USB3.0的最大通信速度分別為60 MB/s與 640 MB/s,均具備良好穩(wěn)定性。綜合考慮開發(fā)成本與本課題的性能需要,選擇USB2.0作為研發(fā)起點,后期根據課題需要,如引入更多軸的控制、更完善的數控指令后,造成數據傳輸量的激增,可通過更換硬件芯片進行升級,提高系統(tǒng)整體通信速度。
根據數控系統(tǒng)傳輸數據特點自定義通信協(xié)議,使USB通信以既定規(guī)則傳輸數據,方能使上位機的運算結果能被下位機“讀懂”。
數控程序國標采用G代碼加工程序,以便于機床操作人員使用統(tǒng)一工程語言編制加工代碼,而運動控制系統(tǒng)內部使用的數據溝通方式由開發(fā)商自行定義。上位機CNC軟件與運動控制器之間的數據交互手段為USB總線,USB協(xié)議中包含的握手機制和數據校驗機制保證了數據的準確性,因此自定義通信協(xié)議中無需增加這類機制,只需要解決數據意義的約定工作。
自定義通信協(xié)議應當包含數控加工中可能使用到的所有指令的具體定義,根據上位機PC傳輸的不同數控加工命令(含指令或數據),整理制定協(xié)議格式為如下六類:①同步頭+數據正文+同步尾;②同步頭+命令字+數據長度+數據正文+同步尾;③同步頭+地址碼+命令字+數據長度+數據正文+同步尾;④同步頭+數據正文+校驗碼;⑤同步頭+命令字+數據長度+數據正文+校驗碼;⑥同步頭+地址碼+命令字+數據長度+數據正文+校驗碼。
結合數控G代碼的種類和含義,并綜合考慮符合數控業(yè)務需求、便于數據識別、便于數據驗證的要求,制定出上下位機間經由USB進型數據傳輸的通信協(xié)議,其指令結構及定義如表1所示。
表1 實驗通信協(xié)議
位數數據定義 63-56指令計數器,從0開始計數,每次自增1,用于下位機判斷指令是否有丟失 55-54指令類型標志位,00位移指令;01非加工狀態(tài)下讀寫; 10 M型指令(開關量型指令),為立即指令時,M型為讀寫下位機寄存器或內存地址;11 S型指令(包含通訊、脈沖等) 53-52位移指令,0正方向,1負方向;SM指令,00寫寄存器,11讀寄存器 51指令結束標志位,1尚有后續(xù)加工指令,0無后續(xù)加工指令 50-43寄存器地址 42-32保留,留待后期增加定義 31-16X軸進給量,單位為um;M型指令時寫入數據的高16位 15-0Y軸進給量,單位為um;M型指令時寫入數據的低16位
自定義通信協(xié)議同樣具備高度靈活性與擴展性,隨著控制軸的增加,指令中的控制信息逐漸增加,64位長度的通信協(xié)議可能無法滿足實際需求,通信的效率有待提高,擴展片間通信總線的位寬以適應協(xié)議長度的增加[5]。
按如下步驟完成標準USB傳輸操作:設備上電后在設備管理器中查看設備VID與PID并在程序中完成宏定義#define m_dev_VID 0×0951和#define m_dev_PID 0×1666;Libusb庫函數usb_init( )初始化;調用usb_find_busses( )查找所有總線,調用usb_find_devices( )查找總線上的所有設備;設置循環(huán)利用庫函數bus_get_busses( )遍歷總線列表并返回結果;在上一步循環(huán)中遍歷設備列表并返回結果;調用庫函數usb_set_configuration( )設置活躍配置;調用庫函數usb_claim_interface( )通過OS認領一個與操作系統(tǒng)通信的接口;獲取端點的地址并對讀寫端點分配非缺省通道;開辟緩存區(qū)存儲發(fā)送數據或接收數據;根據業(yè)務需要,在上下位機調用庫函數進行數據的讀寫,如批量寫API函數int usb_bulk_write()或批量讀API函數int usb_bult_read()。
建立上下位機連接;設置一定大小(2 048字節(jié))的讀寫緩沖區(qū)以進行讀寫速度測試;采用批量傳輸方式調用庫函數usb_bulk_write( )向下位機發(fā)送數據;采用批量讀取方式調用庫函數usb_bulk_read( )從下位機讀取數據;調用Windows高精度(精確至毫秒級)時間函數QueryPerformance Frequency( )和QueryPerformanceCounter( )分別測量晶振與計數;利用時間計數函數結果計算讀數據速度。時間計數函數結果如圖1所示。USB2.0的最高傳輸速率為480 Mbps,即60 MB/s。但是,60 MB/s為標稱的理論速度,實際使用中設備共用USB通道時,每個設備的實際可支配帶寬會被分配,故傳輸數值小于60 MB/s為正常現象[6]。

圖1 時間計數函數結果
進行數據收發(fā)實驗,定義發(fā)送緩沖區(qū)為0~2 048的遞增循環(huán),并利用串口調試助手監(jiān)測數據傳輸結果,監(jiān)測數據傳輸結果如圖2所示,數據校驗無誤,說明通信正確可靠。
本課題驗證了USB通信用于開放式數控系統(tǒng)中數據傳輸的可行性與正確性,使PC-運動控制板卡的數控架構成為可能,可實現前者高運算能力和內存容量與后者高實時性的優(yōu)點整合,提高數控系統(tǒng)效率;有利于未來數控系統(tǒng)的擴展和升級:硬件USB通用接口與軟件API函數接口為后續(xù)升級留下便利接口[7];提高了系統(tǒng)集成度,降低了開發(fā)成本與周期,使上下位機數控技術研發(fā)可分頭并進。為進一步推動開放式數控系統(tǒng)的研究提供了數據傳輸方面的技術支撐。

圖2 監(jiān)測數據傳輸結果
[1]丁娜仁花.基于開放式數控系統(tǒng)的刀具數據庫管理研究與設計[J].機械工程學報,2007,43(5):1-7.
[2]李再銀.基于Windows的車床開放式數控系統(tǒng)研究與設計[J].科技創(chuàng)新導報,2008(32):37-38.
[3]楊大奎,曹川川,郭鵬遠.基于PMAC運動控制的數控加工中心G73代碼研發(fā)[J].南方農機,2009(3):54-56.
[4]王鵬,彭琰舉,李阿為,等.基于圖像處理的數控機床運動控制系統(tǒng)[J].現代電子技術,1998(12):44-46,51.
[5]張一凡,瞿華,周麗華.一種數控玻璃切割機運動控制系統(tǒng)的設計[J].制造業(yè)自動化,2008(30):130-132.
[6]馬秀明.基于CNC改進的開放式數控系統(tǒng)研究[J].安徽冶金科技職業(yè)學院學報,2005(2):53-57.
[7]何欣.一種基于運動控制卡的小型數控磨床系統(tǒng)研制[J].機械設計與制造,2012(11):37-40.
2095-6835(2020)06-0156-03
TG659
A
10.15913/j.cnki.kjycx.2020.06.064
葛伊倫(1993—),男,四川大學機械工程學院研究生,主要從事運動控制相關方面的研究。韓震宇(1963—),男,四川大學機械工程學院副教授,博士碩士生導師,主要從事機器視覺和運動控制方面的研究。
葛伊倫。
〔編輯:嚴麗琴〕