APP下载

一种多通路数据采集系统快速实现方法

2022-05-13马志艳

现代电子技术 2022年10期
关键词:总线数据库传感器

马志艳,石 敏

(1.湖北工业大学 农业机械工程研究设计院,湖北 武汉 430068;2.湖北省农业机械工程研究设计院,湖北 武汉 430068)

0 引言

“智能”时代的到来引发大量数据采集需求,无论是机械设备、生物环境等领域还是航天航空、军事、金融等行业都需要大量的数据采集。目前市面上的采集设备在通用数据采集领域已经达到较高水平,但面对多种类型并且数量较多的传感器同时采集搭建系统时,时间和经济成本都较高。基于此,本文提出一种多通路数据采集系统快速实现方法,以满足在多传感器场合数据采集需求。LabVIEW 虚拟仪器软件是图形化的编程语言,被工业界、学术界和研究实验室所采用,在电力能源、农业机械、高温等领域都有着非常广泛的应用。万茂科等设计散热器的监测平台,采用三个同类型的传感器仅对电压一种模拟量进行采集,依据采集电压进行拟合得到最终温度值,监测平台搭建采集量少、费力。金开军等基于无线设备的数据采集,在低温环境中无线设备供电问题上对无线设备提出要求,但无线设备成本较高。韩宾等主要基于单一的从设备上挂载多节点实现多通道数据采集,系统精度高但多传感器时应用拓展性较差。针对不同种类的多传感器数据采集快速、低成本搭建系统,本文提出一种基于RS 485 总线模块化形式设计的多通路数据采集方案。

1 系统设计

RS 485 接口采用一对平衡驱动差分信号线,属于半双工通信方式。RS 485 总线有强大的抗共膜干扰能力,总线中最多可接128 个设备,实际传输距离超过1 km。因为远距离、多节点以及传输线低成本的特性,使RS 485 总线在自动化领域应用十分广泛。利用RS 485 总线进行组网,各个传感器数据经不同采集终端后通过ModBus RTU 通信协议封装流入总线,最后传输至监测主机。

1.1 采集平台搭建

本文以某冷库数据采集系统为例,为实现对温度场和实时运行工况数据的采集,该系统需要采集27 路温度、4 路流量、6 路压力。由于温度采集量相对较多,采用两个工业级温度采集模块DAM PT16 即可实现对27 路温度进行采集。在DAM PT16 内部集成24 位A/D,测温精度达±0.1,内嵌数字滤波采集温度稳定不跳变,每个模块支持16 路温度同时采集。温度传感器采用三线制PT100 热敏电阻温度传感器,其测量范围为-200~650 ℃;冷库内部空间较大,温度传感器遍布所需线长偏长,温度传感器的线损修正为380 mΩ/℃,可根据实际情况进行修正以保证采集精度。工业级模拟量采集模块DAM 10AIAO 完成对系统中流量、压力等信号采集。DAM 10AIAO 内部集成12 位A/D,分辨率为1 4 096,信号类型支持4~20 mA/0~10 V,支持10 路模拟量的同时采集。涡街流量计口径为15 mm,测量范围为0.3~5 m/h,通过测量卡曼涡街分离频率便可计算出瞬时流量。压力传感器测量范围为0~2 MPa,测量介质温度范围为-40~80 ℃,传感器引线向上竖直安装,焊接式测量,测量原理是通过DC 10~30 V 的工作电压输入,提供一个介质压力成比例的4~20 mA 信号输出,无需测量终端信号放大。

系统中监测主机通过RS 485 Hub 向各个采集从机设备进行轮流通信,完成所有采集数据,同时将采集的部分数据发送至远程服务器。RS 485 Hub 的接口兼容RS 232C、RS 485,工作方式为异步半双工,支持传输速率最高达115.2 Kb/s,各个端口都具有短路、开路保护且含有故障指示灯。在RS 485 工作模式下,电路能够自动感知数据流方向,并且自动切换使能控制电路解决收发延时问题。为了防止RS 485 总线出现通信受到干扰的情况,通常在RS 485 总线上增加上下拉电阻。本文系统中使用隔离RS 485 收发模块,由于模块内部具有上下拉电阻,因此在模块外部一般不需要增加上下拉电阻。RS 485 Hub 设备通过设置不同的设备地址对总线上挂有的多个RS 485 设备进行区分,因此各采集模块上的地址可通过拨码开关或软件来设置好对应设备的地址。在该系统中,可将设备1 地址设为0x01,设备2地址设置为拨码开关地址0x02,以此类推。传感器分别接在各个采集终端上,采集终端通过RS 485 Hub 与监测主机连接,监测主机再与4G DTU 模块连接,将采集到的数据发送至服务器。监测系统的结构框和硬件采集平台分别如图1、图2 所示。

图1 监测系统的结构框图

图2 采集系统硬件平台

1.2 软件设计

监测主机采用LabVIEW 进行程序设计,主要包括数据采集解析模块、数据库文件创建及数据存储模块、数据发送、前面板中的人机交互模块。程序设计涉及数据采集和数据保存的多线程编程,因此整体框架采用“生产者—消费者”模式,该模式下能很好地处理数据采集与数据处理之间的速率不一致而造成的数据丢失现象。软件设计流程如图3 所示。监测主机与从机之间通信指令遵循ModBus RTU 通信协议主从问答方式,本系统中主要使用功能码为0x03 读配置数据,0x04 读取数据,0x06 修改配置数据。上位机发送指令格式示例如图4 所示,接收到的返回数据的格式如图5 所示。在采集过程中如发现异常数据,前面板中报警灯就开始闪烁,提醒操作者及时停机检查异常。

图3 软件设计流程图

图4 ModBus RTU 协议上位机发送读指令

图5 ModBus 协议上位机接收数据

图4 中:设备地址=拨码开关地址+设备基地址,设备基地址默认为0,0x01 此处表示设备1 地址;0x04 为读数据指令;0x0000 为设备模拟量寄存器首地址;0x0010为查询模拟量的数量,此处表示查询16 路温度;0x25C5 校验。

图5 中:设备地址=拨码开关地址+设备基地址,设备基地址默认为0,0x01 此处表示设备1 地址;0x04 表示返回查询指令如查询错误则返回0x82;0x20 表示返回数据字节数,表示返回32 字节;0x0953,…,0x8066 表示返回温度数据,如0x0953 共同表示第一路温度值,剩余温度字节此处省略;0x803C 校验。

2 系统实现

2.1 数据采集模块

数据采集模块首先进行串口初始化,而后监测主机发送指令写入串口等待0.2 s,下位机返回数据,通过串口读取缓冲字节内数据,经过数据解析子VI 后存入数组,将输出数组组合为二维数组数据打包入队。设置采集时间间隔为1 s,监测主机循环发送指令,为满足一主多从通信要求,尽可能减少后面板使用空间。循环内部采用的是平铺式顺序结构,分别向设备1、设备2、设备3发送请求读温度数据,完成数据采集。其中数据解析子VI 依据从机返回数据格式截取模拟量数据字节进行解析,解析过程中将PT100 温度传感器的返回数据值除以100 得到实际温度值,流量传感器返回数据值除以1 000 得到实际流量值,压力传感器返回数据值为实际值。数据采集模块程序如图6 所示。采集过程中可以设置阈值与当前采集值进行比对,以温度为例,当阈值上限大于所有采集值中的最大值,阈值下限低于所有采集值中最低值,采集正常进行,如不满足阈值条件则进行报警。

图6 数据采集模块

2.2 数据库模块

数据库文件创建及数据存储模块中使用LabVIEW访问数据库,将利用LabVIEW SQL Toolkit 与数据库连接。首先检查目标文件夹是否创建指定数据库,没有则打开自动化引用调用节点,在目标文件夹目录下创建数据库文件coldstorage.mdb;其次使用LabVIEW SQL Toolkit 进行数据库访问,链接目标数据库并打开数据库创建的数据库内的表和表内字段,此处以本地采集时间为数据库的表名。数据存储模块作为消费者处理数据时,将队列中的元素依次列出,插入数据库进行本地保存,最后关闭数据库。数据库内元素插入如图7 所示。

图7 数据库内元素插入

2.3 数据发送

将本地采集数据发送至远程服务器。首先进行串口配置,波特率为115 200 b/s,8 位数据位,1 位停止位;其次通过串口配置4 GB DTU 模块,选择工作模式为网络透传模式,设置服务器地址和端口号,启用心跳包心跳时间30 s;保存DTU 配置后进入通信状态,将部分温度值写入DTU 中;最后程序按设定的时间间隔发送数据,程序如图8 所示。

图8 远程数据发送

2.4 前面板设计

系统设计的前面板包括调试面板、实时显示和曲线监测、历史数据查询。在冷库运行监测界面点击“开始”,可看到冷库运行时各个监测点的实时状态,如出现监测点不在设定阈值范围内即视为异常,布尔灯由灰色变为红色则提醒用户注意,必要时关机断电。实时显示和曲线监测界面将各个部件的测量值用仪表的形式显示。添加部分监测点的历史曲线可以看到在运行过程中的一个变化周期。历史数据回顾方便回看采集数据而不退出采集界面,用户根据提示输入采集时间即可查询到对应时间段内的采集数据,适当调整索引框用户可以查看到这段时间内所有数据。

3 系统运行结果

验证系统采集的可靠性与稳定性,设置采集系统模拟量采集周期为1 s,系统连续运行过程中保持稳定,未出现掉数据或死机现象。给出系统各个采集点实时数据,采集值均在设置报警值之内时布尔灯为灰色,用户可根据需求设置温度预警值的上下限。数据实时显示与报警界面如图9 所示。列举部分采集点的历史曲线,曲线显示同一时刻内部不同点温度相差不大,稳定运行状态下内部温度值在-15~-21 ℃之间,如图10 所示。用户可根据温度测试点的历史曲线合理调整冷库开机时间,以减少能耗。历史数据查询是指用户输入查询时间,系统反馈出这时间段内的所有量的采集数据,如图11所示。

图9 数据实时显示与报警

图10 温度历史曲线

图11 历史数据查询

4 结语

本文基于RS 485 的多通路采集系统可快速实现对冷库内部温度、出口压力、膨胀阀流量等数据采集,同时能够完成故障预警、数据的本地存储以及数据的远程发送。在前面板中多个板块设计满足系统调试和人机交互界面的不同需求,根据不同报警灯的颜色判断可能出现故障的设备,可有助于工作人员及时恢复设备正常运作。该系统可应用在采集信息量大、采集速率无过高要求的同类型场合,具有拓展性强、搭建快速、成本低、便于分析、准确率高、模块化强、维护方便等优点。

注:本文通讯作者为石敏。

猜你喜欢

总线数据库传感器
康奈尔大学制造出可拉伸传感器
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
数据库
数据库
数据库
数据库