1.底层软件
底层软件即DSP控制器的软件,是在底层硬件设计的基础上编写微控制器的执行程序以实现底层系统的所有功能,实现的工作包括:运用A-D转换模块实现一个模拟信号的信号采集,以CAN总线方式输出数据;运用捕获单元模块实现两个频率信号的信号采集,并以CAN总线方式输出数据;接收上位机的控制命令,然后控制输入/输出端口的电压高低,从而实现对电阻测量电路的控制。图9-56所示为底层软件功能框图。图9-57所示为主程序的流程图。
图9-57 主程序流程图
2.多线程技术的应用
测试系统的数据采集涉及软件与硬件的互动操作,计算机和外部设备间有高速大量的数据交换,因此数据采集任务将极大地占用CPU时间,耗费系统资源。如果数据采集部分与系统主控程序处于同一线程之中,当采集程序发生问题,可能直接导致系统崩溃。因此,系统应用了多线程技术来解决这一问题。多线程技术为基于PC的数据采集和仪器I/O应用提供了极大的便利,使界面动作可能和硬件通信同时运行,同时减少了测试过程中彼此间的相互影响。
本系统将主控模块作为程序的主线程,数据采集程序在需要时作为另一个线程通过定时器启动,两者通过变量进行数据交换。定时器产生线程是多线程技术中的一种。当定时器事件触发、对应的事件处理函数开始执行时,系统产生一个独立线程,函数处理完毕返回时,该线程结束。由于主线程与数据采集线程并发运行,用户可以对采集过程进行监控,随时停止采集线程执行,在采集数据的同时还可进行其他操作,增强了系统的稳定性与灵活性。
3.系统数据管理
系统的数据包括三部分:第一部分为电驱动系统的信息与铭牌参数,包括电机类型、额定电压、电流、功率、频率、极对数、定子绕组接法等设计参数。这些数据是试验工况的参考,是进行数据处理时必需的参数。第二部分为电驱动系统测试环境与测试项目列表,包括测试地点、测试人员、具体测试项目以及测试过程中的异常现象。这些数据测试完成后将形成一个详细的测试日志,为用户提供一个测试的整体进度与状态的描述。第三部分为电驱动系统各测试项目的测试数据,因为各测试项目的数据结构不同以及考虑到自动生成测试报告时数据调用的便利,必须利用试验项目列表进行数据的保存。各测试项目数据以测试项目名称为保存文件的前缀名,其整体特征由项目列表记录,并与其形成一对一的类似主表与明细表的联系。(www.daowen.com)
系统的开发目标是实现电驱动系统从测试开始、测试数据采集到测试报告报表生成的自动化过程。因此,系统的数据管理功能主要包括电机测试项目原始记录数据的存储和读取、对测试计算结果数据的存取、对测试数据文件和报表文件的查询和备份等。电驱动系统自动测试的数据管理有如下特点:
1)主要实现不同测试项目测试数据和结果数据的保存和读取功能,不需要对数据进行复杂的检索,不允许对原始测试数据进行修改。
2)对于电机铭牌参数数据、结果处理相关数据这些需要在测试项目的数据处理过程中进行快速传递的关联数据,系统将其作为全局变量,采用结构体的数据类型记录和保存,满足不同测试项目快速传递关联数据的要求。对于其他数据而言,不同测试项目的数据是相互独立的,测试项目之间不需要数据共享,也不存在多个应用程序的并发访问。
3)测试数据和测试项目一一对应,不存在数据冗余现象。
4)不同测试项目相关数据的结构并不相同,若采取数据库技术管理数据,保存数据需要大量不同的字段,每个字段的长度和类型也不一样,不能体现数据库技术数据共享性的优点。文件系统则可以直接对任意数据结构的数据进行方便快速的存取。
结合上述分析,系统的数据并不存在数据冗余。整个测试系统并不要求数据有很强的共享性,也不要求数据与程序具有较强的独立性。系统数据管理的主要任务是实现对数据的存取和对数据文件的管理。测试相关数据的数据结构互不相同使得数据库管理实现起来极为不便,数据库管理还有着实现难度大、开发周期长的缺点,因而系统没有采用数据库系统,而使用文件系统来帮助实现系统的数据管理功能。
每个被测电机均以该电机的型号为名称,保存在指定的路径。不同测试项目的数据以该测试项目名称为文件名,保存为.txt格式,用户即可以方便地对该文件进行查询和备份。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。