采煤机控制与监测系统编程说明.doc
基于NI CRIO的采煤机控制与监测系统开发 程序说明 应用领域矿山机械 参赛队伍中国矿业大学机电一队 参赛时间2010.122011.3 1 系统简介 本系统能够实现对采煤机的控制以及各种运行参数进行实时监测和显示,数据库存储等功能。 具体功能包括 1. 实时监测通过配置可以实时读取网络上任意数量,任意数据类型的监测参数数据,进行实时的监测。 2. 阈限报警对每一路监测参数可以配置报警极限,主界面窗口将闪烁显示,并使采煤机的速度下降,防止重大事故的发生。 3. 数据库存储可以将监测到的实时数据存入数据库,供历史查询使用; 4. 实时曲线显示任意采煤机监测参数的实时变化趋势; 5. 历史曲线可以以曲线形式读取任意参数在任意时间段内的历史数据 6. 用户权限管理不同的用户具有不同的权限级别,只有登录后才能访问相应权限对应的系统功能; 7. 运行日志可以查看系统的报警历史信息、错误历史信息和各种事件信息; 8. 控制功能 9. 智能诊断利用矿业大学在采煤机研发的科研实力以及丰富的经验,加入智能的诊断算法,实现对采煤机简易故障的实时诊断。 10. 智能减速当监测到故障信息时,采煤机会自动的减速,防止重大事故的发生。 2 程序说明 启动系统与login 前面板 启动系统前面板主要由登录、添加用户、删除用户和退出四个操作按钮组成。 登录按钮作用点击此按钮后弹出用户登录对话框,用户需输入正确的用户名和密码后方可进入到主界面。 添加用户按钮作用用以管理员添加新的用户权限。 删除用户按钮作用用以管理员删除原有的用户。 点击退出按钮则退出启动系统。 图 1 启动中界面 图2 启动成功后界面 程序框图 启动系统主要采用帧结构和case结构进行编程。系统运行后第0帧为初始化,通过各个控件的visible属性控制他们的显示和隐藏。 图3 初始化程序框图 第0帧完成后进入第1帧,第1帧中通过一个while循环控制程序的连续运行,电机退出按钮后退出循环,即可退出启动系统。第1帧中又包含3帧,分别为登录、添加用户和删除用户的程序。 点击登录按钮后,弹出用户登录对话框,通过登录程序子VI在数据库中读出已有的用户名和密码,如果输入的用户名或密码不正确则弹出相应的错误提示,如果正确则依次运行RT程序、打开并运行主界面和关闭启动界面。 图4 登录程序 点击添加用户按钮,首先弹出管理员登录界面,若输入的管理员用户或密码不正确则弹出相应提示;若正确则弹出添加用户对话框,输入的用户不能为已有用户名或是用户名或密码为空,否则会弹出相应错误提示。 图5 添加用户程序 点击删除用户按钮,首先弹出管理员登录界面,若输入的管理员用户或密码不正确则弹出相应提示;若正确则弹出删除用户对话框,输入的用户必须为已有用户名,否则会弹出相应错误提示。 图 6 删除用户程序 主界面程序说明 前面板 主界面的前面板是采煤机控制和故障诊断系统的一个过渡界面。主界面是通过登陆界面进入的,在主界面中操作人员可以在第一时间观察到采煤机启动所需要参考的一些参数和报警指示灯,以对采煤机后面的操作进行一个衔接。按下开机按钮后就可以启动采煤机控制系统,在操作“控制界面”、“故障诊断”和“数据库”三个按钮后可以在三个界面中进行切换,切换的核心也是在主界面中。 在对主界面前面板的“退出”按钮进行操作后可以关闭整个labview程序。主界面的前面板如图7所示。 图7 主界面 程序框图 主界面采用事件结构进行编程,对“开机”、“控制界面”、“故障诊断”和“数据库”分别作为四个事件结构的分支外加一个“超时”分支编写程序。 在“开机”事件分支中,利用文件I/O函数选板中的“获取当前VI路径”函数得到当前VI的路径,再利用拆分路径和创建路径把当前路径变成需要打开VI的路径,并将创建后的路径传递给应用程序控制函数选板中的“打开VI引用”和“调用节点”来对后面的三个模块的主界面经行操作,在这里我们调用“运行”操作方法,使三个模块的VI界面在后台运行。我们为了使界面看起来更加人性化,我们在运行“控制界面”、“故障诊断”和“数据库”三个VI使仅仅是让他们运行,并没有打开前面板显示。这样做的好处是使三个VI可以在时间上同时运行,但并不是都显示在电脑屏幕上,这样可以使后面的面板操作按钮使用得更加得心应手。“开机”事件程序框图如图所示 图8 主界面“开机事件”程序框图 控制监控界面是整个采煤机控制系统的主界面,主要有状态监控、超限报警和采煤机控制等功能。 在“控制界面”、“故障诊断”和“数据库”事件结构中,要实现的主要功能就是分别点击这三个按钮会弹出对应的VI前面板,而且这三个前面板在这之前就已经运行起来了。为了达到这个要求我们也利用文件I/O函数选板中的“获取当前VI路径”函数得到当前VI的路径,再利用拆分路径和创建路径把当前路径变成需要打开VI的路径,并将创建后的路径传递给应用程序控制函数选板中的“打开VI引用”和“调用节点”函数,在节点中选择“打开前面板”动作来分别打开三个分界面的前面板。在这个事件结构中我们对这三个VI的操作仅仅是打开,因为在前面的“开机”事件中已经对他们运行了,避免了重复运行而产生的错误。“控制界面”事件结构的程序框图如图所示。 图9 主界面“控制界面”程序框图。 在事件结构中最重要的分支要算是“超时”事件分支了,在事件结构中当每一个事件分支都没有响应时,超过超时时间后就会触发超时事件分支。在这一个分支里面就会放上不是上面的事件分支的所有程序,使在不触发相关事件结构后就会一直触发超时框图里面的所有程序。 在“超时”结构中“左摇臂齿轮箱油温”、“右摇臂齿轮箱油温”、“主齿轮箱油温”三个油温显示报警程序,还有模拟的左右摇臂“防爆电阻”的报警灯和当前需要的操作提示等。主界面的操作说明也在这里面实现,操作说明采用属性节点“visible”来控制一个写有操作说明的文本框来实现操作说明的显示与隐藏。对于防爆电阻值的判断与报警,由于没有专业的测量设备和现场环境,故采用软件模拟的方法显示。还有“进水量”的显示是通过将控制监测界面的进水量由全局变量传递来进行显示的。 整个主界面的程序框图的主要结构就是为了实现对后面的三个子VI面板的运行操作和前面板的弹出操作,再加上一些开机前的控制参量显示报警等来完成的。“超时”事件的分支如图所示。 图10 主界面”超时”分支程序框图 控制监测界面 前面板 控制监测界面的前面板主要是由右侧的控制按钮和下方的采煤机模型动画来组成。 图11 主控制界面前面板 1、 控制部分程序结构 控制程序结构框图是在一个大的定时循环中执行完成,在这个定时循环中又是执行了一个关于变频器三速控制的速度按钮处理程序的事件结构中。在事件结构中事件触发部分主要是要实现在速度档位中扳动三个其中任意一个档位开关,其余的开关都自动闭合,保证在任何一个时刻都只有一个档位开关开启。要实现这一个功能可以利用对三个按钮的局部变量赋值的办法来实现。 在控制事件结构的超时选板中装着整个程序中绝大的部分,这一部分又可以分为RT程序的数据传输部分、采煤机模型动画制作部分和围绕着两部分的一些辅助程序等。 在与RT程序的数据传输部分中主要采用网络共享变量在定时循环结构中传输。在控制模块中的程序中,主要是把控制采煤机的控制按键通过网络共享变量在computer程序里面写入,在RT模块里面读出并捆绑为簇通过FIFO传输到CRIO的FPGA模块内的程序中。在FPGA程序中控制信息直接通过输入输出节点传递到硬件中的I/O口中控制硬件。同时控制信息又通过FIFO和共享变量传回到主程序中作为控制返回信息来显示在控制监控界面上,显示的方式主要是指示灯和采煤机模型图片。 在采煤机的动画制作部分主要是使用Labview系统自带的图形与声音函数库中的图片函数子库来完成的。其中用得最多的是画矩形和多段直线函数。在采煤机动画制作中的核心思想是通过控制几个必要的变量参数在图片框中用画矩形和圆直线等函数一点一点的画出整个采煤机模型。随着采煤机位置和摇臂倾角滚筒旋转等控制参数的改变,使图片框里面的采煤机模型也表现出相应的动作,时工作人员能够一目了然的获得采煤机的动作参数。 在辅助程序中有左右行互锁程序,在实际控制系统中往往是当按下“左行”按钮时,“右行”按钮是按不动的,为了实现这个功能我们采用属性节点的“disable”功能,当按下“左行”按钮时,使“右行”按钮不能操作,反之亦然实现左右行互锁功能。 行程开关的反馈控制信号也是很重要的一环,在实际采煤机控制系统中行程开关的使用是实现采煤机全行程的运动,使采煤机一直从最左边触发做行程开关后向右运行到最右端在触发右行程开关再往左行的全行程运行。要实现这个功能主要采用case结构,当左行程开关为“true”时执行case结构里面的函数语句,该函数语句就是使“左行”按钮弹起,并且使“右行”按钮按下实现向右行驶的功能。 2、 监测部分程序说明 点击主界面开机按钮后即开始数据采集,以便于检测采煤机的开机运行状况。 在C-RIO的FPGA模块中给采煤机需要监测的各个参量配置相应的输入口,在FPGA程序中通过FIFO将采集到的数据传到RT中,在RT中进行数据处理后,采用网络共享变量的形式传输到控制监测程序和主界面程序。 3、 菜单部分 为了可以实时配置采样参数和参数阈值、查看参数曲线和帮助,我们对程序运行菜单进行了编辑。 图12 菜单程序框图 故障诊断界面 故诊断模块主要实现对振动信号进行分析、处理以及故障诊断的功能。 前面板 故障诊断的前面板主要由四部分组成参数设置,时域分析,倒频谱分析和功率谱分析。 通过参数设置我们可以设置滤波参数以及电机、齿轮、轴承外圈、轴承内圈和轴承滚动体的特征频率的理论值,然后我们可以分别点击时域分析、倒频谱分析和功率谱分析,得到各自的分析结果,同时显示相应的故障信息。 图13 故障处理界面前面板 程序框图 1. 时域分析 时域波形分析有直观、易于理解等特点。直接对振动时域信号的时间历程进行分析和评估是状态监测和故障诊断最简单、最直接的方法。 在时域分析里, 通过常用的参数指标有 峰值、均值、均方根值、波形指标、脉冲指标和裕度指标等,然后设定这些指标的报警值,当这些指标超过一定的值,我们就通过报警和状态信息显示来通知故障信息。 图14 时域分析程序框图 2. 倒频谱分析 倒频谱分析也称二次频谱分析, 是近代信号处理科学中的一项新技术。 倒频谱分析是诊断齿轮故障常用的频谱分析方法,对识别齿轮边频结构很有效。 点击倒频谱分析,可以得到信号的频谱分析波形,在倒频谱分析中,我们通过峰值检测函数把振动信号的倒频谱图中的峰值和对应的频率计算出来。把这些频率和电机、齿轮和轴承发生故障的特征频率进行对比。当这些频率在齿轮和轴承发生故障的特征频率的10范围之内,我们就认为发生了故障,最后把对应的故障实时地显示在状态信息栏里。 图15倒频谱程序框图 3. 功率谱包络分析 包络分析是处理由机械冲击引起高频响应的有效方法。包络分析的目的是分析相对高频信号的能量随时间的振荡。包络分析技术最成功的应用主要在滚动轴承的诊断中。 图17 包络功率谱程序框图 数据库界面程序说明 前面板 数据库相关配置完成后,重新运行系统,就可以实现数据的存储和查询。操作界面分为两部分,左边为存储控制界面,右边为查询控制界面。存储界面中可设置数据的存储时间间隔,以秒为计,最少存储时间间隔为1秒。开启保存按钮即可实现相应数据的存储,存储数据分为14路,可单路存储也可多路同时存储。此外,故障诊断中的故障信息也将自动保存在数据库中。查询界面需设置相应参数,包括需查询的物理量,查询数据的起始时间,查询数据的截止时间。设置完成后点击执行查询按钮即可实现数据的查询,并在数据查询表及数据查询图中分别显示。如果对于查询数据有特殊要求在查询附加条件中可输入相应的SQL语言。在查询数据库最终语句中可查看当前的SQL查询语句。数据查询处理结果中可查看当前所查询所有数据的最大值,最小值等。单击STOP按钮,退出数据库界面。 图18 数据库界面前面板 程序结构 查询程序采用事件结构进行编程,对“执行查询”、“超时”、“停止”三个事件编写程序。主体程序为“执行查询”事件,事件触发方式为执行查询按钮按下。本查询程序采用通用的SQL语句。查询基本语句为select * from (查询参数) where (查询条件)。默认查询条件为时间,如有需要可以加入当前查询参数作为另一个条件。查询结果通过相应的处理程序分别输入到表格控件和波形图表中。此外另一路通过Signal Analysis中的statistics Express VI.处理结果为当前所查询所有数据的最大值,最小值、均方根、平均值、标准差和方差。 图19 查询程序部分框图 存储程序中,通过共享变量输入的一维数组通过Mean.vi进入到保存数据子VI中。由于本程序1秒执行一次,进入保存数据子VI的数据也是1秒一个。保存数据子VI采用三层Case结构编程。首先通过数据保存布尔变量确定是否执行保存主程序,第二层Case由保存时间间隔控制,当保存时间间隔为1秒时,直接进入数据保存程序。 图20 保存程序框图1 如果保存时间间隔大于等于为2秒时,数据在存储设置的时间内部断的存入临时数组中,根据数组大小函数来确定数据的输入首时间及数据的输入末时间,这里取所输入数据的平均值为保存数据值,取输入数据时间的平均值为保存数据的时间,经程序处理后保存在用户数据库中,存入数据后再经过初始化程序,将临时数组清零及首末时间初始化以便下次数据的再次存入。 图21 保存程序框图2 以上两个程序相互独立,所以在查询数据的同时也可实现数据的存储。 Logout与系统退出 当用户操作完毕后,为了避免其它误操作给监控系统带来危险,最好返回主界面,点击点击退出程序,即可退出整个系统。