如何实现QT的工程机械监控及诊断系统的设计(2)
来源:计算机与信息技术 作者:李青松 周晓光 周慧 发表于:2010-01-18 09:49 点击:次
【关健词】工程机械;监控;诊断;QT
(3)工程机械的报警记录和常见故障的预测评估,比如转速过快、传感器故障、数据传输故障等。 4.1 基于QT控件开发工程机械监控的实现 Hmi_developer已经包含了qt4提供的一些窗口控件,比如按键、进度条、菜单等;但
(3)工程机械的报警记录和常见故障的预测评估,比如转速过快、传感器故障、数据传输故障等。
4.1 基于QT控件开发工程机械监控的实现
Hmi_developer已经包含了qt4提供的一些窗口控件,比如按键、进度条、菜单等;但为了模拟工程机械的仪器仪表状态,需要开发仪表盘、指示灯、相对水平位置等控件。
根据QT4提供的接口,创建扩展需要从QObect和相应的基类继承并实现相应的函数。为了使QT原对象系统直接调用,要使用Q_INTERFACES()宏。以开发相对水平位置position控件为例,开发水平控件position插件头文件应包含如下。
Class Position:public QObject,
Public QDesignerContainerExtension
{ Q_OBJECT
Q_INTERFACE(QDesignerContainerExtension)
}
完成整个水平控件功能后,在QT command Prompt和QT-arm command Prompt中运行make install编译安装,将编译产生的各文件,安装到相应目录。最后写.pro文件,更新工程的编译时使用的库文件,如下。
CONFIG(release, debug|release) {
QMAKE_LIBS += -lcustomplugin -lposition
}
CONFIG(debug, debug|release) {
QMAKE_LIBS += -lcustomplugind -lpositiond
}
4.2 (如何实现QT的工程机械监控及诊断系统的设计)基于QT数据库工程机械诊断的实现
为了实现工程机械的报警记录和常见故障的预测评估,可以通过调用QT数据库SQLite接口。将常见的故障分别给一个特定的ID号,通过调用QT的数据库功能,做成智能专家信息表;同样,当接收到报警故障信息的时,把报警故障信息,存入报警故障信息表,再通过查询智能专家信息表,得出如何解决当前报警故障的方法。
在创建的QT应用程序里面,以“QSQLITE”为数据库类型,以“:Diagosis_System:”为数据库名,创建一个SQLite数据库。即:
QSqlDatabase db = QSqlDatabase::addDatabase(“QSQLITE”);
Db.setDatabaseName(“Diagosis_System”);
然后用QSqlQuery类创建数据库表“Expert_System”和“Alarm”,将常见这些报警故障信息存“Expert_System”表,报警记录存“Alarm”表。以插入一条Expert_System信息为例:
QSqlQuery query(“INSERT INTO Expert_System(id,suggestion)”
“VALUE(1,’电压过低,请充电’)”);
将插入的报警记录,通过读到该报警记录的ID号,比如5,通过查询“Expert_System”表的ID号,得到解决方案。
QSqlQuery query;
Query.exec(“SELECT suggestion FROM Expert_System WHERE id=5”);
4.3 应用程序实例(如何实现QT的工程机械监控及诊断系统的设计)
以挖掘机为工作对象,开发了如图3、图4所示的实用程序实例。通过挖掘机上的传感器采集数据,通过控制器和高速的CAN总线传送到PXA270硬件平台解析,应用程序得到解析后的数据,动态的显示当前挖掘机的各种状态和报警情况。试用中,经过多次模拟测试,在数据通信、智能控制、数据库操作上,都有良好的效果。图3显示了基本状态的监控界面,图4显示了报警故障记录的记录情况,以及如何查询所选报警故障的解决方法。
图3 状态监控
图4 报警故障诊断
5 结束语(如何实现QT的工程机械监控及诊断系统的设计)(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.