
低壓伺服驅(qū)動器DM-O55B采用32 位高速DSP 芯片;FOC 場定向矢量控制,支持位置/速度閉環(huán);位置模式支持指令脈沖+方向 或 正交脈沖信號;速度模式支持PWM占空比信號 或 4~20ma電流 或 0.6~3V電壓信號控制; 16位電子齒輪功能,1~65535 / 1~65535; 供電電壓+20V~50V。支持50~500W交流伺服電機(jī);支持485(modbus協(xié)議RTU模式)控制方式?梢栽O(shè)定驅(qū)動器地址,簡化控制系統(tǒng)。也可以直接通過PC機(jī)控制,并提供PC機(jī)測試軟件;具有欠壓,過壓,堵轉(zhuǎn),過熱保護(hù); 提供隔離輸出的 到位信號、報警輸出信號、編碼器零點(diǎn)信號。 1. 寄存器說明 驅(qū)動器可以通過modbus(RTU 模式)來控制驅(qū)動器。主機(jī)可以通過modbus 的讀寫寄存器功能來設(shè)置驅(qū)動器參數(shù)和控制運(yùn)行。驅(qū)動器支持的功能碼為0x3(讀寄存器)、0x6(寫寄存器)、0x78(寫目標(biāo)位置)、0x7a(修改設(shè)備地址)。 寄存器列表如下:


2.Modbus 通信格式 a.modbus 主機(jī)讀取數(shù)據(jù)及從機(jī)應(yīng)答格式 (功能碼03) 
串口接收到的數(shù)據(jù)都是無符號數(shù),如果寄存器是有符號數(shù),發(fā)送的則是二進(jìn)制補(bǔ)碼的格式,轉(zhuǎn)換成有符號數(shù)的算法如下(VB代碼): If modbus.data(11) > 32767 Then disp_modbus_data.PU = (modbus.data(11) - 32768) * 65536+ modbus.data(10) disp_modbus_data.PU = -((&H7FFFFFFF - disp_modbus_data.PU) + 1) Else disp_modbus_data.PU = dmodbus.data(11) * 65536 + modbus.data(10) End If 注: modbus.data(11) 為目標(biāo)位置高16 位 modbus.data(10)為目標(biāo)位置低16 位
b.modbus 主機(jī)寫數(shù)據(jù)及從機(jī)應(yīng)答格式 ( 功能碼06) 
c.modbus 主機(jī)寫脈沖數(shù) (功能碼0x10) 
脈沖數(shù)是有符號數(shù),一個負(fù)數(shù)( 假設(shè)此數(shù)為X) 轉(zhuǎn)換成32 位16 進(jìn)制數(shù)的算法如下(vb 代碼): If X < 0 Then X = &H7FFFFFFF + (X + 1) PU24_31 = Fix(X / (256 * 65536)) + &H80 Else PU24_31 = Fix(X / (256 * 65536)) End If PU16_23 = Fix(X / 65536) mod 256 PU8_15 = Fix(X / 256) mod 256 PU0_7 = X mod 256 注:fix() 為取整函數(shù) 
d.modbus 主機(jī)寫脈沖數(shù) (特殊功能碼0x78) 
3.CRC 校驗(yàn)示例代碼 
4.modbus 方式主機(jī)控制過程 a:位置模式 (1)寫 設(shè)備1(功能碼0x06 地址0 Modbus 使能) 1 (2)讀 設(shè)備1(功能碼0x03 地址16 報警代碼) (讀到0 時為運(yùn)行正常) (3)寫 設(shè)備1(功能碼0x06 地址3 電機(jī)目標(biāo)速度)2000 (4)寫 設(shè)備1(功能碼0x78 電機(jī)目標(biāo)位置)1000 (5)讀 設(shè)備1(功能碼0x03 地址10 目標(biāo)位置低16 位) (6)讀 設(shè)備1(功能碼0x03 地址11 目標(biāo)位置高16 位)以上兩個寄存器都為0 時代表已經(jīng)到了目標(biāo)位置 (7)重復(fù)(4)(5)(6)過程,控制電機(jī)位置。 注:電機(jī)的目標(biāo)速度為電機(jī)運(yùn)行的****速度,如果目標(biāo)位置較小,電機(jī)可能達(dá)不到****速度即停止。加速過程寫入的電機(jī)目標(biāo)位置是在原剩余的位置上加上新的數(shù)值。例如,第一次寫入1024代表運(yùn)行一圈,運(yùn)行到還剩256,代表還有1/4 圈要運(yùn)行,但此時又寫入一個1024,此時電機(jī)的目標(biāo)位置變成1024+256 而不是1024替代256。這樣不會因?yàn)檫沒到位又寫入一個數(shù)值而導(dǎo)致出現(xiàn)錯誤。 b:速度模式 (1)寫 設(shè)備1(功能碼0x06 地址0 Modbus 使能) 1 (2)讀 設(shè)備1(功能碼0x03 地址14 報警代碼) (讀到0 時為運(yùn)行正常) (3)寫 設(shè)備1(功能碼0x06 地址3 電機(jī)加速度) 6000 (4)寫 設(shè)備1(功能碼0x06 地址2 電機(jī)目標(biāo)速度) 2000 (5)重復(fù)(4)過程,控制電機(jī)轉(zhuǎn)速。
5. modbus 方式主機(jī)控制多個從機(jī) a:位置模式 控制多個從機(jī)不同時開始運(yùn)動 (1)寫 設(shè)備1(功能碼0x06 地址0 Modbus 使能) 1 (2)讀 設(shè)備1(功能碼0x03 地址14 報警代碼) (讀到0 時為運(yùn)行正常) (3)寫 設(shè)備2(功能碼0x06 地址0 Modbus 使能) 1 (4)讀 設(shè)備2(功能碼0x03 地址14 報警代碼) (讀到0 時為運(yùn)行正常) (5)寫 設(shè)備1(功能碼0x06 地址3 電機(jī)目標(biāo)速度) 2000 (6)寫 設(shè)備1(功能碼0x78 電機(jī)目標(biāo)位置) 1000 (7)讀 設(shè)備1(功能碼0x03 地址12 目標(biāo)位置低16 位) (8)讀 設(shè)備1(功能碼0x03 地址13 目標(biāo)位置高16 位)以上兩個寄存器都為0 時代表已經(jīng)到了目標(biāo)位置 (9)寫 設(shè)備2(功能碼0x06 地址3 電機(jī)目標(biāo)速度 2000 (10)寫 設(shè)備2(功能碼0x78 電機(jī)目標(biāo)位置) 1000 (11)讀 設(shè)備2(功能碼0x03 地址12 目標(biāo)位置低16 位) (12)讀 設(shè)備2(功能碼0x03 地址13 目標(biāo)位置高16 位)以上兩個寄存器都為0 時代表已經(jīng)到了目標(biāo)位置 (13)重復(fù)(5)~(12)過程,控制電機(jī)位置。 注:驅(qū)動器的地址需要先設(shè)置,可以通過提供的上位機(jī)設(shè)置驅(qū)動器地址。由于以上方式在寫了目標(biāo)位置后驅(qū)動器會立刻控制電機(jī)運(yùn)動,而寫入地址2 的控制數(shù)據(jù)需要一定時間,所以地址1 和地址2 的電機(jī)不會同時運(yùn)動。如果下一次的運(yùn)行速度不變,可以不必多次寫入電機(jī)目標(biāo)速度。
b:位置模式 控制多個從機(jī)同時開始運(yùn)動 (1)寫 設(shè)備1(功能碼0x06 地址0 Modbus 使能) 1 (2)讀 設(shè)備1(功能碼0x03 地址14 報警代碼) (讀到0 時為運(yùn)行正常) (3)寫 設(shè)備2(功能碼0x06 地址0 Modbus 使能) 1 (4)讀 設(shè)備2(功能碼0x03 地址14 報警代碼) (讀 到0 時為運(yùn)行正常) (5)寫 設(shè)備1(功能碼0x06 地址2 電機(jī)目標(biāo)速度) 2000 (6)寫 設(shè)備1(功能碼0x06 地址3 目標(biāo)位置緩存) 1000 (7)寫 設(shè)備2 (功能碼0x06 地址2 電機(jī)目標(biāo)速度)2000 (8)寫 設(shè)備2 (功能碼0x06 地址3 目標(biāo)位置緩存) 1000 (9)寫 設(shè)備0(廣播)(功能碼0x06 地址1 使能) 1 (10)讀 設(shè)備1(功能碼0x03 地址12 目標(biāo)位置低16 位) (11)讀 設(shè)備1(功能碼0x03 地址13 目標(biāo)位置高16 位)以上兩個寄存器都為0 時代表已經(jīng)到了目標(biāo)位置 (12)讀 設(shè)備2(功能碼0x03 地址12 目標(biāo)位置低16 位) (23)讀 設(shè)備2(功能碼0x03 地址13 目標(biāo)位置高16 位)以上兩個寄存器都為0 時代表已經(jīng)到了目標(biāo)位置 
時代超群工控直銷為您服務(wù) 16633216372 王工
|