s三重极简 发表于 2020-2-14 11:52

基于LabVIEW的过控实验平台设计完整开源代码(本科毕设)

本帖最后由 s三重极简 于 2020-2-14 11:54 编辑

概述本程序为本科毕设《基于基于LabVIEW的过控实验平台设计》的具体实现,为作者学习LabVIEW近一周之后开始着手设计,设计一周后转向其他学习项目,之后到答辩之前偶尔修修补补,在网友面向晨曦帮助进行了程序的整体结构以及UI优化,从开始到完工横跨两个月。
可供LabVIEW初学者借鉴的主要内容包括:
[*]数据库与LabVIEW的ODBC连接
[*]登录注册系统设计(关于修改密码之类的功能会有所提及)
[*]公告轮播显示功能的实现
[*]不同选项卡之间切换的基本实现
[*]PID调节实验的三种不同实现方式

[*]直接使用LabVIEW的基础控件实现PID实验
[*]使用Matlab脚本节点实现仿真
[*]通过OPC通讯的方式实现LabVIEW和Simulink的联合仿真
[*]自动报表功能的实现

[*]自动生成word实验报告(数据+图像)
[*]自动excel报表
[*]网友面向晨曦添加的功能较为丰富的用户管理系统(具体功能读者可自行研究2.0版本,不作展示)
具体的介绍和完整代码已经放在GitHub上了,供有需要者参考。
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-
接下来是效果展示图:后边的几个GIF可能加载太慢(具体见GitHub)
ODBC连接ODBC的连接方式及设置方式以及有无数大佬发过极其详细的帖子了,读者自行百度即可,这里只讲主要思路。
数据库我最初选择的是MySQL,本人对数据库几乎一无所知,所以这里推荐没有数据库基础的朋友使用Navicat For MySQL这款可视化数据库设计软件,可以省去很多麻烦。终版为使用Access数据库实现的登录系统,读者可参考程序研究实现方法。
这里放几张过程图:

https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/Navicat%E4%B8%8EMySQL%E5%BB%BA%E7%AB%8B%E8%BF%9E%E6%8E%A5.pngNavicat与MySQL建立连接
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E5%BB%BA%E7%AB%8B%E4%BF%A1%E6%81%AF%E8%A1%A8.png建立信息表
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E8%BF%9B%E8%A1%8C%E8%A1%A8%E8%AE%BE%E8%AE%A1.png进行表设计
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E8%BF%9B%E8%A1%8C%E8%A1%A8%E8%AE%BE%E8%AE%A1.png进行表设计
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E5%9C%A8%E5%91%BD%E4%BB%A4%E7%AA%97%E5%8F%A3%E6%9F%A5%E7%9C%8B%E5%B7%B2%E5%BB%BA%E7%AB%8B%E6%95%B0%E6%8D%AE%E5%BA%93.png在命令窗口查看已建立数据库
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E5%BB%BA%E7%AB%8BODBC%E6%95%B0%E6%8D%AE%E8%BF%9E%E6%8E%A5.png建立ODBC数据连接

这里可能会出现一个问题,32位LabVIEW和64位的其他程序不兼容,可以百度搜索应用程序池,将下图的启用32位程序设置成TRUE可以解决很多32位64位不兼容的问题。
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E8%BF%9B%E8%A1%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%BB%98%E8%AE%A4%E8%AE%BE%E7%BD%AE.png进行应用程序默认设置
程序框图预览https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E4%BC%98%E5%8C%96%E5%90%8E%E7%A8%8B%E5%BA%8F.png优化后程序
动图效果展示https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/GIF/%E7%99%BB%E5%BD%95.gif登录
公告
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/GIF/%E6%AD%A3%E7%A1%AE%E7%BB%93%E6%9E%9C.gif正确结果
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/GIF/%E9%94%99%E8%AF%AF%E7%BB%93%E6%9E%9C.gif错误结果
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/GIF/%E5%AE%9E%E9%AA%8C%E6%8A%A5%E8%A1%A8.gif

实验报表
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/GIF/OPC.gif与Simulink联合仿真
注:1.实验二的基于Matlab脚本节点的PID实现未做动态演示,程序部分非常简单,一目了然。2.与Simulink的OPC通讯方法这里列举一下重点,读者可参考项目文件下的OPC1.slx文件及cosimulation.lvlib配置结合下面的主要步骤尝试实现  (1)安装LabVIEW的DSC模块  (2)新建IO服务器https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E6%96%B0%E5%BB%BAIO%E6%9C%8D%E5%8A%A1%E5%99%A8.png  (3)新建共享变量  (4)在LabVIEW中配置共享变量https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E5%9C%A8LabVIEW%E4%B8%AD%E9%85%8D%E7%BD%AE%E5%85%B1%E4%BA%AB%E5%8F%98%E9%87%8F.png  (5)在Simulink中配置OPC属性https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-/raw/master/img/%E5%9C%A8Simulink%E4%B8%AD%E9%85%8D%E7%BD%AEOPC%E5%B1%9E%E6%80%A7.png3.实验报表系统相对简单,程序中有详细案例。这里为方便读者快速掌握方法提两个关键词:word中通过"书签",excel中通过"别名"即类似于A1,C3这种属性来对数据插入点进行定位。4.最终项目为CX-毕设文件夹,初版和初次修改版可能有一定参考价值所以提供VI供需要者下载。

s三重极简 发表于 2020-2-14 12:02

具体请看GitHub:
https://github.com/NarrownessSmasher/-LabVIEW-Online-Laboratory-

yjdgtg 发表于 2020-4-12 14:02

非常不错,大牛

maga喷火龙 发表于 2022-2-11 21:10

瞅一瞅
页: [1]
查看完整版本: 基于LabVIEW的过控实验平台设计完整开源代码(本科毕设)