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