基於CAN總線的伺服電機通信控制

私信“乾貨”二字,即可領取138G伺服與機器人專屬及電控資料!

【導讀】介紹了CAN總線與伺服電機的特點,並討論了伺服電機基於CAN總線的通信控制特性。

1、引言

CAN(ControllerArea Network)總線是一種有效支持分佈式控制或實時控制的串行通信局域網絡,由於其高性能、高可靠性、實時性好以及獨特的設計,已廣泛應用於控制系統中的各檢測和執行機構之間的數據通信,在工控領域興起應用熱潮。

而伺服電機具有結構緊湊、控制容易、運行穩定、響應速度快等優異特性,已越來越成為現代工業自動化系統中的一個重要執行元件。在自動化程度高、需精確控制速度、位置、力矩等的場合,如印刷機械、造紙機械、紡織機械、工業機器人、高速電梯、數控機床等重要行業中,得到了普遍的應用。

德國倫茨公司生產的伺服電機由於提供了CAN總線接口,使其很容易掛接到CAN總線上,通過CAN總線進行數據傳輸與控制,拓展了伺服電機的功能與應用範圍,使伺服電機能更好更靈活地應用於現代工業控制系統中。

2、CAN總線的特性

作為專門應用於工業自動化領域的網絡,CAN總線具有以下優點:

(1)使用簡單方便。許多CAN控制器芯片如SJA1000T、Philips 82C250等實現了CAN物理層及數據鏈路層的大部分,在使用時用戶需要做的只是兩件事:對CAN控制器進行初始化,對CAN總線上的數據進行收發操作。

(2)高效可靠。CAN採用短幀結構,數據幀中的數據字段長度最多為8B,所以傳輸的速度快(最大通信速率可達1Mbps),受干擾的概率低。同時,CAN總線作為多主節點,各節點通過總線仲裁獲得總線控制權,並擁有完善的錯誤處理機制,保證了各種干擾環境下數據傳輸的安全可靠。

(3)系統可擴充性好。CAN總線是面向消息的編碼,而不是面向設備的編碼,故增添或刪減CAN上的節點非常方便和靈活,易於系統的擴充。

3、伺服電機接入CAN網

倫茨伺服電機的伺服控制器由於提供了專門的CAN總線接口X4,可以像其他的CAN節點一樣,用普通雙絞線作為通信介質,很方便地連接到基於CAN總線的工業控制系統上,如圖1所示。


基於CAN總線的伺服電機通信控制



倫茨的伺服控制器與伺服電機之間採用旋轉變壓器或光電編碼器建立反饋,形成高精度的伺服控制系統,伺服電機實時地將其運行狀態與運行信息上傳給伺服控制器。作為CAN總線上的節點,伺服控制器不僅可以與上位主機進行通信,通過CAN總線接收上位機的各種操作、控制和參數設定命令;同時伺服控制器之間亦可以進行快速的數據交換,相互間建立一定的協調或控制關係。

上位主機通過接插支持CAN的通訊適配卡獲得對CAN總線的支持,負責對整個系統的運行和工作狀態進行監視管理。由於CAN總線在工業控制上的應用越來越廣泛,很多公司都推出了支持CAN總線的接口適配卡,如研華的PCL-841通信卡、北京華控的HK-CAN20通信卡、北京三興達公司的智能CAN-PC總線適配卡PCCAN等等,用戶可以通過這些接口適配卡,來運行復雜的通信任務,進行各CAN節點與上位主機之間的數字通信和協調管理。

4、伺服控制器的功能模塊與基於CAN總線的數據通道

倫茨伺服電機的伺服控制器,具有豐富的內部功能模塊庫,如常見的邏輯功能模塊、算術功能模塊、信號類型轉換模塊、斜坡函數發生模塊、相位積分模塊以及較特殊的數頻輸入輸出模塊、數頻處理模塊、伺服控制處理模塊、速度設定處理模塊等等。用戶利用這些功能塊,可以自由配置控制器的信號流程,使控制器能很容易地適應不同的實際應用。

為了實現基於CAN總線的應用,伺服控制器提供了專門的CAN總線功能模塊組CAN-IN與CAN-OUT,作為過程數據通道,進行過程數據的傳輸。其中,功能塊CAN-IN1與CAN-OUT1只用於伺服控制器與上位主機之間進行通信與數據傳輸。輸入功能塊CAN-IN1用於接收上位主機的數據信息,CAN-IN1有8B的數據空間可供用戶使用配置,可以向其他內部功能模塊提供二進制信號、16位的模擬信號、16位的速度信號以及32位的相位信號等多種控制信號。上位主機通過向根據實際應用配置的CAN-IN1模塊發送命令信息,能實現伺服電機的速度給定、電機快停、電機的正反轉切換、電機正常模式轉速與恆定低速的切換、電機使能、電機禁止等各種功能。同樣,CAN-OUT1功能模塊亦有8B的數據空間可供用戶使用,可以通過配置向上位主機實時地提供電機的各種狀態信息、電機的實際速度、電機的實際相位等信息。

功能塊CAN-IN2、CAN-IN3與CAN-OUT2、CAN-OUT3用於伺服控制器之間進行快速數據交換。只要配置了某一伺服控制器的CAN-OUT2或CAN-OUT3與另一伺服控制器的CAN-IN2或CAN-IN3的對應關係,即可建立起伺服控制器間的數據傳輸通道,在電機運行過程中將1臺伺服控制器的各種數據信息傳給另1臺伺服控制器,常見的如:將1臺伺服控制器的速度給定經一定運算處理後作為另1臺伺服控制器的速度給定信號,使2臺伺服電機速度比例運行。該特性對於多臺伺服電機之間的協調控制具有重要意義。上位主機亦可以監測到在CAN總線上傳輸的該類數據信息。

同時,伺服控制器還提供2路參數輸入通道和2路參數輸出通道。在CAN總線上,上位主機可通過2路參數輸入通道,對伺服控制器內的各種參數進行設置修改,如伺服電機的加減速時間、齒輪箱變速比、級聯繫數等等;通過2路參數輸出通道讀取伺服控制器的各種參數,如伺服電機的當前溫度、當前配置的加減速時間以及電機的實際電壓電流等等,故只要是能在伺服控制器的參數代碼表中找得到的參數,基本上都能夠讀取。

通過CAN總線接口與各個數據通道,伺服電機可將自己的相關數據信息發送到CAN總線上;同時亦可以接收來自總線的伺服電機所需的各種數據信息與控制命令。

5、CAN的通信協議

作為實時性要求比較高的工業控制底層網絡,CAN協議只分為3層:物理層、數據鏈入層和應用層。CAN通信協議有4種不同的幀格式:數據幀、遠程幀、錯誤幀和超載幀。

由於CAN通信協議給出的只是共性要求,在實際應用中需要將協議具體化,建立適用的協議規則。根據伺服電機伺服控制器的特點,並遵循CAN通信協議標準,制定了伺服控制器的通信協議規則。伺服控制器的每個信息幀分為2部分:幀頭和數據域。幀頭佔2B,其前11位為標識符,然後是一位RTR位,最後是4位的數據長度位DLC(即所發數據的實際長度,以字節為單位)。數據域佔用8B。11位的信息標識符反應了節點的優先級別,總線仲裁就是通過它來實現的,信息幀的標識符越小,信息幀就具有越高的優先權。除總線狀態等特殊信息外,伺服控制器對所傳輸信息的標識符有一定的計算公式:

信息標識符=基準標識符+設定的控制器的節點地址


伺服控制器的節點地址可以在參數代碼表中設定。而對信息的基準標識符,伺服控制器有統一的規定,如:同步觸發信號的基準標識符為128,來自控制器CAN-OUT1通道的信息的基準標識符為384,而發送到控制器CAN-IN1通道的信息的基準標識符為512,通過參數通道1發送到控制器的信息基準標識符為1536,通過參數通道1接收的信息基準標識符則為1408。

對於8B的數據域,用戶需要按照所要發送的具體信息來確定應遵循的使用原則。比如,要通過參數通道進行參數設定,第1個字節為命令碼,第2、3字節為參數對應的索引號,第4個字節為參數對應的次索引,後4個字節是要設定的參數數據大小;而要發送信息到某伺服控制器的過程數據通道CAN-IN1,則直接是數據信息的發送,沒有命令碼,也沒有索引號。

6、上位主機的軟件設計

通過CAN總線進行通信與控制的伺服電機,在針對實際的應用要求配置好伺服控制器的內部控制信號流,以及基於CAN的接口功能模塊和數據通道後,剩下需要解決的是上位主機的軟件設計問題。

由於上位主機所接插的CAN通訊適配卡一般都提供CAN的驅動函數,所以在上位機軟件的編制過程中,實現與CAN總線的通信部分可以直接調用相應的函數,如上位主機與CAN通信的主要任務:對CAN適配卡的初始化、CAN信息包的發送、CAN信息包的接收等,都有現成的函數可以使用,為用戶使用CAN進行通信提供了方便。對CAN通訊適配卡的初始化主要是初始化適配卡的各個寄存器,設置中斷向量、通信卡的波特率以及中斷屏蔽字等必要的參數,為正常通信作準備。實現CAN信息包的發送,首先要確定信息包的11位信息標識符,填入幀頭,並在數據域中填入需要發送的數據信息,通過發送函數發送給所有CAN節點或特定的CAN節點上。而對於使用接收函數所接收的CAN信息包,亦通過其11位信息標識符,判斷其來源,對數據域的數據進行處理,取得有效的信息,進行顯示或存儲,並按照控制需要發送控制指令。其軟件控制流程圖,如圖2所示。


基於CAN總線的伺服電機通信控制



上位主機正是通過對CAN驅動函數的不斷調用,發送控制命令或參數設定命令給各伺服電機的伺服控制器,驅動伺服電機的啟停運轉;同時接收來自伺服控制器的伺服電機的速度、相位、轉動方向、轉矩等各種數據信息及狀態信息,並進行分析處理,然後按照系統的實際控制需要再給伺服控制器發送相應的命令,去驅動電機,使伺服電機的運行始終按用戶的要求進行變化,從而實現對伺服電機的管理與控制。

7、結束語

倫茨伺服電機CAN接口的引入,提高了伺服電機的自動化水平,使伺服電機在工業控制網絡中的通信與控制更為方便、靈活和可靠。

CAN總線在現代工業控制系統中越來越廣泛的應用,為帶CAN接口的伺服電機提供了廣闊的應用前景。

參考文獻

[1]鄔寬明.CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996.

[2]Lenze.Operating Instruction(Global Drive Mannuls 9300).(end)

私信“乾貨”二字,即可領取138G伺服與機器人專屬及電控資料!


分享到:


相關文章: