您现在的位置是:首页 > 变频技术 > 变频技术

基于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)设定范围:120024004800Pr. - 77),每一个字节以11个位表示,采用奇校验。字节格式见表7-7    7-7    协议字节格式
协议字节格式
    通信格式:包括控制指令、参数设定指令、参数读取指令以及交流电动机驱动器状态读取指令。以控制指令为例说明如下:    指令格式为:“CSAUUMMFFFF”;    其中:C:控制命令字串“CONIROL'’字头;    S:和检查(03H)    A:命令认可,01H:单一台;02H;所有连线交流电动机驱动器;    UU:通信位址(“00-31”);    MM:运转命令(X=无定义);    X0:停止;X1:正转运行;X2:停止;X3:反转运行;X4X5:点动正转;X6X7:点动反转;X8:异常发生后重置交流电动机驱动器;    FFFF:频率指令,设定范围:0000~ 4000;代表的设定频率值为0.0~ 400.OHz,例如“1234”表示123 .4Hz    3.通信程序编写    下面给出了利用计算机对VFD015A43B型台达变频器的串行通信控制程序。    (1)主界面。开启人机接口界面并给出操作主菜单。主菜单包括:新连接(端口设置、读入参数、写出参数)、运行控制、状态监测及退出:    (2)端口设置。主要设置如下,其余参数一般采用默认即可。    MSComm1CommPort=n//选择串口n    MSComm1PotOpen= True//打开串行口n    MSComm1Settings=4800081//设定比特率为4800kb/s8位数据位,1位停止位,进行奇校验。    MSComml.inputMode= 0//采用默认字符格式;因为涉及到的字符均在ASCII128以内,而且该变频器为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)=0send (4)=0//发送通信位址“00    send (5)=0send (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 (but4))//取出值