丹佛斯变频器Modbus通讯
济南创恒科技发展有限公司满建江
∙FC系列变频器通过内置的RS485接口,以Modbus RTU格式进行通讯。
参数设置如表
∙
FC系列变频器需要设置的参数:
8-01,控制地点,选择【2】控制字,或者【0】数字和控制字;
8-02,控制来源,选择【1】RS 485;
8-03,控制字超时时间;
8-04,控制字超时功能,选择当控制字丢失,变频器采取的动作;
8-30,【2】选择为Modbus RTU通讯协议;
8-31,变频器的通讯地址,1-126范围内地址有效;
8-32,设置通讯速度,各站速度要求一致;
8-33,奇偶校验方式,各站要求设置一致;
8-50,惯性停车的实现方式,当8-01选择为【0】时,请注意该参数。
丹佛斯变频器所要通讯的MODBUS地址为参数号码乘以10减去1,西门子PLC不需要减1. 例如:变频器的频率地址为3-10
那么对应的MODBUS地址即是:(310×10)-1=3099(十进制)
西门子200PLC 地址不需要减1 为43100
在PLC的modbus指令块写入要通讯变频器地址,参数的地址,和参数的值后,即可更改此参数。
∙电报结构(十六进制)
∙
地址字段包含8位数据,有效的地址范围为0-247(十进制),0为广播模式;1-247对相应地址的从站进行寻址。
功能字段包含8位数据,有效地代码范围为1-FF,功能字段用于在主站和从站之间发送消息。
当从主站向从站发送时,功能字段为主站的控制字;当从从站向主站传送时,功能字段为从站的状态字。
∙数据字段,是由几组字节两个十六进制数字(00至FF)构成,根据不同的功能代码,数据字段包含的位长、作用不一,针对常用的功能代码,举例如下:
∙1、功能代码=1,读取线圈状态
∙ 2、功能代码=5,写入单个线圈数值
∙ 3、功能代码=F,写入多个线圈数值
∙
线圈及位的意义。
地址0-31为主站写入用控制位,32-63为从站返回的状态位,如下表所示:
∙
例如,使电机启动并运转在50%*最大参考值的报文如下
∙其中位的个数为 20H=32个位,也就是从00地址起始到31为止的位;
字节数,是指写入数值为4个字节;
写入数值 047C 对应00-16位,在传送时低位在前,因此为7C 04;
2000 对应16-31位,50%*最大参考值,在传送时低位在前,因此为00 20;
对于停止,应发043C代码
4、功能代码=3,读取保持寄存器状态,保存寄存器保持2字节(即16位)
∙ 5、功能代码=6,写入单个寄存器
∙ 6、功能代码=10,写入多个寄存器数值
∙寄存器列表:
∙例如,当要读取3-41,加速时间时,需要写的报文:
∙计算参数3-41的地址 3-41 → 341*10-1=3409 → D51(十六进制);
保持寄存器状态都为双字节,因此在字个数位置应该为 2 ;正常情况下,变频器返回的报文为,
∙012C 为读出的加速度时间,转换成十进制并考虑到控制单位,得到加速时间为3秒。
∙寄存器50000、50010和线圈00-31的作用相同,使电机启动并运转在50%*最大参考值的报文,使用寄存器写入的报文为:
∙地址转换(50010-1)→ C3 59(十六进制);
写入信息 20 00 对应50%*最大参考值;
∙地址转换(50000-1)→ C3 4F(十六进制);写入信息 04 7C 变频器运转的控制字;
注:同传送线圈数据不同,这里写入的信息不需要高、低字节互换,这是由modbus RTU 协议规定的。
50000和50010因为不是连续的地址,不能使用写入多寄存器的功能码,只能使用单寄存器写入的功能码。
FC302 MODBUS RTU各参数地址如下
即:参数号×10-1
例如001号参数的modbus地址9
310.1号参数先写8号参数1
然后写3099即可。
西门子PLC不需要减1
50000是控制字地址
关于丹佛斯FC51通讯的部分介绍
前言
丹佛斯FC51系列变频器通讯:硬件集成485通讯口(两线制);软件上集成两种通讯协议FC 协议(丹佛斯自行研制)和MODBUS RTU协议(国际标准通讯协议),本文主要对于FC51变频器MODBUS RTU通讯协议上面做相关介绍。
丹佛斯FC51通讯设定
参数 8-30 设为2 通讯协议为MODBUS协议
8-31 设为1 通讯子机地址
8-32 设为2 通讯波特率为9600
8-33 设为0 通讯数据格式 8,E,1
此通讯主要介绍写频率读电压读电流读输出频率
丹佛斯FC51通讯设定
参数 8-30 设为2 通讯协议为MODBUS协议
8-31 设为1 通讯子机地址
8-32 设为2 通讯波特率为9600
8-33 设为0 通讯数据格式 8,E,1
3-02 频率参考值(MIN)*
3-03 频率参考值(MAX)*
注*:变频器频率通过通讯设定的是百分比(P),实际设定的频率就是
(MAX-MIN)×P÷10000(P的设定有两个小数位)
此通讯主要介绍写频率读输出电压读输出电流读输出频率
1,变频器MODBUS地址的定义
丹佛斯变频器所要通讯的MODBUS地址为参数号码乘以10减去1
例如:变频器的频率地址为3-10
那么对应的MODBUS地址即是:(310×10)-1=3099(十进制)
16进制为0C1B
2,读写变频器的操作
(1)写频率
命令代码: 01 06 0C 1B ** ** CRC
则变频器返回代码为:01 06 0C 1B ** ** CRC
其中:01 代表变频器地址一个字节
06 代表MODBUS写功能码一个字节
0C 1B 代表变频器内部MODBUS地址两个字节
** ** 代表所要写的频率的百分比两个字节
CRC 代表冗余校验码两个字节其中低位在前高位在后
(2)读电机参数
参数为:16-12 电机运行电压对应MODUBS地址为(1612×10)-1=3EF7
16-13 电机运行频率对应MODUBS地址为(1613×10)-1=3F01
16-14 电机运行电流对应MODUBS地址为(1614×10)-1=3F0B
命令代码: 01 03 3E F7 00 01 CRC
则变频器返回:01 03 3E F7 00 02 ** ** CRC
其中:01 代表变频器地址一个字节
03 代表MODBUS读功能码一个字节
3E F7 代表变频器内部MODBUS地址两个字节
00 01 代表读一个字两个字节
CRC 代表冗余校验码两个字节其中低位在前高位在后
00 02 代表返回2个字节两个字节
** ** 代表返回的电压值两个字节
3,启动/停止变频器
写047C 到地址50000(HC350)启动变频器
写043C到地址50000(HC350)停止变频器
3-10的八段速每段速的设定,需要在K8里面写相应的地址号0-7八段速设定里面当K8厘米的值等于0时为0段速,当K8里的值等于1时为第一段速,依此类推,当K8的值等于7时为第7段速
S7-200---------DANFOSS FC51 MODBUS RTU通讯说明:
MODBUS RTU通讯需要主站发送一定格式一定内容的十六进制代码,从站对此做出回应,从而建立两者之间的通讯,本例通过简单的一个
PLC主站带一个变频器从站(485地址为1),来说明 DANFOSS变频器的MODBUS RTU通讯的过程,不同的通讯情况编程者可以灵活发挥。
一:01 0f 00 00 00 20 04 7c 04 33 13 C9 E4 -----启动变频器 (正转),频率15赫兹,控制字和频率给定都要高低8位互换二:
01 0f 00 00 00 20 04 7c 84 33 13 C8 0C -----启动变频器(反
转), 频率15赫兹,控制字和频率给定都要高低8位互换
给定值==(H1333/H4000)*50HZ=15HZ
三:01 01 00 20 00 20 3c 18---读频率指令
返回码:09 01 01 04 07 0F D9 19 50 FC
状态字:0F07,频率值:19D9 CRC:(01 01 04 07 0F D9 19)=50 FC
读到的频率值(16位)也是高低8位互换后才是真实值。
四:通过通讯给定频率值的转化计算办法:H4000----16384--100%---50HZ五:变频器的频率给定值是参数3-15,3-16,3-17的和,如果这三个都选择总线,则实际给定是3倍。
manjianjiang@ 2012-7-17。