看到坛子里有不少有关PLC与变频器通讯的例子,我也把我们V80的PLC通讯的相关资料整理了一下:
由于论坛上看不到图片,所以梯形图代码都看不到,可以访问一下链接:http://www.plcstar.com/plcstar/learn/204.html(www.plcstar.com 应用案例下的“V80在变频通讯中的应用 ”)本文介绍了目前市面上数种变频器的通讯协议,以及用V80实现控制的梯形图代码。如果需要V80与各种变频器的通讯程序(包括易能、艾默生,英威腾,台达,安邦信,创杰、AB等等,好多家协议是一致,包括MODUS类和非MODBUS类),可加QQ 515541428,或者EMAIL:plcstar@126.com 索取
V80在变频通讯中的应用
-------------------------------------------------------------------------------
一、 前言
变频器的应用非常广泛,在很多应用场合需要频繁修改运行频率、停止或启动变频器,手工调节面版方式已经不能满足使用需要。
用模拟信号控制变频器运行频率,数字信号控制变频器启动或停止,这种方式需要另外购置模拟信号模块,控制多台变频器时,成本会增加很多。在控制距离比较远的情况下,模拟信号会受到距离的影响,衰减很大。
用V80系列PLC通讯控制变频器运行频率、数字信号控制变频器启动或停止,这样不仅能控
制单台也能控制多台变频器,而且能很好的控制成本。V80支持MODBUS RTU通讯协议和自由通讯协议,它可以支持RS232和RS485,V80的COM1口为RS232通讯接口,COM2口为RS485通讯接口。
V80系列PLC单元所提供的MODBUS 主站功能,进行参数设置及动作控制。通过该功能可完成主站单元对多台MODBUS从站单元联机,进行数据交换,也可直接与其它支持标准MODBUS的设备连接。
M_BUS指令,上节点:M_BUS读写命令, 0 => READ, 1 => WRITE。
中节点:读写M_BUS单元的设备编号(1-254),
0 (或255)=> 广播方式,#256~#9999无效。
下节点:M_BUS菜单参数设定区,6个寄存器地址
地址偏移1:高位错误信息;
地址偏移2:主站类型;
地址偏移3:主站寻地址;
地址偏移4:从站类型;
地址偏移5:从站寻地址;
地址偏移6:读或写的数据数量;
自由通讯指令有发送指令XMT和接收指令RCV。
XMT发送指令必须先设置特殊继电器09933为ON,此时,V80通讯口2是在自由通讯模式下,ModBus主从功能被禁止。
上节点:发送区首地址,每个数据占十六位,低八位为待发数据,高八位参见说明书。
中节点:发送长度。
下节点:错误指示,非0即表示有错误产生。
RCV自由通讯接收指令可以设置字符超时时间,开始字符,接收字符,最大字符数。详见说明书。
二、V80系列提供MODBUS通讯协议
1、 写单个线圈(功能码05H)
设备地址+功能码(05)+线圈地址(XXXX)+ OFF线圈0000(ON线圈FF00)+ CRC 16
写第1个线圈为ON报文:01 05 0000 FF00 8C3A
01H设备地址
05H功能码
0000H线圈地址为输出第1 个
FF00置为ON
8C3A为CRC 16校验
写第1个线圈为OFF报文:01 05 0000 0000 CDCA
2、 写单个寄存器(功能码06H)
设备地址+功能码(06)+寄存器地址(XXXX)+ 数据 + CRC 16
写数据5到第1个寄存器报文:01 06 0000 0005 49 C9
01H设备地址
06H功能码
0000H寄存器地址为第1 个,40001
0005H写入数据00005H
49C9为CRC 16校验
3、 写多个线圈(功能码0FH)
设备地址 + 功能码(0F)+ 线圈地址 + 线圈长度 + 线圈数据 + CRC 16
连续写16个线圈为ON报文:01 0F 0000 0010 02 FFFF E390
01H设备地址
0FH功能码
0000H线圈地址
0010H控制线劝长度为16个
FFFF表示bit0-bit15全为ON(0表示OFF,1表示ON)
E390为CRC 16校验
连续写16个线圈不同时为ON的报文:01 0F 0000 0010 02 0F00 E7D0
01 0F 0000 0010 02 F000 A620
01 0F 0000 0010 02 0100 E3B0
01 0F 0000 0010 02 0200 E340
01 0F 0000 0010 02 0300 E2D0
01 0F 0000 0010 02 00F0 E264
连续写32个线圈为ON报文:01 0F 0000 0020 04 FFFF FFFF C51C
4、 写多个寄存器(功能码10H)
设备地址 + 功能码(10)+ 寄存器地址 +寄存器长度 + 数据个数 + 数据 + CRC 16
连续写1个寄存器(40001)报文:01 10 0000 0001 02 0005 6653
把0005写到40001寄存器
01设备地址
10功能码
0000寄存器地址为40001
0001写寄存的个数为1
02写的数据为它后面的两个00和05。
0005数据为5
6653为CRC 16校验
连续写2个寄存器(40001、40002)
报文:01 10 0000 0002 04 0007 0009 8268
把0007写到寄存器40001,0009写到寄存器40002
连续写2个寄存器(40001、40002、 40003)
报文:01 10 0000 0003 06 0007 0009 0005 4341
把0007写到40001,0009写到40002,0005写到40003
5、读线圈状态(功能码01H)
设备地址 + 功能码(01)+ 线圈地址 + 线圈长度 + CRC 16校验
读20个线圈:01 01 0000 0014 3C05(读从第1个线圈到20个线圈)
01设备地址
01功能码
0000线圈首地址
0014读长度20个线圈