多路数据采集与智能仪表的软件设计与实现

2017-02-18 15:27赵乾李喜鸽
科技创新与应用 2017年3期
关键词:软件设计

赵乾 李喜鸽

摘 要:设计多路数据采集系统具有将安全信号隔离、显示信息、制定报警控制、变送等融合于一体的功能优势,因而常用于4-20mA/0-10V的信号测量系统中,另外,在硬件配置的基础上,结合软件的设计与实现,则能够实现多种传感器类型如电流输出传感器和电压输出型触感器等的接入和实现整体测量、监控功能。

关键词:多路数据采集;智能仪表;软件设计

1 多路数据采集系统主程序的设计与实现

在软件实现方面,采用C语言编写数据采集系统的运行程序,如图1所示为数据采集主程序的实现流程图。

通过数据采集主程序和C语言的编程实现了8路A/D采样功能,在参数设置的基础上,会进入485口接受状态,并且进入8路A/D巡检程序,由上位机控制8路A/D采样方式,进行A/D转换和串口收发功能,如果有通讯标志则进入校验CRC状态,从而构建了循环采样流程方式和固定通道采样两种方式,加强了数据校验,提升了数据采集系统的数据采集精度和速度。最后将数据采集和数据转化的结果通过LED显示功能,如果校验出错,LED也会通过错误显示。

2 软件系统界面设计和任务划分

2.1 软件系统界面设计

智能数据采集器的软件系统界面设计,在一级界面中进行了电压、电路和脉冲三个选项的设置,分别按不同的按钮则能够分别进入到电压信号、脉冲信号和电流信号的检测程序中,之后进入某一个模拟信号的检测窗口,也就是二级界面中,可以选择查看监测情况,也可以返回到一级界面,从新选择要进入的监测程序,如果选择查看则进入到三级界面,对在一级界面中选择的某一种信息采集情况进行查看。在查看窗口中可以通过返回选项直接返回到观察窗口。

2.2 软件系统任务的划分

根据硬件设计和系统需要实现的功能将整个系统划分为8个任务功能模块。任务结构见表1。

2.3 任务之间的相互关系

对于本文的智能数据采集器系统软件的编程而言,系统内部的函数和控制语言可以实现协调多个通道之间的任务处理。

数据采集器一开始工作就进入到系统初始化,也就是任务0阶段来进行其他人物的创建,当创建任务1和任务2之后,相应的两个输入键盘和A/D转化任务会进入ready状态,则将任务0删除。

3 数据采集主程序设计与实现

在数据采集的软件功能方面,主要有三个组成部分,一是系统上位机软件的通信功能;二是系统监控设备硬件I/O状态采集处理功能、控制设备、设备接口协议处理等;三是数据采集设备参数配置。

3.1 数据采集主程序

首先我们应该明确采集的要求,系统要求8路数据采集,被采样的对象包括交流电流值,另外还包括电流的状态和报警信号,所以对采集系统提出了更高的要求数据采集主程序流程图如图2所示:

数据采集主程序主要完成的任务包括:对数据进行采样并进行隔离提高准确度,再完成对信号的采用,这其中就包含采样点的选择和采样数据的存储。要实现以上的功能就要首先对硬件也就是A/D转换器的的初始化,并启动A/D标志,选择好通道并判断状态,把采样来的数据进行A/D转换、预处理并存入寄存器中,方便后续的处理,最后完成通道的切换,仪器高速的巡检各个通道,让每个通道在一个周期內单通道电流值为80个,这个可以通过设定计数器来实现,每个通道进行3次数据采集,来提高采集的精度。

3.2 AD7891的时序

数据采集器的CPU从AD7891中对串行数据的读取方式使一位一位接受进行的,并且将数据进行置低。并且单片机必须在数据读取和传输过程中到保持一致的低电平模式。依据图3-6可得,与CPU从AD7891读写数据都需要先将置低,CPU中的控制寄存器接受芯片中的前六位数据,则不再进行其他数据的接受,并且将接受的6位数据中的前三位即A0、A1和A3配置在A/D采样通道中。

3.3 数字滤波子程序设计

为了能够很好的克服偶然因素引起的拨动干扰,所以数字滤波子程序设计中采用中位值平均滤波法,也就是防脉冲干扰平均滤波法。而且对温度、液位等变化缓慢的被测参数滤波效果比较好。

4 结束语

编写程序采用C语言进行,实现了8路A/D数据采样功能和LED显示和串口通信功能。首先,将A/D转换器AD7891上位机控制采样采集到的12位二进制数据进行实际测量值的转换,并且根据ANSI/IEE标准754-1985将转换而来的实际测量值进一步转化文32位浮点数,在设定的存取区内保存下来,由于一共采集8路数据,用于存储采样数据的空间需要设置32个字节。

猜你喜欢
软件设计
CAN总线通信技术在电梯监控系统中的应用
基于单片机SPCE061A的字幕机点阵式字母电子显示屏的设计制作
电力参数监测系统研究
基于STM8S903K3的序列打螺丝夹具的软件设计
一种VHDL语言代码重用的方法
系统工程方法在计算机软件设计中的应用分析
基于Java语言的手机软件开发技术分析
计算机软件可维护性路径研究
智能温室控制系统的研究与开发