使用SN与变频器的MODBUS通讯说明
2006/4/7 14:49:00
现在使用两种变频器实验,台达VFD-B和施耐德ATV-31。 一、 台达VFD-B for MODBUS ASCII 1、 VFD-B系列变频器通讯默认参数:地址01,9600、N、7、2 for ASCII 2、 通讯格式: STX(1)+ADD(2)+FUN(2)+DATA(2n)+LRC(2)+END(2) 3、 程序中使用: 写频率(2001): LRC由ADD到DATA每2位之和,然后取补 LRC=100-(01+06+20+01+07+D0)=01(HEX) 以上为写频率,DATA2为变量,在程序中比较复杂。 修改参数(GGnn): 00-03 开机显示,要求显示输出频率,改为01 02-00 频率来源,要求要来源自485,改为05 -01 485通讯可操作键盘STOP, 改为03 -02 停车时是自由停车 改为01 LRC1=100-(01+06+00+03+00+01)=F5 LRC2=100-(01+06+02+00+00+05)=F2 LRC3=100-(01+06+02+01+00+03)=F3 LRC4=100-(01+06+02+02+00+01)=F4 设置功能:启动、点动、停止(2000位操作),复位(2002位操作) LRC1=100-(01+06+20+00+00+01)=D8 LRC2=100-(01+06+20+00+00+02)=D7 LRC3=100-(01+06+20+00+00+03)=D6 LRC4=100-(01+06+20+02+00+02)=D5 二、 施耐德ATV-31 for MODBUS RTU 1、 VFD-B系列变频器通讯默认参数:地址01,19200、E、8、1 for RTU 2、 通讯格式: Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4) 都是十六进制方式 功能码有03(&H03)、06(&H06)、43(&H2B)、16(&H10) CRC比较难算: 从ADD开始到CRC之前的所有数据,每两个字节分开 1) 用&HFFFF与第一组的两个字节异或存到CRC中。 2) 取新的CRC右移一位,重新存于CRC中。 3) 如果右移出的一位为1,则新的CRC与&HA001异或,结果存于CRC中;如果为零则不变。 4) 重复2)、3),共8次,就是说得向右移出一个字节(8位)。 5) 新的CRC与下一组两个字节异或,重复2)、3)、4),直到最后一组做完,把CRC的前两个字节与后两个字节交换,就是最后CRC16。 6) 注意:1个字=2个字节=16位 PLC的一个寄存器中一般存储的是2个字节的ASCII码,例如3130,表示为01,从低位到高位,不能混淆。 三、 台达VFD-B for MODBUS RTU 1、 VFD-B系列变频器更改通讯参数:地址01,9600、N、7、2 for RTU 2、 通讯格式: Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2) 都是十六进制方式 功能码有03、06、08、10 CRC比较难算: 与上述施耐德计算相同 四、 PLC的MODBUS协议 在SN中配置了MODBUS RTU,格式如下: Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2) 写数据功能码一般只能使用16(&H10) 读数据功能码一般只能使用03(&H03) 所以具体使用的MODBUS RTU : Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4) 功能码和校验码都不用设置,如图以写为例: 设置485口为MODBUS协议。 设置端口通讯格式 19200,E,8,1 确认设置。 在程序开头,只需初始配置一次。 进行通讯的命令,1秒的脉冲 用端口1向地址02发送数据 字节数为02,为1个字 PLC内数据交换用R2000 对方数据交换为20001(8进制数) 读数据为RX命令 读数据与写数据基本类似。
提交
查看更多评论
其他资讯
中达电通PLC与松下变频器通讯实例