数控变频器的研究与实现(数控变频器的研究与实现思考题)
ccwgpt 2025-06-30 15:01 4 浏览 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秒
转载是一种智慧分享是一种美德
相关推荐
- Xtreme套件Xtreme Suite Pro正式发布v17.0.0
-
Codejock软件公司的Xtreme套件(XtremeSuite)包含了三种流行的组件:Xtreme命令工具栏(XtremeCommandBars)——把需要创建的具有改进对接算法的所有组件...
- Wine能不能跑Win程序?信创操作系统下运行Windows应用的条件!
-
原文链接:「链接」Hello,大家好啊,今天给大家带来一篇信创操作系统上使用Wine运行Windows应用程序的条件的文章,欢迎大家分享点赞,点个在看和关注吧!在日常使用国产信创操作系统(如统...
- VC界面开发组件Xtreme Toolkit Pro全新发布v17.0.0
-
Codejock软件公司的XtremeToolkitPro是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的VisualC++MFC控件,...
- 机器视觉软件开发新人入门必看 --机器视觉软件开发学习路径
-
机器视觉是机械、运动、控制、光学、软件、算法于一体的交叉学科,对于学工科的人来说,机械、运动、控制都有一定的了解,对于软件、算法、光学不是很了解。一台设备,有一个到二个机械设计师或者结构工程师,那么这...
- 数控变频器的研究与实现(数控变频器的研究与实现思考题)
-
一般变频器具有两种控制方式:控制面板控制方式和串行通信数据控制方式。控制面板控制方式利用变频器自带控制面板进行手动操控,一般应用于非自动控制场合。在自动化程度越来越高的工业生产现场以及机电一体化的数控...
- 实用 | 分享几个非常实用的开源项目
-
前言本次分享几个实用的、值得学习使用的嵌入式相关开源项目,下面列举的这些基本上都在本公众号分享过,详细介绍及使用可查看往期笔记。protobufProtocolBuffers,是Google公司开发...
- Windows桌面应用程序常用开发框架的设计案例全面展示
-
Windows桌面应用程序是我们日常生活中不可或缺的一部分,而开发这些应用程序需要使用相应的框架。本文将全面介绍常用的Windows桌面应用程序开发框架,帮助您了解并选择适合的开发工具。一、原生的Wi...
- .NET9 FCall/QCall调用约定(.net 调用存储过程)
-
蓝字江湖评谈设为关注前言FCall/Qcall是托管与非托管之间的调用约定,双方需要一个契约,以弥合彼此的互相/单向调用。非托管调用约定先了解下非托管约定,一般有四种,分别为thiscall,std...
- BCGControlBar Pro for MFC v24.4正式发布
-
BCGControlBar(BusinessComponentsGalleryControlBar)专业版是MFC的一个扩展库,您可以用来构建类似于MicrosoftOffice2000/X...
- MFC多文档视图(mfc 多文档)
-
你可以因为现任不好而分手,但千万不要认为别人更好,永远有人更好,眼下便是更好。。。----网易云热评一、多文档视图架构程序1、特点:可以管理多个文档。(可以有多个文档类对象)2、相关类CWinA...
- MFC扩展库BCGControlBar Pro v33.5新版亮点:Ribbon Bar等全新升级
-
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类。我们的组件可以轻松地集成到您的应用程序中,并为您节省数百个开发和调试时间。BCGControlBar专业版v3...
- 山东新华电脑学院4G软件专业明星优秀作品展
-
项目实战工程师:向修艺年龄:18岁班级:4G软件1501班座右铭:付出才会有收获导师寄语:自学能力和实践能力都非常出色,并且学习认真做事责任心强,是不可多得的人才。相信将来如果能获得机会,发挥自己的...
- MFC转QT:Qt基础知识(mfc获取当前日期和时间信息)
-
1.Qt框架概述Qt的历史和版本Qt是一个跨平台的C++应用程序开发框架,由挪威公司Trolltech(现为QtCompany)于1991年创建。Qt的发展历程:1991年:Qt项目启动1995年...
- MFC转QT:Qt高级特性 - 事件系统(mfc读取txt文件每一行数据)
-
Qt事件处理机制Qt的事件系统是整个框架的核心基础之一,负责处理用户输入、窗口系统消息和应用内部的通信。相比MFC的消息映射系统,Qt的事件处理机制更加灵活和直观。基本概念事件(Event)是Qt框...
- MFC用户界面套包BCGControlBar Pro for MFC发布v25.0
-
BCGControlBar(BusinessComponentsGalleryControlBar)专业版是MFC的一个扩展库,您可以用来构建类似于MicrosoftOffice2000/X...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Xtreme套件Xtreme Suite Pro正式发布v17.0.0
- Wine能不能跑Win程序?信创操作系统下运行Windows应用的条件!
- VC界面开发组件Xtreme Toolkit Pro全新发布v17.0.0
- 机器视觉软件开发新人入门必看 --机器视觉软件开发学习路径
- 数控变频器的研究与实现(数控变频器的研究与实现思考题)
- 实用 | 分享几个非常实用的开源项目
- Windows桌面应用程序常用开发框架的设计案例全面展示
- .NET9 FCall/QCall调用约定(.net 调用存储过程)
- BCGControlBar Pro for MFC v24.4正式发布
- MFC多文档视图(mfc 多文档)
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)