
引言:本文通過使用施耐德電氣PLC TW238LFDC24DT使用CANopen通信的方式來控制MOTEC SD388B智能步進驅動器來控制電機的速度模式控制和位置模式控制。
CANopen是一種架構在CAN(控制局域網路)上的高層通訊協定,包括通訊子協定及設備子協定常在嵌入式系統中使用,也是工業控制常用到的一種現場總線。
MOTEC 智能步進驅動器集成了CANopen協議,方便用戶通過各種上位機(PLC、HMI或其它運動控制器)通訊。MOTEC 智能步進驅動器采用集成CAN芯片進行CANopen通訊,使用此功能可驅動MOTEC 智能步進驅動器、變更參數以及監視MOTEC 智能步進驅動器狀態等多項功能。
本例中,使用的是集成了CANopen的施耐德電氣PLC TW238LFDC24DT來控制MOTEC SD388B步進驅動器,由于對于施耐德PLC來說,沒有集成對于非施耐德電氣品牌的通用伺服驅動器和步進驅動器的DS402協議的控制,所以我們通過DS301內規范的SDO來實現對驅動器的通信。
1、創建工程
本例中使用邏輯梯形圖的方式編程
創建完成的界面如下
2、添加SD388B的EDS文件
點擊菜單欄的工具—>設備庫來添加SD388B的EDS文件,安裝后的EDS文件可以在
里面找到。
3、添加CANopen主站和SD388B的從站,如下圖
4、設置SD388B的PDO映射,本例使用的是SDO來控制,因此將RPDO的映射去掉。如圖
5、設置好波特率和同步報文等參數后,編寫程序,使用CIA405庫集成的SDO通信來讀寫驅動器內的內容,如圖
編寫完成的程序如下
用戶可以在www.motec365.com上下載到相關的程序。
6、程序調試
本例中,使用在線調試的方式,用來調試速度控制和位置控制,
A、速度模式控制:
通過CANopen使用速度模式控制,需要至少兩個功能塊:
1)、將當前的控制模式設置成速度控制方式,即將6060h索引,00h子索引中的內容改成3;
2)、設置勻速運動的轉速,即向60FFh索引,00h子索引中寫入當前運行的轉速。
如圖中,設置velocity_Mode_Change為3,設置velocity_value為5*256,即1280rpm;
使用在線調試給velocity_ModeEN一個上升沿,那么電機會勻速轉動,轉速為60FFh內設定轉速。如下圖
電機啟動以后如圖
3)、可以通過將目標速度設置成0或者將控制字6040h的第8位寫1,
4)、用戶如果需要設定其余參數,例如加速度,減速度,電機電流等參數,請參見用戶手冊和EDS文件里面定義的內容。
B、位置模式控制:
通過CANopen使用速度模式控制,需要至少三個功能塊:
1)、將當前的控制模式設置成位置控制方式,即將6060h索引索引中的內容改成1;
2)、設置位置控制的運動距離,即將運行距離寫入607Ah索引中;
3)、向控制字6040h中寫入啟動位置控制的指令,本例中做相對運動位置控制,即向6040h中寫入0x005F;
4)、本例中,添加了做位置控制時最大轉速的設定,即向索引6081h中寫入設定的位置控制的最大轉速。
整個數據寫入值如下
設置position_Mode_Change(6060h)為1,設置position_value(607Ah)為0x000A0000,設置position_max_velocity_value(6081h)為0x00500,設定position_GO_Start(6040h)為0x005F;
給position_ModeEN一個上升沿,直接啟動程序,如圖
5)、如果需要停止當前運行,只需要將6040h的第八位設置成1,如圖
6)、用戶如果需要設定其余參數,例如加速度,減速度,電機電流等參數,請參見用戶手冊和EDS文件里面定義的內容。
注意:為了方便用戶監控調試,本例中使用在線模擬的方式,仿真監控PLC的動作和設定參數,用戶可以使用賦值語句來對相關的變量進行操作。
注意:由于本例使用SDO操作,如需使用PDO操作,請詳見《MOTEC網絡步進驅動器CANopen操作手冊》的 附錄B MOTEC驅動器CANopen操作流程示例一節。