基于 VB6.0 的台达变频器与计算机串口通信

2017-06-04 75 0

变频器自身带有控制面板,具有简单、高效特点,但由于现场操作不够方便、直观性差、仅能实现单机控制等缺点,实际应用中多采用 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~30 V 直流电源,可隔离 3000 V 高电压,传输速率达 115.2 kb/s。

2. 台达变频器通信协议

VFD-A 系列变流电动机驱动器具有内建 RS-485 串联通信界面,串联通信埠(SG+,SG-)位于控制回路端子,端子定义:SG+ 为信号正端、SG- 为信号负端。使用 RS-485 串联通信界面时,每台 VFD-A 必须预先在 Pr.-78(参数 78)指定通信位址,计算机据个别位址实施控制;另外,计算机可控制命令码中“A”设定为 02H 同时对所有连线的交流电动机驱动器进行控制。

表7-7 协议字节格式

协议格式:比特率(传输速率 b/s)设定范围 1200、2400、4800(Pr.-77),每字节以 11 个位表示、采用奇校验。通信格式包括控制指令、参数设定指令、参数读取指令与交流电动机驱动器状态读取指令。以控制指令为例:指令格式为“C,S,A,UU,MM,FFFF”,其中 C 为控制命令字串“CONTROL”字头,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.0 Hz(“1234”表示 123.4 Hz)。

3. 通信程序编写

下面是利用计算机对 VFD015A43B 型台达变频器的串行通信控制程序。

(1)主界面:开启人机接口界面并给出操作主菜单,包括新连接(端口设置、读入参数、写出参数)、运行控制、状态监测及退出。

(2)端口设置:主要设置如下,其余参数默认即可:MSComm1.CommPort=n(选择串口 n);MSComm1.PortOpen=True(打开串行口 n);MSComm1.Settings=“4800,0,8,1”(波特率 4800、8 位数据、1 位停止、无校验);MSComm1.InputMode=0(默认字符格式,因涉及字符均在 ASCII 128 以内且该变频器为 4800)。

(3)变频器参数初始化:要经计算机控制变频器,先设置 Pr.-00=d0002(主频率输入由 RS-485 串联通信界面控制)、Pr.-01=d0003(运转指令由 RS-485 串联通信界面控制、面板键 STOP 有效)、Pr.-77=d0002(数据传输速率为最大 4800)、Pr.-78=d0000(变频器通信位址 00)。参数可由面板设置也可由计算机写出到变频器,也可从变频器读入到计算机,参数传递控制类似运转指令控制。

(4)运行控制界面:控制运行状态及给定频率值,以正转运行为例,单击“确定”按钮启动变频器运行:定义发送数组 send(11),send(0)=“C”(发送“CONTROL”字头)、send(1)=Chr(3)(发送和检查 03H)、send(2)=Chr(1)(发送命令认可 01H)、send(3)/send(4)=“0”“0”(通信位址“00”)、send(5)/send(6)=“0”“1”(发送运转指令)、send(7)/send(8)=“0”“1”、send(9)=“5”、send(10)=“0”(给定频率“15 Hz”),send(11)=send(0)+…+send(10),MSComm1.Output=send(11) 发送至串口。

(5)状态监测:利用 VFD-A 变频器提供的状态读取指令返回各种信息(输出频率、输出电流、运转命令、变频器状态及异常代码)。发送查询指令 query(7):query(0)=“Q”、query(1)=Chr(3)、query(2)=Chr(1)、query(3)/query(4)=“0”“0”、query(5)=“0”、query(6)=“1”(返回输出实际频率;设为“0”返回频率指令,“2”返回输出实际电流,“3”返回运转指令、驱动器状态及异常代码),query(7)=query(0)+…+query(6),MSComm1.Output=query(7);接受返回值时 buf=MSComm1.Input 读取接受缓存区,Text1.Text=Val(Right(buf,4)) 取出值。

相关文章

变频器柜内的布线
变频器产生噪声的类型
变频器所处电磁环境中的主要干扰源
抑制变频器对微机控制板的干扰
避免变频调速系统的噪声共振
低压变频器电磁兼容等级的典型值

发布评论