基于单片机和组态王的温度监控系统的设计

摘 要 : 介绍了以 MSP430 单片机为核心 , 建立基于 DS18B20 和组态王的温度采集和监控系统。主要研究了单片机和组态王的通用通讯协议。按照 KingView 提供的通信协议 , 设计组态王与单片机的通信程序 , 实现了组态王与M SP430 单片机的直接串行通讯。在中药提取装置的温度监控系统应用中 , 该通讯方法可以将提取装置中的实时温度快速传输到上位机。实验证明, 该系统运行状况稳定、实时性好、硬件设计简单、数据传输稳定等特点。适合在工业场合中应用。
关键词 : M SP430 单片机 ; 组态王 ; 串行通讯 ; DS18B20

0 引 言

温度的测量和控制在工业过程和科学研究中非常重要, 所以在上位机对温度的实时监控是很有必要的。单片机以其强大的现场数据处理能力、低廉的价格、紧凑的系统结构、高度的灵活性, 微小的功耗等一系列优良特性已广泛应用于工业测量和控制系统中。组态王则以其工作性能稳定可靠、人机界面友善、硬件配置方便以及方便与管理或控制计算机联网通信等优良特性, 提供了对工业控制现场大量数据进行采集、监控、处理的解决方案, 在各种工业控制领域中同样得到了大量的使用。本文设计了基于单总线数字温度传感器 DS l8B20 的小型中药提取装置测温系统 ,主控芯片采用美国 T I 公司的 MSP430 单片机 , 采用通用单片机通讯协议, 通过串口实现了单片机与组态王的通讯 , 最后将采集到的数据通过串口传送到通用机或工控机, 由组态王对采集到的现场数据进行分析、存储或显示。

1 测温系统设计

1. 1 温度传感器的选择

传统的温度测量元件比如热电阻、热电偶之类的模拟传感器的优点是成本低, 但是为了实现精确的温度测量 , 需要比较复杂的电路设计。首先保证提供 1 个稳定的恒流源, 其次模拟传感器的输出信号都比较微弱 , 需要设计后续放大电路和A /D 转换电路 , 从而获取所测量到温度值的数字信号。目前 , 数字传感器由于其高精度、多功能和总线标准化广泛应用在工业生产中。在中药提取过程中, 提取液温度变化范围为室温到 80   , 误差不超过 0. 5 , 温度显示分辨率为 0. 1 。所以本系统选择美国 DA LLAS公司生产的单总线数字温度传感器 DS18B20 。单总线是美国 DA LLAS 公司专有的 1 种特殊的串行数据通信方式, 通 过 1 条连接线就可以实现控制、通信和供电。单总线技术的一大特点是可以在 1 根总线上挂接多个单总线器件 , 从而实现多点测量。DS18B20 采用 3 T O 92 封装 , 外形像三极管( 如图 1) 。测温范围 - 55~ + 125 , - 10~ + 85范围内精度可以达到 0. 5   , 测温分辨率 最高可 达0. 062 5

1. 2 硬件电路设计

测温系统主控芯片采用美国 TI 公司的超低功耗 16 位单片机 M SP430F149   , 温度检测采用单总线数字温度传感器 DS18B20, 本系统在单总线上挂了 3 个温度传感器 , 分别对提取装置3 个不同工作点进行检测 , 通过 RS232 接口近距离的和上位机进行通信, 由于单片机的串行发送和接收是 TT L 电平 , PC COM 1 EIA 电平 , 因此单片机需加接 M AX3232 芯片 , 通过串行电缆线和 PC 相连接。整个测温系统电路图如图 2 所示 , 采用 3. 3 V 供电 , 功耗低 ,结构简单。

1. 3 测温系统软件设计

该测温系统程序包括主程序、 DS18B20 温度采集子程序和组态王与单片机串口通信子程序。其中温度采集模块定时的采集 3 个温度传感器的温度值 ; DS18B20 的操作必须严格按照时序进行, 访问 DS18B20 的顺序如下 : 初始化、ROM 命令、 RAM 命令 。每次 DS 18B20 被访问时 , 都必须严格按照这个顺序进行操作, 否则 DS18B20 就不会有响应。系统在开始时要读取所有在线的 DS18B20 的序列号, 在读取一路温度之前要发送 1 DS18B20 序列号 , 进行寻址。温度采集模块流程图如图 3 所示。

RS232 通信模块主要完成和上位机组态王的通信。RS232 接收组态王采用的是中断方式 , 发送给组态王采用的是查询方式 , 在具体软件编写过程中要注意 RS232 接收和发送切换的时序, 否则 RS232 不能正常工作。单片机与组态王通讯流程图如图 4 所示。

2 单片机与组态王的通信协议

单片机与组态王有 3 种通讯方法 : 1) 用户根据组态王提供的驱动程序开发包开发自己的通讯驱动程序; 2) 通过比较复杂的动态数据交换( DDE) 方式进行通讯 ; 3) 利用组态王提供的与单片机的通用通讯协议[8] 。本系统采用第3) 种方法 , 严格按照 K ingView 提供的通信协议 , 设计组态王与单片机通信。

2. 1 组态王的通讯设置

在组态王的工程浏览器中点击设备 COM 1, 在右面窗口中双击新建, 出现设备配置向导 , 选智能模块 单片机 通用单片机 HEX 串口 , 点下一步 , 设备命名为单片机 , 选择串口 COM 1, 配置设备地址为 0, 一直点下一步到完成( 如图 5 所示 )   , 需要注意的是组态王中配置的设备地址是单片机的 RA M 地址 , 由单片机中的程序决定。单片机这个设备建好后, 双击左侧设备 COM 1 对通讯参数进行设置, 与单片机程序中的一致即可   。本系统设置的通讯参数: 8 位数据位 , 2 位停止位 , 波特率为 9 600 bps, 无奇偶校验位( 如图 6 所示) 。

2. 2 采用串口调试助手研究组态王与单片机的通信协议

采用串口调试助手 S SCom3. 2 模拟组态王 , 对组态王与单片机通信协议 进行研究 : 运行单片机 , 串口调试助手发送 05000401, 即组态王发送地址请求格式 , 对照组态王与单片机的通用通讯协议中的数据传输格式 1, 05 是请求帧的开始代码 ENQ, 00 是设备地址 S ta, 04 是请求帧的结束代码 EOT , 对十六进制数 05 00、 04 做 CRC 校验 , 结果为01 。串口调试助手接收到 06000305 的字串 , 对照通用通讯协议, 可以看出收到的是格式 2 的数据 , 即单片机应答地址格式( 如图 7 所示 )

根据组态王读数据的时序 : 组态王发送地址请求格式1, 单片机应答地址格式 2, 接着组态王进行读数据请求格式 3: 0552010000010453, 对照格式 3, 05 是请求帧的开始代码 ENQ, 52 是读标志 R, 01 是需要交换的数据 类型DataType, 0000 为数据偏移地址 DataAddr, 01 为要读取的数据的数量 Dat aNum, 04 是请求帧的结束代码 EOT , 对十六进制数 05 、50、01、0000、01、04 做 CRC 校验 , 结果为 53
串口调试助手接收到 060100710305 的字串 , 对照组态王的协议, 可以看出收到的是格式 4 的数据 , 即单片机应答读数据格式( 如图 8 所示 )

2. 3 单片机通讯程序设计

M SP430F149 单片机工作在多机通信位方式时 , 单片机的U RXWIE 置位为 1 。当组态王开始运行后 , 就向单片机不停的发送地址请求格式, 单片机收到请求后 , 首先 , 对其进行 CRC 校验 , 然后对地址请求格式中的地址与单片机程序中预设的地址进行匹配, 如果满足条件 , 则按单片机答应地址格式通过串行口进行应答, 并将 URXWIE 复位为 0, 即单片机下次接收数据处于正常状态。下位机进行地址 判断的程序框架如下:      

   
if( ( rx0dat a[ 0] = = 0x05) & & ( rx0data[ 1] = = 0x00)
& & ( rx0data [ 2] = = 0x04) & & ( U RCTL0& URXWIE)
& & ( CRCok= = 1) ) / / 判断是否为本机地址
{
/ / 准备发送区数据
URCT L0& = ~ URXWIE;
}
组态王接收到单片机的应答地址格式后发出读数据请求格式, 单片机收到请求后 , 把温度模块 DS18B20 采集的数据, 按单片机应答读数据的格式组成应答帧 ( 格式 4) , 通过串口发送给组态王, 并把 URXWIE 置位为 1 完成一次完整通信。读数据请求程序框架如下:
if( ( rx0data[ 0] = = 0x05) & & ( rx0data [ 1] = = 0x52)
& & ( rx0data[ 2] = = 0x03) & & ( ! ( URCTL0& URXWIE) )
& & (CRCok= = 1) ) / / 判断组态王要求的数据格式
{
/ / 准备发送区数据
URCT L0= URXWIE;
/ / 只有收到地址字符时才允许中断
}

3 系统验证

将所设计的系统 , 应用在超声波中药提取过程中 , 对提取过程中的温度实时监测, 并将装置顶部、中部以及底部的温度测量值进行平均值计算和显示, 如图 9 所示。从监控画面中可以看出提取装置中的顶部温度为 24. 375 , 中部温度为24. 375 , 底部温度为 24. 500 0   。结果表明该通讯系统实现了温度的实时显示, 并且达到了很高的精度。

4 结 论

本文采用通用单片机通讯协议 , 设计了基于组态王和M SP430 单片机的测温系统 , 实现了温度曲线的实时显示和历史曲线的查询。实践表明, 该系统运行状况稳定 , 实时性好, 设计简单 , 成本低廉 , 适合在工业场合中应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/862264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现在父盒子中点击生成子盒子并识别父盒子边界不溢出

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</…

Excel单元格输入逐字动态提示可选输入效果制作

Excel单元格输入逐字动态提示可选输入效果制作。INDEX函数整理动态列表&#xff0c;再配合IF函数干净界面&#xff0c;“数据验证”完成点选。 (笔记模板由python脚本于2024年06月27日 22:26:14创建&#xff0c;本篇笔记适合喜欢用Excel处理数据的coder翻阅) 【学习的细节是欢悦…

浅谈制造业EHS管理需要关注的重点

在快速发展的制造业中&#xff0c;EHS&#xff08;环境、健康、安全&#xff09;管理体系如同一道坚实的屏障&#xff0c;守护着企业的绿色与安全。那么&#xff0c;这个管理体系到底包含哪些内容呢&#xff1f;接下来&#xff0c;让我们一同探寻其奥秘。 一、EHS管理体系的丰富…

vue3日历选择器

倒叙日历&#xff1a; <template><div class"date-picker"><div class"column" wheel"onYearScroll"><div v-for"(year, index) in displayedYears" :key"index" :class"{current: year current…

SyntaxError: Unexpected token ‘??=‘

前端运行报错&#xff1a; globalThis.GLOBAL_NX_VERSION ?? GLOBAL_NX_VERSION;^^^SyntaxError: Unexpected token ??解决&#xff1a; 检查node版本 node -v当前使用的是14.21.3的版本&#xff0c;切换到一个16.0.0以上的版本即可&#xff0c;推荐使用nvm管理node版本 …

全球视角下的AI安全挑战:面向未来的准备

云安全联盟大中华区即将推出人工智能安全认证专家&#xff08;Certified Artificial Intelligence Security Professional&#xff0c;CAISP&#xff09;培训及认证计划&#xff0c;将在Q3全面上线。 在全球科技创新的洪流中&#xff0c;人工智能&#xff08;AI&#xff09;无…

vue+fineReport 使用前端搜索+报表显示数据

--fineReprot 将需要搜索的参数添加到模版参数 sql&#xff1a; --前端传递参数 注&#xff1a;因为每次点击搜索的结果需要不一样&#xff0c;还要传递一个时间戳的参数&#xff1a; let timesamp new Date().getTime()

项目测试计划(Word)

1简介 1.1 目的 1.2 范围 2. 测试参考文档和测试提交文档 2.1 测试参考文档 2.2 测试提交文档 3. 测试策略 3.1整体测试策略 3.2功能测试 3.3 界面测试 3.4 性能测试 3.5 安全性测试 3.6 工具 4 测试阶段进入和退出标准 4.1进入标准 4.2退出标准 5 测试范围 5.1需要测试的模块 …

uboot基本使用网络命令和从服务器端下载linux内核启动

网络命令ip地址设置: setenv gmac_debug 0; setenv mdio_intf rgmii; setenv bootdelay 1; setenv ethaddr 00:xxxx:81:70; // mac地址 setenv ipaddr xxx; //开发板 IP 地址 setenv netmask 255.255.255.0; setenv gatewayip xxx.1; setenv serverip xxxx; //服…

企业数据治理必备工具:智能元数据管理平台

当下&#xff0c;企业拥有海量数据&#xff0c;但仅拥有数据并不能释放数据价值。我们还需要深入了解数据的各种属性、来源和关系等信息。这些信息被称为“元数据”&#xff0c;即用于描述数据的数据。 假设&#xff0c;把我们每个人的身份证、户口本都当做数据&#xff0c;那…

使用 Python 注销、重启、关闭计算机

众所周知&#xff0c;Python 是一种功能强大的脚本语言。在本文中&#xff0c;将编写一个 Python 程序本控制计算机&#xff0c;实现计算机的注销、重启、关闭等操作。 Python 中的 os 模块&#xff0c;提供了一种与操作系统交互的方式&#xff0c;可以使用 os.system() 函数在…

统信桌面操作系统上使用命令行添加软件图标到任务栏

原文链接&#xff1a;统信桌面操作系统上使用命令行添加软件图标到任务栏 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在统信桌面操作系统上使用命令行添加软件图标到任务栏的文章。通过命令行将常用软件的图标添加到任务栏&#xff0c;可以快速启动软件&#xf…

20240627优雅草新产品取得原始软件著作权授权

https://doc.youyacao.com/22/2153 20240627优雅草新产品取得原始软件著作权授权 介绍 历程消息&#xff1a;优雅草2024年新产品最新取得原始著作权两份&#xff0c;2款产品将在近期完成为商业授权产品在蜻蜓松鼠官网售卖&#xff0c;本两款产品是智慧园区能源监测管理系统解…

3D Wizard(巫师法师人物角色模型)

3D Wizard低多边形模型,可用于RPG射击游戏和其他项目。角色顶点数:44154 无HDRP 仅默认着色器 顶点数:44154 装配有人形骷髅。 下载:​​Unity资源商店链接资源下载链接 效果图:

windows 10 通过wsl安装ubuntu子系统教程

本章教程,主要记录我昨天通过Windows10 wsl安装Ubuntu的安装过程。其中遇到很多问题。 一、确定是否满足条件 系统要求操作系统版本: 需要 Windows 10 版本 1903 或更高版本,且操作系统内部版本号为 18362 或更高。 建议使用最新版本的 Windows 10 以获得最佳性能和最新功能…

金航标电子

金航标&#xff08;www.kinghelm.com.cn&#xff09;电子成立以来&#xff0c;一直深耕微波射频领域的技术应用和发展&#xff0c;金航标研发生产“kinghelm”的北斗GPS天线连接器射频端子接插件等产品&#xff0c;受到车载导航定位广大终端客户的欢迎。宋仕强说&#xff0c;随…

OpenAI“断供”对我们的影响之我见

1.新闻 OpenAI决定于7月关闭国内GPT访问 近日&#xff0c;美国人工智能公司OpenAI宣布&#xff0c;将于7月起关闭对中国内地的GPT访问&#xff0c;此举引发了业内广泛关注和讨论。以下是关于此新闻的具体信息&#xff1a; 关闭时间&#xff1a;OpenAI官方推送的邮件指出&…

springboot基于web模式的师资管理系统的设计与实现-计算机毕业设计源码040928

摘 要 随着互联网趋势的到来&#xff0c;各行各业都在考虑利用互联网将自己推广出去&#xff0c;最好方式就是建立自己的互联网系统&#xff0c;并对其进行维护和管理。在现实运用中&#xff0c;应用软件的工作规则和开发步骤&#xff0c;采用Java技术建设师资管理系统 。 本设…

LabVIEW 控制 Tucsen 相机

LabVIEW 控制 Tucsen 相机 ucsen 是一家知名的显微镜相机制造商&#xff0c;其相机产品广泛应用于科研、工业和医疗等领域。本文将介绍如何使用 LabVIEW 软件来控制 Tucsen 相机&#xff0c;涵盖相机的基本情况、硬件和软件要求、具体的控制步骤和编程示例。通过使用 LabVIEW&…

qt实现打开pdf(阅读器)功能用什么库比较合适

关于这个问题&#xff0c;网上搜一下&#xff0c;可以看到非常多的相关博客和例子&#xff0c;可以先看看这个总结性的博客&#xff08;https://zhuanlan.zhihu.com/p/480973072&#xff09; 该博客讲得比较清楚了&#xff0c;这里我再补充一下吧&#xff08;qt官方也给出了一些…