摘要:介绍一种基于VC++的下位机电机运动控制系统和硬件采集器的双通道多功能虚拟数字示波器。结合VC++良好的面向对象的特性, 该虚拟示波器具有丰富的功能, 如界面控制和波形显示、数据采集、双通道波形显示对比及波形的测量与保存等。对这些功能模块的实现方法与过程进行了详细的讨论。
关键词:虚拟仪器; 示波器; VC++; 便携; 人机交互;
1、虚拟仪器介绍
随着科技发展, 虚拟仪器技术逐渐取代传统仪器。虚拟仪器借助于计算机Windows操作系统强大的图形功能, 使人机交互的操作更加友好和便捷;对于数据处理, 应用计算机软件的强大功能可以灵活地选择所需要的算法处理 (数字滤波、统计分析和数值计算) 。它不仅具有传统仪器的示波器功能, 它比传统仪器更具灵活性, 可以与计算机同步, 易实现自动测试及网络功能, 利于对设备运行故障进行诊断。
2、虚拟仪器的设计
2.1、软件需求概括
本软件主要有以下几个方面的功能。
1) 双通道测量波形。
2) 多触发源 (CH1、CH2、ALT、EXT) , 触发斜率 (+、-) , 多触发方式 (AUTO、NORMAL、SINGNAL) 。
3) 记录历史波形, 保存波形及参数设置界面。
4) 记录历史数据, 波形数据可以按时间和电压输出到TXT文件。
5) 保存下位机传输的数据, 并显示波形。
6) 测量点硬件采集器传输数据波形与下位机数据波形相对比。
7) 测量检测点的幅值、周期、频率。测量下位机传输数据的幅值、周期、频率。
8) CAN总线通信, 高刷新率, 高采样率。
2.2、开发环境简介
系统开发的条件是普通PC以及相对应的系统, 本次开发所用的软件为Microsoft Vc++6.0。
2.3、软件设计
软件运行, 初始化操作。初始化完成, 当虚拟仪器上位机软件检测到硬件接入及硬件请求发送数据时, 接收硬件数据, 并将数据存储到已开辟的存储空间中。然后在主面板的状态栏中显示采样, 当通道接地时, 处理数据并获取显示数据。若通道未接地, 侧处理数据, 并将数据从“ch_data”复制到“chx_data”, 然后获取显示数据。获取显示数据后, 当不处于X-Y模式时, 在屏幕上显示数据波形。否则, 重新从下位机读取数据。
3、虚拟仪器软件功能的实现
3.1、波形幅值、周期、频率的计算
一方面, 对于硬件采集器的相关计算, 由于开发商的二次开发代码中, 将有关从硬件采集器采集到的数据进行了封装。所以, 在对虚拟仪器软件的开发过程中, 是根据在面板上显示的波形数据的二次处理数据间接获得。波形显示面板上纵坐标为256个像素点, 再依据幅值的设定, 求得最大值与最小值, 从而反推得到波形的幅值。而波形显示面板的横坐标共有10 300多个数据, 再依据对时基的设定, 利用过零检测, 求得波形的周期, 对应的波形的频率等于周期的倒数。另一方面, 对于下位机数据波形的相关计算, 相比较硬件采集器而言, 要相对容易。因为, 通过和下位机协定好通信协议之后, 可以直接从下位机获得直接数据。而对波形幅值、周期、频率的算法, 和上面的算法相似。
3.2、波形的保存
具体软件编程步骤如下:首先取得客户区内存DC (客户区设备上下文) , 用于客户区的输出, 与特定窗口关联, 可以让开发者访问目标窗口中客户区。接着, 获得窗口的当前的客户区并创建一个与显示器设备内容 (&SHDC) 兼容的内存设备内容DC, 来存放CBitmap对象。下一步, 将位图选入到内存显示设备中, 因为只有选入了位图的内存显示设备才有地方绘图, 画到指定的位图上。然后, 将位图从原设备文本复制到创建的设备文本, 实现图片的保存。然后通过位图头文件BITMAPFILE-HEADER bfh和位图信息头BITMAPINFOHEADER bih等一些操作实现指定文件夹波形图片的保存。
3.3、波形数据的保存
波形数据的保存主要实现的功能是, 将从下位机获取的数据按照时序的方式, 保存到指定文件夹下。
4、软件调试
软件调试主要解决的问题是, 上下位机是否可以按照设计的实现通信。而初步调试时, 上下位机确实无法实现通信。于是, 再次回到了上位机软件通信的编写以及CAN/USB转接器的使用。经过多次调试, 最终发现, 常规的串口通信程序, 会默认将DTR端置1, 如此将会使CAN/USB转接器置于设置状态, 因而无法实现正常的通信。于是, 修改程序, 使DTR端口置0, 最终实现了上位机与下位机的正常通信。
5、结语
在本设计中的基于VC++的虚拟仪器不仅具有一般台式数字存储示波器的基本功能, 而且充分地发挥了PC强大的图形功能和软件设计的灵活性。基本满足了最初的设计需求, 实现了便携, 可以用于日常教学演示或外场调试测试等场合。
参考文献
[1]杨乐平.虚拟仪器技术概论[M].北京:电子工业出版社, 2003.
[2]张易知.虚拟仪器的设计与实现[M].西安:西安电子科技大学出版社, 2002.