2024年2月6日发(作者:)
RIDING-TESTING DEPARTMENT-003
杭州日鼎控制技术有限公司
RIDING驱动器通讯测试
MODBUS测试
测试准备:
1. 硬件测试:
(1) 与硬件工程师确定MODBUS通讯接口定义:MAX485通讯的A+,B-;
(2) 信号线上EMC测试,群脉冲测试和雷击浪涌测试;
2. 软件测试:
(1) 由软件工程师提供测试的具体内容以及更改点;
(2) 提供需要进行测试的驱动器型号以及电机代码(On-16);
(3) 软件的测试版本号首先确认(On-17);
注:由软件工程师首先确定软件版本号,若更改点有歧义,请确认后进行测试;
Modbus通讯口是使用RS-485串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验;
RIDING-TESTING DEPARTMENT-003
RIDING伺服驱动器的modbus通讯说明
——串口调试助手篇
1. Modbus通讯协议介绍
伺服驱动器可以采用Modbus模式进行上位机通讯,协议格式为:8个数据位、一个停止位、无校验位,发送接收数据都是以16进制格式进行。
发送数据格式:
发送数据
含义
0 1 2 3 4 5 6 7
站号 功能码 地址单元 数据单元 校验码
xx xx xx xx xx xx xx xx
表格1
站号,地址单元,数据单元均采用16进制数;校验位为CRC(LRC)校验,由校验计算工具生成
Modbus支持的功能码:
(1) 03,表示读取保持寄存器;
(2) 06,表示写单个模拟量寄存器;
2. RIDING伺服驱动器的modbus通讯参数的基本设置:
(1) PN-81=1;//*RTU协议:1;ACSII协议:0;
(2) PN-82=1;//*站号设定范围:1~31;
(3) PN-83=1;//*波特率设定:0-----4800;1-----9600;2-----19200;3-----38400;4-----57600;5-----115200;
(4) Modbus通讯协议:8个数据位,一个停止位,无校验;
(5) 测试时不需要焊接120Ω的匹配电阻;
(6) 如开机会出现dE报警,选择Fn-06 参数初始化。
3. RIDING伺服驱动器的modbus通讯协议的两种模式(Pn-81):RTU模式和ASCII模式
(1) RTU模式 01 03 00 1E 00 0C 25 C9(读取12个参数)
01 03 00 1E 00 07 64 0E(读取7个参数)
a) RTU模式的简易功能说明:
1) 读命令 03;(读命令一次最多可以读取12个参数)
1> 读取Pn-01的参数:01 03 00 00 00 01 84 0A;
详解,01表示站号;03表示功能码读取;00表示读取参数地址的高8位16进制编码;00表示读取参数地址的低8位16进制编码;00表示读取数
RIDING-TESTING DEPARTMENT-003
据个数的高8位16进制编码,01表示读取数据个数的低8位16进制编码;84 0A是CRC校验码;
2> 驱动器返回的值:01 03 01 00 04 49 87;
详解,01表示站号;03表示功能码读取;01表示读取参数的个数;00表示读取数据的高8位16进制编码;04表示读取数据的低8位16进制编码;49 87是CRC校验码;
2) 写命令06;
1> 写入Pn-01的参数:01 06 00 00 00 01 48 0A
详解,01表示站号;06表示功能码写入;00表示写入参数地址的高8位16进制编码;00表示写入参数地址的低8位16进制编码;00表示写入数据的高8位16进制编码,01表示写入数的低8位16进制编码;48 0A是CRC校验码;
2> 驱动器返回的值:01 06 00 00 00 01 48 0A
详解,01表示站号;06表示功能码写入;00表示写入参数地址的高8位16进制编码;00表示写入参数地址的低8位16进制编码;00表示写入数据的高8位16进制编码,01表示写入数的低8位16进制编码;48 0A是CRC校验码;
b) RTU模式的简易运行示例
1) 速度模式运行:
1> 速度模式使能:01 06 08 00 01 01 4B FA;
2> 给定使能+正方向:01 06 08 00 01 11 4A 36;
3> 给定使能+反方向:01 06 08 00 01 21 4A 22;
4> 速度模式给定速度:01 06 08 02 00 50 2A 56;//0050表示16进制数,是十进制数的80;命令表示额定转速的万分之80:2500*80/10000=20rpm/min(可观察On-01平均转速和On-19实时转速)
RIDING-TESTING DEPARTMENT-003
5> 速度模式给定速度200r/min: 01 06 08 02 03 20 2B 42
6> 给定速度为0:01 06 08 02 00 00 2A 6A;
7> 速度模式去掉使能状态:01 06 08 00 00 01 4A 6A;
电机额定转速(Pn-A3)的50%:01 06 08 02 13 88 27 3C;
电机额定转速(Pn-A3)的100%,万分之一;01 06 08 02 27 10 30 56;
只的是(给定的额定转速>Pn-34设定的值时,此时按最大转速运行)
2) 速度模式的多段速运行,通过修改参数为Pn-31,Pn-32,Pn-33的参数值实现多段速模式运行:
1> 由参数Pn-31控制速度正转的代码:01 06 08 00 01 51 4B C6;
由参数Pn-31控制速度反转的代码:01 06 08 00 01 61 4B D2;
2> 由参数Pn-32控制速度正转的代码:01 06 08 00 01 91 4B 96;
由参数Pn-32控制速度反转的代码:01 06 08 00 01 A1 4B 82;
3> 由参数Pn-33控制速度正转的代码:01 06 08 00 01 D1 4A 66;
4> 由参数Pn-33控制速度反转的代码:01 06 08 00 01 E1 4A 72;
5> 速度停车的代码:01 06 08 00 01 01 4B FA;(只能在多段速时有效)
6> 速度复位的代码:01 06 08 00 04 01 48 AA;
3) 位置模式运行:(测试时先给定位置在给定速度)
4) :01 03 08 16 00 08 A7 A8;(注:86 A0为低8位 00 01 为高八位)
5) 清除当前命令(On-05)和反馈脉冲(On-04):01 06 08 08 00 03 4A 69
6) 报警复位(Fn-04); 01 06 08 08 00 04 0B AB
7) 清楚报警记录: 01 06 08 08 00 05 CA 6B
1> 位置模式使能:01 06 08 00 01 00 8A 3A;
2> 位置模式给定位置高位:01 06 08 04 00 01 0B AB;
位置模式给定位置低位:01 06 08 05 86 A0 F9 B3;//*正转100000脉冲;//0001 86A0表示+100000;
位置模式给定位置高位:01 06 08 04 00 0F 8A 6F
位置模式给定位置低位:01 06 08 05 42 40 AA FB; //*正转1000000
RIDING-TESTING DEPARTMENT-003
脉冲;//000F 4240表示+1000000;
3> 位置模式给定位置高位:01 06 08 04 FF FE 0A 1B;
位置模式给定位置低位:01 06 08 05 79 60 B8 13;//*反转100000脉冲;//FFFE 7960表示-100000;
4> 位置模式给定速度:01 06 08 02 00 32 AB BF;额定转速的50/10000=0.5%,24rpm;(0032表示十六进制数,十进制为50, 命令转速为额定转速的万分之50,但是在位置环时电机的最小转速24r/min)
5> 位置模式给定速度50r/min:01 06 08 02 00 C8 2B FC (00C8表示十六进制数,十进制为200,命令额定转速的万分之2%。2500*200/10000=50r/min)
6> 位置模式去掉使能状态:01 06 08 00 00 00 8B AA;
7> 位置复位的代码:01 06 08 00 04 00 89 6A;
注:驱动器给定的位置模式的速度命令指令,最小的速度单位是24rpm,当转速不足24rpm时,按照24rpm运行;当转速小于48rpm,大于24rpm时,仍然按照24rpm运行;转速等于48r/min,按照48r/min ;列如:设定转速为X,则X在这个区间运行24n 8) 力矩模式运行: 1> 力矩模式使能: 01 06 08 00 01 02 0B FB; 2> 力矩模式力矩: 01 06 08 03 00 32 FA 7F 3> 速度Pn-31正转: 01 06 08 00 01 52 0B C7 ; 4> 力矩停车代码: 01 06 08 00 04 02 08 AB; 注:力矩模式暂时不能进行速度给定。 (2) ASCII模式 a) RTU转换为ACSII模式:01 06 00 50 00 00 89 DB; b) ACSII转换为RTU模式::A8; c) ASCII模式的简易功能说明: 1)读命令 03;(读命令一次最多可以读取12个参数) 1>读取Pn-01的参数: :FB ;//输入命令的结束符是Enter。 详解,“:”表示开始符;01表示站号;03表示功能码读取;00表示读取参数地址的高8位16进制编码;00表示读取参数地址的低8位16进制编码;00表示读取数据个数的高8位16进制编码,01表示读取数据个数的低8位16进制编码;FB是LRC校验码;结束符Enter。 2>驱动器返回的值: :FA; 详解,“:”表示开始符;01表示站号;03表示功能码读取;01表示读取参数的个数;00表示读取数据的高8位16进制编码;04表示读取数据的低8位16进制编码;FA是LRC校验码。 RIDING-TESTING DEPARTMENT-003 2)写命令 06;(写命令每次只能写入一个参数) 1>写入Pn-01的参数: :F7 ;//输入命令的结束符是Enter。 详解,“:”表示开始符;01表示站号;06表示功能码写入;00表示写入参数地址的高8位16进制编码;00表示写入参数地址的低8位16进制编码;00表示写入数据的高8位16进制编码,02表示写入数的低8位16进制编码;F7是LRC校验码;结束符Enter。 2>驱动器返回的值: :F7 详解,“:”表示开始符;01表示站号;06表示功能码写入;00表示写入参数地址的高8位16进制编码;00表示写入参数地址的低8位16进制编码;00表示写入数据的高8位16进制编码,02表示写入数的低8位16进制编码;F7是LRC校验码。 RIDING-TESTING DEPARTMENT-003 注:但发送正确的输入指令时,返回值出现汉字,则表示的内容为输入多代码,需清空输入多余的输入指令 4. 虚拟IO口的测试(#0807):01 06 08 07 00 FF 7A 2B;(对应On-11~On-12) (1) 输入口Input: a) 第一个输入口:01 06 08 07 00 01 FB AB; b) 第二个输入口:01 06 08 07 00 02 BB AA; c) 第三个输入口:01 06 08 07 00 04 3B A8; d) 第四个输入口:01 06 08 07 00 08 3B AD; e) 第五个输入口:01 06 08 07 00 10 3B A7; f) 全部输入口: 01 06 08 07 00 1F 7B A3; g) 第六个输入口 01 06 08 07 00 20 3B B3(Pr-80) h) 第13个输入口 01 06 08 07 10 00 37 AB(Pr-87) i) 关闭输入口: 01 06 08 07 00 00 3A 6B; (2) 输出口Output:(目前只能测试3个) a) 第一个输出口:01 06 08 06 00 01 AA 6B; b) 第二个输出口:01 06 08 06 00 02 EA 6A; c) 第三个输出口:01 06 08 06 00 04 6A 68; d) 全部输出: 01 06 08 06 00 07 2A 69; RIDING-TESTING DEPARTMENT-003 e) 关闭输出口: 01 06 08 06 00 00 6B AB; (3) 测试方法: a) 测试输入口时,需要对应On-11的值,从右到左依次为,第一个输入口,第二个输入口,第三个输入口,第四个输入口,第五个输入口; b) 测试输出口时,需要对应On-12的值,从右到左依次为,第一个输出口,第二个输出口,第三个输出口; (4) 输入虚拟端口测试:D0~D4为MI1~MI5表示输入端口 测试时要将输出口设置成相应的端口输出。 读取虚拟口参数命令 01 03 08 24 00 01 C6 61 返回值: 01 03 02 00 1F F9 8C 列入返回值中1F表示为16进制数转换为为二进制数为11111。即输入端口PN11~PN15全部为1(闭合状态)。00表示为Pr80~Pr81的端口状态为0(断开状态) 输出虚拟端口测试:D0~D3为MI1~MI4表示输出端口 01 03 08 25 00 01 97 A1 01 03 02 00 07 F9 86 列入返回值中07表示为16进制数转换为为二进制数为111。即输出端口PN15~ PN17全部为1(闭合状态)。 5. 状态区读取(#0810~#0823): 读取状态区的24个参数:0810H~081BH 01 03 08 10 00 0C 46 6A 081CH~0823H 01 03 08 1C 00 0C 86 69 6. 站号测试(Pn-82): 采用RTU模式测试:Pn-81=1;PN-83=1(默认波特率9600); 站号的独立性测试(一个下位机只响应一个站号(从机)):试在设定站号下,输入其它站号指令,不响应(即无数据返回),再次输入本站号指令,能够按照发送命令执行,则通讯功能正常。监控Sn-01的运行状态。 (1) 位置模式使能:01 06 08 00 01 00 8A 3A;Sn-01显示P-P1n;(站号1)图1; (2) 速度模式使能:01 06 08 00 01 01 4B FA;Sn-01显示n-Son;(站号1)图2; (3) 位置模式使能:02 06 08 00 01 00 8A 09;Sn-01显示n-Son;(发送站号2指令)图3 ; (4) 速度模式使能:02 06 08 00 01 01 4B C9;Sn-01显示n-Son;(发送站号2指令)图4; (5) 位置模式使能:01 06 08 00 01 00 8A 3A;Sn-01显示P-P1n;(站号1)图5; (6) 速度模式使能:01 06 08 00 01 01 4B FA;Sn-01显示n-Son;(站号1)图6; (7) 符合上述显示,则通讯功能正常。(下附图串口调试助手说明,按照上述步骤操作); RIDING-TESTING DEPARTMENT-003 图1 图2 RIDING-TESTING DEPARTMENT-003 图3 图4 RIDING-TESTING DEPARTMENT-003 图5 图6 RIDING-TESTING DEPARTMENT-003 7. 波特率测试:01 03 00 52 00 01 25 DB;//波特率修改后,伺服驱动器需要断电有效;波特率设定:0-----4800;1-----9600;2-----19200;3-----38400;4-----57600;5-----115200; (1) (2) (3) (4) (5) (6) 波特率设置为4800:01 06 00 52 00 00 28 1B; 波特率设置为9600:01 06 00 52 00 01 E9 DB; 波特率设置为19200:01 06 00 52 00 02 A9 DA; 波特率设置为38400:01 06 00 52 00 03 68 1A; 波特率设置为57600:01 06 00 52 00 04 29 D8; 波特率设置为115200:01 06 00 52 00 05 E8 18; 图A 上图A,红色箭头:串口调试助手的波特率设定为4800bps;蓝色箭头:读取Pn-83的参数的值为0;与设定的值一致,此时通讯正常; RIDING-TESTING DEPARTMENT-003 图B 上图B,修改串口小助手的波特率为9600bps;由于驱动器的波特率为4800bps;此时二者的波特率不一致,则数据通讯失败,会出现乱码; 8. 重要参数测试 功能无效 1. 命令积算脉冲red(,返回积算脉冲green,位置偏差black,编码器反馈pink;见下图 依次读取上述参数:01 03 08 16 00 08 A7 A8;(注:86 A0为低8位 00 01 为高八位) (Fn-03):清除当前命令(On-05)和反馈脉冲(On-04):01 06 08 08 00 03 4A 69 报警复位(Fn-04); 01 06 08 08 00 04 0B AB 清楚报警记录: 01 06 08 08 00 05 CA 6B 注:(86 A0为低8位 00 01 为高八位) RIDING-TESTING DEPARTMENT-003 编码器反馈反应的是电机运转的圈数,必须加上使能信号,使能信号去除编码器反馈为0 2. 速度给定命令:目前驱动器给定的位置模式的速度命令指令,最小的速度单位是24rpm,当转速不足24rpm时,按照24rpm运行;当转速小于48rpm,大于24rpm时,仍然按照24rpm运行;依次类推; 速度模式的转速按照实际给定的值来确定;即万分之1,表示实际转速为(1/10000)*2500=0.25rpm; 9. 附录1:一个ModeBus数据帧的构成 读命令在Servo中分为读取参数,读取实时数据,读取历史数据,其数据帧的构成都是一样的。 (1)读命令时的数据帧构成 发送读参数命令时的数据帧构成: SciBuff[0]:开始符,为“:”对应的ASCII码0x3a; [1,2]:站号,两位十进制数表示,例如站号15,分别存1和5的ASCII码到数组中; [3,4]:功能码,=3:读;=6:写;=8:无操作; [5,6,7,8]:读取的参数号,四位十进制数表示; [9,10,11,12]:本次读取参数的个数,四位十进制数表示; [13,14]:校验位;取和求反 [15]:=0x0d,结束符CR; [16]:=0x0a,结束符LF;CR+LF=回车,表示本帧数据发送完毕; 返回读参数命令是的数据帧构成: SciBuff[0]:开始符,为“;”对应的ASCII码0x3a;(不变) [1,2]:站号,两位十进制数表示,例如站号15,分别存1和5的ASCII码到数组中;(不变) [3,4]:功能码,=3:读;=6:写;=8:无操作;(不变) [5,6]:返回数据的长度,两位十进制数表示;(实际长度*2) [7,…,54]:读取的参数,最多12个参数,每个参数用四位十进制数表示;(有效数据) [55,56]:校验位;取和求反 [57]:=0x0d,结束符CR; [58]:=0x0a,结束符LF;CR+LF=回车,表示本帧数据发送完毕; (2)写命令时的数据帧构成 发送写命令时的数据帧构成: SciBuff[0]:开始符,为“;”对应的ASCII码0x3a; [1,2]:站号,两位十进制数表示,例如站号15,分别存1和5的ASCII码到数组中; [3,4]:功能码,=3:读;=6:写;=8:无操作; [5,6,7,8]:写参数的地址,四位十进制数表示; [9,10,11,12]:写参数的值,四位十进制数表示; [13,14]:校验位;取和求反 [15]:=0x0d,结束符CR; [16]:=0x0a,结束符LF;CR+LF=回车,表示本帧数据发送完毕; RIDING-TESTING DEPARTMENT-003 返回写命令时的数据帧构成: 按照发送过来的数据原样返回。 (3)校验出错时的数据帧构成 SciBuff[0]:开始符,为“;”对应的ASCII码0x3a; [1,2]:站号,两位十进制数表示,例如站号15,分别存1和5的ASCII码到数组中; [4]:0x38; [5,6]:错误代码,两位十进制数表示; [7,8]:校验位 [9]:=0x0d,结束符CR; [10]:=0x0a,结束符LF;CR+LF=回车,表示本帧数据发送完毕; 10. 附录2:RIDING伺服驱动器的地址单元 地址单元: 0000H~07FFH:参数区(列如:读取Pn-01的值 01 03 00 00 00 01 84 0A 返回值 01 03 01 00 04 49 87) 0800H~08FFH:命令区(SciServoCom) +00H():运行模式设定 D0~D3:00=位置; 01=速度; 10=力矩; D4~D5:00=停车; 01=FWD; 10=REV; 11=Reserved; D6~D7:00=多段速无效; 01=多段速1; 10=多段速2; 11=多段速3; D8:SCI使能 D9:SCI急停 D10:SCI复位 D11~D15:Fnxx功能 =0:NULL =1:FN01(JOG:点动运行) =2:FN02(Prt:清除当前命令和反馈脉冲) =3:FN03(CPrt:清除计算脉冲) =4:FN04(rt:报警复位) =5:FN05(ALrt:报警记录初始化) =6:FN06(PArt:参数初始化) =7:FN07(oFFt:自动补偿调整) =8:FN08(保留) =9:FN09(保留) =10:FN10(ESY.1:简易运行) =11:FN11(Ptn:模式运行) +01H(RecordMode): D0~D3:采样时间设置(1ms PU,1ms default) D4:=1,启动时保存;=0,停止时保存 D5:=1,允许采样;=0,禁止采样 RIDING-TESTING DEPARTMENT-003 D6~D15:采样变量选择 D6=SpeedNow(实际转速,单位0.1RPM) D7=SpeedRef(实际转速,单位0.1RPM) D8=IQNow(Q轴实际电流,单位PU) D9=IQRef(Q轴给定电流,单位PU) D10=IDNow(D轴实际电流,单位PU) D11=IDRef(D轴给定电流,单位PU) D12=PosiErr(位置误差,单位个) D13=PosiNow(位置累积,单位个) D14=CurrI(力矩,单位百分比) D15=CurrU(U相电流,单位A) +02H:运行速度给定值(额定速度万分比,0.0001) +03H:运行力矩给定值(百分比,0.0001) +04H:运行位置给定值高位 +05H:运行位置给定值低位(高位发送后发送低位有效) +06H:虚拟IO,D0~D3对应Pn15~Pn18 +07H:虚拟IO,D0~D13对应Pn10~Pn14 Pr-80~Pr-87设定的功能 +08H:=3 清除反馈脉冲和当前命令 =4 报警复位 0810H~082FH:状态区 +00H:当前运行状态字 +01H:故障代码 +02H:当前转速 +03H:指令转速 +04H:平均转矩 +05H:直流电压 +06H:命令积算脉冲(Lo) +07H:命令积算脉冲(Hi) +08H:返回积算脉冲(Lo) +09H:返回积算脉冲(Hi) +0AH:位置偏差(Lo) +0BH:位置偏差(Hi) +0CH:编码器反馈(Lo)(断使能清零) +0DH:编码器反馈(Hi) (断使能清零) +0EH:速度环反馈脉冲LO(断使能不清零) +0FH:速度环反馈脉冲HI(断使能不清零) +10H:电角度 +11H:脉冲串输入频率 +12H:散热器温度 +13H:模拟给定电压 +14H:虚拟IO输入:D0~D13:MI1~MI5(Pn-11~Pn-15) MI6~MI13(Pr-80~Pr-87)对应输入端口 +15H:虚拟IO输出:MO1 ~MO3 对应PN15~Pn-17的输出的端口 //灰色为暂时未添加; 注:驱动器输入线未接大地,电脑接地时,通过上位机给驱动器发命令时,由于地线干扰,返回值不断接收。


发布评论