刘 杰,毛伟兰,孙 锋,周建辉
(1.武汉理工大学 能源与动力工程学院,湖北 武汉 430063;2.中国舰船研究设计中心,湖北 武汉 430070)
船舶轴系试验台是大型工程设备,其设计寿命一般在5年以上,在长期的运行过程中,难以避免测试设备发生性能退化、故障和报废的问题[1]。这需要对测试设备定期进行维护保养或更换,以及校准和标定,要求测试系统数据采集软件具有良好的配置性和灵活性以适应这种频繁的更改和调整;同样,扩大监测区域、增加监测对象是试验台朝着通用化、集成化和复杂化动态演化的方式,这同样要求数据采集软件能支持新板卡、新设备的扩展和配置,以降低改造升级的经济和时间成本。
传统数据采集软件的工作原理为读取数据采集卡通道数据,计算解析后存储到数据库或本地文本文件,其中各类通道的解析计算公式、存储方式已在程序中固定[2-3]。如果需要修改某个通道的计算处理方式、增加新采集通道以及扩展新数据采集卡等,均需要重新编写源代码,再编译部署,具有开发周期长、成本高的问题。针对以上问题,提出一种基于配置方式的数据采集软件实现方法。
软件配置技术可以避免代码固化、模块间耦合强的缺点,提炼程序运行过程所需的关键参数作为配置信息,决定程序的运行流程和方式,以达到动态扩展、适应新需求的目的[4-5]。为提高软件的配置性和扩展性,必须保证数据采集卡各通道数据对应的解析计算公式、存储表信息可以被修改、增加或删除,并将这些信息设计成配置信息,让采集软件在运行时据此决定如何计算解析及存储。
可配置式采集程序架构如图1所示,包括采集初始化部分和采集主程序部分。采集初始化部分从数据库中加载配置信息到内存中,并按计算解析和存储2大类进行组织,建立通道号与计算解析配置和存储配置的映射关系,并存放到合适的数据结构中,为采集主程序的运行提供支持;在初始化完成后,采集主程序,循环读取数据采集卡原始数据,并进行处理。首先根据解析配置信息将原始数据计算转化为物理参数,然后根据存储配置信息将解析的物理参数存储到指定数据库表中。
图1 可配置式采集程序架构
设计配置式采集软件,需要实现采集业务流程可配置化,即同一个采集通道的业务流程依据不同的配置信息来处理,计算结果和数据流向则会有所不同,那么配置信息的设计是重中之重。一般配置信息可由xml文件、注册表和数据库表格等多种文件类型存储,轴系试验台架测试系统软件中,配置信息较多,所以采用数据库来存储配置信息是比较安全合理的[6]。针对采集软件部分设计板卡配置表(表1)、通道配置信息表(表2)、存储表编号分配表(表3)。
表1用于登记每块数据采集卡的总体配置信息,重要字段说明如下:①采集卡编号。每块采集卡分配唯一的编号,在程序初始化时用于实例化一个采集卡对象,该对象封装所有采集功能和服务。②通道数量。表示采集卡通道总数。③空闲通道数量。表示没有连接传感器的通道数量。④采集周期。表示数据采集卡采集工作周期。
表1 板卡配置表
表2描述每块数据采集卡各通道的业务配置信息,每个通道都要设置一条或多条配置信息,代表该通道测试数据的处理方式。重要字段说明如下:①通道号。采集卡通道编号,表示1个物理通道,在程序中用于对配置信息的索引,便于定位与查找。②存储表编号。表示该通道数据需要存储到的数据表。③表字段。该通道数据需要存储到的数据表字段。④计算解析公式。该通道数据计算解析方式,一般为多项式的形式。⑤解析参数。该通道数据计算解析所使用的系数。⑥解析区间。解析计算公式适用的区间范围,对于有多个计算解析区间的通道,需要设计多条对应的配置信息。
表2 通道配置信息表
表3用于记录每个测试数据存储表的记录状态,与通道配置信息表中的字段“存储表编号”对应。重要字段说明如下:①表名。表示采集卡通道数据需要存储到的数据表。②表说明。表示存储数据的说明。③字段数量。该表负责存储数据的通道数量。
表3 存储表编号分配表
数据采集程序主要分为2部分。第一部分是采集软件初始化,如图2所示,用于加载采集配置信息,根据采集卡编号实例化数据采集卡对象,并建立采集卡通道号与计算解析配置、存储配置信息的映射关系,以全局变量的形式存放,包括计算解析哈希表对象数组A、存储哈希表对象数组B、采集周期哈希表以及定时器对象数组。最后,为每个采集周期实例化1个定时器,并激活定时器。
图2 可配置式采集软件初始化流程
第二部分用于实际数据采集工作,以定时器触发对应采集卡对象的采集任务,定时器启动后,每完成1个计数周期,触发1次采集任务,在采集任务中,根据定时器的定时周期属性获取需要工作的采集卡对象,利用该对象完成1次采集任务。采集程序根据通道号,从全局哈希表中获取计算解析信息和存储配置信息,依次对每个活动通道数据进行计算解析并存储到数据库,具体采集流程见图3。
在标定传感器输出电压和测试物理量的关系时,可以采用多项式插值法或线性插值法寻求它们的解析表达式。在解析计算时,根据解析参数确定解析计算方式,设计的解析参数字符串形式为“a0,a1,a2,…,an”(an∈实数),对应解析计算公式为a0+a1x+a2x2+…+anxn,x为需要计算解析的原始电压数据。那么在计算解析每个通道原始电压数据时,获取该通道解析配置信息,根据解析参数字符串还原解析表达式,从而把电压数据解析为测试数据。
图3 可配置式采集流程
计算解析后的测试数据,需要存储到数据库,插入数据库表通用操作Sql语句如下:
insert into {0}(number,time,{1}) values({2},′{3}′,{4})
其中,{0}、{1}、{2}、{3}和{4}表示占位符,需使用具体的变量替换:{0}和{1}分别采用存储配置信息数据库表名和表字段名替换,{2}采用采集计数替换,{3}采用当前时间替换,{4}采用解析后的测试数据替换。程序需要根据通道存储配置信息和测试数据,动态替换该Sql语句的占位符,然后执行Sql命令将数据存储到指定数据表字段下即可。采集程序对采集卡每个通道执行一次计算解析和存储后,便完成一次采集任务。
为了测试验证可配置式采集软件设计方法的可行性,以VS.NET2017和Sql Server2008为测试软件,MCC数据采集卡为测试硬件。设置待测试板卡的详细配置信息,在数据库中完善板卡配置表和通道配置信息表。
对于板卡配置信息,采集卡编号为4,采集卡名称为MCCBoard4,通道总数为8,空闲通道数为0,采集周期为2 000 ms。
MCCBoard4的通道详细配置信息如表4所示,解析公式“1+2x+x2”对应的解析参数为“1,2,1”,通道1、3、7和8具有相同解析公式,而通道2、4、5和6具有相同解析公式。配置MCCBoard 4的信号源,设置通道1~4产生方波的范围为[-2.5,2.5],通道5~8产生锯齿波的范围为[-2.5,2.5]。
运行可配置式数据采集程序,一段时间后可以观察到数据库已经存储了测试数据,表5所示是截取数据库存储的测试数据,通道1~4的原始数据都是方波数据且大小相同,计算解析后通道1和通道3,通道2和通道4的数据相同;而且,测试数据在数据表中的存储位置严格按通道存储配置信息的指定,可见采集程序的计算解析环节和存储环节是正确的,观察通道5~8的测试数据可以得到相同的结论。此外,数据存储时间间隔是2 s,与板卡配置信息采集周期2 000 ms一致,验证采集程序的实时性符合设置要求。
表4 测试板卡通道配置信息
表5 采集的测试数据
1)当数据采集卡拥有空余的通道时,可以利用空余通道扩展新的采集测点,只需要为新通道添加配置信息,即可实现新测点的数据采集。
2)在维修、更换传感器等测试设备时,需要重新标定软件或参数校准。采用该方法只需修改计算解析配置信息即可,不需要修改代码。
3)当需要扩展与现存板卡同厂家的新板卡时,不需要为新板卡编写采集程序,只需要为新板卡添加板级配置信息和通道配置信息,基于配置式的采集软件能自动解析板级配置和通道配置,实现数据采集,以支持新板卡的扩展。
4)该方法已应用到轴系试验台测试系统软件中,可推广到类似的应用场合,提高测试设备维护的便捷性,降低升级改造的成本,具有工程实用价值。