基于Qt数控系统的人机界面设计与研究
关键字:CNC系统;HMI;WinCE;Qt
摘要
随着数控系统人机界面需求的增长,本文建立和开发一种基于AM3352的数控系统的人机界面系统。本文介绍了WinCE系统、Qt语言的设计以及开发嵌入式数控系统人机界面的方法。人机界面的设计基于Qt平台及相关的应用,包括总体框架设计、g代码编辑器设计、研究文件管理器主要部分的设计和图形仿真。对于G02和G03图形仿真纸本文也提供了更详细的算法步骤。实验和测试结果表明,数控系统是能够满足人机交互和控制要求的系统。
引言
随着计算机技术的飞速发展,嵌入式技术如今已成为一种热门的新趋势。在嵌入式技术的发展下,作为一种具有工业控制功能的专用计算机系统,数控系统变得越来越复杂,并越来越向网络化、智能化和小型化方向发展。为了快速开发嵌入式数控系统控制程序,摆脱传统接口通用性差、稳定性差、软件开发生命周期短等缺点,人们开始研究基于嵌入式系统的人机界面。由于嵌入式操作系统需要跨平台开发语言,因此本文采用Qt跨平台开发语言作为开放式数控系统设计开发人机界面开发语言。开放式数控系统的发展对推动工业自动化的发展起着重要的作用。本文基于EPC-9200控制面板 WinCE嵌入式数控系统人机界面平台,采用Qt作为开发语言。
Qt引入和开发环境搭建
Qt介绍
Qt是由挪威TrollTech公司提供的跨平台C 图形用户界面库,Qt支持包括Linux在内的所有UNIX系统,当然也支持WinNT / WinCE,Win95 / 98平台。Qt基本上都有像Openwin,GTK,MFC,VCL,ATL这类东西,但Qt有以下优点:(1)良好的跨平台功能,(2)面向对象,(3)丰富的API,(4)支持2D / 3D图形的渲染,支持OpenGL(5)许多开发文档(6)支持XML。
开发环境搭建
基于WinCE开发需求的数控系统需要拥有基于WinCE系统的PC开发环境,即构建“VS Qt SDK”开发环境。具体的开发环境如下:硬件包括安装WIN7 PC机,预装Windows Embedded CE6.0 EPC-9200I-W工业控制面板软件,包括Visual Studio2008,WinCE6.0_Standard_SDK,Microsoft ActiveSync4.5。然后Qt4.8(更高版本或者只是需要更高版本的VS)配置VS2008编译好的类库,使得开发者可以在VS2008上开发Qt应用程序。环境搭建完成。
数控(CNC)系统
数控(CNC)系统功能需求
根据实际需要,构建了数控系统主界面的设计框图,如图1所示。数控主界面分为坐标、程序编辑、偏置设置、处理、监控、维护、诊断、参数设置、系统8个模块,这8个模块作为第一层。通过显示器下边缘的8个按钮来切换模块和命令。其中,坐标模块主要负责坐标切换,并拥有清除功能;程序编辑模块主要实现编辑处理程序、文件管理和图形模拟这部分的功能;部分复位设置模块主要有伪影坐标系统设置、道具设置、上刀的功能;处理监控模块主要用于图形模拟显示和处理记录,有清除时间累计、图形调整等功能;维护模块主要包括警报显示、网络设置和信息备份的功能;诊断模块主要是对运行的系统进行快速诊断,包括PLC状态、系统信息、共享信息、程序变量和操作记录;系统制造商和系统配置文件中引入了参数矩阵、应用参数、参数和补偿表数据系统模块等参数。
图1 CNC主接口图
表1 函数名
功能1 |
函数名 |
功能2 |
函数名 |
hellip; |
坐标 |
Coordinate() |
1 坐标开关 |
SwitchCoordinate() |
|
2 清除相对坐标 |
ClearRelaCoordinate() |
|||
hellip; |
hellip; |
|||
程序编辑 |
ProgramEditor() |
1 文件管理 |
FileManagement() |
|
2 图形模拟 |
SimulateGraph() |
|||
3 删除行 |
DeleteRow() |
|||
4 复制 |
Copy() |
|||
5 粘贴hellip; |
Paste()hellip; |
|||
偏置设置 |
SetOffset() |
1 工件坐标 |
WorkpieceCoordnate() |
|
2 工具设置 |
SettingTool()hellip; |
|||
处理监视器 |
Coordinate() |
1 图形模拟显示 |
DisplayAnalogGraph() |
|
2 MPI |
MPI() |
|||
3 处理设置 |
SetManuInformation() |
|||
4 处理记录 |
ProcessRecordForm() |
|||
5 表格hellip; |
hellip; |
|||
维护 |
Maintenance() |
1 报警显示 |
Alarm() |
|
2 系统设置 |
SystemSettings() |
|||
3 数据备份 |
DataBackup() |
|||
诊断功能 |
DiagnosticFunction() |
1 PLC状态 |
PLCStatus() |
|
2 共享数据 |
SharedData() |
|||
3 操作记录 |
OperationRecord() |
|||
参数设置 |
ParameterSetting() |
1 参数汇总表 |
ParameterSumTable() |
|
2 应用参数 |
ApplicationPara()hellip; |
|||
系统 |
System() |
hellip; |
hellip; |
模块接口定义和通信机制
为了在后期开展合作与交流,本文按照一定的规则定义了模块的功能,如表1所示。定义好后,各个功能模块之间就可以直接通过类名或函数名进行调用,并可减少多人合作编程中命名不一致的问题。
Qt的信号和槽的之间的通信机制是通过“QPushButton”类实现的,跳转功能使用“click()”槽来实现。为了调整菜单,例如在头文件(MainWindow.h)的主窗口中包含坐标的模块头文件(coordinateialog.h),并在主窗口类中将坐标类(CoordinateDialog)定义为坐标对象(坐标),然后在主窗口内的一个源文件(MainWindow.cpp)中写入坐标菜单的按钮槽,当按下该按钮的坐标时,按下Groove功能的坐标按钮,显示主界面的坐标。时隙代码是“coordinate.showFullScreen()”,即全屏坐标对象。功能模块接口跳转等类似。
CNC接口设计和开发
框架设计
数控系统框架的人机界面如图2所示。主要分为四部分:警告栏、状态栏、工具栏和菜单栏。运行一个程序的状态栏,包括当前菜单的商标或标志,名称和位置,显示日期和时间;栏是显示的重点,用来显示当前的文件信息;包括数控系统运行状态和报警显示在内的报警列;菜单栏在类模块中提及。
图2 数控系统框架的人机界面
G代码编辑器设计
数控系统的界面设计的一个主要特征是程序编辑器,包括g代码编辑器,是界面设计的核心。为了更方便编辑,g代码编辑器将具有以下功能:编辑、自动完成和语法检测等功能特性,其工作流程如图3所示。通过键盘编辑继承的“QPlainTextEdit”类别进行编辑;自动完成功能,继承“QListWidget”类,通过查询库文件中的代码提示自动完成的相关功能;语法检测功能是使用正则表达式逐行检查g代码,使用“QRegExp”类完成编程。
图3 G代码编辑器工作流程
文件管理器设计
文件管理功能是指对文件进行一些基本操作,除了一些基本的新增功能,如复制,粘贴,打开,保存,另存为等外,还包括位置的选择,其中涉及内部和外部存储。内部存储,指的是文件存储在本地。外部存储,指的是文件存储外部存储设备,如外部USB闪存驱动器或便携式硬盘驱动器。以USB记忆棒为例,文件传送工作流程如图4所示。
图4 文件传递工作流程
图形仿真设计
Qt开发图形程序有很大的优势,因为“QPainter”类有很多绘图功能,包括直线、圆弧、圆形、矩形和其他基本功能。 数控程序代码的图形模拟为“G00”,“G01”,“G02”和“G03”。“G00”指定位,直接使用“moveTo()”功能; “G01”指直线插补,使用“lineTo()”可以直接完成; “G02”和“G03”是指圆弧插补顺时针和逆时针圆弧插补,使用绘制圆弧函数“arcTo(a)”实现,其具有三个参数:边界矩形“矩形”,起始角度“startAngle”,弧度“sweepLength” ,但是由于这个函数的参数不是根据实际情况来定,因而将直接在后面讨论。
圆弧插补算法如图5所示,将圆划分为8个部分,分别讨论了8个部分圆弧的角度和方向以及圆弧的位置。 编程基于已知起点和终点坐标的半径坐标,并找到三个参数“rectangle(矩形)”,“startAngle(起始角度)”和“sweepLength(扫描长度)”的变量值。 算法步骤如下:
(1)将起点坐标(x1,y1),终点坐标(x2,y2)以及获得的半径坐标(x0,y0),代入以下“rectangle”中计算。
QRectF rectangle(x0-r,y0-r,2 * r,2 * r);
- 根据公式(1),计算起点和中心的连线同水平线之间的夹角(锐角)“alpha;”,并进一步讨论“startAngle”的值是“180-alpha;”还是“alpha;”。
|
(1) |
- 根据公式(2)求“sweepLength”。
|
(2) |
- 根据所需的“arcTo (rectangle,startAngle,sweepLength)”绘制图形。
图5 弧分布
测试结果
整个系统的接口程序运行良好,因此每个小模块都可以构建单独的项目,然后在测试运行后整合到一个主要项目中。本文的分期包括g代码语法检查测试部分和ARC测试,测试结果如图6所示。如图所示,“#300”非法变量语法测试问题框会弹出,显示变量无效后的第一行,更改后再测试问题消失,程序语法正确; 图中的弧线轨迹是用g代码的顺序绘制的,注意弧线测试程序的采用,只是圆弧的光滑度很大程度上需要加以改进。
图
全文共4321字,剩余内容已隐藏,支付完成后下载完整资料
英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[11763],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。