在一般工业应用中,对于变频器的控制大部分采用的是常规控制——开关量、模拟量控制,比较少的采用的是通信总线控制。但就发展趋势而言,因为现场总线的诸多优点——节省材料/工时、可靠性、信息的多样化等,决定了通信的应用在工程中越来越广泛。
要让变频器和上位机进行通信,无论变频器和什么通信,PLC也好、PC机也好、触摸屏也好、单片机也好,就必须先了解变频器的通信结构。先把变频器本身的通信调试通了,才能让它和别的设备进行联调。这就像设备组装一样,必须先保证每个配件是好的,才能组装上去,否则配件都不行,产品整体也就不行了。
在这个帖子里,和大家聊聊关于变频器的通信调试方面的问题。
丹佛斯Danfoss-FC通信协议:该协议为丹佛斯自己的协议,相比标准的Modbus协议,它能够提供更多的变频器数据信息。
Modbua RTU(Remote Termonal Unit)模式:每个8-bit资料由两个4-bit十六进位字元组成,如64H。
Modbua ASCII(American Standand Code for imformation interchange)模式:每个8-bit资料由两个ASCII字元组成,如:一个1 bit资料64H(十六进位)以ASCII64表示,包含6(36H)和4(34H)。
字元符号?? 0????? ? 1??????? 2??????? 3???????? 4??????? 5?????? 6??????? 7
ASCII码 30H?? 31H?? 32H?? 33H?? 34H???35H 36H 37H
字元符号?? 8??????? 9?????? 10?????? 11????? 12???? 13????? 14???? ?15
ASCII码 38H?? 39H?? 41H?? 42H?? 43H?? 44H?? 45H?? 46H
变频器通信模拟测试:
1.做好变频器通信准备工作。
2.打开“串口调试助手V2.2”,设置软件参数——串口号与实际对应(RS232转RS485转换器(电缆)插的COM1口就设置为COM1,插的COM2口就设
置为COM2),波特率为9600bps,8个数据位,偶校验,1个停止位,十六进制显示,十六进制发送。
串口调试助手的串口号设置为通信电缆插在电脑上的实际串口号(COM1或COM2),否则无法发送或接收;
串口调试助手的波特率、数据位、停止位设置必须与PLC程序中对自由口波特率、数据位、停止位的定义相同,否则显示出来的数据可能是不正确的。
变频器以50Hz频率启动:
发送至变频器:02 06 01 04 7C 40 00 3D
变频器执行状态:以49.9Hz运行;
变频器返回数据:02 06 01 0F 07 3F FF CD
第1次发送时返回上图的数据:02 06 01 02 03 00 00 04,这是因为变频器此时正准备以50HZ的频率运行,正在加速过程中,频率还是0HZ(变频器加速时间哪有通信来得快呀,在那ms级的时间里,变频器加速还没反应过来呢)。
变频器在加速过程中,每发送一次该指令,变频器返回的数据都不相同——因为变频器正在加速嘛,频率不同,所以返回数据也不同。等变频器加速到最高频率,第2次发送时才返回:02 06 01 0F 07 3F FF CD
这上面有点奇怪的就是,命令是变频器以50Hz频率启动,可最终变频器却以49.9HZ运行。 理论上,变频器应该以50HZ运行,并且返回数据:02 06 01 0F 07 40 00 4D才对。对于这一点,笔者就没有去仔细研究了,估计是变频器的参数设置有点问题,例如上下限频率或者频率偏置存在些小问题。
读频率最大值:
发送数据至变频器:02 0E 01 11 2F 00 00 00 00 00 00 04 74 00 00 43
变频器返回数据:FF FF FF F7 17 FF FF 79 FF 02 0E 01 21 2F 00 00 00 00 C3 50 02 03 00 00 91,有用的数据(起始字节以后的数据)是:02 0E 01 21 2F 00 00 00 00 C3 50
至于更多的读写变频器参数,笔者就暂时不写了。
关于变频器通信的命令控制字与返回的状态字,请参阅该变频器的相关资料上的通信协议相关描述。