在EVC环境下开发实现电梯缓冲器复位时间测试系统的应用方案
2023-06-13 来源:elecfans
随着《电梯监督检验规程》的发布,对检验机构的电梯检验质量提出了新的要求。但在《检规》的实施过程中,不断发现现有的检验项目缺乏必要的、科学的检测手段。为此,探索研制一些检测仪器,检测仪器应用十分广泛,主要应用于石化工业、电力工业、航空造船业、造纸业、纺织业、冶金工业等。当任何气体(空气、氧气、氮气……等)通过一泄漏孔隙,均会产生具有可探测高频成份的扰流,以渗漏检测仪来扫描附近区域,经由耳机可听到泄漏的急流声或是指示。检测仪愈靠近泄漏点,则急流声会愈大,指示读值会更高。当然,环境噪音是个问题,但使用橡皮聚音探头可缩小探测仪的接收区域。以阻隔杂讯噪音波的干扰,渗漏检测仪的频率调整功能可降低背景噪音干扰,让没经验的使用者也可容易地操作来检测泄漏。具有发现并解决各种故障特性的硬件或软件设备,这些特性包括特殊协议包的解码、特殊的编程前的故障测试、包过滤和包传输。
本研究针对电梯缓冲器复位时间的检测要求而展开。《检规》中是这样描述的:“对耗能型缓冲器需进行复位试验,复位时间应不大于120s.”对应的检验方法是:“轿厢在空载情况下,以检修速度下降,将缓冲器全压缩,从轿厢开始离开缓冲器瞬间起,直到缓冲器回复原状。观察并用秒表计时。”
1系统功能特点
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,采用0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS接口,IIS-BUS接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI.S3C2410处理器可运行在203MHz.板的尺寸仅相当于名片的2/3大小,尺寸如此小巧的嵌入式板是国内首创。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式应用产品。
实用性:应用数据通信接口规范,使检验结果判断和检验结果输出自动进行,达到有效提高检验的安全性和工作效率的目标。
易用性:采用便携式设计,提供彩色图文界面和触摸屏操作,直观方便易用。
2系统硬件实现方案
2.1总体设计方案
电梯缓冲器复位时间测试仪三星S3C2410的ARM芯片为,采用TFT彩色液晶图文显示和触摸屏操作。预留各种通信接口。系统主要有控制部分,数据采集部分,数据存储部分,输入输出部分等4个主要组成部分。具体硬件框图如下图1所示:
系统的下位机部分主要负责前端的传感器数据采集存储以及和上位机的有关通讯,有关数据的分析和算法处理及用户程序设计主要有上位机的S3C2410来完成。
2.2数据采集方案
下位机是直接控制设备获取设备状况的的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。图2为数据采集的硬件框图:
3系统软件部分:
Windows CE主要分为四个模块,如图所示,这四个模块提供重要的操作系统功能:内核,对象存储模块,网络与通讯模块和GWES模块。
Windows CE还包含其它可选模块,支持如管理可安装设备驱动程序和支持COM的任务,图3为系统结构图:
为了把Windows CE移植到特定的目标平台上,微软提供了一套完整的开发工具Platform Builder.该工具以对象库格式提供给操作系统,以便开发人员可以将其作为特定操作系统平台的组件。
首先,选择造作系统的基本配置,并且为特定的平台选择相应的微处理器和板级支持包BSP(Board Suppor Packet)。BSP板级支持包(board support package),是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中,就有BSP.BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS.本测试仪采用S3C2410处理器,因此我们改造了微软提供的基于S3C2410的BSP,自定义了符合我们要求的BSP.
其次,制定平台,在此阶段可开发设备驱动,适当地裁剪、添加组件。然后,封装所需的各功能模块,编译生成OS镜像文件。接着,把镜像文件到目标设备,进行调试。
导出定制操作系统的SDK(Soltware Development Kit)软件开发工具包,安装到EVC中,便可以进行基于我们定制的测试仪硬件平台的应用程序开发。如图4所示为操作系统移植流程图:
3.2应用软件开发
操作系统的主要任务是为了管理所有硬件资源,并且提供应用软件一个合适的操作环境。将Windows CE操作系统移植到ARM平台上以后,下一步工作就是进行应用软件的开发。本系统的上位机软件主要在EVC的环境下开发完成,使用C语言为主要编程语言。
3.2.1串口通讯协议说明
模块串口波特率9600,无奇偶效验,一位停止位。控制命令通过一致的帧结构通讯,帧长度4字节:命令+数据0+数据1+校验和。效验和=命令+数据0+数据1的相加和的低8位。系统通过上位机串口直接对下位机模块进行操作。上位机向下位机发送启动16位距离读取命令:Ox22+度数+NC+SUM.当测量完毕时,这时返回的数据是:Ox22+距离高+距离低+SUM;当测量无效时返回的距离高位和低位数据都是Oxff.(注:NC代表任意数据,SUM代表效验和)串行端口在Windows CE下属于流接口设备,是串行设备接口常规I/O驱动程序的调用与通信相关的具体函数的结合。串行设备被视为用于打开、关闭和读写串行端口的常规的可安装的流设备。Windows CE的串口函数和Windows的串口函数基本相同,但有几点值得注意:Windows CE只支持Unicode字符集,在编程时必须特别注意;Windows CE不支持重叠的I/O操作。在所有的流设备驱动程序中,均使用CreateFile来打开串行端口设备,如果这个端口不存在,CreateFile返回ERROR_FILE_NOT_FOUND.
关闭串行端口比较简单,调用CloseHandle函数就能关闭一个打开的串行端口。CloseHandle只有一个参数,即调用CreateFile函数打开端口时返回的句柄,方法如下:
CloseHandle(hPort);
正如使用CreateFile打开串行端口一样,可以使用ReadFile和WriteFile函数来读写串行端口。假设已经调用CreateFile成功地打开了串行端口,那么只需调用ReadFile即可从串行端口读取数据:
如果从主线程读、写大量的串行数据,主线程就会因为等待相对较慢的串行读或串行写操作而阻塞,不能即时处理其他的消息,因此这里用单独的线程来读写串行端口。对于串行端口来说,还必须配置超时值,否则程序可能陷入到一个等待来自串口字符的死循环。通常,配置超时值和配置串口类似。首先用GetCommTimeouts函数获取当前串口的超时值,然后修改CommTimeouts成员变量的值,用SetCommTimeouts设置新的超时值。
3.2.2算法分析
根据电梯检测规程要求,缓冲器从全压缩到复位的时间应不大于120秒。上位机从上电检测开始每隔0.1秒发送数据采集命令,并将返回的距离值和开关量信号存储于不同的数组待分析。数组s(m)和F(n)分别存储采集到的距离值和开关信号值(0或1),t为每次数据采集循环时间,T为缓冲器回复时间。软件的算法流程图如5所示:
4结束语
基于ARM技术和Windows CE系统的电梯缓冲器复位时间测试仪功能齐备,性高,实用性强,满足了新的检测规程的要求。本设计方案首次实现了缓冲器复位过程中瞬时脱离点的检测,实现了各种状态时刻的计时和状态识别,解决了信号同步,结果自动判断和输出等问题。