当前位置:首页 > 新闻中心

开关电器检测装置的软件设计(下)——软件功能

来源:维思自动化发布时间:2016-08-22 09:42:25

一、软件系统的控制流程
 
        整个软件系统按软件的控制流程可分为四个部分:
        ①主控制任务:打开可执行文件,主控制任务即开始执行,其不断轮询界面上是否有按键状态被改变,有则执行相应的操作,例如,当主界面上的按键 “数据库“被用户点击时,主控制任务通过LabVlEW提供的同步控制——Notification 技术,将通告执行数据库任务。
        ②数据库任务:空闲时被挂起,以Notification的方式被主控制任务唤醒执行。主要为用户提供数据库查询、打印等功能。
        ③电机控制任务:空闲时被挂起,以Notification的方式被主控制任务唤醒执行。可通过它在断路器产品测试前,调整电机的位置。通过该部分任务,我们可以标定和较准整个装置的系统测试精度。
        ④数据采集和同步检测任务:空闲时披挂起,以Notification的方式被主控制任务唤醒执行。该任务执行数据采集与同步检测,一旦该任务被执行,断路器产品通断过程的机械特性的检测都将被自动完成,并同步更新主界面上的图形显示控件,实时显示特性曲线,最后,测得的特性参数结果自动存人数据库。


 
         软件系统设计的整体思想
        从整个软件系统的流程控制上,软件设计可分为四个独立的任务,即前述的四个流程,这四个任务分别为:
        ①主控制任务:该任务检测前面板控件的状态,是否有触发,并以消息通告的方式通知其他任务执行;还包括驱动电机模块、莱单模块。
        ②数据库任务:主控制任务循环通过消息通告(Notification)的方式,通知是否进入数据库任务,数据库任务为用户提供数据查询、打印等功能。
        ③数据采集与同步检测任务:主控制任务通过消息通告(Notification) 的方式,通知该任务是否执行,一旦该任务开始执行,则断路器的机械特性检测,包括分、合闸过程都铬自动完成,检测参数的结果数据自动存入数据库、并显示在执行文件的前面板上。
        ④电机控制任务;该任务也通过主控制任务以消息通告(Notification)的方式驱动,该部分主要用来调整检测开始前的电机位置调整,和整个系统精度的校准与标定。
        四个任务中,空闲时,只有主控制任务在循环检测主界面上是否有按键的状态被改变,而其他任务郜枝挂起,当某个按键的状态,在人为操作下(点击相应按键) 控件按键状态由“0”变为“1”时,主控制任务会通知其他任务执行,这时,如“数据库任务”、“数据采集与同步检测任务”或“电机控制任务”中的一个任务将被执行,其他两个继续被挂起,同时,主控任务继续执行循环检测,但检测扫描的内容将发生变化。例如:当我们按下主界面显示的“数据库”的红色按键时,主控制任务将通知数据库任务开始执行,进入数据库子界面,主控制任务与数据库任务并行执行。这时,虽然主控制任务继续检测界面的控件状态,但激活“数据采集与同步检测任务”和“电机控制任务”的控件将被屏蔽。即当除主控制任务外,还有一个任务在执行时,如上述例子中的“数据库任务”,其他两个任务都在无法被激活,即“数据库任务”、“数据采集与同步检测任务”、“电机控制任务”这三个任务同一时刻只有一个能被执行,互为斥量。
        LabVIEW 中Notification 的意思是通告,该技术通常用于两个相互独立的框图程序之间或同一台计算机中两个不同的VI 之间的同步通讯。Notifier(通告程序)是基干Notification技术的通信工具,可以看做数据之间的邮箱,一部分框图程图程序向邮箱中发送信息,另一部分框图程序从这个框入程序中收取信息。这使得Notifier 听起来更像一个本地变量或一个全局变量. 但是,框图程序从Notifier中获得数据与从变量中获得数据相比,主要的不同之处是: 框图程序会不停的从变量中读出数据,而当程序框图程序从Notifier中读出数据后,就会处于等待状态,直到Notifier中有新的数据时为止。这就避免了无休止地循环检测,从而减少了计算机时间的浪费。
        如上述所述,主控制任务借助于LabVIEW提供的Notification技术,实现程序的同步,并减少了CPU是时间开销。
        以上所介绍的是整个软件的控制体系,下面,按照软件功能具体论述。


 
二、软件系统的功能设计

        检测装置的软件功能主要包括以下几个方面:
        ①交互人机界面: 该交互界面实现人机互动,方便断路器的检测和研发工程师设置检测参数、调整电机位置、使用菜单功能实现特性曲线的存储与读取、进行数据库访问、直观实时特性曲线等等,同时提供异常发生时的紧急制动停止按键。
        ②数据采集与同步检测、控制: 通过LabVIEW软件环境提供的各种采集和控制模块(VI),设置采集模式,设计多线程同步采集和监测,同步更新前面板控件显示特性曲线的变化和测量参数结果。
        ③数据库系统:通过数据库子界面,提供实时数据库功能,即时存储,即时查询、打印等。
        ④软件运行的错误提示
       
       1.人机界面

        在人和机器的互动过程(Human machine lnteraction) 中,有一个层面,即我们所说的界(interface)。从心理学意义来分,界面可分为感觉(视觉、触觉、触觉、听觉等)和情感两个层次。用户界面设计是屏幕产品的重要组成部分。界面设计是一个复杂的有不同学科参与的工程,认知心理学、设计学、语言学等在此都扮演着重要的角色。
 
        为了使界面设计有步骤,界面设计时可分为以下三个设计层级:
        ①构设计层
        产品的整体架构,纸上完成的低保真原型,它主要是用来确定软件的结构,如控件如何布局,窗体闲的如何切换。由设计师在纸上或一些工具上实现的不带数据流的简单界面原型。
        ②视觉设计层
根据结构层。在原型的基础上,对影响用户视觉的界面元素层(负责显示信息,图片的层)以人机交互机制为依据进行进一步的设计。如:界面颜色,信息显示方式 图标使用,字体大小颜色设定等。
        ③交互设计层
        对局面中与影响用户操作的元素,如操作反馈,语言用法等,根据机制进行的设计。
 
        为了设计者有规可循,根据用户界面设计的目标 ,制定了一些机制,可为开发人员的设计标准。用户界面设计必须以用户为目标出发,从界面的元素、布局、信息流、用户操作环境及人的心理生理特点出发,设立以下的机制:
        ①界面布局机制
        软件界面中人接触最多的,也是界面的基础。它与人的视觉、记忆、手部操作都有关。因此这机制的目标:提高界面的可读性,舒适性,使操作时间最短。
        ②信息输出输入机制
       界面与用户最基本的交流就是信息,因此需建立此机制。它与人的视觉,记忆。手部操作有关。目标:人性化,使用户明白系统所输入输出的信息,减轻人脑和手的负担。
        ③防错机制
        是人都会有错,但是并不意味着让错误发生,尽量减少错误的发生,至少也不要增加不必要的错误。目标: 尽量防止因人为或系统原因而产生错误。
        ④窗休闲切换机制
       界面最常发生的是窗体切换,也要考虑到对人得影响。目标: 使窗休闲切换更合理和方便。基于人机界面的设计原则和用户的要求,设计应用程序的人机界面,针对本检测装置,人机界面的主要功能是:
        ①通断实时动态曲线显示、检测参数结果显示
        ②检测参数设置
        ③菜单功能,储存和调用浏览断路器产品的机械特性曲线
        ④电机控制及状态显示
 
        2.数据采集与同步检测控制
        该功能完成断路器分、合闸的自动检测。
         数据采集与同步检测的流程主要有三个部分,分别为通过程数据采集与同步检测、断过程数据采集与同步检测、测试结果保存到数据库。因为检测的断路器有多种,或单相,或三相,可根据产品型号判断,单或三相的断路器在检测中,单相断路器没有分闸时间差值,其余的检测方法与控制过程与三相断路器的检测相同。
      (1)合闸通过程数据采集与同步检测
        ①数据采集的设置:数据采集方式,是多通道的并行采集数据,采集的数据存储到缓存中,然后自缓存中,基于WHILE的循环攫取固定数目的采集数据,对这些数据进行处理和显示,如此循环进行,直至采集结束。
        ②检测合闸过程完毕的算法设计
        这部分是用来提供合闸时,断路器开关包头合闸过程完毕的准确判断,只有合闸过程判断准确,才能得到准确的备用行程。
        首先,对采集到的数据进行数字滤波处理,在采集的信号中,尤其是对力学信号,其干扰信号主要集中在50~60Hz 左右,传感器输出的力电压信号,跳变的幅值重量较小,经常被干扰所覆盖,干扰主要来自电源,属于线性频率干扰,采用LabVIEW提供的数字滤波器函数“系数衰减(Decimate,Vi)”来消除干扰,对于400 个数值的数组来说,可选用衰减因子为,10,20,或40 等可整除400 的数。
        其次,对力值采样信号进行数字滤波后,开始进行判断合闸过程中的力值大小检测和波谷检测两个部分,这两部分即为断路器合闸通过程完成的检测判断的关键。
        ③合闸通过程力峰值和备用行程计算
        力值的峰值测量,合闸通过程完成与否的循环判断中,每次会自经过数字滤波的数组中找出绝对值最大的数值,并与移位寄存器中保存的上一次循环处理中的力峰值进行比较,大者将被迭往移位寄存器,覆盖掉以前的峰值,直到检测结束。因为采集的压力值信号是电压信号,压力传盛器的力与电压的对应关系为:
                                F=V*19.8
        备用行程的计算,除需要准确的判断断路器已完成合闸通过程外,还需要同步的电机光电编码器反馈计数,通过光电编码器的反馈来计算备用行程。我们通过将光电编码器的脉冲计数不断存储到“计数值”这个全局变量,在几个井行任务中传递编码器的计数值。
      (2)分闸断过程数据采集与同步检测测
        ①数据采集设置
        分闸断过程的数据采集,因为断过程,每相电压的跳变间隔在“20us~200us”之间,故设置的采样率为100KHz, 可分辨20us 的差别。为提高循环攫取采样数据的速度,设置每次攫取的数据为100个。
        ②分闸断过程完成条件的检测
分闸断多程中,开关触头被电机拉开的瞬间会不断的来回弹跳。我们只要检测到第一个拉力峰值过后,即可判断分间断过程结束。
      (3)测试结果保存到数据库
        当完成分、合闸过程的参数检测后,测量的结果参数将保存到数据库。分合闸过程,每个都在完成后存储参数结果到数据库。
 
        3.数据库系统
        实时数据库是数据库系统发展的一个分支,它适用干处理不断更新的快速变化的数据及具有时限制的事务处理。实时数据库技术是实时系统和数据库技术相结合的产物,研究人员希望利用数据库技术来解决实时系统中的数据管理问题,同时利用实时技术为实时数据库提供时驱动调度和资源分配算法。
        为便于工程师查看已检测过的产品特性,尤其是其分、合闸过程中的力值或振动频普特性曲线的变化、及检测参数,便于同类产品的比较分析。
        设计基于SQL 的实时数据库,可在检测过程中,自动将检测参数结果,及特性曲线图存入数据库和相关路径文件下。通过该数据库系统,为断路器的生产和研发工程师,提供断路器机械特性参数、及特牲曲线的历史记录。
        利用LabVIEW 开发软件时,要实现数据库访问,可以有两种解决方式:
        (1) 利用NI公司的附加工具包LabVIEW SQL Toolkit 进行数据库访问,但是改工具包较昂贵。
        (2)利用LabVIEW 的ActiveX 功能,调用Microsoft ADO 控伴,利用SQL语言实现数据库访问,编程较复杂。但网上有LabVIEW用户开开发的免费LabVIEW数据库访问工具包labSQL能够解决我们的问题。
        labSQL是一个免费的数据库访问工具,利用其工具包函数实现我们的数据库访问功能。
        ①保存到数据库
        软件系统执行数据采集与检测的过程中,在完成分、合闸检测后,会将数据自动保存到数据库。
         ②数据库的查询与打印
        前面介绍过,软件系统的界面包括两部分,一部分是主界面,当点击主界面上的“数据库”按键时,将进入“数据库子界面”。数据库查询提供三个查询条件,可任意组合输入查询条件。为了方便用户的文件归档和管理,特设计一个独立的打印界面,供用户使用,当查询完毕后,可点击“打印界面”,即可进入打印界面。

        4.软件运行时的错误提示
      (1)为了增强界面的交互性和友好,当点击主界面上的“开始”按键,开始进行“断路器机械特性检测”时,程序会自动检查用户输入的“产品型号”和“产品序号”信息,如果用户忘记输入了产品信息,程序会弹出提示框用户输入产品信息。
        产品型号和序号仪器一起作为数据库产品的唯一识别,如果用户测试的断路器产品已测过,其信息已保存在数据库中,会弹出对话框提示用户,是否重新测试该产品。
      (2)检测过程中的错误提示
        在检测产品前,除了需要在界面上输入断路器产品的具有信息外,还需要在检测前,固定断路器在机械夹具上,并将断路器的三相电触头接上检测的5V 电压,如果在检测前,未接上检测电压,即开始检测,合闸检测中,因为三相相电压由底到高的跳变,都是在开关触头力值跳变前,则当检测到完成合闸通过程时,因未检测到三相电压由底到高的跳变的过程,程序会提示三相电压未接通。
        断路器的可靠性要靠其机械部件的可靠动作来保证,但有的断路器产品往往因生产的原因,在电机进给压进断路器的开关触头时。机械部件的内部故障,造成断路器不能完成合闸过程,此时,如果使电机继续进给,可能会对断路器产品造成损害,故对具体型号的断路器产品,在没测到力值跳变时,若先测到力峰值远大于我们设置的“最大合闸力峰值”,则判定为故障,弹出提示框。这时,我们需要点击电机控制区区域的电机后退,来事电机回到测试前的起始位置。然后,检查断路器的安装是否有问题。
        检测过程中遇到这两种错误,都不会将测试的不完全数据结果写入到检测过程中,只有无错误的完成分、合闸检测过程,检测参数结果才会存储到数据库中。



西安总部:

400-029-9162
029-89135860
18909292360

上海办事处:

021-59815902-801
18602902962

微信

扫一扫加我微信

在线客服