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

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

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