超声波探伤设备录像与回放功能


超声波探伤设备录像与回放功能

录像与回放功能即存储探伤设备工作一段时间内的所有回波数据,按录像键记录一段时间的探伤数据,存储在内存或者 U 盘中;当需要回顾这一段探伤过程时,选择该段录像并按回放键,就可以重现探伤过程。


探伤人员在发现伤损以后,通常要在伤损的位置上标示出来,而且指明伤损的严重程度。在确定是否有伤时,通常要反复将疑似有伤的路段推检多次。这时一般要用到录像功能把某一段探伤过程录制下来,通过反复查看录像来代替推检。而这些录像也会被保存下来,作为当天检测结果的记录,以便日后查看。


超声波探伤设备实现录像与回放功能的思路

录像实质就是将一段时间内屏幕上显示的所有信息保存下来,接到回放指令的时候,再按照录像的时间先后顺序将之前保存的信息显示在屏幕上。依照这种定义的考虑,有一种实现录像回放的思路,就是将录像开始后每一时刻的屏幕信息都保存成图片文件,在播放时按照存储的先后顺序,以每秒 24 帧的速度更新到屏幕上,这样会使人眼产生“连续播放”的效果。这种思路是很清晰的,编程实现起来也比较容易,但是缺点是十分占用存储空间,导致可以录制的时间太短。例如屏幕大小为 640*480 像素,则每个屏幕截图的图片大小是 900KB,因此 8 秒钟每秒 24 帧就需要 169MB 内存。我们嵌入式系统的可用内存只有 64MB,即使对于 U 盘来说,每秒 21MB 的空间占用也是不能接受的。考虑到录像所要记录的并不是屏幕上的全部内容,而只是其中探伤人员关注的信息。探伤过程中,实时波形、闸门内峰值的相关参数(如波高、声程、水平距离等)、以及探伤仪所行进的里程数、该通道的报警状态才是最受探伤人员关注的。其余的信息如背景、菜单、闸门、标志等,通常在录制过程中都是不变的,因此不必重复记录。这样一来,我们需要存储的信息量就大大减少了,由整个屏幕的信息减少到只需要保存波形数据和相关参数即可。每一时刻的波形数据 512 个,包括回波幅值和声程地址每个数据占 4 字节,加上峰值的参数、里程数、报警状态、录像文件信息等需要记录的数据,每一帧占用内存不超过 30KB。于是我们就可以考虑使用探伤仪的内存存储最新录制的回放数据,同时借助 U 盘,把所有数据按照录制时间命名,写成文件形式保存起来。这样做相当于扩展了存储回放数据的空间,在需要的时候可以调用任一时间段的回放录像在探伤仪上播放。


录像回放功能包括录制录像、选择录像文件和播放录像三部分,而且必须存在已经录制的内容方可选择录像文件并进行回放。


超声波探伤设备录制回放录像的实现

正常探伤时,从前端读过来的探伤数据被临时存放在内存中的数组img_buf 中。软件系统对这些数据进行处理,从而进行基本探伤工作。当下一时刻到来时,img_buf 中的数据就被前端更新来的新数据替换掉了。而当探伤仪处于“正在录制…”状态时,每一时刻的数据并不丢弃,而是按到来的先后顺序被写入文件,同时存放到内存和 U 盘上,一直持续到保存完毕。这就是保存回放数据的思路。


为了标明探伤仪录像状态,这里定义了全局变量 SaveMode,其取值和表示意义如下表所示。通过 HandleKey 函数,在按下录像相关的键时改变SaveMode 的值,再调用 DrawTop 函数绘制标志区即可。


返回列表