低压伺服驱动器DM-O55B采用32 位高速DSP 芯片;FOC 场定向矢量控制,支持位置/速度闭环;位置模式支持指令脉冲+方向 或 正交脉冲信号;速度模式支持PWM占空比信号 或 4~20ma电流 或 0.6~3V电压信号控制; 16位电子齿轮功能,1~65535 / 1~65535; 供电电压+20V~50V。支持50~500W交流伺服电机;支持485(modbus协议RTU模式)控制方式。可以设定驱动器地址,简化控制系统。也可以直接通过PC机控制,并提供PC机测试软件;具有欠压,过压,堵转,过热保护; 提供隔离输出的 到位信号、报警输出信号、编码器零点信号。 1. 寄存器说明 驱动器可以通过modbus(RTU 模式)来控制驱动器。主机可以通过modbus 的读写寄存器功能来设置驱动器参数和控制运行。驱动器支持的功能码为0x3(读寄存器)、0x6(写寄存器)、0x78(写目标位置)、0x7a(修改设备地址)。 寄存器列表如下:
2.Modbus 通信格式 a.modbus 主机读取数据及从机应答格式 (功能码03) 串口接收到的数据都是无符号数,如果寄存器是有符号数,发送的则是二进制补码的格式,转换成有符号数的算法如下(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) 为目标位置高16 位 modbus.data(10)为目标位置低16 位
b.modbus 主机写数据及从机应答格式 ( 功能码06) c.modbus 主机写脉冲数 (功能码0x10) 脉冲数是有符号数,一个负数( 假设此数为X) 转换成32 位16 进制数的算法如下(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() 为取整函数 d.modbus 主机写脉冲数 (特殊功能码0x78) 3.CRC 校验示例代码 4.modbus 方式主机控制过程 a:位置模式 (1)写 设备1(功能码0x06 地址0 Modbus 使能) 1 (2)读 设备1(功能码0x03 地址16 报警代码) (读到0 时为运行正常) (3)写 设备1(功能码0x06 地址3 电机目标速度)2000 (4)写 设备1(功能码0x78 电机目标位置)1000 (5)读 设备1(功能码0x03 地址10 目标位置低16 位) (6)读 设备1(功能码0x03 地址11 目标位置高16 位)以上两个寄存器都为0 时代表已经到了目标位置 (7)重复(4)(5)(6)过程,控制电机位置。 注:电机的目标速度为电机运行的****速度,如果目标位置较小,电机可能达不到****速度即停止。加速过程写入的电机目标位置是在原剩余的位置上加上新的数值。例如,第一次写入1024代表运行一圈,运行到还剩256,代表还有1/4 圈要运行,但此时又写入一个1024,此时电机的目标位置变成1024+256 而不是1024替代256。这样不会因为还没到位又写入一个数值而导致出现错误。 b:速度模式 (1)写 设备1(功能码0x06 地址0 Modbus 使能) 1 (2)读 设备1(功能码0x03 地址14 报警代码) (读到0 时为运行正常) (3)写 设备1(功能码0x06 地址3 电机加速度) 6000 (4)写 设备1(功能码0x06 地址2 电机目标速度) 2000 (5)重复(4)过程,控制电机转速。
5. modbus 方式主机控制多个从机 a:位置模式 控制多个从机不同时开始运动 (1)写 设备1(功能码0x06 地址0 Modbus 使能) 1 (2)读 设备1(功能码0x03 地址14 报警代码) (读到0 时为运行正常) (3)写 设备2(功能码0x06 地址0 Modbus 使能) 1 (4)读 设备2(功能码0x03 地址14 报警代码) (读到0 时为运行正常) (5)写 设备1(功能码0x06 地址3 电机目标速度) 2000 (6)写 设备1(功能码0x78 电机目标位置) 1000 (7)读 设备1(功能码0x03 地址12 目标位置低16 位) (8)读 设备1(功能码0x03 地址13 目标位置高16 位)以上两个寄存器都为0 时代表已经到了目标位置 (9)写 设备2(功能码0x06 地址3 电机目标速度 2000 (10)写 设备2(功能码0x78 电机目标位置) 1000 (11)读 设备2(功能码0x03 地址12 目标位置低16 位) (12)读 设备2(功能码0x03 地址13 目标位置高16 位)以上两个寄存器都为0 时代表已经到了目标位置 (13)重复(5)~(12)过程,控制电机位置。 注:驱动器的地址需要先设置,可以通过提供的上位机设置驱动器地址。由于以上方式在写了目标位置后驱动器会立刻控制电机运动,而写入地址2 的控制数据需要一定时间,所以地址1 和地址2 的电机不会同时运动。如果下一次的运行速度不变,可以不必多次写入电机目标速度。
b:位置模式 控制多个从机同时开始运动 (1)写 设备1(功能码0x06 地址0 Modbus 使能) 1 (2)读 设备1(功能码0x03 地址14 报警代码) (读到0 时为运行正常) (3)写 设备2(功能码0x06 地址0 Modbus 使能) 1 (4)读 设备2(功能码0x03 地址14 报警代码) (读 到0 时为运行正常) (5)写 设备1(功能码0x06 地址2 电机目标速度) 2000 (6)写 设备1(功能码0x06 地址3 目标位置缓存) 1000 (7)写 设备2 (功能码0x06 地址2 电机目标速度)2000 (8)写 设备2 (功能码0x06 地址3 目标位置缓存) 1000 (9)写 设备0(广播)(功能码0x06 地址1 使能) 1 (10)读 设备1(功能码0x03 地址12 目标位置低16 位) (11)读 设备1(功能码0x03 地址13 目标位置高16 位)以上两个寄存器都为0 时代表已经到了目标位置 (12)读 设备2(功能码0x03 地址12 目标位置低16 位) (23)读 设备2(功能码0x03 地址13 目标位置高16 位)以上两个寄存器都为0 时代表已经到了目标位置 时代超群工控直销为您服务 16633216372 王工
|