该部分是通讯数据的地址定义,用于控制变频器的运行、获取变频器状态信息及变频器相关功能参数设定等。
10.5.1 功能码地址表示规则
功能码地址占两个字节,高位在前,低位在后。高、低字节的范围分别为:高位字节—00~ffH;低位字节—00~ffH。高字节为功能码点号前的组号,低字节为功能码点号后的数字,但都要转换成十六进制。如P05.06,功能码点号前的组号为05,则参数地址高位为05,功能码点号后的数字为06,则参数地址低位为06,用十六进制表示该功能码地址为0506H。再比如功能码为P10.01的参数地址为0A01H。
功能码 | 名称 | 参数详细说明 | 缺省值 | 更改 |
P10.00 | 简易PLC方式 | 0:运行一次后停机 1:运行一次后保持最终值运行 2:循环运行 | 0 | ○ |
P10.01 | 简易PLC记忆选择 | 0:掉电不记忆 1:掉电记忆 | 0 | ○ |
注意:
1、P29组为厂家设定参数,既不可读取该组参数,也不可更改该组参数;有些参数在变频器处于运行状态时,不可更改;有些参数不论变频器处于何种状态,均不可更改;更改功能码参数,还要注意参数的设定范围、单位及相关说明。
2、由于EEPROM频繁被存储,会减少EEPROM的使用寿命。对于用户而言,有些功能码在通讯的模式下,无需存储,只需更改片内RAM中的值就可以满足使用要求。要实现该功能,只要把对应的功能码地址最高位由0变成1就可以实现。如:功能码P00.07不存储到EEPROM中,只修改RAM中的值,可将地址设置为8007H。该地址只能用作写片内RAM时使用,不能用做读的功能,如做读为无效地址。
10.5.2 Modbus其他功能的地址说明
主机除了可以对变频器的参数进行操作之外,还可以控制变频器,比如运行、停机等,还可以监视变频器的工作状态。
下表为其他功能的参数表
功能说明 | 地址定义 | 数据意义说明 | R/W特性 |
通讯控制命令 | 2000H | 0001H:正转运行 | R/W |
0002H:反转运行 | |||
0003H:正转点动 | |||
0004H:反转点动 | |||
0005H:停机 | |||
0006H:自由停机 | |||
0007H:故障复位 | |||
0008H:点动停止 | |||
通讯设定值地址 | 2001H | 通讯设定频率(0~Fmax(单位:0.01Hz)) | R/W |
2002H | PID给定,范围(0~1000,1000对应100.0%) | ||
2003H | PID反馈,范围(0~1000,1000对应100.0%) | R/W | |
2004H | 转矩设定值(-3000~3000,1000对应100.0%电机额定电流) | R/W | |
2005H | 正转上限频率设定值(0~Fmax(单位:0.01Hz)) | R/W | |
2006H | 反转上限频率设定值(0~Fmax(单位:0.01Hz)) | R/W | |
2007H | 电动转矩上限转矩(0~3000,1000对应100.0%变频器电机电流) | R/W | |
2008H | 制动转矩上限转矩(0~3000,1000对应100.0%电机额定电流) | R/W | |
2009H | 特殊控制命令字: Bit0~1:=00:电机1 =01:电机2 =10:电机3 =11:电机4 Bit2:=1 转矩控制 =0:速度控制 | R/W | |
200AH | 虚拟输入端子命令,范围:0x000~0x1FF | R/W | |
200BH | 虚拟输出端子命令,范围:0x00~0x0F | R/W | |
200CH | 电压设定值(V/F分离专用) (0~1000,1000对应100.0%电机额定电压) | R/W | |
200DH | AO 输出设定值1(-1000~1000,1000对应100.0%) | R/W | |
200EH | AO 输出设定值2(-1000~1000,1000对应100.0%) | R/W | |
变频器状态字1 | 2100H | 0001H:正转运行中 | R |
0002H:反转运行中 | |||
0003H:变频器停机中 | |||
0004H:变频器故障中 | |||
0005H:变频器POFF状态 | |||
变频器状态字2 | 2101H | Bit0: =0:运行准备维就绪 =1:运行准备就绪 Bi1~2:=00:电机1 =01:电机2 =10:电机3 =11:电机4 Bit3: =0:异步机 =1:同步机 Bit4:=0:未过载预报警 =1:过载预报警 Bit5~ Bit6:=00:键盘控制 =01:端子控制 =10:通讯控制 | R |
变频器故障代码 | 2102H | 见故障类型说明 | R |
变频器识别代码 | 2103H | GD200A-----0x0107 | R |
运行频率 | 3000H | 设定范围:0.00Hz~P00.03 | R |
设定频率 | 3001H | 设定范围:0.00Hz~P00.03 | R |
母线电压 | 3002H | 设定范围:0~1200V | R |
输出电压 | 3003H | 设定范围:0~1200V | R |
输出电流 | 3004H | 设定范围:0.0~5000.0A | R |
运行转速 | 3005H | 设定范围:0~65535RPM | R |
输出功率 | 3006H | 设定范围:-300.0~300.0% | R |
输出转矩 | 3007H | 设定范围:0~65535RPM | R |
闭环设定 | 3008H | 设定范围:-100.0%~100.0% | R |
闭环反馈 | 3009H | 设定范围:-100.0%~100.0% | R |
输入IO状态 | 300AH | 设定范围:0000~00FF | R |
输出IO状态 | 300BH | 设定范围:0000~00FF | R |
模拟量输入1 | 300CH | 设定范围:0.00~10.00V | R |
模拟量输入2 | 300DH | 设定范围:0.00~10.00V | R |
模拟量输入3 | 300EH | 设定范围:0.00~10.00V | R |
模拟量输入4 | 300FH | 保留 | R |
读高速脉冲1输入 | 3010H | 设定范围:0.00~50.00kHz | R |
读高速脉冲2输入 | 3011H | 保留 | R |
读多段速当前段数 | 3012H | 设定范围:0~15 | R |
外部长度值 | 3013H | 设定范围:0~65535 | R |
外部计数值 | 3014H | 设定范围:0~65535 | R |
转矩设定值 | 3015H | 设定范围:0~65535 | R |
变频器识别代码 | 3016H | / | R |
故障代码 | 5000H | / | R |
R/W特性表示该功能是读/写特性,比如“通讯控制命令”为写特性,用写命令(06H)对变频器进行控制。R特性只能读不能写,W特性只能写不能读。
注意:利用上表对变频器进行操作时,有些参数必须使能才能起作用。比如用运行和停机操作,必须将“运行指令通道”(P00.01)设为“通讯运行指令通道”,同时还要将“通讯运行指令通道选择”(P00.02)设为“MODBUS通讯通道”;再比如对“PID给定”操作时,要将“PID给定源选择”(P09.00)设为“MODBUS通讯设定”。
设备代码的编码规则表(对应变频器识别代码2103H)
代码高8位 | 表示意义 | 代码低8位 | 表示意义 |
01 | GD | 0x0c | GD200A通用变频器 |
注意:代码由16位数组成;分为高8位及低8位组成,高8位表示机型系列,低8位为系列机衍生机型。
10.5.3 现场总线比例值
在实际的运用中,通讯数据是用十六进制表示的,而16进制无法表示小数点。比如50.12Hz,这用十六进制无法表示,我们可以将50.12放大100倍变为整数(5012),这样就可以用十六进制的1394H(即十进制的5012)表示50.12了。
将一个非整数乘以一个倍数得到一个整数,这个倍数称为现场总线比例值。
现场总线比例值是以功能参数表里“设定范围”或者“缺省值”里的数值的小数点为参考依据的。如果小数点后有n位小数(例如n=1),则现场总线比例值m为10的n次方(m=10)。以下图为例:
功能码 | 名称 | 参数详细说明 | 缺省值 | 更改 |
P01.20 | 休眠恢复延时时间 | 设定范围:0.0~3600.0s(对应P01.19为2有效) | 0.0s | ○ |
“设定范围”或者“缺省值”有一位小数,则现场总线比例值为10。如果上位机收到的数值为50,则变频器的“休眠恢复延时时间”为5.0(5.0=50÷10)。
如果用Modbus通讯控制休眠恢复延时时间为5.0s。首先将5.0按比例放大10倍变成整数50,也即32H。然后发送写指令:
变频器在收到该指令之后,按照现场总线比例值约定将50变成5.0,再将休眠恢复延时时间设置为5.0s。
再比如,上位机在发完读“休眠恢复延时时间”参数指令之后,主机收到变频器的回应信息如下:
因为参数数据为0032H,也即50,将50按比例约定除以10变成5.0。这时主机就知道休眠恢复延时时间为5.0s。
10.5.4 错误消息回应
在通讯控制中难免会有操作错误,比如有些参数只能读不能写,结果发送了一条写指令,这时变频器将会发回一条错误消息回应信息。
错误消息回应是变频器发给主机的,它的代码和含义如下表:
代码 | 名称 | 含义 |
01H | 非法命令 | 当从上位机接收到的命令码是不允许的操作,这也许是因为功能码仅仅适用于新设备,而在此设备中没有实现;同时,也可能从机在错误状态中处理这种请求。 |
02H | 非法数据 地址 | 对变频器来说,上位机的请求数据地址是不允许的地址;特别是,寄存器地址和传输的字节数组合是无效的。 |
03H | 非法数据值 | 当接收到的数据域中包含的是不允许的值。这个值指示了组合请求中剩余结构上的错误。注意:它决不意味着寄存器中被提交存储的数据项有一个应用程序期望之外的值。 |
04H | 操作失败 | 参数写操作中对该参数设置为无效设置,例如功能输入端子不能重复设置等。 |
05H | 密码错误 | 密码效验地址写入的密码与P7.00用户设置的密码不同 |
06H | 数据帧错误 | 当上位机发送的帧信息中,数据帧的长度不正确或,RTU格式CRC校验位与下位机的校验计算数不同时。 |
07H | 参数为只读 | 上位机写操作中更改的参数为只读参数 |
08H | 参数运行中不可改 | 上位机写操作中更改的参数为运行中不可更改的参数 |
09H | 密码保护 | 上位机进行读或写时,当设置了用户密码,又没有进行密码锁定开锁,将报系统被锁定。 |
当从设备回应时,它使用功能代码域与故障地址来指示是正常回应(无误)还是有某种错误发生(称作异议回应)。对正常回应,从设备回应相应的功能代码和数据地址或子功能码。对异议回应,从设备返回一等同于正常代码的代码,但最首的位置为逻辑1。
例如:一主设备发往从设备的消息要求读一组变频器功能码地址数据,将产生如下功能代码:
0 0 0 0 0 0 1 1 (十六进制03H)
对正常回应,从设备回应同样的功能码。对异议回应,它返回:
1 0 0 0 0 0 1 1 (十六进制83H)
除功能代码因异议错误作了修改外,从设备将回应一字节异常码,这定义了产生异常的原因。主设备应用程序得到异议的回应后,典型的处理过程是重发消息,或者针对相应的故障进行命令更改。
比如,将地址为01H的变频器的“运行指令通道”(P00.01,参数地址为0001H)设为03,指令如下:
但是“运行指令通道”的设定范围只为0~2,设置为3就超出了范围,这时变频器将会返回错误消息回应信息。回应信息如下:
异常回应码86H(由06H最高位置“1”而成)表示为写指令(06H)的异常回应;错误代码04H,从上表中可以看出,它的名称为“操作失败”,含义是“参数写操作中对该参数设置为无效设置”。