趙鴻博,王志成,何鵬飛,孫樹杰
(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
軸控制系統(tǒng)通信技術(shù)的研究與實(shí)現(xiàn)*
趙鴻博1,2,王志成2,3,何鵬飛1,2,孫樹杰1,2
(1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院沈陽計算技術(shù)研究所 高檔數(shù)控國家工程研究中心,沈陽 110168;3.沈陽高精數(shù)控技術(shù)有限公司,沈陽 110168)
為解決工業(yè)智能化過程中可編程軸控制器與外設(shè)之間的通信技術(shù)問題,在分析軸控制器實(shí)時可靠通信需求的基礎(chǔ)上,對基于Modbus協(xié)議的軸控制系統(tǒng)通信技術(shù)進(jìn)行研究。實(shí)現(xiàn)了可編程軸控制器與上位PC機(jī)之間的可靠通信;軸控制器與被控設(shè)備之間的實(shí)時可靠通信。最后通過應(yīng)用驗(yàn)證了該技術(shù)方法的有效性。該技術(shù)對工業(yè)軸控制通信系統(tǒng)的設(shè)計具有重要參考價值。
軸控制器;通信協(xié)議;主從關(guān)系;定時機(jī)制;幀格式
軸控制系統(tǒng)是通過對機(jī)械運(yùn)動部件的位置、速度等實(shí)時控制管理,使其按照預(yù)期的運(yùn)動軌跡和規(guī)定的運(yùn)動參數(shù)進(jìn)行運(yùn)動的現(xiàn)代化工控系統(tǒng)。實(shí)現(xiàn)軸控制系統(tǒng)離不開其核心部件軸控制器與外部設(shè)備之間的通信技術(shù),即軸控制器與上位PC機(jī)或被控設(shè)備之間的通信實(shí)現(xiàn)。隨著工業(yè)智能化的進(jìn)展,傳統(tǒng)的采用PCI、ISA、RS232等通信接口的軸控制器,無論是連接方便性還是對電機(jī)運(yùn)動控制的速度、精度都已經(jīng)不能滿足現(xiàn)代自動控制場合的進(jìn)一步要求,這促使我們選用一些新的方法對傳統(tǒng)的軸控制器通信技術(shù)進(jìn)行改進(jìn)[1]。同時,各大生產(chǎn)廠商采用的軸控制系統(tǒng)通信協(xié)議各不相同,有的甚至不公開內(nèi)部細(xì)節(jié),這樣便造成設(shè)備之間存在兼容性問題,擴(kuò)展性不佳。結(jié)合以上信息,我們可以看出目前急需一種基于通信的開發(fā)式軸控制系統(tǒng)。
在美國,開放式軸控制系統(tǒng)被譽(yù)為新一代工業(yè)控制系統(tǒng),其產(chǎn)品遍布多個領(lǐng)域。國內(nèi)外專家預(yù)測開放式軸控制系統(tǒng)其應(yīng)用的普遍性將與目前應(yīng)用廣泛的PLC類似[2]。軸控制系統(tǒng)目前研究的熱點(diǎn)是融合工業(yè)4.0的理念,將網(wǎng)絡(luò)技術(shù)應(yīng)用到制造業(yè)。簡單的講,就是改進(jìn)通信技術(shù),采用現(xiàn)場總線的方式,實(shí)現(xiàn)高速、高精的控制要求,制造出基于標(biāo)準(zhǔn)化數(shù)字接口協(xié)議的軸控制系統(tǒng)。
在此背景下,本文對滿足工業(yè)智能化發(fā)展要求的數(shù)字化通信技術(shù)進(jìn)行研究,實(shí)現(xiàn)了上位PC機(jī)與軸控制器之間,軸控制器與被控設(shè)備之間的實(shí)時可靠通信。
上位PC機(jī)、可編程軸控制器和伺服驅(qū)動器構(gòu)成了一個基本的軸控制系統(tǒng)。如圖1,可以清楚的看出,系統(tǒng)通信由兩部分組成。第一部分,在上位PC機(jī)的調(diào)試軟件上編寫程序,通過USB端口將程序指令代碼序列下載到單軸控制器中。單軸控制器的響應(yīng)也通過USB端口返還給上位機(jī);第二部分,單軸控制器對指令代碼序列進(jìn)行解釋處理,依據(jù)得出的運(yùn)動參數(shù)規(guī)劃電機(jī)的運(yùn)動軌跡,接著通過RS485通信接口將位置指令、啟動/停止等命令傳遞給伺服驅(qū)動器。同樣伺服驅(qū)動器也通過RS485接口向單軸控制器傳輸位置反饋。根據(jù)實(shí)際工程中的不同需求,這兩部分通信采用了不同的通信接口。
圖1 軸控制系統(tǒng)模型
分析軸控制系統(tǒng)的通信技術(shù)列出以下四點(diǎn)需求,這些均是設(shè)計實(shí)時可靠通信必須考慮的因素。
(1)軸控制器與上位PC機(jī)的通信周期應(yīng)小于上位機(jī)軟件設(shè)定的10ms限制。也就說,從上位機(jī)傳輸數(shù)據(jù)開始,到上位機(jī)接收完軸控制器的返回數(shù)據(jù),時間應(yīng)小于10ms。
(2)軸控制器向伺服驅(qū)動器發(fā)送位置指令和伺服驅(qū)動器位置反饋的時間之和,需要小于一個插補(bǔ)周期(1ms)。只有滿足此要求才能保證軸控制器的同步實(shí)時性[3-5]。
(3)除此之外,軸控制系統(tǒng)中通信報文需采用短幀結(jié)構(gòu),這樣能夠降低傳輸時間和數(shù)據(jù)出錯率。
(4)軸控制器與伺服驅(qū)動器之間存在不同廠商間的兼容性問題,一個成功的通信技術(shù)一定要解決兼容性問題,方能實(shí)現(xiàn)分布廣泛的應(yīng)用。
2.1 實(shí)時調(diào)度
為了保證軸控制系統(tǒng)的實(shí)時性,采用嵌入式實(shí)時操作系統(tǒng)對任務(wù)進(jìn)行實(shí)時調(diào)度。實(shí)時操作系統(tǒng)專為嵌入式系統(tǒng)而設(shè)計,提供三種不同的內(nèi)核調(diào)度選項(xiàng),分別是搶先、循環(huán)(時間片輪轉(zhuǎn))、協(xié)作,并且提供完全確定性行為,可以在定義的時間內(nèi)處理事件和中斷,滿足軸控制系統(tǒng)任務(wù)間的實(shí)時調(diào)度需求。
2.2 系統(tǒng)結(jié)構(gòu)
軸控制器軟件系統(tǒng)建立在keil RTX實(shí)時操作系統(tǒng)上,keil RTX系統(tǒng)為運(yùn)動控制和通信需求提供相關(guān)的服務(wù)與支持。分析軸控制器的功能,利用操作系統(tǒng)服務(wù)建立四個線程,如圖2所示。
圖2 keil RTX實(shí)時系統(tǒng)線程的分配
為了解決復(fù)雜的時序控制問題,首先要對線程進(jìn)行合理的分配。解釋器線程Task_Interpreter(void)和運(yùn)動控制器線程Task_Motioncontrol(void)均分配為高優(yōu)先級,設(shè)置為時間片輪轉(zhuǎn)的同優(yōu)先級,并且每1ms執(zhí)行一次。與上位PC機(jī)通信的USB虛擬串口線程Task _Common(void)分配為中優(yōu)先級。與伺服驅(qū)動器通信的RS485線程Task_RS485(void)分配到低優(yōu)先級。這四個線程被分別處于高、中、低三個不同優(yōu)先級,周期性地被觸發(fā)執(zhí)行。利用keil RTX實(shí)時系統(tǒng)實(shí)時性、靈活性的特點(diǎn),為軸控制系統(tǒng)通信解決了軟件實(shí)時性的問題。
3.1 通信報文幀的設(shè)定
通過分析比較目前常用的通信協(xié)議,選用符合軸控制系統(tǒng)需求的Modbus通信協(xié)議。一個通用Modbus幀如圖2所示,Modbus協(xié)議定義了一個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU),即PDU=功能碼+數(shù)據(jù)域。Modbus協(xié)議能夠應(yīng)用在不同類型的總線或網(wǎng)絡(luò)。對應(yīng)不同的總線或網(wǎng)絡(luò),Modbus協(xié)議引入附加域映射成應(yīng)用數(shù)據(jù)單元(ADU),即ADU=附加域+ PDU[6-7]。采用這種幀格式不僅有助于通信的可靠性,而且解決了不同廠商設(shè)備間的兼容性問題。
圖3 通用Modbus幀
Modbus通信協(xié)議提供ASCII和RTU兩種傳輸模式。軸控制系統(tǒng)的通信均采用短幀結(jié)構(gòu),所以選擇報文幀最長256字節(jié)的RTU模式,在同樣的波特率下,可比ASCII模式傳輸更多的數(shù)據(jù)。
3.2 校驗(yàn)機(jī)制、重發(fā)機(jī)制
Modbus協(xié)議規(guī)定了完善的校驗(yàn)機(jī)制,用時長至少為發(fā)送3.5個字符時間的空閑間隔來區(qū)分報文幀。這個時間間隔常被稱作T3.5。當(dāng)發(fā)送完最后一個字符后,有發(fā)送3.5個字符時間以上的停頓間隔則說明了消息傳輸?shù)慕Y(jié)束。同時,整個信息必須連續(xù)發(fā)送,如果兩個字符之間的空閑間隔超過1.5個字符時間,則報文幀被認(rèn)為不完整,應(yīng)該被接收節(jié)點(diǎn)丟棄。Modbus協(xié)議利用時間間隔確保了幀信息的完整性。在接收到一幀數(shù)據(jù)后,通過校驗(yàn)幀格式里附帶的CRC校驗(yàn)值,進(jìn)一步保證報文幀的正確性。軸控制系統(tǒng)通信幀格式如表1。
表1 Modbus RTU模式報文幀
在通信中,上位機(jī)發(fā)送報文幀后,定時器開始計數(shù),若超出等待時間仍未收到應(yīng)答幀或者檢測到應(yīng)答幀錯誤,則重發(fā)此請求幀。這種重發(fā)機(jī)制確保了軸控制系統(tǒng)中通信的可靠性。
4.1 上位PC機(jī)與軸控制器的通信實(shí)現(xiàn)
以前文分析得出的軸控制系統(tǒng)通信需求作為設(shè)計指標(biāo),首先介紹上位機(jī)與軸控制器的通信實(shí)現(xiàn)方式。借助于上位PC機(jī)Windows平臺下的圖形化調(diào)試軟件,實(shí)現(xiàn)界面友好的軸控制編程環(huán)境。上位PC機(jī)與軸控制器之間采用最常用、高速的USB接口進(jìn)行通信。在USB標(biāo)準(zhǔn)子類中,有一類稱之為CDC(Communication Device Class)類,可以實(shí)現(xiàn)虛擬串口通信,而且由于大部分的操作系統(tǒng)(Windows和Linux)都帶有支持CDC類的設(shè)備驅(qū)動程序,可以自動識別CDC類的設(shè)備,這樣不僅免去了寫上位PC機(jī)專用設(shè)備驅(qū)動的負(fù)擔(dān),同時簡化了設(shè)備驅(qū)動的安裝[8]。因此確定以USBCDC虛擬串口的方式實(shí)現(xiàn)上位PC機(jī)與軸控制器之間的通信。在上位PC機(jī)與軸控制器的通信中,軸控制器作為從設(shè)備,實(shí)現(xiàn)了如圖4的狀態(tài)轉(zhuǎn)換。
圖4 軸控制器作為從設(shè)備狀態(tài)轉(zhuǎn)換圖
軸控制器上電后處于通信空閑狀態(tài)。當(dāng)接收到來自上位PC機(jī)的請求幀,軸控制器隨即進(jìn)入檢查請求狀態(tài),對請求幀地址碼、CRC校驗(yàn)碼以及接收到的數(shù)據(jù)進(jìn)行檢查。若檢查出現(xiàn)錯誤,軸控制器向上位PC機(jī)返回格式化錯誤應(yīng)答。如果請求幀檢查正確,軸控制器則對請求幀進(jìn)行處理,若在處理中出現(xiàn)錯誤,則向上位PC機(jī)返回格式化錯誤應(yīng)答。如果正確處理了請求幀,軸控制器則返回上位PC機(jī)查詢的功能,即格式化正常應(yīng)答。
上位PC機(jī)與軸控制器的通信數(shù)據(jù)中,最主要的是調(diào)試軟件編譯好的指令代碼序列。所以專門定義了傳輸代碼序列的功能碼0x26。下面是實(shí)現(xiàn)的用于傳輸指令代碼序列功能的PDU幀格式。
表2 上位PC機(jī)請求幀
表3 軸控制器格式化正常應(yīng)答幀
表4 軸控制器格式化錯誤應(yīng)答幀
4.2 軸控制器與伺服驅(qū)動器的通信實(shí)現(xiàn)
將現(xiàn)場總線的數(shù)字化接口引入軸控制系統(tǒng)通信中,為可靠性通信提供硬件支持,并且要符合軸控制系統(tǒng)對接口簡單靈活的要求。RS485總線是很好的選擇方案。因此,軸控制器采用RS485串口與伺服驅(qū)動器通信,設(shè)定波特率為19200b/s,8位數(shù)據(jù)位,1位校驗(yàn)位,1位停止位。
如圖5,軸控制器作為主設(shè)備,在上電后處于通信空閑狀態(tài)。當(dāng)程序運(yùn)行到軸控制器向伺服驅(qū)動器發(fā)送請求幀指令的同時,啟動定時器響應(yīng)超時機(jī)制。隨后,軸控制器進(jìn)入等待應(yīng)答狀態(tài),利用T1.5定時機(jī)制保證應(yīng)答幀的完整性。若當(dāng)定時器時間到,仍未收到對應(yīng)的應(yīng)答幀,軸控制器進(jìn)行出錯處理。這里出錯處理設(shè)計為向伺服驅(qū)動器重發(fā)請求幀。通過T3.5定時機(jī)制確認(rèn)正確接收完一幀。接下來處理接收到的應(yīng)答幀,若檢測到錯誤,則進(jìn)行出錯處理,重發(fā)請求幀。若檢測應(yīng)答幀正確,則按編寫好的程序處理應(yīng)答幀,從而實(shí)現(xiàn)相應(yīng)的功能。
圖5 軸控制作主設(shè)備狀態(tài)轉(zhuǎn)換圖
軸控制器選用基于cortex-m3內(nèi)核、ARMv7架構(gòu)、72MHz主頻的STM32F103處理器。利用處理器中的定時器來實(shí)現(xiàn)T3.5、T1.5以及超時重發(fā)Trepeat[9-11]。本方案中設(shè)計超時重發(fā)Trepeat的時間為10ms。
程序中的具體實(shí)現(xiàn),首先設(shè)置通用定時器向上計數(shù),輸出比較觸發(fā)模式。將處理器主頻七十二分頻后賦給定時器,即定時器的時鐘為1MHz。然后計算T3.5、T1.5和Trepeat的定時器計數(shù)值,公式如下:
其中NT3.5表示定時T3.5時間需要的計數(shù)值,n表示一個字符的長度,B代表數(shù)據(jù)傳輸?shù)牟ㄌ芈?,t1代表定時器計一次數(shù)的時間。以軸控制器與伺服驅(qū)動器的RS485通信為例,字符是由1位起始位,8位數(shù)據(jù)位,1位校驗(yàn)位,1位停止位組成,所以字符長度n為11。波特率B為19200b/s,t1為即10-6s。
同理NT1.5表示定時T1.5時間需要的計數(shù)值,利用公式(2)計算得
設(shè)定重發(fā)定時時間為10ms,即0.01s,t1為10-6s,相除得NTrepeat=10000。
將上面得到的定時器計數(shù)值,應(yīng)用到程序的編寫中,實(shí)現(xiàn)T3.5、T1.5和超時重發(fā)的功能。
5.1 環(huán)境搭建
為驗(yàn)證上述關(guān)于軸控制系統(tǒng)通信的研究結(jié)論,設(shè)計并實(shí)現(xiàn)了按照此方案通信的單軸控制器,以沈陽高精數(shù)控有限公司的可重構(gòu)伺服驅(qū)動器為被控對象,搭建了實(shí)際的實(shí)驗(yàn)測試平臺,如圖6。伺服電機(jī)本身對通信具有強(qiáng)干擾性,所以在此平臺上可以測試設(shè)計的通信系統(tǒng)的抗干擾能力。
圖6 實(shí)驗(yàn)測試平臺
5.2 通信指標(biāo)驗(yàn)證
通過一系列測試,驗(yàn)證設(shè)計的方案是否達(dá)到了前面所分析的軸控制系統(tǒng)通信需求。通過上位PC機(jī)調(diào)試軟件統(tǒng)計從上位機(jī)發(fā)送請求幀開始至上位機(jī)接收應(yīng)答幀結(jié)束這一個周期的時間。將計算的10000個周期時間值導(dǎo)入MATLAB,分析繪圖,得到圖7。可以清晰的看出,一個周期的通信時間最小為0.024ms,最大為0.744ms。絕大部分通信時間均在0.1ms之下,遠(yuǎn)遠(yuǎn)小于需求分析中上位機(jī)軟件要求的10ms限制。由此表明上位PC機(jī)與單軸控制器之間的通信正常,且滿足實(shí)際工程中的要求。
圖7 通信周期統(tǒng)計圖
在單軸控制器軟件系統(tǒng)中加入通信測試子模塊,設(shè)計三個變量分別記錄實(shí)驗(yàn)通信的總次數(shù)、重發(fā)次數(shù)和通信出錯次數(shù),并將記錄的變量值在LCD上實(shí)時顯示[12-13]。如圖8,此時LCD顯示單軸控制器與伺服驅(qū)動器之間共進(jìn)行了12016次通信,其中重發(fā)了2次,無通信錯誤。此數(shù)據(jù)表明在具有強(qiáng)電磁干擾的工業(yè)環(huán)境下,前面討論分析的基于modbus協(xié)議的通信技術(shù)完全可以應(yīng)用在軸控制系統(tǒng)中,確保通信可靠實(shí)時,必要時只要采用一兩次重發(fā)即可使無故障通信時間加長,大大降低通信出錯的概率。
圖8 LCD顯示通信測試子模塊參數(shù)
本文通過對軸控制系統(tǒng)的通信需求進(jìn)行分析研究,完善了Modbus協(xié)議應(yīng)用在軸控制系統(tǒng)的數(shù)字化通信技術(shù)。設(shè)計并實(shí)現(xiàn)了相應(yīng)的硬件設(shè)備和通信程序。實(shí)驗(yàn)驗(yàn)證了基于Modbus協(xié)議的軸控制通信技術(shù)使用簡單、方便,讀取的數(shù)據(jù)準(zhǔn)確無誤,實(shí)時可靠。采用USB接口和總線式通信的設(shè)計滿足了高速、高精電機(jī)控制的要求。采用開發(fā)標(biāo)準(zhǔn)的通信協(xié)議解決了設(shè)備間兼容性問題??梢哉f,本文的設(shè)計方案適應(yīng)于實(shí)際工業(yè)生產(chǎn)環(huán)境,可為相關(guān)項(xiàng)目開發(fā)帶來便利,縮短開發(fā)周期,對設(shè)計實(shí)時可靠的開放式軸控制通信系統(tǒng)具有重要參考價值。
[1]張健.基于Modbus通信的四軸運(yùn)動控制器設(shè)計與研究[D].西安:長安大學(xué),2012.
[2]Xuechao Chen.Design and experiment of an open control system for a humanoid robot[J].Automation and Logistics(ICAL),2010 IEEE International Conference on.2010:367-372.
[3]王志成,于東,張蹺輝,等.數(shù)控系統(tǒng)現(xiàn)場總線可靠通信機(jī)制的研究[J].機(jī)械工程學(xué)報,2011,47(3):152-158,165.[4]董海濤.嵌入式可重構(gòu)CNC系統(tǒng)研究與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2012.
[5]柴宇,欒勇,王志成.可重構(gòu)伺服驅(qū)動調(diào)試工具的設(shè)計與實(shí)現(xiàn)[J].組合機(jī)床與自動化加工技術(shù),2013(7):75-77.
[6]Modbus_IDA.Modbus application protocol specification V1. 1b3[EB/OL].[2012-04-26].http://www.modbus.org.
[7]Modbus_IDA.Modbus over serial line specification and implementation guide V1.02[EB/OL].[2006-12-20]. http://www.modbus.org.
[8]唐志雄,李向陽.基于RTX操作系統(tǒng)的USB主機(jī)設(shè)備驅(qū)動設(shè)計[J].計算機(jī)測量與控制,2012(3):810-812,829.
[9]STMicroelectronics.RM0008 Reference manual(STM32F10 xxx advanced ARM-based 32-bitMCUs)Rev 14[EB/OL].[2011-10-20].www.st.com.
[10]STMicroelectronics.AN2586 Application note(Getting started with STM32F10xxx hardware development)Rev 7[EB/OL].[2011-11-18].www.st.com.
[11]Xuyue T.Design of air compressor monitoring system based on modbus protocol[C]//Electrical and Control Engineering(ICECE),2010 International Conference on.IEEE,2010:710-713.
[12]易映萍,段丙勇,黃松,等.基于STM32的可視化控制系統(tǒng)的設(shè)計[J].信息技術(shù),2014(2):1-4,9.
[13]李芳芳.基于MODBUS協(xié)議的人機(jī)接口通信研究[D].西安:長安大學(xué),2009.
Research and Implementation on Communication Technology of Axis Control System
ZHAO Hong-bo1,2,WANG Zhi-cheng2,3,HE Peng-fei1,2,SUN Shu-jie1,2
(1.University of Chinese Academy of Sciences,Beijing 100049,China;2.National Engineering Research Center For High-End CNC,Shenyang Institute of Computing Technology of Chinese Academy of Sciences,Shenyang 110168,China)
After analyzing the requirements of real-time and reliable communication,research on Modbusbased communication technology in axis control system is conducted to solve the problems of communication between a programmable axis controller and its peripherals which emerge with the intelligentized development of industry.Real-time and reliable communication methods which axis control system uses to communicate with the controlled device and PC are designed.The methods are applied in a real axis control system.Its validation is verified experimentally.Proposed technology is worth referencing in the design of axis control communication system.
axis controller;communication protocol;master-slave relationship;timing mechanism;frame format
TH166;TG659
A
1001-2265(2015)04-0055-04 DOI:10.13462/j.cnki.mmtamt.2015.04.014
2014-08-05;
2014-08-28
"高檔數(shù)控機(jī)床與基礎(chǔ)制造裝備"國家科技重大專項(xiàng)、高檔數(shù)控系統(tǒng)在航空領(lǐng)域的示范應(yīng)用(2013ZX04012-021)
趙鴻博(1989—),男,沈陽人,中國科學(xué)院大學(xué)、中科院沈陽計算技術(shù)研究所碩士研究生,研究方向?yàn)榍度胧脚c數(shù)控技術(shù),(E-mail)zhaohb@sict.ac.cn。