【《液压动力钳扭矩控制系统上位机设计案例概述》3200字】_第1页
【《液压动力钳扭矩控制系统上位机设计案例概述》3200字】_第2页
【《液压动力钳扭矩控制系统上位机设计案例概述》3200字】_第3页
【《液压动力钳扭矩控制系统上位机设计案例概述》3200字】_第4页
【《液压动力钳扭矩控制系统上位机设计案例概述》3200字】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

-5-液压动力钳扭矩控制系统上位机设计案例概述目录TOC\o"1-3"\h\u1906液压动力钳扭矩控制系统上位机设计案例概述 1211111.1上位机软件开发环境简介 1214531.2上位机软件架构设计 1144811.3上位机主要功能模块的实现 2246091.3.1串口数据传输模块 2305371.3.2解析数据模块 366481.3.3数据库模块 611281.3.4用户界面模块 101.1上位机软件开发环境简介本上位机软件采用VisualStudio(VS)2012开发环境,使用C++语言进行开发。VS是基于Windows平台应用程序的集成开发环境,境(IDE)等整个软件生命周期中的大部分工具,支持C、C++、C#等软件语言。可这些语言使用.NETFramework的功能,能够用于生成XMLWebservices、桌面应用程序和移动应用程序。VS2012简化产品系列,通过整合先前单个产品中的功能并为每个版本加入新的强大功能,更加适合用于开发Windows8专用程序。VS2012具有容量规划、任务板1.2上位机软件架构设计上位机软件主要功能如2.2.3节所述,相应的功能架构如图2-3所示。根据液压动力钳扭矩控制系统的功能架构,设计理论的基本原理,进行软件架构的设计。本上位机软件采用经典的分层架构来实现,如图5-1所示。图5-1上位机软件架构图(1)展示层展示层是面向用户的第一层,通过界面来完成对展示层的相关操作。采用Qt5完成展示层的人机交互功能。(2)业务逻辑层实现上,上位机系统以C++语言为核心,设计了参数设置、实时扭矩监测、数据分析、历史数据等业务逻辑程序,这些程序封装在业务逻辑层中,通过展示层的命令进入相关程序,执行相应的操作。(3)数据层序执行后,将相关命令发送到数据层进行处理,在技术实现上,采用SQLite数据库及1.3上位机主要功能模块的实现为使上位机软件合理有效地运行,采用模块化设计,每个模块都对应上位机软件中不同的功能,例如串口数据传输模块接收测控终端传上来的扭矩、上扣圈数等数据存入内存,并等待数据处理,对扭矩设定值、扭矩告警值、油井号、油管号等信息下发给测控终端。本文上位机软件主要有串口数据传输模块、解析扭矩数据模块、数据库模块和用户界面模块。1.3.1串口数据传输模块数据通信是本系统的重要设计内容。上位机与测控终端之间采用RS485/USB串行通信进行数据传输。测控终端把采集的扭矩、上扣圈数等数据通过串行通信上传到上位机,上位机把作业油井号、油管号、扭矩设定值、扭矩告警设定值等下发给测控终端。液压动力钳扭矩控制系统测控终端与上位机之间的数据传输采用2.3.2节所述的自定义通信协议。本设计中的串口操作主要使用Serialport类。串口数据传输的工作流程如图5-2所示,图5-2(a)为串口接收数据以及接收数据后的相关工作过程,图5-2(b)为串口发送数据工作过程。由图5-2(a)知,先进行串口数据接收,串口接收到数据后,把接收到的数据送入缓存,然后从接收到的数据帧中分离出表2-3的数据内容并缓存,然后再进行数据解析及其后续工作流程。由图5-3(b),串口发送数据的工作过程实现为,当用户需要向测控终端发送启动或停止扭矩测量命令、下发油井号、油管号、扭矩设定值、告警值和速度限定值的时候,在实时监控或参数设置用户界面进行相应操作,上位机根据操作命令和自定义通信协议拼组发送数据帧后,送入缓存,然后发送数据到串口,实现上位机对测控终端的数据传输。图5-2中数据(或数据帧)缓存实为把数据送入数据库操作。数据库操作的相关程序代码见1.3.3节,解析数据及其后续相关工作的此部分程序代码见1.3.2节。(a)串口接收数据及处理工作过程(b)串口发送数据工作过程图5-2串口数据传输工作流程1.3.2解析数据模块根据液压动力钳扭矩控制系统自定义的通信协议,上位机接收到测控终端上传来的一帧数据中的数据内容包含表2-3所示的上报数据和表2-4所示的协议头,上报数据有液压钳作业的时间、井号、油管号、上扣扭矩和上扣圈数;协议头除包括协议名和版本号外,还含有命令和操作信息。如图5-2(a)所示,解析数据模块的工作过程为从数据帧缓存中读出接收到的一帧数据,从一帧数据中分离出表2-3所示的数据内容,然后进根据图3-11所示的数据解析流程进行数据解析,再根据数据解析结果进行后续相应的工作。处理一帧数据的部分程序代码为:如果收到的命令代码是0x0003,操作代码是0x0001,则为上报数据,根据图5-2(a),将上报数据插入数据库,实现该功能的程序代码为:如果收到的是返回结果帧,若返回结果帧所含信息的命令代码为0x0001、操作代码为0x0001,根据表2-5协议的规定或图3-11所示的数据解析流程,则为上位机启动测控终端采集扭矩数据命令的返回结果帧。此时图5-2(a)所示的“数据处理”和“对应操作”,上位机应进行测控终端启动扭矩数据采集后的相应工作,如串口接收数据、解析数据、上报数据等。实现该功能的程序代码为:1.3.3数据库模块液压动力钳扭矩控制系统上位机系统采用SQLite数据库。SQLite是一个进程内务性的SQL数据库引擎,动态连接。SQLite可直接访问其存储文件,支持大多数SQL语句;SQLite提供简单和易于使用的API,可与C/C++、C#、Java等多种程序语言相结合。本上位机系统连接数据库、增加数据库对象记录、查询数据库对象记录和删除数据库对象的记录的部分程序代码如下:1.连接数据库2.增加数据库对象记录(数据写入数据库)3.查询数据库对象记录┊4.删除数据库对象的记录1.3.4用户界面模块用户图形界面是人机交互的重要模块。本上位机软件用户界面采用Qt5开发。Qt是一个跨平台的C++可视化开发平台(C++GUI),机制,完全面向对象。与VisualC++相比,Qt简单方便、力强,可以用于嵌入式开发[30]。目前最新版本为Qt5。根据上位机软件设计方案,上位机界面有实时监控、参数设置、数据分析和历史数据四个主菜单,即本文上位机软件共四个界面:(1)实时监控界面,实时显示监控信息、设备参数信息、监控控制操作按钮和扭矩与圈数关系曲线图;(2)参数设置界面,通过该界面进行串口配置、监测参数设置和参数下发;(3)数据分析界面,进行当前监测数据和历史数据分析的图形展示;(4)历史数据界面,通过输入井号、油管号、时间查询历史扭矩和圈数,列表展示查询结果。因在上扣扭矩和圈数数据实时显示的同时,还要允许用户查询和设置,所以应用程序设计中用到多线程技术[31]。实时监控数据和状态显示。该界面可向工作人员展示监控信息、设备参数信息、监控控制操作按钮和扭矩与圈数关系曲线图。上位机首先通过串口接收测控终端数据帧,然后根据自定义通信协议解析数据并分离出测量到的上扣扭矩和圈数,一方面比较用户设定的扭矩和速度限定值,根据比较结果显示设备参数状态信息,另一方面实时绘制上扣扭矩和圈数关系曲线图。串口接收数据、数据解析及分离和数据库存储数据等的实现见1.3.1-1.3.3节介绍。实时监控界面如图5-7所示。监控信息包括当前监控的井号、油管号和当前使用的计算机串口;设备参数信息包括扭矩上限值、当前测量值和扭矩是否正常的信息,以及速度上限值、当前测量值和扭矩是否正常的信息;监控控制操作按钮包括开始、停止和查询测试操作按钮,工作人员可手动操作,开启和停止扭矩、圈数的监测;扭矩与圈数关系曲线图窗口实时绘制当前作业的液压动力钳的上扣扭矩和圈数关系曲线图,鼠标拖动可以伸缩曲线时间窗。图5-7上位机实时监控界面数据分析和历史数据查询应用页面可以在实时监控数据和状态显示的同时进行。在实时扭矩和圈数数据显示的过程中将测量数据存储进数据库,包括液压动力钳作业日期、时间、油井号、油管号、上扣扭矩、上扣圈数等信息。可以通过作业日期、油井号、油管号查询在某时间段内所有或部分侧量历史数据记录。数据分析界面如图5-8所示。该界面可以进行当前监测数据和历史数据分析的图形展示,可按照井号、油管号和日期查询历史数据,并以图形曲线方式显示历史数据。图5-8上位机数据分析界面历史数据界面如图5-9所示。该界面可通过输入井号、油管号、时间

温馨提示

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

评论

0/150

提交评论