中达电通PLC与松下变频器通讯实例
2006/3/31 14:44:00
选用中达电通ES系列PLC,用通讯方式来改变松下VF0C系列变频器的设定频率,PLC端使用485口,无协议方式来模拟VF0C变频器的通讯协议。
一、通讯协议
VF0C系列变频器留有485通讯口,并提供内部通讯协议如下:
写:% [局号] #WD [功能号] [起始地址] [结束地址] [数据] [BCC] \CR
读:% [局号] #RD [功能号] [起始地址] [结束地址] [BCC] \CR
如果写正确,返回:%01$WD BCC\CR
如果读正确,返回:%01$RD [数据] BCC\CR
分别规定了字节数,在以下表格以写数据为例做详细说明:
在松下VF0C系列变频器中,局号默认为01,通讯格式为9600、N、8、1,通讯方式是ASCII方式,数据为十六进制,存储模式为8位模式。设定频率的地址是DT237,而读设定频率的地址为DT133,而且在DT237和DT133的数据都是以0.01Hz为单位的。下面以写频率为例,来做详细说明。
二、实例说明
假设要写入的频率是43.5Hz,那么需要写入的数值应为10FE(4350),变频器的存储模式为8位模式,应从低位开始写入,那么应该先写FE后写10。校验码是把从起始码到数据码所有的字节进行异或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通讯格式码:
%01#WDD0023700237FE1052\CR
通讯方式是ASCII方式,数据是十六进制格式,那么做以下转换,得出格式码:
把这些格式码按正确的次序发出,就可以把数据43.5HZ写入到变频器设定频率DT237中。
三、梯形图
在PLC中,无协议通讯也是从低位开始发送数据的,可选用8位模式和16位模式传送,不同就在于发送数据寄存器中的8位数据还是16位数据,在这里以16位模式做说明。梯形图如下:
把格式码数据253031235744443030323337303032333745463130520D按照从低位到高位的顺序依次存入到D0~D11中去,占用12个连续的数据寄存器,就是说有24个字节的数据。
设定通讯参数9600,N,8,1,ASCII方式,16位模式。
当M0接通一次,就可以发送一次数据,写一次频率。
四、程序优化
如果再加上读频率的程序,就可以做成小闭环,完成读写频率的程序优化。
因为在写频率的数据发送成功后,可做延时3秒后读频率,在读成功以后,把读回的频率数据和要写入的频率数据做比较,如果相等,则通讯程序停止,如果不相等,再执行写频率——>读频率——>比较。
一、通讯协议
VF0C系列变频器留有485通讯口,并提供内部通讯协议如下:
写:% [局号] #WD [功能号] [起始地址] [结束地址] [数据] [BCC] \CR
读:% [局号] #RD [功能号] [起始地址] [结束地址] [BCC] \CR
如果写正确,返回:%01$WD BCC\CR
如果读正确,返回:%01$RD [数据] BCC\CR
分别规定了字节数,在以下表格以写数据为例做详细说明:
在松下VF0C系列变频器中,局号默认为01,通讯格式为9600、N、8、1,通讯方式是ASCII方式,数据为十六进制,存储模式为8位模式。设定频率的地址是DT237,而读设定频率的地址为DT133,而且在DT237和DT133的数据都是以0.01Hz为单位的。下面以写频率为例,来做详细说明。
二、实例说明
假设要写入的频率是43.5Hz,那么需要写入的数值应为10FE(4350),变频器的存储模式为8位模式,应从低位开始写入,那么应该先写FE后写10。校验码是把从起始码到数据码所有的字节进行异或所得。
XOR:%01#WDD0023700237FE10=52(HEX)
那么得出以下所有通讯格式码:
%01#WDD0023700237FE1052\CR
通讯方式是ASCII方式,数据是十六进制格式,那么做以下转换,得出格式码:
把这些格式码按正确的次序发出,就可以把数据43.5HZ写入到变频器设定频率DT237中。
三、梯形图
在PLC中,无协议通讯也是从低位开始发送数据的,可选用8位模式和16位模式传送,不同就在于发送数据寄存器中的8位数据还是16位数据,在这里以16位模式做说明。梯形图如下:
把格式码数据253031235744443030323337303032333745463130520D按照从低位到高位的顺序依次存入到D0~D11中去,占用12个连续的数据寄存器,就是说有24个字节的数据。
设定通讯参数9600,N,8,1,ASCII方式,16位模式。
当M0接通一次,就可以发送一次数据,写一次频率。
四、程序优化
如果再加上读频率的程序,就可以做成小闭环,完成读写频率的程序优化。
因为在写频率的数据发送成功后,可做延时3秒后读频率,在读成功以后,把读回的频率数据和要写入的频率数据做比较,如果相等,则通讯程序停止,如果不相等,再执行写频率——>读频率——>比较。
提交
查看更多评论
其他资讯
使用SN与变频器的MODBUS通讯说明