基于CAN總線(xiàn)的伺服電機通訊控制
CAN(Controller Area Network)總線(xiàn)是一種有效支持分布式控制或實(shí)時(shí)控制的串行通訊局域網(wǎng)絡(luò ),由于其高性能、高可靠性、實(shí)時(shí)性好及其獨特的設計,已廣泛應用于控制系統中的各檢測和執行機構之間的數據通訊,在工控領(lǐng)域興起應用高潮。
而伺服電機具有結構緊湊、控制輕易、運行穩定、響應快等優(yōu)異特性,已越來(lái)越成為現代產(chǎn)業(yè)自動(dòng)化系統中的一個(gè)重要執行元件。在自動(dòng)化程度高、需精確控制速度、位置、力矩等的場(chǎng)合,如印刷機械、造紙機械、紡織機械、產(chǎn)業(yè)機器人、高速電梯、數控機床等重要行業(yè)中,得到了普遍的應用。
德國倫茨公司生產(chǎn)的伺服電機由于提供了CAN總線(xiàn)接口,使其很輕易掛接到CAN總線(xiàn)上,通過(guò)CAN總線(xiàn)進(jìn)行數據傳輸與控制,拓展了伺服電機的功能與應用范圍,使伺服電性能更好更靈活地應用于現代產(chǎn)業(yè)控制系統中。
2 CAN總線(xiàn)的特性
作為專(zhuān)門(mén)應用于產(chǎn)業(yè)自動(dòng)化領(lǐng)域的網(wǎng)絡(luò ),CAN總線(xiàn)具有以下優(yōu)點(diǎn):
(1)使用簡(jiǎn)單方便。很多CAN控制器芯片如SJA1000T、Philips 82C250等實(shí)現了CAN物理層及數據鏈路層的大部分,在使用時(shí)用戶(hù)需要做的只是兩件事:對CAN控制器進(jìn)行初始化,對CAN總線(xiàn)上的數據進(jìn)行收發(fā)操縱。
(2)高效可靠。CAN采用短幀結構,數據幀中的數據字段長(cháng)度最多為8B,所以傳輸的速度快(最大通訊速率可達1Mbps),受干擾的概率低。同時(shí),CAN總線(xiàn)作為多主節點(diǎn),各節點(diǎn)通過(guò)總線(xiàn)仲裁獲得總線(xiàn)控制權,并擁有完善的錯誤處理機制,保證了各種干擾環(huán)境下數據傳輸的安全可靠。
(3)系統可擴充性好。CAN總線(xiàn)是面向消息的編碼,而不是面向設備的編碼,故增添或刪減CAN上的節點(diǎn)非常方便和靈活,易于系統的擴充。
3 伺服電機接進(jìn)CAN網(wǎng)
倫茨伺服電機的伺服控制器由于提供了專(zhuān)門(mén)的CAN總線(xiàn)接口X4,可以象其他的CAN節點(diǎn)一樣,用普通雙絞線(xiàn)作為通訊介質(zhì),很方便地連接到基于CAN總線(xiàn)的產(chǎn)業(yè)控制系統上,如圖1所示。
上位主機通過(guò)接插支持CAN的通訊適配卡獲得對CAN總線(xiàn)的支持,負責對整個(gè)系統的運行和工作狀態(tài)進(jìn)行監視治理。由于CAN總線(xiàn)在產(chǎn)業(yè)控制上的應用越來(lái)越廣泛,很多公司都推出了支持CAN總線(xiàn)的接口適配卡,如研華的PCL-841通訊卡、北京華控的HK-CAN20通訊卡、北京三興達公司的智能CAN-PC總線(xiàn)適配卡PCCAN等等,用戶(hù)可以通過(guò)這些接口適配卡,來(lái)運行復雜的通訊任務(wù),進(jìn)行各CAN節點(diǎn)與上位主機之間的數字通訊和協(xié)調治理。
4伺服控制器的功能模塊與基于CAN總線(xiàn)的數據通道
倫茨伺服電機的伺服控制器,具有豐富的內部功能模塊庫,如常見(jiàn)的邏輯功能模塊、算術(shù)功能模塊、信號類(lèi)型轉換模塊、斜坡函數發(fā)生模塊、相位積分模塊以及較特殊的數頻輸進(jìn)輸出模塊、數頻處理模塊、伺服控制處理模塊、速度設定處理模塊等等。用戶(hù)利用這些功能塊,可以自由配置控制器的信號流程,使控制器能很輕易地適應不同的實(shí)際應用。
為了實(shí)現基于CAN總線(xiàn)的應用,伺服控制器提供了專(zhuān)門(mén)的CAN總線(xiàn)功能模塊組CAN-IN與CAN-OUT,作為過(guò)程數據通道,進(jìn)行過(guò)程數據的傳輸。其中,功能塊CAN-IN1與CAN-OUT1只用于伺服控制器與上位主機之間進(jìn)行通訊與數據傳輸。輸進(jìn)功能塊CAN-IN1用于接收上位主機的數據信息,CAN-IN1有8B的數據空間可供用戶(hù)使用配置,可以向其他內部功能模塊提供二進(jìn)制信號、16位的模擬信號、16位的速度信號以及32位的相位信號等多種控制信號。上位主機通過(guò)向根據實(shí)際應用配置的CAN-IN1模塊發(fā)送命令信息,能實(shí)現伺服電機的速度給定、電機快停、電機的正反轉切換、電機正常模式轉速與恒定低速的切換、電機使能、電機禁止等各種功能。同樣,CAN-OUT1功能模塊亦有8B的數據空間可供用戶(hù)使用,可以通過(guò)配置向上位主機實(shí)時(shí)地提供電機的各種狀態(tài)信息、電機的實(shí)際速度、電機的實(shí)際相位等信息。
功能塊CAN-IN2、CAN-IN3與CAN-OUT2、CAN-OUT3用于伺服控制器之間進(jìn)行快速數據交換。只要配置了某一伺服控制器的CAN-OUT2或CAN-OUT3與另一伺服控制器的CAN-IN2或CAN-IN3的對應關(guān)系,即可建立起伺服控制器間的數據傳輸通道,在電機運行過(guò)程中將1臺伺服控制器的各種數據信息傳給另1臺伺服控制器,常見(jiàn)的如:將1臺伺服控制器的速度給定經(jīng)一定運算處理后作為另1臺伺服控制器的速度給定信號,使2臺伺服電機速度比例運行。該特性對于多臺伺服電機之間的協(xié)調控制具有重要意義。上位主機亦可以監測到在CAN總線(xiàn)上傳輸的該類(lèi)數據信息。
同時(shí),伺服控制器還提供2路參數輸進(jìn)通道和2路參數輸出通道。在CAN總線(xiàn)上,上位主機可通過(guò)2路參數輸進(jìn)通道,對伺服控制器內的各種參數進(jìn)行設置修改,如伺服電機的加減速時(shí)間、齒輪箱變速比、級聯(lián)系數等等;通過(guò)2路參數輸出通道讀取伺服控制器的各種參數,如伺服電機確當前溫度、當前配置的加減速時(shí)間以及電機的實(shí)際電壓電流等等,故只要是能在伺服控制器的參數代碼表中找得到的參數,基本上都能夠讀取。
通過(guò)CAN總線(xiàn)接口與各個(gè)數據通道,伺服電機可將自己的相關(guān)數據信息發(fā)送到CAN總線(xiàn)上;同時(shí)亦可以接收來(lái)自總線(xiàn)的伺服電機所需的各種數據信息與控制命令。
5 CAN的通訊協(xié)議
作為實(shí)時(shí)性要求比較高的產(chǎn)業(yè)控制底層網(wǎng)絡(luò ),CAN協(xié)議只分為3層:物理層、數據鏈進(jìn)層和應用層。CAN通訊協(xié)議有4種不同的幀格式:數據幀、遠程幀、錯誤幀和超載幀。
由于CAN通訊協(xié)議給出的只是共性要求,在實(shí)際應用中需要將協(xié)議具體化,建立適用的協(xié)議規則。根據伺服電機伺服控制器的特點(diǎn),并遵循CAN通訊協(xié)議標準,制定了伺服控制器的通訊協(xié)議規則。伺服控制器的每個(gè)信息幀分為2部分:幀頭和數據域。幀頭占2B,其前11位為標識符,然后是一位RTR位,最后是4位的數據長(cháng)度位DLC(即所發(fā)數據的實(shí)際長(cháng)度,以字節為單位)。數據域占用8B。11位的信息標識符反應了節點(diǎn)的優(yōu)先級別,總線(xiàn)仲裁就是通過(guò)它來(lái)實(shí)現的,信息幀的標識符越小,信息幀就具有越高的優(yōu)先權。除總線(xiàn)狀態(tài)等特殊信息外,伺服控制器對所傳輸信息的標識符有一定的計算公式:
信息標識符=基準標識符+設定的控制器的節點(diǎn)地址?
伺服控制器的節點(diǎn)地址可以在參數代碼表中設定。而對信息的基準標識符,伺服控制器有同一的規定,如:同步觸發(fā)信號的基準標識符為128,來(lái)自控制器CAN-OUT1通道的信息的基準標識符為384,而發(fā)送到控制器CAN-IN1通道的信息的基準標識符為512,通過(guò)參數通道1發(fā)送到控制器的信息基準標識符為1536,通過(guò)參數通道1接收的信息基準標識符則為1408。
對于8B的數據域,用戶(hù)需要按照所要發(fā)送的具體信息來(lái)確定應遵循的使用原則。比如,要通過(guò)參數通道進(jìn)行參數設定,第1個(gè)字節為命令碼,第2、3字節為參數對應的索引號,第4個(gè)字節為參數對應的次索引,后4個(gè)字節是要設定的參數數據大??;而要發(fā)送信息到某伺服控制器的過(guò)程數據通道CAN-IN1,則直接是數據信息的發(fā)送,沒(méi)有命令碼,也沒(méi)有索引號。
6 上位主機的軟件設計
通過(guò)CAN總線(xiàn)進(jìn)行通訊與控制的伺服電機,在針對實(shí)際的應用要求配置好伺服控制器的內部控制信號流,以及基于CAN的接口功能模塊和數據通道后,剩下需要解決的是上位主機的軟件設計題目。
由于上位主機所接插的CAN通訊適配卡一般都提供CAN的驅動(dòng)函數,所以在上位機軟件的編制過(guò)程中,實(shí)現與CAN總線(xiàn)的通訊部分可以直接調用相應的函數,如上位主機與CAN通訊的主要任務(wù):對CAN適配卡的初始化、CAN信息包的發(fā)送、CAN信息包的接收等,都有現成的函數可以使用,為用戶(hù)使用CAN進(jìn)行通訊提供了方便。對CAN通訊適配卡的初始化主要是初始化適配卡的各個(gè)寄存器,設置中斷向量、通訊卡的波特率以及中斷屏蔽字等必要的參數,為正常通訊作預備。實(shí)現CAN信息包的發(fā)送,首先要確定信息包的11位信息標識符,填進(jìn)幀頭,并在數據域中填進(jìn)需要發(fā)送的數據信息,通過(guò)發(fā)送函數發(fā)送給所有CAN節點(diǎn)或特定的CAN節點(diǎn)上。而對于使用接收函數所接收的CAN信息包,亦通過(guò)其11位信息標識符,判定其來(lái)源,對數據域的數據進(jìn)行處理,取得有效的信息,進(jìn)行顯示或存儲,并按照控制需要發(fā)送控制指令。其軟件控制流程圖,如圖2所示。
7 結束語(yǔ)
倫茨伺服電機CAN接口的引進(jìn),進(jìn)步了伺服電機的自動(dòng)化水平,使伺服電機在產(chǎn)業(yè)控制網(wǎng)絡(luò )中的通訊與控制更為方便、靈活和可靠。
CAN總線(xiàn)在現代產(chǎn)業(yè)控制系統中越來(lái)越廣泛的應用,為帶CAN接口的伺服電機提供了廣闊的應用遠景。
參考文獻
[1]鄔寬明.CAN總線(xiàn)原理和應用系統設計[M].北京:北京航空航天大學(xué)出版社,1996.
[2]Lenze.Operating Instruction(Global Drive Mannuls 9300).(end)
評論