雷赛智能L7RS系列交流伺服驱动器的RS-485通信控制
▲L7RS系列驱动配电机选型方案
应用成功案例
▲雷赛客户使用多个RS485模块控制雷赛多组伺服,一组包含8个伺服,可做到5ms间隔的报文收发,实现位置、速度刷新等功能。
RS485硬件接线
雷赛L7RS系列驱动器RS485采用半双工工作方式,支持多点数据通信,RS485总线网络拓扑一般采用终端匹配的总线型结构。
L7RS系列驱动器有CN4、CN5两个RJ45硬件接口,针脚定义如下:
通信说明
485 通讯格式
波特率:支持2.4Kbps、4.8Kbps、9.6Kbps、19.2Kbps、38.4Kbps、57.6Kbps、115.2Kbps
从站ID:0~127
默认通信数据格式:8-N-1(8位数据位、无校验、1位停止位)
通讯协议
雷赛驱动器支持如下几种功能码:
0x03:读保持寄存器;
0x06:写单个保持寄存器;
0x10:写多个保持寄存器;
0x03-读保持寄存器
⬛ 描述:读保持寄存器,字节指令操作,可读单个或者多个;
⬛ 发送指令格式:
0x03功能码主站发送Modbus报文格式如下:
发送报文格式:
响应格式:
⬛ 实例:使用0x3功能码 读取以下参数,从站站号:63
上位机发送报文如下:
Tx: 3F 03 62 00 00 07 1F 6E
驱动器响应报文如下:
Rx: 3F 03 0E 00 81 00 00 27 10 00 3C 00 64 00 64 00 00 B5 21
0x06-写单个保持寄存器
⬛ 描述:写单个保持寄存器,字节指令操作,只能写一个;
⬛ 发送指令格式:
0x06功能码主站发送Modbus报文格式如下:
发送报文格式:
响应格式:
⬛ 实例:使用0x6功能码 设置以下参数,从站站号:63
上位机发送报文如下:
Tx: 3F 06 00 09 00 64 5C FD
驱动器响应报文如下:
Rx: 3F 06 00 09 00 64 5C FD
0x10-写多个保持寄存器
⬛ 描述:写多个保持寄存器,字节指令操作,可写多个;
⬛ 发送指令格式:
0x10功能码主站发送Modbus报文格式如下:
发送报文格式
响应格式
⬛ 实例:使用0x10功能码 读写以下参数,从站站号:63
往PR1模式(0x6200)里写入0x81,设置为相对指令;
往PR1位置(0x6201、0x6202)写入50000 ,即50000脉冲单位,此地址为32位;
往PR1速度(0x6203)里写入500,即500rpm;
往PR1加速时间(0x6204)里写入50,即50ms/Krpm;
往PR1减速时间(0x6205)里写入50,即50ms/Krpm;
往PR1停顿时间(0x6206)里写入0,即停顿时间为0;
上位机发送报文如下:
Tx: 3F 10 62 00 00 07 0E 00 81 00 00 C3 50 01 F4 00 32 00 32 00 00 20 7A
驱动器响应报文如下:
Rx: 3F 10 62 00 00 07 9A AD
运行多段PR案例
1
读取驱动器各种运行状态
本案例讲述给定位置、速度、反馈速度、反馈电流、反馈位置、驱动器此时报警状态,已接的io状态,假如报警了,读报警,报警后清除报警,或者此报警不能直接清除,需要软件复位。有一种情况是驱动器通讯断了,如何确认通讯状态。上位机对L7RS系列伺服驱动器读取状态类数据(只读数据),部分状态类地址如下,使用上位机读取以下参数。
读取指令位置
读取电机当前命令位置,当前位置为32位数据,需要2个Modbus寄存器存储:
读取指令位置报文:
3F 03 0B 16 00 02 23 35
从站应答报文:
3F 03 04 00 01 25 15 AF 6F
报文解析:
00 01 25 15 转为十进制为75029,当前指令位置(指令单位)为75029脉冲位置。
路径规划
案例1:运用上位机与L7驱动器RS485通信,运行路径A-B-C。
注:脉冲值正负值决定电机运行方向正反
位置写入
准备工作:下载雷赛L7伺服调试软件Motion Studio方便调试检测伺服状态。
写入A段参数到PR1:
主站发送报文:
Tx: 3F 10 62 00 00 07 0E 00 01 00 01 86 A0 02 58 01 90 01 90 00 00 B9 8E
从站应答报文:
Rx: 3F 10 62 00 00 07 9A AD
写入B段参数到PR2
主站发送报文:
Tx: 3F 10 62 08 00 07 0E 00 41 FF FF 3C B0 03 E8 01 90 01 90 00 00 3F 22
从站应答报文:
Rx: 3F 10 62 08 00 07 1B 6F
写入C段参数到PR3
主站发送报文:
Tx: 3F 10 62 10 00 07 0E 00 01 00 00 27 10 01 2C 01 90 01 90 00 00 AF 25
从站应答报文:
Rx: 3F 10 62 10 00 07 9B 68
保存数据
发送保存所有参数:
发送
Tx: 3F 06 00 33 22 11 A5 B7
响应
Rx: 3F 06 00 33 22 11 A5 B7
保存PR参数:
发送
Tx: 3F 06 18 01 22 12 42 D9
响应
Rx: 3F 06 18 01 22 12 42 D9
复位重启:
Tx: 3F 06 00 33 66 66 D6 91
响应:
Rx: 3F 06 00 33 66 66 D6 91
写入数据成功打开MotionStudio监测,确认数据
2
运行路径
固定触发受到16段位置的限制,而立即触发方式则很灵活。每次写入当前的路径,同时触发本路径的运行。通过一个数据帧实现位置、速度回零等动作。
该方式利用PRO来实现,Pro共8个数据,其中最后一个数据P9.07映射到P8.02,向其写入OxlO会立即触发PRO 的运行,从而实现立即数据触发运行。
操作步骤:
首先配置需要运行的回零和路径,可以上电临时发送参数配置,也可用上位机配置好后保存。(回零必须配置)
⬛ 使能能驱动器。
⬛ 通过PR8.02 操作固定路径
执行PR1位置
主站发送报文:
Tx: 3F 06 60 02 00 10 33 18
从站应答报文:
Rx: 3F 06 60 02 00 10 33 18
监测PR1是否执行完成
主站发送报文查询PR状态:
Tx: 3F 03 60 02 00 01 3F 14
PR运行中从站应答报文:(读地址Ox6002里面值为Ox100表示路径正在运行中)
Rx: 3F 03 02 01 00 90 11
PR运行完成从站应答报文:
Rx: 3F 03 02 00 00 91 81
执行PR2位置
主站发送报文:
Tx: 3F 06 60 02 00 11 F2 D8
从站应答报文:
Rx: 3F 06 60 02 00 11 F2 D8
监测PR2是否执行完成
主站发送报文查询PR状态:
Tx: 3F 03 60 02 00 01 3F 14
PR运行中从站应答报文:
Rx: 3F 03 02 01 01 51 D1
PR运行完成从站应答报文:
Rx: 3F 03 02 00 01 50 41
执行PR3位置
主站发送报文:
Tx: 3F 06 60 02 00 12 B2 D9
从站应答报文:
Rx: 3F 06 60 02 00 12 B2 D9
监测PR是否执行完成
主站发送报文查询PR状态:
Tx: 3F 03 60 02 00 01 3F 14
PR运行中从站应答报文:
Rx: 3F 03 02 01 02 11 D0
PR运行完成从站应答报文:
Rx: 3F 03 02 01 02 11 D0
3
监控电机运转实时数据
读取电机实时运转数据:
读取指令位置报文:
3F 03 0B 05 00 05 93 32
从站应答报文:
3F 03 0A 00 03 FF 3D FF F5 FF F6 FF 3C CD 22
报文解析:
4
报警处理
查询电机代码运行状态,查询参数0x0B05。
发送数据帧。
3F 03 0B 05 00 01 92 F1
应答数据寄存器的bit2为1,则当前报警。
例如:
3F 03 02 00 04 90 42
报警处理:
处理完故障后,将0x6666写入485地址0x0033,软件复位驱动器。
例如:
主站发送:
3F 06 00 33 66 66 D6 91
从站响应:
3F 06 00 33 66 66 D6 91
后重启,驱动器复位报警
5
通信状态判断
发送数据帧读取电机状态,如果正常会返回数据,如果1000ms内不返回数据,那通信失败。
例如:
3F 03 0B 05 00 01 92 F1
通信成功应答:
3F 03 02 00 04 90 42
失败:
1000ms内没返回数据
PR回零
L7RS内置多种回零方式,以下以原点回零方式运行为例设置PR回原点,需要设置参数如下
STEP1:设置伺服控制模式为PR模式
发送:Tx: 3F 06 00 03 00 06 FD 16
响应:Rx: 3F 06 00 03 00 06 FD 16
STEP2:发送0x27设置SI1为原点信号
Tx: 3F 06 04 01 00 27 9D FE
响应:
Rx: 3F 06 04 01 00 27 9D FE
STEP3:发送0x4设置原点回零为原点方式
发送:
Tx: 3F 06 60 0A 00 04 B2 D5
响应:
Rx: 3F 06 60 0A 00 04 B2 D5
STEP4:发送设置回零高速为100、低速为50
发送:
Tx: 3F 10 60 0F 00 02 04 00 64 00 32 10 0F
响应:
Rx: 3F 10 60 0F 00 02 6B 15
STEP5:设置PR9.00为回零
发送:
Tx: 3F 06 62 00 00 03 D2 AD
接收:
Rx: 3F 06 62 00 00 03 D2 AD
STEP6:保存重启
发送保存所有参数:
发送
Tx: 3F 06 00 33 22 11 A5 B7
响应
Rx: 3F 06 00 33 22 11 A5 B7
保存PR参数:
发送
Tx: 3F 06 18 01 22 12 42 D9
响应
Rx: 3F 06 18 01 22 12 42 D9
重启:
发送:
Tx: 3F 06 00 33 66 66 D6 91
响应:
Rx: 3F 06 00 33 66 66 D6 91
STEP7:启动回零
发送
Tx: 3F 06 60 02 00 10 33 18
响应
Rx: 3F 06 60 02 00 10 33 18
点动运行
使用RS485点动电机需要定义
STEP1:设置SI3、SI4为JOG+、JOG-
发送:
Tx: 3F 06 04 05 00 23 DD FC
响应
Rx: 3F 06 04 05 00 23 DD FC
发送
Tx: 3F 06 04 07 00 24 3D FE
响应
Rx: 3F 06 04 07 00 24 3D FE
STEP2:保存重启
发送
Tx: 3F 06 00 33 22 11 A5 B7
响应
Rx: 3F 06 00 33 22 11 A5 B7
复位重启:
Tx: 3F 06 00 33 66 66 D6 91
响应:
Rx: 3F 06 00 33 66 66 D6 91
STEP3:点动
JOG+发送:
Tx: 3F 06 20 09 00 04 57 15
响应:
Rx: 3F 06 20 09 00 04 57 15
JOG-发送:
Tx: 3F 06 20 09 00 08 57 10
响应:
Rx: 3F 06 20 09 00 08 57 10
STEP4: 停止
发送:
Tx: 3F 06 20 09 00 00 56 D6
响应
Rx: 3F 06 20 09 00 00 56 D6