精华内容
下载资源
问答
  • 上位机软件开发
    千次阅读
    2022-05-06 16:21:20

    【应用场景】
    随着智能设备的增加,软件+硬件的结合越来越普遍。当前的许多设备都有自己的SDK,软件通过它可以跟设备进行数据交互。软件可以发送指令给设备,设备也可以把检测结果传给软件,让软件进行数据分析和处理。相对于下位机(智能设备),这里的软件就是指上位机软件。

    【上位机软件】
    这里介绍几个我们开发过的上位机软件案例。
    1、脉搏和血压检测设备上位机软件
    A  开发语言:C#
    B  通讯方式:通过蓝牙串口与下位机连接
    C  通道数:4通道
    D 主要参数:信号频率、增益模式、前置放大、主放大、叠加次数、过采样倍数、发射电压
    E  采集数据:时间和电压的关系数据
    F  数据保存:以DAT文件保存

    2、智能灯控制设备上位机软件
    A  开发语言:VC++
    B  通讯方式:PC机与主机通过串口通讯,主机与子机通过485通讯
    C  通道数:1主机可以有最多99子机
    D 主要参数:红外延时、雷达延时、led亮度、时控、主灯、关联灯等
    E  采集数据:时控数据、功耗数据
    F  数据保存:保存成文件

    3、工件缺陷检测设备上位机软件
    A  开发语言:QT、C++
    B  通讯方式:MODBUS
    C  通道数:8通道
    D 主要参数:增益、电压、脉冲宽度、重复频率、范围、位移、宽度、高度、声速、阻尼
    E  采集数据:工件不同位置的检测结果
    F  数据保存:保存成文件

    4、流动物体体积测量上位机软件
    A  开发语言:VC++
    B  通讯方式: MODBUS
    C  通道数:双通道
    D 主要参数:曝光、帧率、增益、范围、当前速度、存储时间、计算周期、皮带速度
    E  采集数据:实时点云数据、体积数据
    F  数据保存:存入数据库

    更多相关内容
  • 上位机配置软件(VS2010开发),vs上位机软件开发教程,C#源码.rar,可执行文件,NetRelayConfig.exe,配置程序C#源代码,NetRelayConfig,Form1.Designer.cs,Program.cs,obj,x86,Debug,NetRelayConfig.pdb,NetRelayConfig....
  • 工控上位机软件开发

    万次阅读 多人点赞 2019-05-28 09:12:22
    工控上位机软件开发全流程自研-上位机软件开发-工业级控制系统一、上位机软件开发底层设计二、上下位机通信的安全性三、上位机软件接收与存储研发四、数据清洗与图形展示研发五、上位机软件发送指令与回调六、上位机...

    全流程自研之上位机软件开发-工业级控制系统

    简介:大家都知道工业级控制系统(亦或物联网),简单可分为两部分组成,上位机和下位机。上位机由服务器和上位机软件组成,其功能是数据存储、复杂计算、图形显示、个人操控等。下位机由单片机(PLC)和嵌入式软件组成,其功能是数据采集、简单数据处理、数据上传、控制各类设备等。本人在暖通(供暖控制)、能源(煤层气开采控制)、医疗设备(医疗实验数据采集)、物联网数控(智能家居、家电)等行业,从事多年工控上位机软件开发,所以本文主要介绍上位机开发与部署的全流程。

    一、上位机软件开发底层设计

    任何一个工业级的实现,都不是凭空想象出来的,所以上位机软件开发也离不开底层设计。底层设计包括开发语言选取、开发框架设计、底层业务模块切割、存储数据模块建模,其核心是业务模块切割,依据是下上位机通讯协议。不论下位机是自研开发(画图、焊板子、烧程序),还是现成的组态软件、工控软件,都有其通信协议,即数据上传接口规范。自研的下位机,协议可以自定。上位机软件开发,其接收数据的标准,必须建立在这些数据接口规范之上(自研亦叫协议)。

    二、上下位机通信的安全性

    不论在任何行业,只要设计到生产活动,必然会涉及到安全,工控软件安全主要有两方面内容:
    1、数据安全
    2、控制安全
    上传的数据错误,直接影响上位机管理人员的操控决策。下发的指令被人篡改,直接影响生产设备控制,甚至导致生产事故发生,可想安全是多么重要的一件事。
    下上位机通信安全保障措施:服务器安全、公网专线、局域网加密、登录身份认证、双向传输数据加解密、双向传输数据校验、设备校准、现场屏蔽等。
    属于上位机软件需要实现的有:服务器安全、公网专线、局域网加密、登录身份认证、双向传输数据加解密、双向传输数据校验。

    三、上位机软件接收与存储研发

    上位机软件其实质是一个数据处理服务器,所以上位机需要拥有独立的IP,并给下位机开放数据传输接口,以便下位机随时定位上位机且能上传数据。如果只是采集数据(即没有控制),上下位机采用动态链接比较省网络资源,只要拥有独立地址,下位机即可随时定位上位机。
    下位机串口信息上传数据(字节流,一般采用16进制编码),上位机按照通信协议(一、中讲到的),利用动态适配算法,解析成自己语言所能处理的编码(如JAVA转换成utf8),解析码后,透传给上位机软件核心处理节点,进行数据存储、分析、清洗、展示。
    由于下位机终端节点非常多,实时数据非常庞大(我处理的两年达到T级别),在存储和数据关联上,需要根据自己的业务要求,设计适合自己的数据库。我当时采用分库、分表、主键关联,以提高存储和查询的速度。现在的NoSql数据库,或者文件系统都挺适合存储工业数据的,存储、抽取、分析及后续大数据,在此基础上去做,都非常合适。

    四、数据清洗与图形展示研发

    待续……

    五、上位机软件发送指令与回调

    六、上位机软件开发-应用行业

    展开全文
  • 了解或咨询上位机软件开发/LabVIEW软件开发/C#软件开发/QT软件开发,请访问AgainDo再度科技官网:www.againdo.com 概述 该软件为线束连接器自动化生产设备上位机软件,系统采用高级编程语言C#开发,基于WPF框架,...

    了解或咨询 上位机软件开发/LabVIEW软件开发/C#软件开发/QT软件开发,请访问AgainDo再度科技官网:www.againdo.com

    概述

    该软件为线束连接器自动化生产设备上位机软件,系统采用高级编程语言C#开发,基于WPF框架,下位机为西门子S7-1500系列PLC,上位机软件主要功能为结合自动化设备提供相应的人机操作界面,协助操作人员完成对设备的控制和监控,软件通过与PLC协议交互完成对整套系统的自动化控制,包含用户登录、主界面、自动化生产控制、工程调试、工作站配置、数据信息显示、生产信息统计、参数配方管理、IO点位展示和配置等模块界面。

    系统中包含超过10个工作站,所有PLC点位总数超过5000个,用户通过软件界面可灵活配置生产参数,除大大减轻操作人员工作量以外,还极大的减少了由于需要配置参数较多容易导致的参数配置错误问题,优化了生产效果和流程,获得了客户极好的反响。

    软件运行环境

    电脑系统:win10

    PLC型号:S7-1500系列

    上位机软件:Visual Studio 2019

    .NET版本:.NET Framework 4.8

    数据库:SQLite

    软件功能模块

    • 用户登录

    • 权限管理

    • 工站配置、状态显示

    • 配方编辑和管理

    • PLC变量灵活配置

    • 报警显示和管理

    • 生产数据统计和分析

    • 设备参数配置

    • 数据库管理

    • 多语言切换

    • 消息通知

    • 日志记录和查询

    • 手动调试

    • IO功能调试

    部分软件界面

    1、主界面

    2、工站整体概览界面

    3、工站配置界面

    4、配方编辑和预览界面(一)

    5、配方编辑和预览界面(二)

    6、消息通知界面

    7、PLC消息监控界面

    8、IO界面

    9、生产数据统计和显示界面

    了解或咨询 上位机软件开发/LabVIEW软件开发/C#软件开发/QT软件开发,请访问AgainDo再度科技官网:www.againdo.com

    展开全文
  • 专业课程要求,在SEED-DEC6713开发板上实现实时的单点定位程序解算,将结果以自定义格式...然后,开发一个类似于串口助手的PC上位机软件,用于从串口接收开发板输出的导航定位结果,并完成数据解码和定位结果显示界面。

    嵌入式与卫星导航定位上位机软件开发(基于MFC框架)

    专业课程要求,在SEED-DEC6713开发板上实现实时的单点定位程序解算,将结果以自定义格式编码通过串口依次输出。

    然后,开发一个类似于串口助手的PC上位机软件,用于从串口接收开发板输出的导航定位结果,并完成数据解码和定位结果显示界面。

    讲道理,我的嵌入式学得实在是一塌糊涂,界面开发也几乎是从零起步,磨了好几个星期才把上位机软件写出来,踩了无数的坑,因此在这做个总结。


    最终效果图如下:

    在这里插入图片描述

    在这里插入图片描述


    关于上位机软件的开发,我下载了一个别人写好的串口调试助手,在这个基础上进行修改,实现二进制导航定位结果解码,然后开发了实时的动态绘图界面。

    总体为在MFC界面开发框架下,利用 MSComm 控件完成串行端口通信编程,基于 ChartCtrl 源代码库实现实时绘图操作。

    下载链接:串口调试助手源代码(MFC+SComm)


    1 串口通信——MSComm 控件

    采用 VS2017 开发平台提供的串行通信编程 ActiveX 控件——MSComm
    (Microsoft Communications Control),完成串行端口的数据传输和数据接收。

    与中断类似,MSComm 控件通过事件驱动通讯处理串行端口交互。

    当在串口接收缓冲区中有字符或字符长度达到设定阈值限度时,可以利用 MSComm 控件的OnComm事件捕获并处理这些通讯事件。


    2 数据绘图——ChartCtrl

    ChartCtrl 库是一个基于 C++的 MFC 扩展控件,能够用于界面图表绘制。

    ChartCtrl 库的基本属性功能包括:绘制折线图、柱状图,设置坐标轴、标题、图例、标注,设置坐标区背景颜色、网格、线型等等。

    在这里插入图片描述

    通过 ChartCtrlInit()函数初始化绘图界面,设定坐标轴数值范围等。

    如下,以X 坐标结果变化图为例,界面初始化设定了标题“X 坐标”和绘图背景色 RGB(255,255, 255),即为白色;对于坐标轴 XY 采用 SetAutomatic 模式,根据计算数值自动设定坐标刻度范围。

    m_chartctrl.EnableRefresh(true);
    m_chartctrlX.GetTitle()->AddString(_T("X 坐标"));//设置标题
    m_chartctrlX.SetBackColor(RGB(255, 255, 255));//设置背景色
    
    //设置 XY 坐标轴
    pAxis = m_chartctrlX.CreateStandardAxis(CChartCtrl::BottomAxis);
    pAxis->SetAutomatic(true);
    pAxis = m_chartctrlX.CreateStandardAxis(CChartCtrl::LeftAxis);
    pAxis->SetAutomatic(true);
    

    通过 DataShow ()函数实现折线图绘制,代码如下所示:输入数组 xb、yb 即为横纵坐标数据,len 对应绘图点数。

    void DataShow(double *xb, double *yb, int len, CChartCtrl* m_chartctrl) {
    	m_chartctrl->EnableRefresh(false);
    	CChartLineSerie *pLineSerie;
    	m_chartctrl->RemoveAllSeries();
    	pLineSerie = m_chartctrl->CreateLineSerie();
    	pLineSerie->SetSeriesOrdering(poNoOrdering);//设置为无序
    	pLineSerie->AddPoints(xb, yb, len);
    	pLineSerie->SetWidth(3);
    	UpdateWindow();
    	m_chartctrl->EnableRefresh(true);
    }
    

    3 小结

    总体来说,这个上位机软件开发工作量还是挺多的,我一个人写了可能三个星期?主要是太菜,几乎全部从零起步。

    最开始试了很多现有的串口调试助手代码,有的版本太老,VS环境也不兼容了,有的功能又过于简单……建议以后还是多学学 C# 或者 Qt 吧,开发界面还是好用些。

    关于串口通信操作,我尝试使用了 MSComm 控件,CSerialPort 串口类, Windows API 来进行串口操作,后两者实在是搞不懂,最后还是使用了MSComm 控件,触发机制类似于中断也比较好理解。

    关于图表绘制操作,可用的库很多,比如ChartCtrl、TeeChart、Mschart 等等。关于ChartCtrl的教程其实比较少,但是后两者我也没搞明白,还好最后死磕俩星期做完了。

    目前我写的这个上位机软件还是存在很多问题:

    1. 原始的串口调试助手不能自动识别端口号,我去机房连开发板测试,一旦端口号不在可选项里就没辙了,我就只能手动改代码了;
    2. 定位结果输出和绘图不能保证完全同步,绘图界面获取定位结果是通过定时器固定时间间隔不断刷新,有新数据就进行绘制,我也没想明白怎么实现同步;
    3. ChartCtrl绘图怎么解决图例位置的问题,我查到有代码使用GetLegend()->UndockLegend(),奇怪的是我用这个函数毫无反应。
    4. 关于横坐标怎么动态显示GPS周内秒这个问题,到最后也没解决。

    参考博客:

    1. VS2010基于对话框的MFC串口通信简明例程
    2. 基于MFC的串口助手
    3. VC++ MFC利用ChartCtrl快速实现波形显示
    4. C++第四十四篇 – MFC使用ChartCtrl绘制动态曲线
    5. MFC使用ChartCtrl绘制曲线
    6. MFC中两个对话框之间数据传递
    7. MFC中全局变量的定义及使用
    展开全文
  • labview 上位机软件开发——实用技巧1000例

    万次阅读 多人点赞 2021-04-13 12:02:31
    labview 上位机软件开发——实用技巧1000例 标题商与余数函数的用法 今天跟大家分享一个实用小技巧——商与余数函数的用法 1.真实工况: 一个测试台上位软件开发项目中,一个被试元件,要求做寿命试验(比如做100万...
  • 基于C#的工控上位机软件开发从入门到学废,需要几步? 随着工控产品的应用,开始大幅度渗透进民用领域。涉及的工控产品范围广泛,如PLC、DCS、变频器、仪表、电机、SCADA、低压及配电元器件等。 准备工具 开发工具 ...
  • 在嵌入式项目开发中,无论是单片机项目、嵌入式Linux项目、FPGA项目,上位机始终是一个很重要的部分,主要用于: 数据显示(波形、温度等) 用户控制(LED,继电器等) 文件传输(图像、音频等) 下位机(单片机)与...
  • 上位机配置软件(VS2010开发),vs上位机软件开发教程,C#源码
  • 利用QT和QCustomplot绘制实时曲线 开发板采用的野火指南者,上位机程序采用的QCustomPlot进行绘制。代码非常简单,见下文。。。 1:mainwindow.cpp 在这里插入代码片 #include "mainwindow.h" #include "ui_...
  • 煤炭热量仪上位机软件开发,赵小禹,刘淑桢,煤的发热量是评价煤质的一项重要指标,是区分煤品质好坏的关键因素。测量煤炭的发热量,在煤的生产、销售和使用中,都有十分重要
  • 无线传感器网络作物水分状况监测系统的上位机软件开发归类.pdf
  • 1.7-工控上位机软件开发平台介绍

    万次阅读 多人点赞 2020-07-19 14:57:47
    前面几章一直没有提到上位机的另一个主要使用场合,即“工业上位机软件”。主要是因为本人没有接触过,不敢贸然发表见解类的文章。最近在机缘巧合下,对“工业上位机软件”有了一些初步的了解。在这里和大家分享一下...
  • 上位机软件开发入门

    万次阅读 2016-12-08 22:32:48
    上位机是指:人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。 下位机是直接控制设备获取设备状况的的计算机,一般是PLC/...上下位机都需要编程,都有专门的开发系统。
  • 基于C#的上位机开发实战指南,介绍了上位机软件开发过程中重点内容以及注意事项。
  • 一、什么是上位机软件 北京新万技术 如果说PLC是工业控制的小脑,那么上位机软件就是其大脑。在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,上位机往往是数字信号的处理和命令的下发,下位...
  • 利用DriverStudio、DDK以及VC6.0联合开发工具,采用基于对象的C++语言,实现了 PCIE总线设备的WDM式驱动程序和应用程序即上位机开发,以及上位机界面的数据速率显示功能。在Windows XP系统下,驱动程序能够稳定运行。...
  • 使用PYQT/PYside2库开发一款上位机软件,控制摄像头采集信息并进行图像处理,使用六轴平移台控制相机位置。 2、工具 PyCharm Community Edition 2020.1.3 x64 Python 3.7 PySide2 5.15.0 opencv-python 4.3.0.36 3...
  • 上位机软件系统开发工具简介

    千次阅读 2020-11-13 21:15:54
    本系统采用 MFC 作为上位机软件开发工具,主要原因是: (1) MFC 使用 C++作为底层编写语言,并对大多数常用的 Windows API 进行了类的封装,并以成员函数或变量的形式开放接口供用户使用,这对在 Windows 系...
  • ————来自半导体行业,一个上位机软件开发工程师 我的工作侧重于软件二次开发,因行业问题,软件需要对电机,泵等硬件进行通信,按照一定的顺序对其进行控制,对Wafer进行加工,以达到优秀的工艺效果。 我...
  • 一、什么是上位机软件 如果说PLC是工业控制的小脑,那么上位机软件就是其大脑。在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,上位机往往是数字信号的处理和命令的下发,下位机往往是模拟量...
  • 上位机软件开发 数据采集 plc通信 视觉软件开发 c#软件开发 送源码 编号:4199655842294040龙拓电子
  • 工控机上位机软件开发历程(二)仪器归一化设计 原文链接:https://blog.csdn.net/lweiyue/article/details/83113699 仪器归一化设计 这是具体内容的第一篇,我们先来讲述仪器的归一化设计。 仪器是各种功能都有...
  • 上位机开发流程

    千次阅读 2022-03-09 15:20:59
    软件的测试不仅是要确保软件的质量,还要给开发人员提供信息,以方便其为风险评估做相应的准备,重要的是他要贯穿在整个软件开发的过程中,保证整个软件开发的过程是高质量的。 在交付之前,开发者需要进行多次的软...
  • 工控机上位机软件开发历程(一) 原文链接:https://blog.csdn.net/lweiyue/article/details/83112974 上位机软件的主要功能是采集各仪器的数据,然后存储起来,并传送到环保局平台。 刚到公司的时候,公司使用的...
  • marlin 改CNC 上位机软件支持3,4,5,6轴雕刻机,marlin串口调试工具
  • 上位机开发(开篇)

    千次阅读 2022-06-09 06:25:45
    【 声明:版权所有,欢迎转载,请勿用于商业用途。...1、上位机开发的几个用途 上位机的存在,主要是为了满足客户的若干需求。比如说,部分算法的运行只有在算力比较高的上位机才能运行,嵌入式设备需要升级版
  • 工控机上位机软件开发历程(四)上位机架构 原文链接:https://blog.csdn.net/lweiyue/article/details/83145355 上位机架构 上位机使用C#、WPF技术开发。软件并不是一个exe了事,这样维护和协作都很难去做。 ...
  • 目标:开发一个串口上位机软件,用于和单片机等进行串口通信。 内部原理:调用串口类,接收到数据进行解析和显示 效果:提供了友好的简洁美观界面,下面就是软件的界面:(支持hex十六进制显示和发送) 代码...
  • 上位机开发(怎么开发上位机

    千次阅读 2022-06-09 20:17:04
    当然,不管是什么样的上位机开发,有一些软件的架构设计是相通的。比如说图形框架、配置文件、日志、mysql、串口、协议、控件等等,这部分可以先了解下。1、图形框架 图形框架方面,尽量选择简单的图形开发方法。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,801
精华内容 4,320
关键字:

上位机软件开发