基于VB和RS-485总线技术的变频器远程监控系统设计
制要求,又能简化程序设计。
visual basic以其面向组件的新技术及对硬件控制能力强而著称,vb提供的mscomm控件是grescent sortware inc公司提供的activex控件,它通过串行端口传输和接收数据,为应用程序提供串行通讯功能[1]。应用时首先要求注册它,把它放到表单上,然后设置其属性:
commport=1, 通讯端口号
inbuffersize=1024, 收缓冲大小
inputlen=0,
outbuffersize=1024 发缓冲大小
rthreshold=18, 串口接字符触发事件
rtsenable=false,
setting=9600,n,8,1 (波特率为9600,校验码为无校验,8位数据位,1位停止位)。
图3 人机界面
图3是监控系统的主控制界面,对td3000的开机、关机、正转、反转、点动正转、点动反转、自由停车、紧急停车、故障复位等控制,通过点击窗口上相应的运行控制按钮来实现;如果点击右边的“运行参数”按钮,即可进入变频器运行参数监控界面,实时监视变频器的运行频率、设定频率、运行转速、设定转速、输出电流、输出电压、闭环反馈、闭环设定、变频器当前状态等。
下面以分别以“设定发送数据长帧格式子函数”、“计算校验和子函数”以及“以50hz运行2#变频器”程序段为例加以说明。
表2 计算机向变频器发送数据帧
(1) 设定发送数据长帧格式子函数
public function sendlcode2(a as string)
长帧发送函数
dim outdatabyte() as byte
dim i as integer
sendlcode2 = "02" + a
redim outdatabyte(len(sendlcode2)/2)
重新定义发送数组长度
for i = 1 to len(sendlcode2)/2
outdatabyte(i) = cbyte(val("&h" & mid(sendlcode2, i * 2 - 1, 2)))
把字符串变成字节数组
next
form1.mscomm1.output=outdatabyte 发送
end function
(2) 计算校验和子函数
public function fcs(sendstr as string)
校验和函数
dim str
dim i as integer
str = val("&h" & mid(sendstr, 1, 2))
i = 3
do
str = str xor val("&h" & mid(sendstr, i, 2))
i = i + 2
loop while i < len(sendstr)
fcs = hex$(str)
end function
(3)以50hz运行2#变频器。
td3000频率的定标为1:100,要使变频器以50hz运转,主设定应为1388h(5000),故计算机向变频器发送数据帧为(见表2):
其对应部分程序段为:
private sub command1_click() 开机命令
mscomm1.portopen=true 打开端口接入总线
dim str1, sendstring,bcc 定义变量
str1="0200000000047f1388" 赋值以50hz运行2#变频器的数据变量
bcc=cstr(fcs(str1)) 调用异或校验函数生成校验码
sendstring=str1+bcc 生成完整待发送字符串
sendlcode2 (sendstring) 调用长帧格式函数把字
符串变成字节并发送
end sub
6 结束语
本系统通过基于rs485总线的计算机对变频器通讯,实现了上位机对多台变频器的控制及实时监控功能,利用vb编制的人机界面使操作简便,取得了良好的实用效果。针对通讯过程中应注意的事项总结如下:
(1) 在实际的运行过程中,长帧和短帧的发送,有时会出现不能同时发送的情况,这是因为变频器对指令的处理时间与我们所设置的波特率不协调,以至不能辨认数据帧,这时可以改变一下波特率,使之协调。
(2) 两个通信帧之间要保证有2个字节以上传输时间的间隔,确保准确识别报文头。
(3) 在读取参数时,会出现所返回的数据不能够稳定地固定在某一个范围内,返回错误数据。这是因为发送数据与接收数据的间隔设置不当引起的,以至于变频器还没有正确处理完数据时,就已经读出错误数据。
(4) 使用mscomm控件时,不能以数字串的形式直接发送,而是要以字节形式发送;同时在接收时,要用二进制的形式来取回数据,否则通讯就不能成功。
参考文献
[1] microsoft corporation.visual basic 5.0 active x控件参考手册[m]. 北京:科学出版社,1998.
[2] 安圣电气有限公司. td3000高性能矢量控制变频器用户手册[m]. 深圳:安圣电气有限公司,2001.
[3] 安圣电气有限公司. td3000变频器串行通信协议[m]. 深圳:安圣电气有限公司,2001.
VBRS-485总线技术变频器远程监控系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)