实例介绍
51单片机通过R232实现与变频器的串口通信,系统使用矩阵键盘输入参数设置,采用铭正同创公司生产的MZLH01显示内容。有开机画面,登录画面(需要输入密码),参数显示画面等。需要改进的地方是RS232通信数据祯格式,由于没有确切知道变频器的类型,因此,数据祯格式需要视实际情况更改。
单片机实现对变频器调速系统的控制设计 1前言 变频调速作为交流电机调速的主要于段已经在工业领域中应用的十分广泛, 其具有的调速范围宽、稳速精度高、动态响应快、适用沱围广、运行可靠等技术 性能,已逐步取代直流电机调速系统。变频器的控制方式主要有三种 (1)通过变频器面板操作,即通过操作面板改变频率的输出和其他运行参数 2)在变频器模拟量输入端输入0~1σν或4~20mA信号,通过改变输入模拟量的 大小控制变频器的输出频率; (3)通过变频器的通讯口(多为RS485)进行控制。 第一种方式一般用于现场手动调节和参数设定,后二种方式多用于自动调节 和远程控制。工控领域中常用的PLC、DCS等控制系统都具有适用于变频器接口 条件的控制模块,可以方便的实现变频器的閉环自动控制,在大中型的控制系统 中使用较为普遍。而对于一些小型实验装置和嵌入式控制装置,处理器在控制变 频器之外,一般还需要处理键褴输入、显示屏、数据采集和其它过程控制等工作, 这种控制要求更适合采用单片机系统作为控制核心,而以PLC加操作面板的形式, 虽能实现功能但成本过高,不宜采用。 使用单片杋控制变频器可以选择后二种方式。采用通讯口方式控制,其优点 是控制功能全面,通过相应的电平转换电路适合变频器的通讯(RS484/RS232/CAN 等),就可与变频器进行通讯,硬件简单,二者间的连线数量少连接方便。缺点 是需要了解掌握变频器的通讯协议才能进行控制编程,软件设计复杂。由于不同 品牌的变频器通讯接口和通讯协议各不相同,目前尚没有统一的标准,只能针对 种变频器进行开发,缩小了变频器品种的选择范围,适用性受到限制。而对于 模拟量输入控制方式,则几乎在所有的变频器中都能支持,虽然能满足多数场合 的使用要求,但在功能上比较单一,而且模拟控制方式非常落后 综上所述,本文决定采用第(3)种方式,实现单片机对变频器调速系统的控 制。而对不同的变频器,只需要开发者重新根据通信协议编程即可。 2系统总体设计方案 转向、转速、力速时间 矩阼键盘输入 停止时间设定等信息 scs1单片机2口<[R22日变频器 液晶MZLH01显示 图1系统总体设计框架图 如图1所示为系统总体设计框架图,系统具有良好的人机画面,操作人员 可通过矩阵键盘输入参数,并在液晶上显示出来。设置完参数后,STC51单片机 通过RS232端口与变频器实现串口通信,将控制电机的转向、转速、加速时间 停止时闫等信息传递给变频器,从而实现对变频器调速系统的控制。 3/19 单片机实现对变频器调速系统的控制设计 3硬件设计 SWITCHI 1-3.3 TXI RODI U、1 PIN2 PINZ ⅤCC TXD= ECt TXOT RXOT MAX12 R 5(A13) 4(⊥2) XILI CYSTAL2 CCCC -|-|-|∞2 PINS PINS 图2STC51单片机控制系统原理图 如上图所示为STC51单片机控制系统原理图,硬件电路设计具体有以下几个 模块: (1)供电电路 STC51单片机供电电压分为5型和3.3v型,3.3v型属于低功耗芯片,是未 来MCU发展的趋势,本系统选择3.3v供电的STC516052心片,采用同样的品振, 它的处理速度是AT89C51的12倍,1个机器周期执行1条指令。另外,液晶采 用铭正同创公司的 MZLHO I,它可显示的点阵为128*64像素,自带字库,省去了 编程编码字模的麻烦。MZLH01的供电电压为3.3v,系统如果釆用5ⅴ供电,需要 个5转3.3v的供电电路。AMS1117系列稳压电源,可以提供固定的3.3v电 压,输出电流最大达1A,最大电流下压差小于1v,是比较理想的供电心片。它 的外围电路很简单,只需要加2个去耦电容即可,如下所示: AMS1117 QUI GND 10uF 4/19 单片机实现对变频器调速系统的控制设计 图3AMsl1l7固定输出电压连接图 (2)RS232通信电路 u1:自 e1+ UCE 1 C106 C3 CI t166 C2+ C2 C 4 c16 C2- GND PB9RA/M RAIN TXIN 中 TXOUT 5:our 图4RS232接口图 MAX232心片是美信公司专门为电脑的RS232标准凵设计的单电源电平转换 芯片,使川+5v单电源供电。MAX232的1、2、3、4、5、6脚和4只电容构成电 荷泵电路,功能是产生+12v和-12v两个电源,提供给RS232串口电平的需要; MAX232的第二部分是数据转换通道,由7、8、9、10、11、12、13、14构成 两个数据通道,其中13、12、11、14为第一数据通道,8、9、10、7脚为第二 数据通道, TTL/ COM0S数据从∏IN、T2IN输入转换成RS232数据从T0UT、T20UT 送到DB9插头,DB9插头的RS232数据从R1IN、R2IN输入转换成TTL/CMOS数据 后从R10UT、R20UT输出;第二部分为供电管脚,15脚GND、16脚VCC(+15v) 4软件设计 为了达到良好的人机互动效果,木系统在达到通过RS232串口通信控制变频 器调速系统的基础上,加强了美化液晶显示与优化按键输入的程序设计,具体表 现为: ①开机画面为“北京交通大学L0G0”,动态显示; ②登录荞面:需要输入3位系统内置密码,输入错误,系统公提示“警告! 密码错误”信息;输入正确,系统为提示“恭喜!欢迎使用”信息。只有输入正 确才能进入运行操作界面; ③运行操作界面: 分为4个菜单:转向、转速、加速吋间、停止吋间。按键C/D分别表示上下 选择菜单,选到某个菜单时,该菜单名背景颜色加深,以示区别。当选择到“转 向”菜单时,按键1表示正转,按键2表示反转;在“转速、加速时间、停止时 闾”4个菜单选项中,需要输入数据,当输入的数据超过变频器能够处理的值时, 比如,转速超过同步转速1500r/min,系统会弹出“输入有误”的信息,这时可 以按下“E键”取消,可以撤消刚才输入的数值,重新按下新的值。当全部的选 项设定完毕后,再按下“F键”确认,这时系统公执行RS232串口通信中断程序 将设定的参数值,以符合变频器RS232通信协议的帧格式发送出去,变频器收到 后,便可执行单片机的指令。 5/19 单片机实现对变频器调速系统的控制设计 ④矩阵键盘输入:所有的数据输入都为直接置数,可退格修改。 上述过程实现的流程图如下所示: 开机画面 键盘输入1 登录界面 否 密码是否正确 是 键盘输入2 运行操作界面 不 是否确认完毕? 是 RS232串口通信 中断程序 图5程序沇程图 4.1键盘直接置数、退格取消程序 键盘直接置数,有两种方法实现。第一种是只定义1个变量存取键盘上的数, 再定义一个按键数变量,每次按下1个键后自动加1。在屏幕上显示键盘上的数, 每次显示的位置右移Ⅰ个位置,右移的位置数由按键数变量确定;第二种方法是 定义1个数组,数组元素的个数为按键数,再定义一个按键数变量控制按键的次 数。屏幕上直接显示数组的元素,每按一次键,数组上的元素更新一次同时指针 右移一次。2种方法实现的程序如下: 第一种 以按下数字“9”为例, case8:/9键 lay(700); Putcha(34+mmjs*6,3,9);/显示数字“9” mmjs+:/mmj为按键数变量,按下后加1 switch(mmjs∥付按键次数进行判断 case1:j=100;∥/输入密码的最高位,百位 break case2j-10;∥/输入密码的十位 k case3j=1;M输入密码的个位 6/19 单片机实现对变频器调速系统的控制设计 break break mima-=9*;/∥把键值*权赋给输入密码 break. 第二种: 显示转速数组上内容 for(i=0; j<num1; j++) Show short(36+¥*6,26,zs[j,1);显示转速数组上内容 Putstring(68, 26, " n/min") 更新数组内容,指针右移:以按下数“3”为例,见程序中注释部分解释 case2:/3键 switch( sclcctflag)/ sclcctflag菜单选择标志变量 case2:M/转速菜单设置 iftl<=numl)∥/numl限制输入数据个数 zs[1++]=3;∥1加1,指针右移 brcak case3:∥∥∥//加速时间菜单设置 if(t2<mum2)∥/mum2限制输入数据个数 timely2++-=3;∥2加1,指针右移 break case4:∥止时间菜单设置 f(t3<=num2)∥//mum2限制输入数据个数 time2t3++]=3;//加1,指针右移 break default break 退格取消的程序十分简单,只需要把标志键数的变量-1即冋,如第二种方法 中的t1、t2、t3,取消键程序如下所示 case14:/L键 delay(700) PutString cn(114,39, "EX") PutString cn(114, 52, "'i,") switch(selectflag case2:t1-if(t1-(0)t1=0: break case 3: t2-;if(t2<0)(2=0 7/19 单片机实现对变频器调速系统的控制设计 break case 4: t3--;if(t3<0)t3=0 break default break break 4.2RS232通信程序 首先定义一个数组用来存取需要发送给变频器的信息,数组名为 tibuf[5], 分别存取的信息为转向、转速高8位、转速低8位、加速时间、停止时间。由于 没有确切的变频器通信协议,具体的数组元素可以视发送祯的内容更改。基本设 置情况如下: 采用中断法串口通信,初始化程序如下: void UART initO PCON=Ox80: // SMOD=1 TMOD0x20;/T1工作于方式2 TL1-0xf;/波特率为9600 TH1=0xf;/给THl送重装初值 TR1=1; )动定时器T1 SM0=0 SMl=1;/01串行口工作方式1,波特率由T1决定 RFN=1;/允许接收位。REN置1时允许接收数据,RFN由指令置位或者复 位。 EA-1;开CPU中断 ES=1;/允许串口中断 选择工作方式2发送数据,给定时器T1赋值OXFD,波特率为9600,允许接 收 发送了函数为:将数组的元素位一位发送出去。 void COM send( void) for(=0; j<5; j++) SBUF-tibufLj] while([TD; //Jit delay(100); Show Short(98, 26, tibufLil) TI=0; 中断服务函数为:根据具休变频器发送回的数据祯进行处理 void com interrupt(void) interrupt 4 using 3 8/19 单片机实现对变频器调速系统的控制设计 if(ri) ∥0处理接收中断 RI=0: ∥清除中断标志位 f( rcccIvc==0xf〃变频器发送数据接收判断 SCON =0x4 接收不允许 COM Send(;∥发送数据 SCON=0X50 接收允许 在采用sTC单片杋串口调试助手模拟变频器接收数据,接收数组 tibuf[5 如下所示 理序文牛P3W文串口功工文件 区 斯留8:Em 单片机控制变频器 转向:正转接收:255 转速:1500/min +六姓制发送清友法中区 需加速时间:10.5 58确 敦舌打开韦冂 支计数4 停止时间 09. 特本200构啦位·数据位8像止 图6串∏通信试验 如上图所小,“变频器”接收到的 tibuf[5]={0x01,0x05,0Xdc,0x69,0x60}, 表示为十进制为,转向:1表示正转;转速:0x05dc=1500;加速时间:0x69=105 停止时间:0x60-=96,与液品上设置的信息致。另外,“变频器”向单片机发送 了0xff,在液晶上显示为255,表明收到的结果正确, 参考文献: [1]铭正同创 MZLHO1千作于册 [2]铭正同创官网,“字模2提取汉字方法”技术文献 19 单片机实现对变频器调速系统的控制设计 附录1:实际效果图 (1)北京交通大学L0G0开机画面 Beiing liAoTung Uniuersity (2)登录界面 登录界 求求求 系统: 雪告!密码错误 电气工程学 (3)运行操作界面 单片机控制变” 转向:正转输人正确 转速:1500m/min 加时:21.15取 停止时间:09.65消 10/19 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论