百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

数控变频器的研究与实现 数控机床变频器的原理

liebian365 2024-10-23 13:46 15 浏览 0 评论

一般变频器具有两种控制方式:控制面板控制方式和串行通信数据控制方式。控制面板控制方式利用变频器自带控制面板进行手动操控,一般应用于非自动控制场合。在自动化程度越来越高的工业生产现场以及机电一体化的数控设备中,人工操作基本是不可行的。为此,本文采用串行通信数据控制方式,设计了基于Visual C++的变频器上位机控制系统,用来建立与变频器之间的串行通信。该系统具有控制界面直观、操作简单、控制内容齐全等优点。通过RS-232/485串行通信方式直接控制变频器,实现现场交流电机的自动化控制,进而实现“控制-检测-调节-再控制”的闭环控制系统。这是一条可行、高效的技术路线。

1 变频器数字控制方式

1.1 变频器的数字控制的软硬件基础

本文选用台达VFD-M变频器为控制对象,使用Visual C++的MFC类编写串口程序,以ModBus为通信协议,经RS-232转RS-485电路,最终实现利用上位机对台达变频器VFD-M的所有参数的设置,实现对变频器的实时控制。根据变频器的通信地址,操作人员可以在上位机上设置多台变频器的参数,以实现对变频器运行的实时控制。其可视化界面美观、实用,操作简洁。

1.2 变频器命令代码控制方式

在众多的通信协议中,由Modicon公司设计的ModBus通信协议已经成为一个通用工业标准,据此不同厂商生产的控制设备可以连成工业网络,实现集中监控[1]。通过此协议,控制器之间、控制器与其他设备之间可以实现信息交换。使用该通信方式无需附加任何费用,是最为廉价、实用且开放的串行通信方式。本文以RS-485标准构建硬件桥梁,在其上使用ModBus通信协议实现计算机与变频器通信,进而实施控制。在实际的应用中,只需按照变频器规定的通信数据结构、控制字和协议格式发送数据即可实现计算机与变频器的通信。以台达变频器VFD-M为例,采用ModBus ASCII通信协议的运转、停止、正转、反转代码指令分别为:“:010620000002-

D7\r\n”、“:010620000001D8\r\n”、“:010620000010C9\r\n”、“:010620000020B9\r\n”。只要将这些控制代码传送给变频器,即可令变频器执行相应功能,控制电机运转。

2 Visual C++串行通信实现

2.1 Visual C++与MFC简介

Visual C++是微软公司推出的在Win32环境下运行的面向对象可视化集成编译系统的开发程序。MFC是微软生产的名为Microsoft Foundation Classes(微软基础类)的C++类集的缩写形式,它提供面向对象框架,程序开发人员可以使用这一框架创建Windows应用程序,并且MFC按照C++类的层次形式结合在一起,几个高层类提供一般功能,而低层类实现更具体的行为,每一个低层次类都是从高层类中派生出来的,因此继承了高层类的行为[2]。

MFC是一个微软公司提供的类库,以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少开发人员开发应用程序的工作量。其中MFC类中包含了大量窗口句柄封装类、Windows自带的控件和组件的封装类。MFC类(或者其派生类)、组件的封装类是MFC应用程序的总体结构。MFC 提供了MFC AppWizard 自动生成框架(用MFC编写的程序绝大部分都能在Windows中完美运行)。

实际上,MFC是微软提供的用于在C++环境下编写应用程序的一个框架和引擎。VC++是Windows下开发人员使用的专业C++ SDK(Standard Software Develop Kit,专业软件开发平台),MFC就是挂在其上的一个辅助软件开发包。

C++和VC++的区别在于C++是一种程序设计语言,是一种完全兼容C语言的软件编制的通用规范;而VC++只是一个编译器、开发工具,或者说是一种集成的应用程序开发平台。

2.2 Cserial类与ActiveX控件MSComm对比

MSComm控件(Microsoft Communication Control)建立在ActiveX基础之上,几乎覆盖了对串口编程接口的所有封装,其最大的好处是技术本身的跨语言特性,即凡是支持ActiveX控件操作的程序设计语言均可使用,例如Visual C++、Visual Basic、Visual FoxPro等。.NET平台语言也同样支持ActiveX,因此,MSComm几乎成了这些不能直接操作系统资源的语言平台上可以进行串口通信的为数不多的方法之一。

但是,在Visual C++中使用MSComm,要比在Visual Basic等语言环境中复杂得多。使用MSComm就要理解COM模型特殊的变量,COM并不是简单的类封装,而是要通过各种复杂的接口和数据转换的过程,才能将对控件的操作转化为最终对Windows API的调用。使用基于MSComm的串口通信程序,可能存在随着通信数据量的加大,整个程序所占内存数量上升的情况,而主程序对此无能为力。除此之外,MSComm控件依赖于消息循环,在一般情况下需要有对话框作为宿主,这使得编写一个使用串口的后台服务几乎成为不可能的事。

Cserial类的优点在于它的开放性,即所有的功能均以源代码提供,开发者不仅可以直接在工程中使用这些代码,而且可以根据项目规划将其编译成静态库、动态库,还可以在原有的基础上进行改造[3]。因此本文使用Cserial 类控制串口。

2.3 使用Cserial类控制串口

Cserial一共有7个文件,作用如下:

(1)Serial.cpp和Serial.h是基础类包装,定义并实现Cserial类。

(2)SerialEx.h和SerialEx.cpp定义并实现继承于Cserial类的CserialEx类,这个类为Windows的消息传递进行了特别的优化,适合于使用SDK编写的图形界面程序。

(3)SerialMFC.h、SerialWnd.h和SerialWnd.cpp 3个文件实现了进一步的包装,便于在MFC中使用Cserial[4]。

例如串口的打开、设置、读、写、关闭函数分别为:

m_port.Open;

m_port.SetUp;

m_port.Write;

m_port.Read;

m_port.Close;

如写运转指令:m_port.Write(":010620000002D7\r\n");。

3 总体方案设计

3.1 总体方案结构

变频器的串行通信系统结构图如图1所示。

3.2 控制界面设计

本文设计的系统所要实现的基本功能是控制变频器输出,使电机能正转、反转、加速和减速。为了使软件有更好的兼容性能,附加了串口配置模块。同时为方便操作员使用,还增加了变频器在STOP模式下的预设模块,并以视图化形式呈现出来,用来完成对一些常用函数的设置。系统控制界面如图2所示。

3.3 串行通信的编程实现

(1)创建基于对话框的项目

①进入Visual C++编程环境,选择“File/New”菜单命令,打开新建项目工作区,选择“Project”标签下的“MFC AppWizard[exe]”选项,在“Project Name”编辑框中输入应用程序项目的名称“数据控制变频器的研究与实现”,在“Location”编辑框中输入相应的文件名和文件路径,单击“OK”按钮。

②在MFC AppWizard-Step1向导页上选择基于对话框的选项(Dialog base),后面其他的向导页都采用默认设置值并确定。

(2)调整对话框属性

①按“Alt+Enter”组合键,弹出“Dialog Properties”对话框。

②设置ID和标题,其他保持默认设置,如图3所示。

(3)给对话框添加控件

将控件工具栏中的控件按钮拖到对话框模板上合适的位置。

(4)根据需要对控件的属性进行设置,如表1所示的对正转按钮的设置。

(5)添加消息映像

在Windows的使用控件编程中,必须事先设定对话框中各控件的消息处理方式,这样,用户才可以向控件发送消息来完成指定的任务,或根据控件产生的消息执行相应的程序代码。为控件添加消息的一般步骤如下。

①打开“MFC ClassWizard”对话框,按“Ctrl+W”组合键,如图4所示。

②选择“Message Maps”标签,从“Class name”列表框中选择“CvisualCDlg”类。

③在“Object IDs”列表框中选择产生消息的控件ID,例如IDC_FORWARD。

④在“Messages”消息框中选择消息响应方式,例如BN-CLICKED方式。

⑤单击“Add Function”按钮,创建相应的成员函数。

⑥选定“Member functions”列表框中的相应成员函数,单击“Edit Code”按钮,在成员函数模板中添加如下程序代码:

void CVisualCDlg::OnForeward

{

//TODO:Add your control notification handler code here

}

至此系统框架就已经完成,下一步就是针对每一个控件内嵌Cserial类函数来完成对串口的控制,进而控制变频器。

3.4 变频器工作方式设定

要实现对变频器的串行通信控制,需对变频器进行工作方式设定,如表2所示,详细设定值说明可参考台达VFD-M变频器使用手册[5]。

3.5 通信的硬件实现

3.5.1 台达变频器VFD-M

台达VFD-M变频器系列是由中达电通股份有限公司生产的超低噪音迷你型变频器,最大输出功率可达7.5 kW,体积小、噪音低,主要用于三相异步交流电机的控制。

3.5.2 物理接口

台达VFD-M变频器带有RS-485接口,因此可以通过RS-232/485转换器与上位机RS-232端口连接,与上位机建立通信。

将界面控制变为函数控制,建立函数库,通过函数调用实现控制,使其资源共享,便于在不同控制系统中灵活调用。

搜集不同型号的变频器的控制代码,编制控制代码表,供程序定义时使用及在编程过程中调用。这样,程序就可适用于控制各式各样的变频器。

在工业自动化控制领域,组网运行是发展趋势,系统中各控制单元的控制方法及实现,大部要由主控计算机完成。本文以上位机Visual C++6.0为开发平台,使用MFC类进行开发设计,最终形成运行于上位机的应用程序。变频器是自动控制系统中使用较广泛的交流电机控制器,本文通过上位机,用串行通信的方式对变频器操控,进而对交流电机实现控制。这一方案及实现方法能为自动化工程师解决此类问题提供一个理想、良好的解决思路。

阅读本文用了: 秒,转发只需1秒

?转载是一种智慧?分享是一种美德?

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: