朱 飞,洪荣晶,陈 捷,高学海,戴克芳
(1.南京工业大学 机械与动力工程学院,南京 210009;2.马鞍山方圆回转支承股份有限公司,安徽 马鞍山 243052)
回转支承是一种能够承受联合载荷的特大型滚动轴承,广泛应用于工程机械、风力发电机、轨道车辆、航空航天等领域。回转支承一般造价昂贵,拆卸较困难,维修周期长、费用高,并且使用环境相对恶劣,因此对回转支承的动、静载性能和可靠性指标提出了较高的要求,如在风电机组中要求回转支承的寿命在20年以上[1]。另一方面,对于回转支承的可靠性设计,国内公司大多是建立自己的经验公式,而对经验公式的修正需要大量的试验数据,因此建立回转支承的试验设备是目前国内回转支承行业的需要。风电回转支承试验台[2-3]包括机械、液压、测试和控制等几部分,其中测试和控制系统[4-5](以下简称测控系统)是试验台的核心。
试验台测控系统下位机采用S公司的s7-200和N公司的数据采集卡,上位机选用N公司的LabVIEW软件,数据库选用SQL Server。LabVIEW本身并不具备直接访问数据库功能,不能像VB,VC那样非常方便地进行数据库程序的开发与访问,而需要采用其他辅助的方法。主要思路有2种[6-7]:(1)从底层的开发编程做起,如利用LabVIEW的ActiveX功能,调用Microsoft ADO控件,用SQL语言实现对数据库的访问;利用其他语言,如C++编写DLL程序访问数据库,再利用LabVIEW所带的DLL接口访问该程序等。(2)利用已有的工具包访问数据库,如N公司的LabVIEW SQL Toolkit工具包、LabVIEW用户开发的LabSQL工具包等。前者需要从底层进行程序开发,对相关语言有较深了解且开发量比较大,不利于项目进度;后者中的LabVIEW SQL Toolkit工具包比较昂贵,而LabSQL工具包是用户自己开发的免费工具包,它将复杂的底层ADO及SQL操作封装成一系列LabSQLVIs。在此利用LabSQL工具包内置功能的组合调用,依据各个试验内容的不同要求,实现了对SQL Server数据库的灵活访问,满足了试验数据的查询、修改、添加、删除等功能要求。
图1为试验台加载驱动系统部分机械结构,回转支承固定于基础上,由液压马达带动回转支承的动圈旋转,采用液压缸对回转支承进行力和力矩的加载。控制液压马达的旋转来控制回转支承的转动情况,控制液压缸加载力来控制回转支承的受力情况,通过改变液压马达的转速和液压缸加载力的大小模拟回转支承在不同应用场合不同工况下的实际受载情况。
图1 试验台加载驱动系统部分机械结构简图
如在风电机组的偏航和变桨系统中,回转支承需要根据不同的风载情况及时调整其状态。偏航轴承同时承受机组质量产生的轴向力和风载产生的径向力、倾覆力矩,在风向发生变化时需完成启动、停止及换向等动作;变桨轴承在叶轮旋转的一个周期内受力情况为一个正弦信号,在风速发生变化时需通过变桨轴承来调整气流对叶片的攻角;当风载突然增大时偏航和变桨轴承还可能受到冲击。因此,需要综合考虑具体应用场合中的实际工况,模拟其运转与受载情况。
如图2所示,LabVIEW与s7-200之间通过自由口通信实现数据的交换,在LabVIEW中利用LabSQL 工具包内置功能的组合调用实现对SQL Server的访问。SQL Server支持数据的局域网及远程访问,试验数据可在企业的ERP系统中进行统一管理。
图2 测控系统总体框架
上位机利用LabVIEW进行功能组态,以结构化和模块化为思想进行设计,包括试验参数及控制模块、过程数据监测模块、数据管理模块和报表生成模块,如图3所示。其中,在手动操作情况下,“试验参数及控制”界面及“当前数据存储”按钮为灰(不可操作),其他功能正常使用;在PC控制情况下,所有控制和监测功能均可操作。各个模块间相互联系,在某一个试验项目运行时共同完成以下几个主要功能:
(1) 试验项目运行参数的输入;
(2) 加载力和液压马达转速的在线监测;
(3) 试验状态的监测及系统出现报警、急停等状态的监测;
(4) 定时记录各种重要的运行参数,生成各种数据报表,并自动保存于数据库中;
(5) 实时记录系统的报警、急停信息,生成报警、急停事件,并自动保存于数据库中。
图3 上位机程序总体框架
试验项目运行参数的输入界面如图4所示,而数据库管理模块用于将试验过程中的各种数据及试验参数等存储于数据库SQL Server中,同时可进行历史数据的查询等。
图4 试验参数输入主界面
在试验台测控系统中,采用数据库技术可以使数据保存得更加完整、安全,更符合通用型、开放性标准。本试验台测控系统数据库由测控设备总表、控制元件分表、控制定义分表、控制数据分表、测试位置分表、测试数据分表、测试报警分表等组成,它们通过关键字段联系构成层次型关系数据库,如图5所示。
图5 数据库总分表关系图
在LabVIEW中进行查询、添加、删除试验数据的程序设计都是基于所建立的数据库,因而需要先在SQL Server中建立“试验台测控系统”数据库,同时在其根目录下建立测控设备总表和各个分表。另外,若要使LabVIEW程序运行时能访问SQL数据库,还需要建立一个SQL数据源。建立数据源主要有3种方法[9]:使用ODBC设定数据源;使用通用数据连接UDL文件方式连接数据源;以字符串形式输入连接信息。其中,使用ODBC设定数据源不需精通SQL语言,易于实现,故采用此方法设定SQL数据源。
2.2.1 数据库的建立
回转支承各项试验的试验数据即存储于试验台测控系统数据库,其建立路径为:Microsoft SQL Server企业管理器控制台根目录Microsoft SQL ServerSQL Server组(local)(Windows NT)数据库,在此目录下建立数据库名为“试验台测控系统”,在其用户项目中新建用户,登陆名为zf_01,SQL Server身份验证密码为zf_01,并关联数据库“试验台测控系统”。
2.2.2 表的建立
表可进行手动建立或在LabVIEW中调用应用程序自动建立,现采用在SQL Server中手动建立表的方法。在试验台测控系统数据库的表目录中分别新建测控设备总表和控制元件分表、控制定义分表、控制数据分表、测试位置分表、测试数据分表、测试报警分表等各表,并定义好各个用户表的列名、数据类型和长度等信息。在试验台测控系统数据库的关系图目录中新建关系图测控系统,并如图5所示设定各表的主键和外键及各表之间的层次关系。
2.2.3 ODBC数据源的建立
使用ODBC设定数据源,即利用ODBC驱动访问SQL数据库,首先要建立一个数据源名称(DSN)来访问相应的数据库。建立DSN的方法有3种,即建立用户数据源名称(user dsn)、建立系统数据源名称(system dsn)和建立文件数据源名称(file dsn),本文选择建立系统数据源名称。
LabSQL是一个多数据库、跨平台的LabVIEW数据库访问工具包,支持Windows操作系统中任何基于ODBC的数据库。按其功能的不同,基本VIs包括Command, Connection和Recordset 3个模板和可直接调用SQL顶层的3个子VIs (Top Level VIs)。Command模板中的子VIs完成一系列的基本ADO操作,如创建或删除一个Command、对数据库中的某一参数进行读或写等;Connection模板中的子VIs管理LabVIEW与数据库之间的连接;Recordset模板中的子VIs用于对数据库中的记录进行操作,如创建或删除一条记录、对记录中的某一条目进行读或写等;Top Level VIs即为对前3种VIs某些功能的封装。
在LabVIEW中编程实现对SQL Server访问的基本流程如图6所示,包括建立与数据库的连接、建立与记录集的连接、对记录集的各种操作、断开与记录集的连接、断开与数据库的连接。其中建立和断开与数据库的连接主要用Connection功能下的子功能VI命令实现,建立和断开与记录集的连接及对记录集的各种操作主要用Recordset等功能下的子功能VI命令组合实现。
图6 LabVIEW中访问SQL Server基本流程
以测试数据分表扭矩值的查询为例说明程序的实现方法,主要包括以下步骤:
(1) 建立与数据库的连接。利用ADO Connection Creat.vi和ADO Connection Open.vi两个子vi建立与数据库的连接。图7中,首先利用ADO Connection Creat.vi创建一个Connection对象,然后利用ADO Connection Open.vi建立与数据库的连接,所连接由字符串“DSN=回转支承试验数据”指定(ODBC数据源建立时的数据源名称)。
图7 扭矩值查询程序框图
(2) 建立与记录集的连接。利用ADO Recordset Creat.vi和ADO Recordset Open.vi建立与记录集对象的连接。首先利用ADO Recordset Creat.vi创建一个Recordset对象,然后利用ADO Recordset Open.vi打开这个Recordset对象,同时利用SQL语句“select * from 测试数据分表”获得数据库测试数据分表中的扭矩值。
(3) 输出查询结果。SQL Fetch Data(GetString).vi的功能为执行SQL语句后所输出的扭矩值结果,如图8所示(后两列分别为液压马达1扭矩值和液压马达2扭矩值)。
(4) 关闭与记录集的连接。由ADO Recordset Close.vi子vi完成。
(5) 关闭与数据库的连接。由ADO Connection Close.vi子vi完成。
图8 扭矩值查询结果
以上步骤即完成了在LabVIEW中查询SQL Server数据库测试数据分表中的扭矩值,其他操作如添加、修改、删除等功能的实现方法与查询数据类似,只需在ADO Connection Open.vi后连接ADO Recordset Addnew.vi,ADO Recordset Delete Record.vi等子vi即可实现相应功能。另外,也可利用Top Level VIs中的子vi: SQL Execute.vi和SQL语句直接调用SQL Server数据库,图9给出了利用此方法实现“修改报警阈值”、“添加报警阈值”和“删除小扭矩信号”的程序框图。
图9 利用SQL Execute.vi和SQL语句直接调用SQL Server程序框图
在LabVIEW中利用LabSQL工具包访问SQL Server数据库并应用于回转支承试验台的测控系统中,不但实现了试验数据的局域网共享,而且便于试验数据的综合管理,同时免费的LabSQL工具包加快了项目进度,节约了一定的软件费用。