您现在的位置是:首页 > 变频技术 > 变频技术
基于VB6.0的台达变频器与计算机串口通信
来源:艾特贸易2017-06-04
简介变频器自身带有控制面板,具有简单、高效的特点,但由于现场操作不够方便、直观性差以及仅能实现单机控制等缺点,实际应用中多采用 E 模式运行,即信号完全取自变频器外部。本
变频器自身带有控制面板,具有简单、高效的特点,但由于现场操作不够方便、直观性差以及仅能实现单机控制等缺点,实际应用中多采用E模式运行,即信号完全取自变频器外部。本节将变频器通过串行口与上位机相连,通过VB6.0的人机界面实现对变频器的控制,应用RS - 485总线结构,可以同时实现对32台变频器的控制。 1.接口转换 现在一般的PC机都有RS - 232串口,但除工控机外少有RS - 485口,而为了与变频器通信,添加一块接口转换器要比另设RS - 485口便宜和方便的多。 采用ADAM - 4520转换模块,一端可以直接插在计算机串口上;另一端提供一个半双工的RS - 485接口,而不需要握手信号;其内置的特殊的I/O电路可以自动控制信号的传输方向。这种RS - 485控制对用户是完全透明的,为RS - 232编写的软件可以不加修改地用在这里。 该模块需要外加一个10~30V直流电源,可以隔离3000V的高电压。传输速率达到115 .2kb/s。 2.台达变频器通信协议 VFD -A系列变流电动机驱动器具有内建RS - 485串联通信界面,串联通信埠(SG+,SG -)位于控制回路端子,端子定义如下: SG+:信号正端;SG:信号负端。 使用RS - 485串联通信界面时,每一台VFD -A必须预先在Pr. - 78(参数78)指定其通信位址,计算机便根据其个别的位址实施控制。另外,计算机可控制命令码中“A”设定为02H可同时对所有连线的交流电动机驱动器进行控制。 协议格式:比特率(传输速率,b/s)设定范围:1200,2400,4800(Pr. - 77),每一个字节以11个位表示,采用奇校验。字节格式见表7-7。 表7-7 协议字节格式
通信格式:包括控制指令、参数设定指令、参数读取指令以及交流电动机驱动器状态读取指令。以控制指令为例说明如下: 指令格式为:“C,S,A,UU,MM,FFFF”; 其中:C:控制命令字串“CONIROL'’字头; S:和检查(03H); A:命令认可,01H:单一台;02H;所有连线交流电动机驱动器; UU:通信位址(“00”-“31”); MM:运转命令(X=无定义); X0:停止;X1:正转运行;X2:停止;X3:反转运行;X4、X5:点动正转;X6、X7:点动反转;X8:异常发生后重置交流电动机驱动器; FFFF:频率指令,设定范围:0000~ 4000;代表的设定频率值为0.0~ 400.OHz,例如“1234”表示123 .4Hz。 3.通信程序编写 下面给出了利用计算机对VFD015A43B型台达变频器的串行通信控制程序。 (1)主界面。开启人机接口界面并给出操作主菜单。主菜单包括:新连接(端口设置、读入参数、写出参数)、运行控制、状态监测及退出: (2)端口设置。主要设置如下,其余参数一般采用默认即可。 MSComm1.CommPort=n//选择串口n MSComm1.PotOpen= True//打开串行口n MSComm1.Settings=“4800,0,8,1”//设定比特率为4800kb/s,8位数据位,1位停止位,进行奇校验。 MSComml.inputMode= 0//采用默认字符格式;因为涉及到的字符均在ASCII码128以内,而且该变频器为4800kb/s。 (3)变频器参数。初始化:要通过计算机控制变频器,首先应进行如下设置。 Pr. - 00= d0002//主频率输入由RS - 485串联通信界面控制 Pr. - 01= d0003//运转指令由RS - 485串联通信界面控制,面板键STOP有效 Pr. - 77= d0002//数据传输速率为最大的4800kb/s Pr. - 78= d0000//变频器通信位址为00 参数的读入和写出:参数可以由面板上设置,也可以由计算机写出到变频器。 参数也可以实现从变频器读入到计算机。 参数的传递控制类似于下面的运转指令控制。 (4)运行控制界面。控制运行状态及给定频率值,主要代码如下(以正转运行为例): Private Sub Commandsend_Click()//单击“确定”按钮启动变频器运行 Dim send (11) As String//定义发送数组 send (0)=“C”//发送“CONIROL'’字头 send (1)=Chr (3)//发送和检查(03H) send (2)=Chr (1)//发送命令认可(OIH) send (3)=“0”send (4)=“0”//发送通信位址“00” send (5)=“0”send (6)=“1”//发送运转指令 send (7)=“0”send (8)=“1” send (9) = “5’’ send (10)=“0”//给定频率“15Hz” send (11) =send (0) +send (1) +send (2) +send (3) +send (4) +send (5) +send (6) +send (7) +send (8) +send (9) +send (10) MSComml.Output= send (11)//发送至串口 End Sub (5)状态监测。利用VFD -A台达变频器提供的状态读取指令可以返回变频器的各种信息,包括输出频率、输出电流、运转命令、变频器状态以及异常代码。程序代码如下: 发送查询指令 Dim query (7) As String query (0)=“Q”query (1)=Chr (3) query (2)=Chr (1) uqery (3)=“0”query (4)=“0” query (5)=“0” query (6)=“1”//返回输出的实际频率 ′query (6)=“0”//返回频率指令 ′query (6)=“2”//返回输出的实际电流 ′query (6)=“3”//返回运转指令,交流电动机驱动器状态及异常代码 query (7)=query (0)+query (1)+query (2)+query (3)+query (4)+query (5)+query (6) MSComml.Output= query (7) //接受返回值 //Dim buf$ buf= MSComml.input//读取接受缓存区 Textl. Text= Val(Right (but,4))//取出值