TD2100 变频器通信协议V1.30(用户版)

TD2100通用变频器通信协议(用户版V1.30)

艾默生网络能源有限公司 版权所有 

Emerson Networkpower Co.,Ltd.

网址

(+86)0755-28780808转变频器技术支援部

1. 组网方式 

RS232主机为PC RS485

主机为

PLC

TD1000TD2000TD2100 EV2000

RS232主机为PC TD2100

或RS485

主机为PLC

TD2100

232-485转换模块

 

2. 接口方式 

RS485接口

半双工

8-N-1

参数设置见用户手册F122 ̄F124的说明

变频器为从机,主从式点对点通信

从机不应答 

2波特率

 

 

使用前确认跳线开关的位置

在具体协议帧中可能不存在无

 

2 ̄135

79

DF

及十六进制数0Db

f为非法

有效命令帧长为14或18字节

例如

响应帧长为10字节

5. 格式解释 

 5.1 帧头 

5.2 从机地址 

数据含义双字节 

设置范围007F为广播通信地址00 5.3 主机命令/从机响应 

数据含义从机对命令的应答ASCII

 表1 命令码的响应码含义(F088=4时允许设置压力) 

含义 

 

响应码ASCII 

从机 

准备状态 

允许 

主机控制 

允许 

设置频率 

允许 

设置压力 

10 未准备好 无意义 

11 准备好 允许 允许 允许 

12 准备好 允许 不允许 允许 

13 准备好 不允许 允许 允许 

14 准备好 不允许 不允许 允许 

15 准备好 允许 允许 不允许 

16 准备好 允许 不允许 不允许 

17 准备好 不允许 允许 不允许 

18 准备好 不允许 不允许 不允许 

20 帧错误 

命令码01 

响应码00 

从机通信和控制正常密码正确

表示

数据超限索引区 

帧长度错误 / 除帧头 

注与从机当前设置状态有关5时的说明, 

该响应码上报时命令区和区的数据不上报

表示

功能码参数更改无效设定/运行数据 密码错误

该响应码是否上报参见命令码 上报时命令区和 区的数据根据协议要求上报

包括辅助索引字节和命令索引字节

辅助索引 

对于从机命令索引不作改动 数据类型4字节 

命令索引占用低二字节FF 

辅助索引占用高二字节FF 

辅助索引

辅助索引ASCII格式 

表2 故障类型描述 

故障索引 故障描述 故障索引 故障描述 01 加速运行过流 02 减速运行过流 

03 恒速运行过流 04 加速运行过压 

05 减速运行过压 06 恒速运行过压 

07 停机时过压 08 保留 

09 保留 10 功率模块故障 

11 功率模块过热 12 整流桥过热 

13 变频器过载 14 电机过载 

15 外部设备故障或紧急停车 16 EEPROM故障 

17 串行通信错误 18 接触器未吸合 

19 电流检测故障 20 CPU错误 

21 闭环反馈断线故障 22 闭环给定断线故障 23 管道超压 24 管道欠压

25 有消防信号26 进水池缺水 

27 实时时钟故障

帧校验ASCII

到全部字节的ASCII码值的累加和单字节

地址ASCII字符格式

例如PC

控制变频器工作 

从机地址

设为01

供水变频器压力设定 01 00 0F 无 ̄0101000F0198\r 0.001

MPa 

 

供水变频器外部端子状态 01 00 10 无 ̄010100100183\r 1 Bit0 ̄14依

次是

H/A

UP

功能码序号的十六进

制数用ASCII格式表示 

例如

序号为140

则发送帧中

命令索引为

运行频率设定方式选择F001 04 00 01 0 ̄1  ̄0104000100010247\r 1 F001=1,上

位机串口通

信设定 

运行频率数字设定F002 04 00 02 0 ̄上

限频

率 

 ̄0104000203E80267\r 0.01H

z 

设置功能码

F002 

=10.00Hz 

运行命令选择F003 04 00 03 0 ̄2  ̄010400030002024A\r 1 设F003=2上

位机控制 

运转方向设

定F004 

04 00 04 0

1  ̄010400170000024D\r 1 设F023=0

软停

配置从机响应类型 05 00 00 0 ̄7  ̄010500000007024D\r 1 Bit0 ̄2: 从

机接收到错

误类数据

运行控

制与调节功

能命令是否

应答

0不应

10

00和20

21

后2

位代表版本

号V1.0 

系统配置与查询命令 

输入并验证用户密码 05 00 02 0 ̄FFF

F 

 ̄010500020003024B\r

假设用户密码设定为3 

1 F143设置非

0时设置功

能码需先验

证用户密码 

 

表3 运行状态字含义 

含义 

位 

描述 0 1 bit0 停机/运行状态 停机 运行 bit1

Bit4 管道过压告警 无效 有效 

Bit5 水池缺水告警 无效 有效 

Bit6 管道欠压告警 无效 有效 

Bit7 污水池排污 无效 有效 

Bit8 DS12887时钟错误 无效 有效 

 

Y3 ̄Y8为泵的运行状态工频运行

和泵的对应关系由F25决定 

2在手动控制方式下泵4的启停控制位在自动控制方式下DOWN为TD2100变频器加 

附表二 供水变频器状态信息列表说明 

与输出端子和电机对应关系 

名 称 F25=05 F25=27 继电器输出端子Y1 

继电器输出端子 Y2 

电机1 电机 1 电机 1 电机 1 继电器输出端子 Y3 电机 2* 

继电器输出端子 Y4 电机 3* 

电机 2 电机 2 电机 2 继电器输出端子 Y5 电机 4* 电机 3* 

继电器输出端子 Y6 电机 5* 电机 4* 

电机 3 电机 3 继电器输出端子 Y7 电机 6* 电机 5* 电机 4* 

继电器输出端子 Y8 电机 7* 电机 6* 电机 5* 

电机 4 

 上表中带“*”表示功能可编程 

功能码参数F110 ̄F115 与F25的关系 

功能码名称 F25=05 F25=27 

F110 (Y3端子功能定义) 可编程为

4 

0 0 0 

F111 (Y4端子功能定义) 可编程为

4 

0 0 0 

F112 (Y5端子功能定义) 可编程为

4 

可编程为

4 

0 0 

F113 (Y6端子功能定义) 可编程为

4 

可编程为

4 

0 0 

F114 (Y7端子功能定义) 可编程为

4 

可编程为

4 

可编程

为4 

0 

F115 (Y8端子功能定义) 可编程为

4 

可编程为

4 

可编程

为4 

0 

注常规泵控制 

休眠泵控制 

无功能 

 

例程停机F002=2) 

#include <dos.h> 

#include <bios.h> 

#include <conio.h> 

#include <stdio.h> 

#define COM1 0 /*串行口1*/ 

#define COM2 1 /*串行口2*/ 

#define SET_COMPARA 0 /*设置通讯口参数*/ 

#define DEFAULT_BAUD 0xE3 /*8-N-1,9600bps*/ 

#define PORT_ADDR 0x3F8 /*串行口1地址3F8H*/ 

#define delaytime 100 /*100ms延时*/ 

char run_inverter[20]=" ̄010200000183\r"; /*变频器运行命令*/ 

char stop_inverter[20]=" ̄01020007018A\r"; /*变频器停机命令*/ 

void send_comd(char *sendstr,char *display_type); /*发送指令*/ 

void checksum(char *sendstr,char result_sum[]); /*计算校验和*/ 

main() 

{ 

char sum_of_cmd[5],buf[25]; /*存放四字节的校验和字符串*/ 

char set_frequency[25]="010200010BB8"; /*设置30.00Hz运行*/ 

bioscom(SET_COMPARA,DEFAULT_BAUD,COM1); /*设置COM1,8-N-1,9600bps*/ 

send_comd(run_inverter,"HEX"); /*发送Run指令,显示用HEX格式*/ printf("\nPress anykey to set frequency to 30.00Hz ..."); 

while(!kbhit()); /*等待任意按键输入*/ 

getchar(); /*清按键*/ 

checksum(set_frequency,sum_of_cmd); /*求所发命令的校验和*/ 

sprintf(buf," ̄%s%s\r",set_frequency,sum_of_cmd); 

strcpy(set_frequency,buf); /*合成发送帧*/ 

send_comd(set_frequency,"HEX"); /*设置30.00Hz,ASCII方式显示*/ printf("\nPress anykey to stop ..."); 

while(!kbhit()); /*等待任意按键输入*/ 

send_comd(stop_inverter,"ASCII"); /*发送Stop指令, ASCII格式显示*/ checksum(stop_inverter,sum_of_cmd); 

} 

void send_comd(char *sendstr,char *display_type) 

{ 

unsigned int i; 

char buf[5]; /*字符显示缓冲用*/ 

printf("\nSend(%s):",display_type); 

for(i=0;i<strlen(sendstr);i++){ /*发送帧命令*/ 

outportb(PORT_ADDR,sendstr[i]); 

delay(delaytime); /*延时保证有足够时间发送完毕*/ if(display_type[0]=='H') /*判断显示格式*/ 

{printf("%02x ",sendstr[i]);} /*HEX 格式显示 */ 

else{printf("%c",sendstr[i]);} /*ASCII格式显示*/ 

} 

} 

void checksum(char *sendstr,char result_sum[]) 

{ 

unsigned int i,sum=0; 

static char sum_string[5]; /*计算所有字节的累加和*/ 

for(i=0;i<strlen(sendstr);i++)sum+=(unsigned int)sendstr[i]; 

sprintf(sum_string,"%04x",sum); 

for(i=0;i<4;i++) 

result_sum[i]=toupper(sum_string[i]); /*转换为大写字母*/ 

result_sum[i]=0x0; /*字符串结尾*/ 

} /*result_sum返回校验和的ASCII字符串*/ 

相关文档
最新文档