简单测控系统的设计与实现

1 系统工作原理

如图1所示,数据采集监控系统包括上位计算机及下位机系统。下位机由ARM工控开发平台,数据采集板、模拟量输出板、LCD液晶显示屏及SD存储卡组成,使用μC/OSⅡ实时多任务操作系统,对任务进行调度与管理,实现数据采集板对外界模拟量的多通道采集功能,将数据存储于SD卡,并通过USB或以太网传送至上位计算机;在上位机的控制下,下位机接收模拟最输出指令,完成模拟量输出功能;LCD液晶显示屏用于显示下位机的工作状态信息。

图1 数据采集监控系统组成图

上位计算机通过USB或以太网与下位机进行通讯,接收下位机的采集数据进行实时监控,图形化显示数据变化曲线,并可对模拟量输出进行设置,从而控制下位机模拟量输出功能。

2 下位机硬件组成

根据系统的工作原理,采用周立功公司的Smart 2400ARM7工控开发板,其ARM为LPC2478,开发板内嵌μC/OSⅡ实时多任务操作系统,集成10/1OOM以太网PHY芯片、以太网接口、USB接口、98KB SRAM、SD卡插槽、STN和TFT液晶接口、512KB Flash及MiniI SA总线,通过MiniI SA总线可以直接挂载不同功能的扩展板。开发板组成如图2所示。

图2 开发板组成示意图

图2 开发板组成示意图使用周立功公司的MiniISA-8208BT数据采集板及MiniISA8204CT模拟量输出板,均基于MiniISA总线结构,通过总线与工控开发平台进行通讯。MiniISA8208BT 为12位的A/D转换设备,包含8路差分或者16路单端隔离模拟信号输入;MiniISA8204CT是4通道12位的模拟量输出板,这两款扩展板的性能指标均符合系统的需要。

3 软件设计

将软件系统分成下位机软件及上位机监控软件分别进行设计。

3.1下位机软件设计

下位机采用μC/OSⅡ实时多任务操作系统,μC/OSⅡ是一个源码公开、可移植、可固化、可裁剪、抢占式的实时多任务操作系统,完全基于优先级来管理任务,总是使处于就绪态的优先级最高的任务运行。不支持时间片轮转调度,所以必须按照任务的重要性和实时性要求程度,将系统功能合理的分解为若干不同优先级的任务,任务及优先级划分的合理性将直接影响软件设计的质量。

对系统功能进行任务划分时,首先要使所有任务满足实时性要求,即使在最坏的情况下,系统中所有对实时性有要求的功能都能够正常实现;并且任务数目要合理,简化软件系统以降低对资源的需求。根据数据采集监控系统的工作原理及任务划分的原则,将下位机系统任务划分为USB通讯任务、以太网通讯任务、SD卡写数据文件任务、数据采集任务、LCD液晶屏显示任务、模拟量输出任务。此外,赋予紧迫性、执行快捷性任务较高优先级,人机接口显示任务实时性要求低,赋予较低优先级。优先级划分如下所示。

①TASK1任务,优先级1,USB通讯任务;

②TASK2任务,优先级2,以太网通讯任务;

③TASK3任务,优先级3,SD卡写数据文件任务;

④TASK4任务,优先级4,数据采集任务;

⑤TASK5任务,优先级5,模拟量输出任务;

⑥TASK6任务,优先级6,LCD液晶屏显示任务。

下位机软件系统中,任务间的通讯主要是通过消息邮箱来完成的。消息邮箱是用来在任务之间或中断与任务之间传递一个指针,以便任务可以通过指针发送和接收任意类型的数据。定义3个消息邮箱,消息邮箱1用于数据采集任务向通讯发送任务传递数据;消息邮箱2用于通讯接收任务与模拟量输出任务之间的通信;消息邮箱3用于数据采集任务向SD卡写数据文件任务发送数据。如以下程序语句所示,使用消息邮箱必须先定义消息邮箱指针,再创建消息邮箱,最后等待其它任务发送邮箱或者发送邮箱至其它任务。

OS_EVENT*mbox;//定义消息邮箱指针

mbox=OSMboxCreate(NULL);//创建消息邮箱

OSMboxPend(mbox,0,&err);//等待消息邮箱数据

OSMboxPost(mbox,Buf);//发送消息邮箱,数据为缓冲区Buf中数据

应用程序运行时,首先调用OSInit()初始化μC/OSⅡ,接着通过调用OSTaskCreate()依次创建任务,随后执行OSStart()启动多任务环境,从而进行多任务管理调度。下位机程序模块及流程如图3所示。

图3 下位机程序模块及流程图

图3下位机程序模块及流程图数据采集任务中,板卡初始化完成后,使用定时器周期定时启动采集功能,以查询方式读取各个采集端口的数据,并且进行算术平均滤波处理,连续读取5次采样值进行算术平均运算,然后通过消息邮箱将数据传递给通讯任务及SD卡写数据文件任务。

使用ADS1.2开发下位机应用程序,利用LPC2400系列专用工程模板,由于Smart2400开发板内嵌μC/OSⅡ操作系统,所以开发过程中不必进行移植操作系统工作,只需将μC/OSⅡ源文件加载到工程中,对程序所用到的源文件、驱动文件、头文件等进行相应的修改、加载,编译链接成功后,即可通过仿真器烧写至Flash中。

3.2上位机软件设计

上位机数据采集监控软件使用VC++6.0开发。当USB与以太网均连通时,使用USB进行通讯。主要实现以下几个功能:

①通过USB及以太网与下位机进行通讯;

②创建数据接收线程,通过通讯接口接收下位机采集的数据,实时显示于监控界面上,同时绘制数据变化曲线图;

③通过上位机软件设定相应的模拟量输出值,控制下位机进行模拟量输出工作;

④显示通讯接口的连接状态及下位机工作状况信息。上位机软件流程如图4所示。

图4 上位机软件流程图

4 实验验证

为了验证数据采集监控系统,将模拟量输出板的4个输出通道分别与数据采集板的采集通道1、2、3、4连接,使用上位机软件控制模拟量输出板输出模拟电压,初始值为1.5V,经过一段延迟时间后线性减少至1.0V,最终保持在1.0V,延迟时间由数据采集监控软件设置,设置为100s.下位机IP地址设为192 168 1.2, 上位机IP地址设为192 168 1.3,使两者位于同一局域网内。数据采集监控系统工作时,上位机软件运行情况如图5所示。

图5 数据采集监控软件运行界面

上位机软件"设置"按钮按下后,下位机模拟量输出板开始输出4通道模拟电压,输出值从1.5V经过100s线性减至1.0V,数据采集板采集模拟电压并将数据传送至上位机及储存至SD卡。上位机软件对采集数据进行实时监控,并绘制数据变化曲线。通过实验验证,此系统成功实现了数据采集监控功能,完成了数据的采集、监控、存储及模拟量的输出,系统运行过程中具有良好的实时性及稳定性。

5 结论

本文对基于ARM的多通道实时数据采集监控系统进行设计与实现。下位机采用μC/OSⅡ实时多任务操作系统,实现了数据的采集、存储及模拟量的输出,具有人机接口显示功能;上位机软件成功完成了对采集数据的实时监控显示及对模拟量输出的控制。整个系统具有精度高、运行稳定、实时性好、抗干扰能力强等特点,能够有效地应用于一般的系统监控和武器系统中。

已标记关键词 清除标记
相关推荐
本文设计了基于STM32的现场温度测控系统。现代科技飞速发展,微控制产品已经渗透到各个行业。我国的工业和农业需要智能产品来精确的测控环境的温度。比如大棚中种植作物。大棚中的温度与外界环境的温度有很大差别,很多作物对大棚中的温度环境要求严格,但是一般温度计又不能精确的显示出具体的温度,且反应迟缓。假如不能控制在农作物生长需求温度范围内,将会降低产量,给生产和生活带来影响。所以我们设计了一种能够较为精确测量控制的现场温度测控系统。 本系统以STM32F103VCT6芯片为核心,分为六大功能模块。实现通过DS18B20传感器读取当前的实时温度并显示在触摸显示屏上,并通过对定时器的应用将当前时间显示在触摸显示屏上,通过对TFTLCD触摸显示屏的开发与应用实现温度上限值、温度下限值、温度设定值设置功能,设置范围从-99.9℃到999.9℃,并将LED与蜂鸣器结合为报警模块使当前实时温度不满足正常条件时或温度设置错误时系统报警提示,除此之外该系统可以进行十点温度采样并保存记录,可以在在触摸显示屏上以数字形式与折线图形式两种方式查看温度采样数据,通过对USART的应用实现通过串口2与PC的通信,将实时测量的温度值每0.5s一次传输给PC显示。本说明书针对温度传感器(DS18B20)模块做详细说明。 本系统经过模块的测试和系统的整体调试,实现了对实时温度的现场采集、监控、保存、发送。
本书系统阐述微机测控技术,涉及面宽,包括:计算机控制理论,微机测控系统常用元器件(放大器、比较器、多路模拟开关、集成稳压器、光电招合器、新型传感器、存储器、总线、显示器、键盘、A/D、D从、可编程I/O接口芯片、等)应用技术,硬件电路和接口技术,控制算法和程序设计。并给出很多工程实例,包括硬件和软件,并加以分析。本书是作者在多年教学和科研的基础上写成的,有些内容是作者的科研成果。本书中所用微机包括单片机8051和8098以及IBM—PC机及其兼容机,以8051和8098为主。本书理论结合实际,重在应用。为此,尽量做到叙述详细,并给出具体参数、用法和程序清单,以便读者进行设计时引用和查阅。\r\n\r\n 本书叙述由浅入深,深入浅出,便于自学,适用的读者面宽,不仅可作为高等学校工业自动化和自动控制专业的教材,也可作为高等学校计算机应用、自动化仪表、电气技术、电气测量、电子应用技术、通信技术、机电一体化、冶金、石油、化工等专业的学生和科技人员的自学用书和参考书,还可起到设计手册的作用,尤其对于正在进行毕业设计的学生. 目 录 第1章 概 述 1. 1 微型机实时控制系统的组成 1. 2 微型机控制系统的分类 第2童 微型机测控系统常用器件 2. 1 集成运算放大器应用要点 2. 2 测量放大器 2. 3 变压器耦合隔离放大器 2. 4 集成电压比较器 2. 5 采样保持器 2. 6 多路模拟开关 2. 7 光电招合器. 光电耦合放大器和固态继电器 2. 8 集成稳压器和高精度稳压器 2. 9 系统监控集成电路MAX703~709/813L 第3章 工业控制计算机技术要点 3. 1 微型计算机的选用 3. 2 MCS—51单片机的结构 3. 3 MCS—51单片机的定时器. 串行口和中断系统 3. 4 MCS—96单片机的结构 3. 5 MCS—96的I/O部件 3. 6 工业PC系列微型计算机 第4章 单片机存储系统扩展 4. 1 常用寄存器 触发器. 锁存器和译码器 4. 2 EPROM及其接口 4. 3 EEPROM及其与单片机接口 4. 4 RAM和NVRAM及其接口 4. 5 串行EEPROM M9346及其接口和程序 第5章 标准总线和串行通信 5. 1 标准总线概述 5. 2 STD总线及STD总线标准 IEEE961标准 5. 3 单片机STD总线CPU模板设计问题 5. 4 8098单片机STD总线模板设计举例 5. 5 RS—232—C串行总线接口标准 5. 6 RS—499和RS—423/422/485标准 5. 7 20mA电流环串行接口 5. 8 串行通信接口电路 5. 9 可编程异步通信控制器8250
<p> <strong><span style="font-size:20px;color:#FF0000;">本课程主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者</span></strong> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">1. 包含:<span style="color:#FFFF00;background-color:#FF0000;">项目源码、</span><span style="color:#FFFF00;background-color:#FF0000;">项目文档、数据库脚本、软件工具</span>等所有资料</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">2. 手把手的带你从零开始部署运行本套系统</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">3. 该项目附带的源码资料可作为毕设使用</span></strong></span> </p> <p> <span style="color:#FF0000;"><strong><span style="font-size:18px;">4. 提供技术答疑和远程协助指导</span></strong></span><strong><span style="font-size:18px;"></span></strong> </p> <p> <br /> </p> <p> <span style="font-size:18px;"><strong>项目运行截图:</strong></span> </p> <p> <strong><span style="font-size:18px;">1)系统登陆界面</span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015433522.png" alt="" /><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">2)学生模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241015575966.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">3)教师模块</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016127898.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">4)系统管理员</span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016281177.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><img src="https://img-bss.csdn.net/202002241016369884.png" alt="" /></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p> <p> <strong><span style="font-size:18px;"><strong><span style="font-size:18px;">更多Java毕设项目请关注我的毕设系列课程 <a href="https://edu.csdn.net/lecturer/2104">https://edu.csdn.net/lecturer/2104</a></span></strong></span></strong> </p> <p> <strong><span style="font-size:18px;"><br /> </span></strong> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页