工控机上位机软件的开发历程(三)

  • 数据库设计

原文链接:https://blog.csdn.net/lweiyue/article/details/83140932

数据库设计

首先在数据库的选择上,我们使用了SQL Server。在项目的开始阶段,我们考虑过使用哪种数据库,但很快就定下来了。使用SQL Server最大的原因是以前的项目就是用它,必须继承下来。如果这是全新的项目,那估计选的还是SQL Server。如果用SQL Server跟MySQL去比的话,前者是商业性产品,估计会稳定一点。我们对什么性能、大并发量这样的需求是不强的,数据的安全和稳定是最重要的。到了后面,上位机同时支持了SQLite。我们的上位机完成以后,我们发现,上位机的安装不到10秒,而数据库的安装需要半个小时以上。我感觉这是有点本末倒置的。支持SQLite之后,要使用我们的上位机,安装变得十分简便。当然,我们还不敢把SQLite的版本放在一些重要项目上。

上位机使用的数据表主要有三个。

(1)采集数据表。

(2)设备信息表。

(3)因子信息表。

设备信息表和因子信息表的设计并不难,内容我们也已经在上一节里讨论,这里就不赘述了。

采集数据表是用来保存测量的数据的,设计要点有:

(1)数据一般是一分钟保存一条,如果保存10年以上的话,就会有五百多万条数据。

(2)查询的时候,会查分钟数据、小时数据、日数据、年数据等。

(3)每个站点的因子数量是不一样的,有的只有十个不到的因子,有的有两三百个因子。

(4)设备是经常发生变化的,有时候增加一台设备,有时候换掉一台设备,采集数据表的表结构需要动态变化。

根据上面的需求,我们做了这样的设计:

(1)一个数据用两列存储,一个存数值,一个存状态。在存数值的时候,我们用了float类型,因为采集到的数据都是这个类型。但是我们在统计的时候,还有存储大整数的时候遇到了问题。所以还是建议用double去存储数据。

(2)列有时候多,有时候少,但数据库不能没有一个规定的格式。我们把列数定为100,也就是最多存储50个数据。如果超过了50,我们使用分页的方法。例如第38个数据,它在第38列,第0页。而第72个数据,它在第22列,第1页。这种设计其实在查询的时候是比较复杂的,性能也是比较差的。但超过50个数据的站点并不多。

(3)在因子信息表里面,记录了某个因子对应采集数据表里的第几列。要查询一个数据,必须结果因子信息表和采集数据表。

(4)当设备、因子发生变化的时候,采集数据表里的数据不发生变化,只是因子信息表里的对应关系发生改变。

在数据库里加入页的设计其实是不太好的,我们建议按照下面的设计:

(1)最初的列数是0,当添加因子的时候,动态添加列。这样的话,在首次改变结构的时候可能会慢一点,但后面的查询会变得简单。

(2)列删除了意味着数据就不见了,很多时候我们需要先把数据备份好再去删除列。

工控机上位机软件的开发历程(三)相关推荐

  1. mfc上位机网络接收图片并显示_工控机上位机软件的开发历程

    微信号 :thinger_swj微博:@新阁程序园扫码关注 上位机软件的主要功能是采集各仪器的数据,然后存储起来,并传送到环保局平台. 刚开始使用的是组态软件(用以显示流程图),然后再开发了报表软件. ...

  2. python做工控机_「上位机软件」工控机上位机软件的开发历程(一) - seo实验室...

    上位机软件 本人就职于一家环境监测公司,上位机软件的主要功能是采集各仪器的数据,然后存储起来,并传送到环保局平台. 刚到公司的时候,公司使用的是组态软件(用以显示流程图),然后再开发了报表软件.数据上 ...

  3. 【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    随着机器人技术的不断发展,我们可以在许多简单重复,危险的岗位上看到机器人的身影,移动机器人凭借其在复杂环境下工作,具有自行感知.自行规划.自我决策功能的能力,它可以在不同的环境中移动并执行任务,在人类 ...

  4. 上位机软件定制开发,应该如何选择软件开发服务商

    一.什么是上位机软件 如果说PLC是工业控制的小脑,那么上位机软件就是其大脑.在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,上位机往往是数字信号的处理和命令的下发,下位机往往是模拟 ...

  5. 串口数据波形显示_【专题教程第6期】SEGGER的J-Scope波形上位机软件,RTT模式波形上传可飙到500KB/S...

    [专题教程第6期]SEGGER的J-Scope波形上位机软件,RTT模式波形上传速度可狂飙到500KB/S左右 说明: 1.在实际项目中,很多时候,我们需要将传感器或者ADC的数值以波形的形式显示.通 ...

  6. 上位机软件开发流程是怎样的?上位机开发软件分享

    随着科技的发展, 上位机软件开发已经成为当今社会的一个重要组成部分.上位机软件开发是一种技术,它可以帮助用户更好地控制和管理计算机系统.它可以帮助用户更有效地完成任务,提高工作效率,提高生产力. 上位 ...

  7. A_A07_003 AS608指纹模块上位机软件使用

    A_A07_003 AS608指纹模块上位机软件使用 一.软件获取 二.测试用模块与接线 三.上位机界面分块和功能 1.指纹图像显示区域 2.硬件信息 3.打开设备 4.设备配置 5.信息显示 6.图 ...

  8. 泰克示波器上位机软件功能分享,这几款你都用过吗?

    泰克示波器作为电子工程师的常用仪器,在它的背后有很多的程控接口,那他们都是在什么时候发挥作用的呢?今天纳米软件Namisoft小编就给大家介绍一下几款泰克示波器上位机软件 及功能. 一.泰克示波器Te ...

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

    嵌入式与卫星导航定位上位机软件开发(基于MFC框架) 1 串口通信--MSComm 控件 2 数据绘图--ChartCtrl 3 小结 专业课程要求,在SEED-DEC6713开发板上实现实时的单点定 ...

最新文章

  1. 搭建hue遇到的错误 Couldn't find log associated with operation handle: OperationHandle
  2. mac pro下安装gdb和delve调试器
  3. 【Android Protobuf 序列化】Protobuf 服务器与客户端通信 ( TCP 通信中使用 Protobuf )
  4. nginx 安装、操作命令、基本配置与参数说明
  5. MFC利用控制台输出调试信息的方法
  6. 如何处理服务器磁盘沾满
  7. Netty in action—Netty传输服务
  8. (EasyX入门与实战)第五章 添加音乐
  9. 层次分析法、模糊综合评测法实例分析(涵盖各个过程讲解、原创实例示范、MATLAB源码公布)
  10. 工作流软件哪个好?介绍几款知名的工作流软件
  11. 计算机共享输入命令是什么意思,笔记本电脑共享WiFi命令怎么使用
  12. 远程桌面由于以下原因无法连接远程计算机,win10远程桌面提示由于以下原因之一无法连接的解决教程...
  13. RabbitMQ消息队列(九):Publisher的消息确认机制
  14. 智能点餐mysql框架图_SpringBoot微信点餐系统--P3数据库设计
  15. 【2023亲测有效】Pandownload 归来!加速效果极佳!
  16. Linux-无密码访问、远程拷贝、无密码登录
  17. 读“王东升 新时空 硅碳融合的产业革命”拙见
  18. 解决T400\T500\W500等安装win10驱动后黑屏问题
  19. 【OpenCV学习笔记】之图像轮廓特征与图像的矩
  20. 提取数据_基于众包的可视化图表数据提取

热门文章

  1. Qt的半透明方法总结
  2. QiYuAdmin-metronic首页的js和css介绍(SpringBoot项目实战)
  3. 计算机毕业设计之基于微信小程序的优惠券领取系统
  4. 《数据安全治理白皮书3.0》正式发布(附下载)
  5. 线下失守、高端难攻,vivo 2020开年太难
  6. paypal注册难吗?
  7. python 通过邮件控制电脑 实现远程控制
  8. ERP会计科目 疱丁解
  9. 交流感应电动机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. 腾讯 2015秋招笔试题 编程题2:九宫格填数