VC++MFC编程doli等控制器使用高精度双油缸同步控制设计要点_第1页
VC++MFC编程doli等控制器使用高精度双油缸同步控制设计要点_第2页
VC++MFC编程doli等控制器使用高精度双油缸同步控制设计要点_第3页
VC++MFC编程doli等控制器使用高精度双油缸同步控制设计要点_第4页
VC++MFC编程doli等控制器使用高精度双油缸同步控制设计要点_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重庆大学本科学生毕业设计(论文)摘要摘 要本论文设计是基于VisualC+6.0软件下实现双油缸同步控制系统的编程, 探索同步控制的控制策略,并且完成高精度双油缸同步控制实验。 该系统控制界面 不仅简洁实用,而且具有良好的人机交流功能。上位机控制系统所实现的功能有双油缸的通讯、UP、暂停、DOWN、停机、位移显示、曲线显示等,在完成同步控制程序后探究反馈控制策略并编写程序,实现双油缸同步控制。在接口程序编程部分,本文采用EDC220控制器提供的接口函数实现PC机与控制器通讯,数据的发送与接收采用统一通讯协议,这种方法不 仅简单,而且实用。本文采用控制器作为下位机来验证上位机控制功能,控制器作为

2、下位机主要负责两个油缸的各种参数数据的采集, 然后通过端口把数据发送给上 位机,PC机作为上位机主要负责数据的分析处理和显示。本文最后完成高精度双 油缸同步控制实验,验证同步控制精度。关键词:双油缸,VC+,EDC220控制器,反馈,同步控制重庆大学本科学生毕业设计(论文)ABSTRACTABSTRACTThis design's core is und er the software of Visual C+6.0, realizes the d ouble hydraulic cylinder synchronous control system programming, expl

3、ores control strategy of EDC220 con troll er, and completes experime nt for high-precisi on d ouble hydraulic cyli nder synchronous con trol. This con trol in terface has not only succ inct practical, but also has the good man-mach ine excha nge part.The superior machine system realizes the function

4、 has the double hydraulic cyli nder's Communi catio n, Up, Pause, Down, Stop, Displaceme nt demon strati on, Curve dem on strati on and so on. After complet ing synchronous con trol program, exploreing the feedback control strategy and programming, and Achieve double hydraulic cyli nder synchron

5、i zati on con trol. In terface program ming part, EDC220 provid es the use of in terface fun cti ons to achieve PC-c on troll er com muni cati on, the data tran smissi on and the receive uses the un ified com muni cati on protocol, this method is not only simpl e, but practical. I n this article use

6、s the EDC220 con troll er to confirm the superior machine control function as the lower position machine realizati on, the EDC220 con troll er as lower positi on mach ine primary cog nizance double hydraulic cylind er 's each kind of parameter data gathering. Then through the port the data trans

7、mission for the superior machine, PC machine takes the superior machi ne primary cog nizance data the an alysis process ing and the dem on stratio n. Fin ally, completed high-precisi on the d ouble hydraulic cyli nd er synchronous con trol experime nt, to verify the accuracy of synchroni zati on con

8、 trol.Key words: Double hydraulic cylinder, VC+; EDC220 controller, feedback, synchronous con trol#重庆大学本科学生毕业设计(论文)目录3摘要ABSTRACT.I绪论1 同步控制策略1.1 EDC220 控制器1.1.1同步化模块1.1.2同步系统命令1.1.3同步数据处理1.2 MFC 类库1.3反馈控制 102 GUI设计2.1主界面.2.2绘图窗口2.3界面优化.121.31.7接口通讯3.1 PC机与下位机通信方式3.2 VC实现接口通讯方法.控制系统程序编写主要接口程序接口编程通讯连接同

9、步控制数据米集4.14.1.14.1.24.1.34.1.4.19.1.922222324254.2定时器模块定点状态显示反馈控制数据处理4.5.1实时曲线绘制.4.5.2数据显示与保存验证实验5.1实验设备4.34.44.5262.7.28303.0.3.15.2实验过程335.2.1接口程序数据传输实验 345.2.2连接设备进行通讯实验345.2.3单个油缸运动控制实验 345.2.4两个油缸同步控制实验 365.3实验结论36结 论参考文献附录A:程序致谢重庆大学本科学生毕业设计(论文)绪论绪 论高精度双油缸同步控制可应用于很多工业与科研领域,它也是力学真三轴试验 的基础。而械及航天与

10、航空驱动装置等对高精度的液压同步驱动技术的需要迫切。 而影响同且油缸同步控制一直以来都是液压行业的一个重要课题,在绝大数的场合下设备俯仰机构采用的是双油缸驱动,但由于两个油缸在运动时活塞杆所行走的位 移量不同直接导致被支撑结构出现被扭曲或受扭转载荷使得设备无法正常运行。随着现代实验力学在航天航空技术和机械部件加工业等的发展,金属加工设 备、冶金机械、工程机步精度的因素很多,比如液压缸摩擦、制造精度、外负载、 泄漏、阻力、油液中气泡及结构弹性变形等,都会使得油缸运行不同步,这就突现 了高精度双油缸同步控制方法研究的重要性。国内外的在同步控制及液压油缸同步 控制的研究分析可知:(1) 通常传统双液

11、压缸同步控制主要以机械刚性机械传动同步、在回路中使用节流阀、回路中使用分流阀与集流阀或调速阀、使用独立的定量泵供油、回路中采 用同步马达、同步油缸等实现,它们都有一个共同点具有非线性、时变的特点,没 有实现所需要的高精度同步。(2) 20世纪80年代由Robert.D.Lorenz 教授和Y.Koren教授提出并发起的经 典同步控制理论,主要分为同等方式(SMCA)、主从方式(MSA)和交叉耦合控制 (CCC)。在当今工业领域仍被广泛采用。这三种经典同步控制方法适用于不同的场合,有着各自的优点。SMCA在轧机控制中有着很高的控制精度和响应速度;MSA 主要应用于双缸液压系统、机器人等场合;CC

12、C可以有效的改善被控子系统间的相互运动同步,极大提高了跟踪精度。近年来,同步控制得到了很大的发展和完善, 已经形成了各种解决各类协调问题的系统化设计方法,并在各类工程领域得到了广泛的应用。随着航空航天、高级数控机床等领域中对高速高精度运动要求的提高, 从经典同步控制演变出了偏差耦合控制和环形耦合控制,效果不佳而且主要用于电机同步。(3) 随着计算机技术和控制理论的发展,国内外的一些研究多数研究者将模糊 控制、自适应控制、神经网络控制、计算机智能控制 2、计算机网络控制3等应用 到同步控制技术中,并取得了大量的研究成果,但这些研究大多还处在仿真研究的 阶段离实际应用还存在一定的差距。随着微电子技

13、术的发展,应用上位机实现现场的采集与控制越来越被大家所重 视,上位机提供良好的人机界面,使现场监控更直接、简洁可靠和稳定。应用上位 机实现现场监控,主要是通过上位机本身配置的串行口, 通过串行通讯技术,控制和管理下位机。由于上位机界面的应用给现场监控提供的极大的方便,所以上位机控制界面的设计也成为工业控制的重点内容。在Visual C+6.0界面下完成上位机的编程具有自己独特的优势,当VB成功推出后,microsoft又将C+包装成为了面向windows的visual C+(以下简称VC)。从VC1.0到VC6.0,每一个版本 的推出都凸显各自优势。VC借助传统的C/C+加上microsoft

14、强大优势,使广大 的程序员和专业编程人员纷纷投靠在 VC的大旗下4 o在遇到一些高载荷、大功率、长行程的系统是,传统的双油缸同步控制已经不 能达到目的,在冶金、建筑和水利等领域中,液压同步系统已经实现了轧机同步、 大型屋架整体提升及多闸门同步放落提升等技术应用,如钻机桅杆油缸的同步控制5、液压工作平台升降的同步控制、提升系统液压提升器同步控制等等。它们可 以完成的运动控制精度高、行程远、远非传统同步控制所能达到。基于VC的双油缸同步控制不仅能完成伸缩控制、 速度控制,而且能依靠多套伺服系统的配合,完 成高载荷、大功率、长行程等控制和复杂的空间曲线运动的控制。 所以本文主要介 绍基于VC的接口编

15、程和控制器组成的双油缸同步控制。在工业控制领域,往往需要组成上位机一下位机系统,上位机一般为PC机,下位机一般为下位机系统7,或者控制器系统。上位机主要完成数据的发送、采集、 显示、以及控制命令传输等,控制器做为下位机本主要负责双油缸的各种参数数据 的采集和、模数转换和精度控制。利用VC+编程上位机控制界面可以解决很多工业控制中出现的难题,传统的上位机控制界面参数给定更改比较麻烦,需要浪费大量时间从新更改程序。而 VC+的上位机控制界面就很容易实现,只需对程序中设置的参数、相关按钮及控 制函数程序更换即可,以达到为了不同的目的可以实时更新功能。 特别是上位机一 般都是计算机,随着计算机技术的发

16、展,计算机的功能也越来越强大,很多复杂算 法很容易实现,也为工业的中出现的复杂算法提供方便。在更变复杂算法时,由 VC+编程上位机控制界面也十分方便。所以利用什么方法,使用什么控制策略,如何能达到两个油缸同步高精度,提 高生产效率,是油缸同步控制系统首先要解决的问题。 经过实验测试,本文的控制 方法的控制精度高,稳定性好,并且具有同步协调加载能力。本文利用理论力学、实验力学、计算机测控技术、VC+面向对象的程序设计等所学知识和德国doli控制器EDC220使用说明书,完成双油缸同步控制策略、同 步控制GUI设计、串口通讯、程序编制、验证实验进行阐述,利用编制程序进行双 油缸同步控制实验,有效验

17、证了控制精度。整个过程可以加强自主学习能力,提高 实际操作能力,提升探索控制策略的创新精神。5重庆大学本科学生毕业设计(论文)同步控制策略1同步控制策略同步控制是一种常用的工控技术。同步就是要按照一定比率来协调控制主部件 和从部件之间的位置、转速、位移、扭矩等量,同步控制器一般有两类:一类是和张力系统连同一起来使用,比如张力控制器也是一种同步控制器件,这类型的同步 是以转速和扭矩等量的同步来实现的;另一类是空间定位控制器,就是位置同步, 一般应用于数控机床,机器人,飞剪等系统轴间联动使用,是一种轴间的位置跟踪 定位。目前同步控制器有一些嵌入式设定参数的, 也有一些事直接可编程类的,随 着信息技

18、术的发展,可编程类的应用慢慢超过前者,代表了同步技术的发展方向, 它可通过现场总线等通讯技术与其他设备进行连接,并进一步操作。本文双油缸同步是指两个油缸行程实时同步。 双油缸同步控制是指用可编程的VC程序发出一个指令,通过 EDC220控制器协调控制,由于EDC220控制器利用 非线性校正技术,可以对传感器采用非线性校正技术,同时EDC220含有同步控制模块,有效地提高整个系统的测量精度,再加上反馈控制功能,两个油缸可以达 到实时高精度同步的一种控制方法。而且 VC具有可扩展性、通用性、易维护性、 可移植性等特点,便于根据需要实时修改程序。现对 EDC220控制器、VC面向对 象的程序设计和反

19、馈控制三个方面对本次设计作介绍和分析。1.1 EDC220控制器DOLI控制器是德国DOLI公司的代表产品18。集闭环控制和数据采集为一体, 作为测量通道和基本实验仪器,而且具备一个输出通道来控制设备。DOLI控制器的电液伺服控制系统应用非常广泛,例如在动态试验机中的应用。并且得到了很大 的认可,但绝大多数情况下,该控制器是在单通道电液伺服系统中使用。主板上具备分辨率达到土 180000码的负荷放大器,用来驱动功率放大器的输出信号在土 10V之前,具有SSI、LVDT、10、力、应变、阀控制、增量传感器、安全防护装 置等接口。该控制器可以实现位置同步、力值同步、变形同步等功能,功能强大且 稳定

20、。经过多年发展,该控制器已经日趋完善,它广泛应用于高精度、复杂工业控 制和大吨位加载设备中。除了这些,EDC220控制器还利用非线性校正技术,可以对力传感器和变形传 感器采用非线性校正技术,有效地提高整个系统的测量精度。该控制器经过不断改 进和升级,完善了动态试验系统功能,而且还可以很有效利用在双通道甚至多通道 系统中,在本次控制系统设计中该控制器的优点更加明显,方便之处在于该控制器 的设置方式和多通道协调加载等功能。对于多通道系统而言,协调加载至关重要。控制器通过以太网或者USB与PC机连接,可以有效完成多通道控制,而且稳定 性、安全性和速度不受外界影响12。1.1.1同步化模块控制器同步化

21、模块用于对多套EDC220系统的数据采集及控制实行同步化。所 有必要的控制信号和通讯都通过 RS485总线传输。主控EDC220只需在X11插头 处插上一个总线端,而且其余 EDC220控制器均需要用RS485相连,最后一台 EDC220控制器在接头X12处插上总线端。主控控制器系统生成系统时钟,即系统 时间,位移控制时间基点和其他所需信号。为了达到最佳效果即实现高精度同步控 制,需要将所有需要同步化的控制器系统设置相同的系统时间和位移控制基点。PC机与控制器连接如图1所示。9图1 PC机与控制器连接构图EDC220控制器同步包括同步控制和同步采集13。对同步控制而言,系统中所 有的控制器在某

22、一时间点必须统一内部时钟(TIME),然后一起执行命令,才可以达 到同步功能。在用VC编写控制EDC220执行同步命令时,有两点需要注意:(1) 每台EDC220控制器需要执行的命令可以完全一样,也可以不一样, 但执行时间的起点必须一致。每台EDC220控制器需要执行的命令是执行之前收到的命令,所以只要上 位机向主控制器(Master)发送执行命令的开始信号便可以激活同步命令的执行。Em:图2同步控制通讯连接示意图在控制系统中,两台EDC220控制器之间要连接同步时钟线,来确定时钟始终 完全一致。DOLI控制器需要选择好一个主控制器,另一个设置为从控制器。在 EDC220控制器的初始设置文件中

23、,Ge neral data项设置主控制器为Master,从 EDC220 控制器为 Slave(Synch State: 0 = Master; 1 = Slave),并且主控制器的 FunctionID项参数设置为1,从控制器设置为2。同步控制过程中需要保证主控制 器和从控制器的位移控制频率(PosT)、速度控制频率(SpeedT)和数据采样频率 (DaRate)相同。同步控制通讯连接示意图如图 2所示。在两台EDC220执行同步命令时,PC机需要调用同步控制函数指令功能,再 向EDC220控制器发送所需要执行的命令,但是此时接收到的命令并不立即执行。 需要等一切准备就绪后,PC机向EDC

24、220控制器发送启动同步命令信号,各个 EDC220控制器调整各内部时钟,然后控制器同步执行控制任务。计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通 讯两种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时, 避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。EDC220控制器通过以太网、USB串口通讯与上位机进行通讯,并且Doli公司提供了丰富的控制函数。 如此一来,用VC很方便就能控制EDC220控制器的所有操作。为了实现双油缸同步控制,计算机需要通过以太网接口与一台集线器进行连

25、接,然后集线器连接两台EDC220控制器。同步并不是意味着多个内部时钟一起调 整为零,也可以按照实验需要在不同控制器之间有固定的相位差,即各个控制器保持固定的时间差来执行各自的命令,这也是一种同步的概念。本文是实时同步控制, 即内部时钟一起调整为零。双油缸同步控制系统中主要的部分就是 EDC220控制器同步,只有保证 EDC220控制器同步的前提下才能有效保证两个油缸同步,即两个EDC220控制器在接收到PC机的启动同步命令信号后,EDC220控制器调整好内部时钟,两个 EDC220控制器同步执行控制油缸同步运行。由于控制器的控制精度非常高、稳定 性好,所以该控制器的使用完全可以应用到高精度双

26、油缸同步控制系统中。1.1.2同步系统命令有两种命令(DoPESynchronizeSystemMode, DoPESynchronizeSystemStart)来 控制两种或两种以上的EDC220控制系统“,如果设置了同步选项,并且确定两 个及两个以上EDC220控制系统连接正确,那么这两种命令也是唯一有用的命令。(1)同步系统 Mode(DoPESynchronizeSystemMode)。如果模式是 SSM_SYNC MOVE,下一个移动指令IKEDoPE Pos DoPECosine或任何其他移动命令将被推迟, 直到同步条件为真。该系统将用 DoPESy nchro nize Syst

27、emStart命令进行同步。对 声明函函数 extern unsigned DLLAPI DoPESynchronizeSystemMode(DoPE_HANDLE DoPEHdl , unsigned short Mode, cbuble Time, WORD *lpusTAN)进行说明: DoPEHdl:该函数返还一个 Error常量(DoPERR_xxxx),然后DoPE连接句柄; Mode:SSM_SYNCMOV模式,如果Time为零,则发送同步命令信息后开始 执行;如果Time不为零,则发送同步命令Time时间过后才开始执行;SSM_YSTEMTIME模式,需要设置 EDC220 系

28、统时间为 Time ; SSM_DISCARD模式, 去除前一个 DoPESynchronizeSystemMode 命令; Time:延迟或系统时间设置在下一个 DoPESy nchro ni zeSystemStart命令; *lpusTAN:指针参数。(2) 同步系统 Start(DoPESynchronizeSystemStart)。此功能只能在主 EDC220控 制器里面进行,数字同步信号将被激活,并且将由DoPESy nchroni zeSystemMode设置下一个系统时钟和所有涉及 EDC220控制器启动前需要定义的操作。对声明函 函数 extern unsigned DLLA

29、PI DoPESynchronize SystemStart(DoPE_HANDLE DoPEHdl , WORD *lpusTAN)进行说明: DoPEHdl:该函数返还一个 Error常量(DoPERR_xxxx),然后DoPE连接主 EDC220控制器的句柄; *lpusTAN:指针参数。OqP E Synch« GTRL_SYNCHWA1T 朗抽=戚.*art Of mouwii图3同步系统Mode、Start命令与同步状态的关系1.1.3同步数据处理(1)同步数据Data(DoPESynchronizeData)。通过DoPE句柄启动采样同步,传 递一个空链表(第一项为NU

30、LL)停止采样同步。也可以初始化、选择设置或关闭 一个甚至多个环节停止采样同步。声明函数 extern un sig ned DLLAPIDoPESynchronizeData(DoPE_HANDLE DoPEHdl,DoPE_HANDLE, *pMaster)进 行说明:重庆大学本科学生毕业设计(论文)同步控制策略DoPEHdl:该函数返还一个 Error常量(DoPERR_xxxx),且DoPE连接句柄 数组 DoPEHdl。*pMaster:指针存储,为了让主EDC220控制器DoPE连接句柄(2) 同步数据处理程序(DoPESetOnSynchronizeDataHdlr)。对声明函数

31、 extern un sig ned DLLAPI DoPESet OnSyn chro nizeDataHdlr (DoPE On Sy nchron izeDataHdlr Hdlr, LPVOID lpParameter)进行说明:每一个接收到的同步采样都要调用该函数, lpParameter为用户特定指针。用于同步数据事件的用户函数有: un sig ned CALLBACK On Sy nchro nizeData(DoPE_HANDLE DoPEHdl, DoPE OnSynchroni zeData *Data, LPVOID lpParameter):对于该函数,DoPE 可以

32、连接句柄, 指针接收数据,携带有 DoPESetOn SystemMsgHdlr特定用户指针; typedef struct un sig ned DoPError, un sig ned n Data, DoPEL in kData *Sample, double Occupied DoPE On Sy nchron ize Data:对于该函数,DoPERR_NOERRO事件 是确定的,nData是测量数据的数目,*Sample是测量数据的数组,Occupied表示 数据缓冲区占用百分比; typedef struct DoPE_HANDLE DP , DoPEData DataDoPEL

33、i nk Data:于该函数,DoPE可以连接句柄,Data表示记录测量数据1.2 MFC类库Visual C+6.0简称VC或者VC6.0,是微软推出的一款C+编译器,将“高 级语言”翻译为“机器语言(低级语言)”的程序。VisualC+是一个功能强大的可 视化软件开发工具。是目前综合性最高、最强大,也是最为复杂的Windows应用程序开发软件。VisualC+6.0是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC+1.0 后,随着其新版本的不断问世, VisualC+ 已成为专业程序员进行软件开发的首选工具。Visual C+6.0不仅是一个C+编译

34、器,而且是一个基于 Windows操作系统 的可视化集成开发环境。Visual C+6.0由许多组件组成,包括编辑器、调试器以 及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为 Developer Studio的组件集成为和谐的开发环境 。VC+是微软公司开发的C+语言开发环境,VC的特点是微软公司做了一个 自己独有的类库MFC,里面封装了绝大多数的 API函数,使得 WINDOWS程序的 开发变的高效和易于理解,如果用 API直接开发WINDOWS程序的话,将会是一 件非常烦琐的工作,WINDOWS对资源的管理是非常严格的这与 DOS可直接用中 断

35、处理程序和I/O指令操作硬件端口是截然相反的;所以这个MFC就是VC和其他公司出产的编译器的最大区别了,当然了其他公司也有自己封装API的类库比如DELPHI等,所以他们的编译器与其他公司的相比有其独到的优势。使用MFC类库,程序结构采用模块化设计,因此具有可扩展性、通用性、易 维护性、可移植性等特点。在程序编写过程中,利用面向对象的程序设计语言,串 口采用同步方式进行控制,使得程序各模块之间、PC以及控制器之间能相互安全、 准确地传输数据9】。1.3反馈控制反馈控制最早运用于1788年英国科学家James Watt为内燃机设计的飞锤调带 器,随后1946年Eve ns由根轨迹分析技术提出了线

36、性反馈系统,而1981年美国学者Zames得到基于Hardy控件范数最小化方法的一种鲁棒最优控制理论19。 同开环控制系统相比,闭环控制具有一系列优点。但反馈回路的引入增加了系统的 复杂性,而且增益选择不当时会引起系统的不稳定。为提高控制精度,在扰动变量可以测量时,也常同时采用按扰动的控制(即前馈控制)作为反馈控制的补充而构 成复合控制系统。本文用反馈控制是为了减少在doli控制器同步控制部分产生的不可避免误差。 上位机把同步命令发送给 EDC220控制器,并且确定好同步时钟,EDC220控制器 开始准备执行,当收到上位机传输的同步任务后,EDC220开始执行同步任务,两个油缸开始运动。反馈控

37、制是将两个油缸位移行程相比较, 程序自适应判断位移行 程差并改变控制变量系数,以防止偏差发展或继续存在,达到两个油缸行程高精度 同步。当上位机接收数据后,程序判断两个油缸的行程是否在一定的精度范围内, 如果达到,则EDC220控制器继续执行同步任务;如果没有达到一定精度范围,则 程序选择性调用控制参数,EDC220控制器再次执行同步任务,直到接收到的数据 误差在一定范围内。EDC220控制器自身包含同步控制模块,有着良好的稳定性和高精度特性,而 且反馈控制有程序判断是否已达到精度要求,所以在设备误差允许的情况下,本次双油缸同步控制可以达到较高的同步精度。本设计的反馈控制流程如图4所示。同爭两台

38、EDC 嘉绒时铀井别向两台EEIC传运任务 和任夯目标是否出縊NEDQ拜枱血行 任势油缸开始运行上位机産摆EDCm_DoPEErr=OoPESynchronizeSysteniModefDoPEHdl,SSMSYSTEIvmME.G.8llpu5TAN_1jm_DoPEErr=DoPESynchronizSysteniModefDoPEH dl_1 .SSMS YNC MO Vt .0 r u?TAN_i)雪赊同鉴命令 并退出,脸宜 同爭时钟和任m_DoPEErFDoPESynchronizeSystemStarl(DoPEHdl_l &lpusTAN_1)丢集频据Vm_DoPEErr

39、=DoP ESync hro rtizeSy st &m St a il (D &PEH川&lpuSM_1)取隼執据肓,迭取同一娄型埶据相差比较,在VC中利用杀件固句判断差值是否在蒂度氾宙程序判断同步显示相关數拥 弁鎧制曲绒达到同歩I空制图4反馈控制流程图11重庆大学本科学生毕业设计(论文)GUI设计2 GUI设计2.1主界面上位机是指可以直接发出操作控制命令的计算机,一般是PC/host computer/master computer/upper computer ,屏幕上显示各种信号变化,例如液压,水位, 温度,速度,位移等。上位机是控制者和提供服务者,可实现上位

40、机界面设计的软 件有 VC+、Labview、Visual Studio、CAI、Delphi、VB。该操作界面操作简单, 具有条件读取、主界面绘图窗口定点显示、极限设置、曲线显示及协调加载等功能。 本文采用VisualC+6.0来完成上位机操作界面设计,如图 5所示。图5双油缸同步控制主界面主界面控件参数设置是较为重要一步。首先打开VC+6.0集成开发环境对主界面控件参数设置,选择菜单File/New,在出现的对话框中选中Projects标签中的 MFCAppWizard(exe),然后在Project Name框中填入 WSJ_SYG可根据需要命名), 之后点0K按钮。在接着出现的对话框中

41、选中Dialog Based项,然后点NEXT按钮。 主界面的各对话框的控制按钮或对话框都按照缺省设置,如此一来即可生成一个基 于对话框的应用程序。在资源编程器中会出现其对话框模板。 在对话框中添加相应 应用的控件,再对参数进行属性设置,如设置ID。2.2绘图窗口在基VC的系统曲线显示设计中,以图形化的方式显示数值结果同样有助于直 观地查看控制数据、分析效果、探究控制策略,以便解决控制过程中可能出现的问 题。曲线的实时动态显示方法有开发具有便捷绘图功能的 ActiveX控件10和充分利 用VC的画笔绘图。控件以组件方式无缝嵌入控制程序,界面美观、简洁,支持发 布和封装。画笔可以自定义,程序运行

42、不受 PC机改变而改变。在双油缸同步控制 过程中,需要采集油缸的实际位移,并实时显示到控制界面上,这样可以轻松的观 察的速度曲线的实时变化。目前,VC中用于绘图的控件主要有IDL、TeeChart、MSChart等,它们功能较 强。TeeChart是优秀的ActiveX图形控件,它使得实时数据的统计图表更加直观和 易于理解,以达到有效解决图形显示问题的目的,具有许多优良的特性El。但是该控件收到运行环境影响,需要在 VC中注册控件,所以不具备通用性。本文采用 自定义画笔绘图方法,结合一个实际的油缸精度检测项目,给出运用自定义画笔设 计程序代码,实现双油缸同步控制系统中数据实时显示的功能。VC自

43、定义绘图工具由MFC的CgdiObject类及其派生类描述。基本绘图工具包括 画笔、画刷、字体、位图、调色板等。这些工具都有对应的 MFC类来描述,画图之 前可以创建满足上位机所需功能的绘图工具,然后选择画图的环境即可完成。结合本次设计所需,自定义绘图初始化需要完成的工作有绘图窗口网格划分、坐标定义、坐标轴设计、刻度定义、字体设置、添加标题等工作。由此可以得到 VC程序自定 义绘图窗口,如图6所示。Q.3T5T/s丨丨丨I I I I I丨II I I I I I I金14251J&T5此2刃Z.525王QQQ3375 3J5O4.5QQQ4JW图6 VC程序自定义绘图窗口 本次自定义

44、绘图的初始化函数代码示例如下: int nO riginX = 62;/X 轴坐标原点 int nO rigi nY = 601;/Y 轴坐标原点 int nXLe ngth = 720;/X 轴长度 int nYLe ngth = 470;/Y 轴长度 int nStepLength = 30;/每两个刻度之间的点数 int m_n Page=1;int m_dRate=2;每一长度单位代表5cmCDC* pDC = GetDC();CPen NewPen1,用来画坐标网格NewPen2,用来画坐标轴NewPen3,用来画刻度*pOldPe n;pDC->SetBkColor(RGB(

45、255, 255, 255); pDC->SetBkMode(TRANSPARENT);/画网格线,每格刻度位40像素NewPe n1.CreatePe n(PS_DOT1, RGB(25, 200, 200); pOldPen = pDC->SelectObject( &NewPen1 );/水平/垂直for(int i = nOriginY; i >= (nOriginY - nYLength); i -= nStepLength) pDC->MoveTo( nOriginX, i);pDC->Li neTo( nO riginX + n XLe ng

46、th), i);for(i = nOriginX; i <= (nOriginX + nXLength); i += nStepLength)pDC->MoveTo(i, (nOriginY - nYLength); pDC->LineTo(i, nOriginY);/画坐标轴NewPe n2.CreatePe n(PS_SOLID,3,RGB(25, 25, 25); pOldPe n=pDC->SelectObject(&NewPe n2);pDC->MoveTo(nOriginX, (nOriginY - nYLength - 20); pDC-&g

47、t;Li neTo( nO riginX, nO rigi nY);pDC->MoveTo( nOriginX, nO rigi nY);pDC->Li neTo( nO riginX + nXLe ngth + 20), nO rigi nY);/画垂直箭头pDC->MoveTo(nOriginX - 5), (nOriginY - nYLength - 20 + 10);pDC->LineTo(nOriginX, (nOriginY - nYLength - 20);pDC->LineTo(nOriginX + 5), (nOriginY - nYLength

48、 - 20 + 10);/画水平箭头pDC->MoveTo(nOriginX + nXLength + 20 - 10), nOriginY - 5);pDC->Li neTo( nO riginX + nXLe ngth + 20), nO rigi nY);pDC->Li neTo( nO riginX + nXLe ngth + 20 - 10), nO rigi nY + 5);/画刻度NewPe n3.CreatePe n(PS_SOLID,1,RGB(88, 160, 168);pOldPe n=pDC->SelectObject(&NewPe n3

49、);for(i = n Orig inY; i >= (n Orig inY - n YLe ngth); i -= n StepLe ngth / 2)pDC->MoveTo( nOriginX, i);pDC->Li neTo( nO riginX + 10), i);for(i = n Orig inX; i <= (n Orig inX + nXLen gth); i += n StepLe ngth / 2)pDC->MoveTo(i, nOriginY - 10);pDC->LineTo(i, nOriginY);pDC->SelectOb

50、ject(pOldPe n);/创建字体CFo nt NewFo nt4,*pOldFo nt;int n Width = 8;int nH eight = 20;CStri ng strDigits;n Width = 6;nH eight = 15;NewFo nt4.CreateFo nt(nH eight ,n Width,0,0,FW_BOLD,0,0,0,ANSI_CHARSETUT_CHARACTER_PRECIS,CLIP_CHARACTER_ PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,NULL);pOldFo nt =

51、pDC->SelectObject(&NewFo nt4);for(i = 0; i <= (n YLe ngth / nStepLe ngth); i+)写垂直坐标值strDigits.Format("%d", i * m_dRate);pDC->TextOut(nOriginX - 25), (nOriginY - 8) - i * nStepLength), strDigits);switch(key_id)case 0:for(i = 0; i <= (nXLe ngth / nStepLe ngth); i += 2)/ 写水平坐标

52、值strDigits.Format("%2.3f", key_l ength*i / (nXLength / nStepLength);pDC->TextOut(nOriginX - 5) + i * nStepLength, nOriginY + 10, strDigits);pDC->SelectObject(pOldFo nt);pDC->TextOut( nOriginX+nXLe ngth+5, nOrigi nY-25,"T/s");pDC->TextOut( nOriginX-40, nOrigi nY- nYLe

53、ngth-35,"L/cm");break;case 1:for(i = 0; i <= (nXLe ngth / nStepLe ngth); i += 2)/ 写水平坐标值 strDigits.Format("%2.3f, key_l ength*i / (nXLength / nStepLength);pDC->TextOut(nOriginX - 5) + i * nStepLength, nOriginY + 10, strDigits); pDC->SelectObject(pOldFo nt);pDC->TextOut( nO

54、riginX+nXLe ngth+5, nOrigi nY-25,"T/s");pDC->TextOut( nOriginX-40, nOrigi nY- nYLe ngth-35,"L/cm"); break;default:AfxMessageBox("请选择输出图形方式");ReleasEDC220(pDC);17重庆大学本科学生毕业设计(论文)GUI设计2.3界面优化界面优化包括按钮图标实现、图像编辑控件、窗口背景加载、按钮图片加载、 定义静态文本颜色和字体等。按钮图标添加可以通过CButtonST类实现,Cbutton

55、ST是目前最强大功能最全的 CButton派生类,CButtonST类主要包括BtnSTh、BtnST cpp、BCMenu.h和 BCMenu. cpp 四个文件,在 VC+ 中导入以上的 四个文件之后,然后在 SdtAfx.h文件中添加合适的in elude语句,如#i nclude"BtnST.h"。还可以用图像编辑控件KoDak,但是它不能单独使用,必须和其他几个 控件(特别是Imgcmn. dll)一同使用,而且该方法主要运用于动态图片加载。本 文需要添加窗口背景图片和按钮背景图片,所以可以采用picture控件和Bitmap背景图,但是考虑到picture控件加

56、载后会覆盖其他控件,对于窗口背景加载不合适, 所以可以采用Bitmap实现。利用Bitmap实现美化,需要做bmp格式加载图片准备工作,需要设计的bmp 格式图片,所需要设计的图片包含窗口图、文本框图、各按钮图。设计程序代码(选 取主要部分代码)方法如下:按钮图标图片加载。在DOPE.h头文件里面定义Cbit map Butt on m_BitButt on。然后在IDB_BITMAP属性里面添加图片地址链接,最后在On I ni tDial o g()函数里面添加 m_BitButton.LoadBitmaps(IDB_BITMAP)。(2) 窗口背景图片加载。在背景加载函数 DrawBg(

57、)里面添加如下代码:CPaintDC oc(this);CRect rect;GetClie ntRect(& rect);CDC <cMem;dcMem.CreateCompatiblEDC220(&dc);CBitmap bmpBackgro und;bmpBackgrou nd.LoadBitmap(IDB_BITMAP_BG);BITMAP bitMap;bmpBackgro un d.GetBitmap(&bitMap);CBit map *pbmpOld=d cMem.SelectObject(&bmpBackgrou nd);de.StretchBlt(O,O,rect.Width(),rect.Height(),&d cMem,0,0,bitMap.bmWidth,bitM ap.bmHeight,SRCCOPY);(3) 定义静态文本颜色和字体大小。这里需要在OnCtlCoor(CDC* pDC, CWnd*pWnd, UINT nCtlColor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论