应用89C2051设计变频器专用面板表
所属栏目:自动化论文
发布时间:2011-02-26 14:58:03 更新时间:2023-07-01 16:28:00
摘要:本文用89C2051单片机和MAX488为主要芯片构成的数字式变频器参数面板表,成功地解决了在不同通讯协议接口间进行通讯的问题,读取了ABB公司的ACS140和ACS400系列变频器的运行频率,运行电流、输出转矩和输出功率,并将其按相应的格式显示出来,克服了传统模拟显示仪表的非线性,且转换精度不受温度影响,显示内容灵活,价格低廉。
关键词:单片机,通讯口,读取变频器参数,面板表
ABSTRACT:Usingmicrocontroller,thepanelmeterreadthefrquencyconverter’sparametersthroughit’sRS485communicationport,conqueringthenonlinearoftheclassicalanalogmeter,anditisnotsensitivetothetempreture,showingcontentsisalternativeanditischeaper.
KEYWORD:microcontrollercommunicationporttogettheparametersoffrquencyconverterpanelmeter.
1、前言
随着电力电子技术和微处理器技术的发展,变频器在工业驱动领域的应用日趋广泛,它的辅助功能也越来越强。在工业应用中,为了保护变频器,一般都将其安装在控制柜内,这使得通过面板观察参数和运行状态很不方便,虽然有的变频器配置了适配电缆,使面板可以远离变频器,但适配电缆的价格都很高,且大多数变频器的面板在某一时刻只能显示变频器的一个参数。
现在,变频器的控制方式除端子控制、面板控制外,普遍增加了通讯控制方式。通讯接口已经成为变频器的标准配置。通过通讯接口,不但可以控制变频器的运行,还可以读取变频器的运行参数。当变频器由面板或端子控制运行时,通讯接口处于闲置状态。为此,作者设计出一种应用AT89C2051单片机,通过读取变频器通讯口参数的数字式面板表,它可以读取变频器的所有参数并将其按一定的格式显示出来,且价格低廉。
2、硬件设计
2、1AT89C2051概述
AT89C2051是ATMEL公司推出的一种小型单片机,采用Flash存储技术,片内集成了2K的E2ROM,20脚封装,其软、硬件与MCS-51完全兼容,工作电压为2.7V~6V,内部构造了一个模拟信号比较器,其输入端连接到P1.0和P1.1,比较结果存于P3.7对应的寄存器,(P3.7在2051外部无引脚),它只有8031单片机的P0口和P3口,不能对ROM和RAM进行扩展,该型号的单片机只能应用在小型系统中。
2、2引脚及功能说明
图1是AT89C2051的引脚图,图2是内部比较器的原理图。
P1.0~P1.7准双向端口
P3.0,P3.1串行通讯功能
P3.2,P3.3中断输入功能
P3.4,P3.5定时器输入功能
P3.7寄存器(P3.7在2051外无引脚)
Vcc工作电源输入端,为2.7—6V
2、3单片机与变频器通讯接口的处理
参数表是通过变频器的通讯端口读取变频器得参数的。用单片机的串行口与变频器通讯需要解决通讯信号转换的问题,因为变频器的通讯接口一般为RS485协议,必须经过信号转换才能实现单片机与变频器的通讯。采用MAX488芯片解决这问题,它可以将RS485信号和单片机串行口发送的
信号进行双向转换。图3是用MAX488的内部结构和用它进行信号转换的电路原理图。左图为MAX488的内部结构,从图中可以看出,8、7脚分别为接收RS485信号的同相和反相端,若UA-UB>200mV,则RO输出高电平,若UB-UA>200mV,RO输出低电平,高低电平所对应的电压值由VCC的电压决定,RO的电位以GND为参考点;当DI为高电平时,UY>UZ,反之UY 读取的参数最终要送到显示器上显示,为了节省单片机的硬件资源,采用串行方式将要显示的数据发送给显示部分,然后再由74LS164将串行数据转换为并行数据输出给4个8段数码管。采用这种方式显示,用单片机的两个引脚即可完成多个参数乃至多个变频器的参数的显示,这种方式的确定是数据的更新速度较慢,但这对面板显示仪表的显示效果不会造成多大影响
3、软件的设计
单片机程序采用MCS-51汇编语言编写,图4是单片机的软件流程图。由于变频器的通讯协议是公开的,现以ABB公司的ACS140和ACS400系列为例进行说明。其读参数的命令串由以下几部分组成:变频器地址、命令代码、所读第一个参数的地址、CRC校验和,所有代码都以16进制数表示。例如代码串010300660004A416,01表示变频器的地址,03表示读参数命令、0066表示第102个参数(运行频率)的代码,0004表示连续读取参数的个数,A416为CRC校验和,
其中A4是低字节,CRC校验和的计算非常复杂,文献[1]中有详细的描述。当单片机按顺序将该代码串发送到变频器后,若数据在传输的过程中没有发生错误,变频器在大约200mS的时间内将向单片机发送代码串:010308fHfLIHILTHTLPHPLCRCLCRCH,其中0103的含义与发送串的相同,08表示变频器发送的参数共占8个字节(由前向后分别是频率、电流、转矩和功率,各占2个字节),单片机在读取这些数据后,将前11个字节的16进制数按规定的格式求出其校验和的值,并与接收来的校验和相比较,若二者相等说明数据在传输的过程中没有发生错误,即接收的数据正确,然后将参数转换为BCD码的形式并将其译码显示。
4、实际问题的解决
由于变频器工作时其输入电流非正弦,从而产生大量的高次谐波,这些谐波可能对通讯产生干扰,同时工业现场大量使用接触器,其通断也会产生很强的干扰信号,这些干扰使数据在传输的过程中发生改变,为了防止产生误动作,变频器也将接收到的数据求校验和,若求得的校验和与接收到的校验和不同,变频器将不作任何相应,而单片机在发送完数据后处于等待接收状态,为了防止单片机无期限地等待,规定单片机在发送完命令后,若200mS内仍没有接收到所有参数,将重新发送读参数命令串。
为了使参数表能够根据不同的要求而显示不同的参数,在硬件电路中加一个拨码开关,单片机将根据拨码开关的状态读取并显示不同的参数,对有些变频器可以用一个命令串读取连续几个参数(如ABB公司的产品),单片机可以将所有有用的参数都读出来,再由拨码开关的状态决定所要显示的参数,也可以增加数码管的数量,将所有感兴趣的参数都显示出来。用一个单片机也可以读取多台变频器的参数,所有被读取参数的变频器可以有不同的通讯波特率和数据格式,但是它们的地址必须唯一。
5、结束语
作者用89C2051单片机和MAX488成功地读取了ABB公司的ACS140和ACS400系列变频器的运行频率,运行电流、输出转矩和输出功率,并将其按相应的格式显示出来。用这种方法也可以读取其它品牌变频器或直流驱动器的参数。用这种方法研制的变频器参数表在国内尚无相关报道,所研制出的参数表,没有非线性误差,精度不受环境温度的影响,显示内容灵活,使用方便且成本较低。
参考文献
1. 王卫海89C2051单片机[J].《国外电子元器件》1995年第5期
2.ABBAutomationAcs140/400Modbus通讯协议98.11
应用89C2051设计变频器专用面板表
潘传勇王崇斌
(海军航空工程学院青岛分院山东青岛266041)