background image

  

4.2 数据对象管理

  本软件需要管理的波形信息对象包括

3 个电机启动波形和 8 个故障波形。每

个电机启动波形由

750 个周波的交流采样信号组成,每个故障波形由故障前 30

个周波和故障后

20 个周波,共计 50 个周波的交流采样信号组成。此外,本软件

还需要管理电机运行参数对象。软件实现时,采用

C++面向对象的信息模型对所

获取的信息进行管理和访问操作,设计了三个类
CProcessWaveData、CFaultWaveData 和 CConfigData 分别对上述三种信息对象进
行封装管理。为了方便起见,

3.1 节选用的数据处理方法封装在前两个类中,用

于波形信息的分析处理。每个类设计了专门的属性访问方法,用于通信协议包和
人机交互界面模块访问信息对象中的数据。
  

4.3 Modbus 通信协议包

  智能

I/O 装置采用 Modbus 协议[3,4]与便携式主机通信,将录波信息上传给

主机。
  由于录波信息量大,

Modbus 协议的基本命令不支持此类详细的传送,为此

智能

I/O 装置扩展了 3 条命令用于发送录波信息。

  其中

2 条命令分别用于传送启动波形和故障波形的概貌信息,1 条命令用于

传送交流采样信号的波形信息。
  由于

Modbus 协议报文通信的流程有比较严格的时序要求,为了实现正常

的报文通信,本文设计了一个专门的子线程用于实现底层

Modbus 报文交互。

  

Modbus 协议包主要实现报文发送/接收、组帧/解帧、通信出错检测等功能,

其中组帧

/解帧部分要与数据对象管理和人机交互两个模块进行信息交互,通过

接口函数获取这两个模块的信息参数用于组帧,将解帧获得的数据信息保存到
数据对象之中。本文设计的

Modbus 协议包以主方式工作,即由本软件主动向智

I/O 装置发送命令并控制报文通信的过程。为此,软件设计一个 OnRunTime 运

行时函数来实现报文接收,报文发送和报文通信超时的判断。这个运行时函数相
当于

Modbus 协议的主循环函数,定时查询用户下达的通信任务,同时检测异

步串口收发报文的情况,完成报文收发和通信流程的控制。
  

OnRunTime 函数工作流程如图 2 所示。