变频调速以其优良的控制性能和高效的节能优点在工业领域和民用领域得到了广泛的应用和发展。变频调速是公认的最为理想,最有发展前景的调速方式之一。随着计算机,可编程控制器以及其他智能控制设备在控制领域的广泛应用,诞生了大量基于各种总线和通信协议的通信方式。RS-485就是一种基于RS-485总线的通信协议,它已经被应用在了上位机和变频器的通信之中。本文采用RS-485通信协议,通过计算机来自动控制液压系统的流量。
1、RS-485通信协议
为了让上位机和变频器之间进行有效的通信,必须约定它们的通信方式。在此,使用基于RS-485总线的RS-485通信协议。协议约定如下:采用异步传输,一台主机发送,可以多台从机(变频器)接收,没有接收到主机的请求,从机不能主动发送信息。
纠错方法:在信息后加checksum,checksum等于所有字节(HEX)之和的最后一个字节,转换成ASCII码。
数据包格式:HeaderAKP1P0D3D2D1D0S Delimiter其中数据包中各部分意义如下:Header:3ah A,K,P1P0,D3D2D1D0,S分别是单字节十六进制数,转换为ASCII码。
A:从机(变频器)地址。变频器的地址范围为(1-31),A必须存在。地址A=00H时对所有从机生效,且所有从机不回送信息,故A=00H时只能发运行命令操作等。
K:数据包功能。
P1P0:参数序号。参数标号,俩字节十六进制数,如P0100转换为十六进制为0064. D3D2D1D0:参数值。去掉小数点的参数值,共四个字节的十六位进制数,先发高位,后发低位。
S:和校验字。S是上面所有字节十六进制之和(A+K+P1P0+D3+D2+D1+D0)取最后一字节bit7bit0)值,转换为ASCII码。
Delimiter:0dh,0ah.
2系统设计
在本文所研究变频调速液压系统中,采用计算机上的RS-232串口来和变频器通信,由于计算机上的RS-232接口和变频器上的RS-485接口在电气特性上存在着差异。两种总线间不能直接进行通信,因此采用HY-811转接模块将两种不同总线的信号进行转换。
在本文中采用计算机为上位机,通过总线控制现场的变频器,传感器和执行部件。计算机采集来自流量传感器的数据,通过比较实际的流量值和期望值之间的误差,不断调整电动机转速,使系统流量的误差符合要求。
3上位机与变频器的通信程序实现
应用VB60中内嵌的MSComm控件来对计算机的串口编写控制程序,建立上位机和变频器之间的联系。MSComm控件是微软公司的串口通信ActiveX控件,该控件提供了对串口的各种操作,支持多线程。
MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。该通信控件可以采用事件驱动和查询方式来开发串口通信程序。
应用MSComm控件通信前,首先对其相关属性进行设置:ComrnPort=1使用计算机上的第1串行口来和变频器通信;Settings:9600,n,8,1设置传输波特率为960Obit/s,8位数据位,无偶校验,1位停止位;InpuMtode=1按二进制方式收发数据;Inputlen=0每次读出输入缓冲区中全部的数据;主机向变频器发送命令的子程序如下:PublicSubAdj(InverterAsInteger,FunAsString,PAs String,DataAsLong)[page]
DimAAsInteger DimP0AsString DimP1AsString DimDAsLong DimD3AsString DimD2AsString DimD1AsString DimD0AsString DimSumAsLong DimSAsString A=Hex(Inverter)
D=Hex(Data)
P0=Mid(P,3,2)
P1=Mid(P,0,2)
D3=Mid(Str(D),0,2)
D2=Mid(Str(D),3,2)
D1=Mid(Str(D),5,2)
D0=Mid(Str(D),7,2)
Sum=A+Val(Fun)+Val(P0)+Val(P1)+Val(D3)+Val(D2)+Val(D1)+Val(D0)
S=Right(Str(Hex(Sum)),2)
IfMSComm1PortOpen=FalseThenMSComm1. PortOpen=True MSComm1Output=“3ah” MSComm1Output=ASCII(Asc(Left(Str(A),1)))
MSComm1Output=ASCII(Asc(Right(Str(A),1)))
MSComm1Output=ASCII(Asc(Left(Str(Fun),1)))
MSComm1Output=ASCII(Asc(Right(Str(Fun),1)))
MSComm1Output=ASCII(Asc(Left(Str(P0),1)))
MSComm1Output=ASCII(Asc(Right(Str(P0),1)))
MSComm1Output=ASCII(Asc(Left(Str(P1),1)))
MSComm1Output=ASCII(Asc(Right(Str(P1),1)))
MSComm1Output=ASCII(Asc(Left(Str(D3),1)))
MSComm1Output=ASCII(Asc(Right(Str(D3),1)))
MSComm1Output=ASCII(Asc(Left(Str(D2),1)))
MSComm1Output=ASCII(Asc(Right(Str(D2),1)))
MSComm1Output=ASCII(Asc(Left(Str(D1),1)))
MSComm1Output=ASCII(Asc(Right(Str(D1),1)))
MSComm1Output=ASCII(Asc(Left(Str(D0),1)))
27 HydraulicsPneumatics&Seals/No42010 MSComm1Output=ASCII(Asc(Right(Str(D0),1)))
MSComm1Output=ASCII(Asc(Left(Str(S),1)))
MSComm1Output=ASCII(Asc(Right(Str(S),1)))
MSComm1Output=“0dh” MSComm1Output=“0ah” EndSub计算机控制系统根据设定的流量值,给变频器发送一个初始的频率值。液压系统启动后,计算机不断的查询系统的流量值,根据实际测量到的流量和设定流量之间的偏差来调整变频器的输出频率,使系统流量符合要求。
4总结
变频器通过调节电动机的转速可以控制液压系统的流量,并且能够获得较好的调节效果。RS-485协议是一种基于RS-485总线的通信协议,它使用方便,功能完善,抗干扰能力强。应用RS-485通信协议开发出的变频调速系统能够满足系统的开发要求。
上一篇:S7-300 PLC和70系列变频器位置控制应用
下一篇:计算机控制技术在自动化冲压线上的应用
推荐阅读最新更新时间:2024-05-02 22:59