井下输送设备健康管理系统的设计
2021-09-23石天祥
石天祥
(宁夏天地奔牛实业集团有限公司,宁夏 银川 750001)
0 引言
我国是一个煤炭大国,煤炭开采属于劳动力密集型行业,因此,提高井下开采设备的可靠性、并尽可能减少工作面工作人员的数量就非常重要。提高设备的可靠型,一是保证设备设计、制造的高技术水准;二是要靠设备使用中的日常维护。如果能开发适用的井下输送设备健康管理系统,则首先可以做到对设备主要部件的故障诊断和寿命预估,实现提前发现故障,提早解决故障,避免故障扩大化,减少设备停机时间和进行维护工作量;其次,健康管理系统可以记录并存储设备在不同状态下的运行参数,并通过后台分析软件对其进行分析,结合关键零部件寿命预估模型,向用户提供设备的事前性维护保养建议。
井下输送设备健康管理系统的设计分为系统架构设计、数据库设计、系统功能设计、系统界面设计等几个部分。主要技术栈为Python、PyQt、Flask、SQL、HTML、CSS、JS等。
1 系统架构设计
井下输送设备健康管理系统的架构采用线上和线下的方式,主要分为4个部分:线下的边缘网关、线上数据平台、数据可视化、辅助程序,如图1所示。
图1 井下输送设备健康管理系统架构设计Fig.1 Architecture of underground transportation equipment health management system
线下边缘网关:①线下边缘网关运行于采煤工作面设备列车上的防爆计算机上,和井下输送设备的智能控制系统保持定时通信,负责采集井下输送设备的状态数据(如电流、电压、转速、轴承温度、润滑油油位、振动等),经过本地存储和基本计算后,发送至线上的数据平台;同时还会对传感器和设备关键部件进行阈值报警和故障报警,以及设备关键部件的寿命预估分析。②线下边缘网关使用Python+PyQt开发,具有良好的跨平台性,既可以在Windows系统下运行,也可以在Linux系统下运行,结合煤矿的实际情况和使用体验等考虑,主要在Windows系统下运行。
线上数据平台:线上数据平台由多个不同功能的服务器组成,主要有数据库服务器、数据同步服务器、Web服务器、数据分析服务器、API服务器等等,后期根据具体的需求,还可以灵活的进行横向和纵向的扩充。这些服务器涉及到的健康管理系统的业务应用程序全部使用Python开发,而且为了确保业务稳定,全部运行在Linux系统上。①数据库服务器用于存储健康管理系统的所有数据,并对上层应用提供数据服务;后期根据数据量和并发量可以进行负载均衡和读写分离以优化性能。②数据同步服务器用于接收边缘网关发送的设备状态数据和基础运算结果,对数据进行简单处理并存储至数据库中,同时还要对边缘网关是否在线进行判断和标识;因为数据同步服务器可能会面临大量的并发,所以使用Python的协程方式开发运行,极大地提高了系统的运行效率。③Web服务器读取数据库中的数据,提供管理员使用的配置界面和所有用户使用的数据可视化界面,同时还提供手机APP所需要的RESTFUL接口;Web服务器使用Python+Flask开发。④数据分析服务器通过对收集的海量数据进行建模分析,根据分析结果改进设备的硬件设计及其它方面。⑤API服务器提供健康管理系统的API接口,用于和ERP和库存系统等通信,以便后期实现设备的全寿命周期管理。
数据可视化:数据可视化旨在通过浏览器、APP等多种方式,通过图表、曲线等直观手段,为用户呈现井下输送设备的各种原始数据、分析数据、阈值报警、故障报警、寿命分析等。
辅助程序:井下输送设备健康管理系统数据库涉及上千个字段,在为客户进行健康管理系统部署的时候,有很多字段需要进行初始化赋值,比如客户名称、设备名称、传感器名称等等,因为每个客户配套的设备不一样,所以每次需要初始化的字段也不一样,而初始化系统能够通过友好易用的GUI界面极大地提高初始化速度,进一步提升部署效率。线上平台的诸多服务器需要7×24 h全年不间断运行,为了保证业务正常运行,需要部署诸如Zabbix、Nagios等监控系统,以便实时了解整个系统当前的运行情况,尽量降低业务中断所造成的损失。后期随着业务量的持续上升,可能会有其他的辅助服务上线,比如认证服务等。
2 数据库设计
井下输送设备健康管理系统采用关系型数据库管理系统,因为健康管理系统定位于SaaS(Software as a Service,软件即服务)系统,且还有运行于采煤工作面的边缘网关,所以数据库设计模式相对来说较为复杂。以下从数据库选型、唯一标识符、线下边缘网关数据库设计、线上数据平台数据库设计等几个方面做简单阐述。
数据库选型:根据主流性、性能、可靠性、扩展性、经济性、跨平台性等多个方面,结合实际业务需求,选择开源的MySQL作为健康管理系统的数据库管理系统。MySQL 数据库体积小、速度快、总体拥有成本低、开放源代码,在互联网上应用非常广泛。
唯一标识符:井下输送设备健康管理系统定位于SaaS系统,数据同步服务器会同时接收到不同采煤工作面的健康管理系统的数据,所以需要一个唯一标识符对各个健康管理系统进行区分,该唯一标识符作为健康管理系统的身份证,会贯穿在健康管理系统的各个应用方面。因为在生产每一套井下输送设备之前,都会给分配一个唯一的生产令号,非常符合唯一标识符的特征,所以健康管理系统采用该生产令号作为唯一标识符。
线下边缘网关数据库设计:在明确需求的情况下,通过定义实体、绘制E-R图、把E-R图转换为模型、模型检查、根据模型定义数据库等标准的数据库设计步骤后,生成边缘网关数据库的数据字典。
线上数据平台数据库设计:SaaS系统的数据库设计,一般也被称为多租户数据库设计,而常见的多租户数据库模型有3种,分别是独立数据库、共享数据库(独立schema)和共享数据库(共享表),结合数据隔离度、数据库成本、开发复杂度、运维复杂度等性能参数综合考虑,健康管理系统采用独立数据库的多租户模式,虽然该模式数据库成本较高,但是数据隔离度高,开发复杂度低,也便于维护。独立数据库模式下,每套井下输送设备的健康管理系统在数据平台的数据库中都是一个单独的数据库,使用“统一的前缀.唯一识别符”作为数据库名称,每套健康管理系统的数据库都具有同样的数据结构,也就是线下边缘网关数据库的数据结构。
数据共享:除每套健康管理系统拥有自己的独立数据库外,数据平台的其他服务程序还需要共享一些公共的、统一的数据,比如权限角色、管理员和用户、机构名称等独立于健康管理系统数据之外的数据,这类数据也使用一个独立的数据库,使用“统一的前缀.public”作为数据库名称。类似的还有初始化系统的数据库,“统一的前缀.initialize”作为数据库名称。
3 系统功能设计
线下边缘网关功能设计:本质上来说,线下边缘网关其实也是一个独立的健康管理系统,只为和它通信的井下输送设备提供服务,并且具有一个基本健康管理系统的全部功能,主要有数据采集、运行状态、阈值报警、故障报警、寿命预估、历史查询、数据同步、报表生成、使用帮助等9大功能。①数据采集功能使用预先设定好的协议和井下输送设备的智能控制系统(一般是PLC)进行定时通信,取到数据后对数据进行分类并存储至数据库,同时交由阈值报警、故障报警、寿命分析等功能进行进一步计算分析,如果没有正常采集到数据,则会报警并提示对应的错误信息。②运行状态以图表、曲线、进度条等直观的形式展现井下输送设备当前的运行状态,如启停状态、链速、负载、煤量、运行时间、运行里程、使用寿命、报警灯信息。③阈值报警是通过将采集到的数据与预先存储在数据库中的阈值判断规则进行比对,以判断该传感器当前的状态是否触发报警,如润滑油油位是否过低、冷却水压力是否过低、轴承温度是否过高等;如果触发报警,系统会进行报警并将报警记录存储至数据库,除非该传感器的状态值恢复正常,否则会持续报警。④故障报警是将采集到的数据与预先存储在数据库中的故障诊断规则进行比对,以判断是否触发报警。故障分为2大类,一类是传感器故障,如传感器数据超出有效值范围等,另一类是关键部件(如减速器、电动机、链轮轴组等)故障,如减速器润滑油油质恶化、减速器轴承故障等。故障诊断规则是由多个阈值判断规则通过数学模型耦合而来。如果触发故障报警,系统会进行报警并将报警记录存储至数据库,除非该故障恢复正常,否则会持续报警。⑤寿命预估是将井下输送设备关键部件的运行时间根据当前的设备负载、工作温度、工作面地质条件等多个因素的权重系数进行计算分析,然后将结果与该关键部件的出厂寿命进行对比,如果达到触发报警的条件则进行报警,如使用寿命已经达到了设计寿命的80%。除非该部件进行了更换,否则会持续报警。⑥通过历史查询功能可以查询传感器的历史数据、传感器历史阈值报警、传感器历史故障报警、关键部件的历史故障报警、关键部件历史寿命报警等数据,并支持将查询结果导出为Excel文件。⑦数据同步功能主要用于将采集到的传感器数据、经过分析计算后的各种报警、寿命分析结果实时同步至数据平台的同步服务器,同时也会实时检测网络情况,如果网络中断或者和同步服务器断开连接,也会进行提醒。数据同步使用多线程独立运行,以免阻塞主界面影响用户体验。⑧报表生成功能会生成一个井下输送设备截至当前时间的健康体检报表,包含了当前各个主要部件的寿命分析、是否有报警等,及各个传感器的情况等等,并可以导出为Excel或PDF文件。⑨使用帮助功能类似一个用户手册,包含了健康管理系统各个功能的使用说明,用户可以通过查看使用帮助了解健康管理系统的使用方法、常见问题及解决方法。
线上数据平台功能设计:线上数据平台除了有线下边缘网关的所有功能外,还有如下功能。①设备分布功能使用高德地图SDK,将各井下输送设备依据经纬度显示在地图上,在线的显示为蓝色图标,离线的显示为红色图标;点击图标后,可显示健康管理系统的所有功能。管理员权限可以看到所有设备,普通用户只能看到自己所在组织的设备。②数据面板功能将给运维人员看的主要数据如启停状态、在线状态、报警状态等进行汇总、显示。③数据分析功能根据已有的数据进行一些简单的分析,如同一时刻下,轴承温度和润滑油油质间的关系等等。④角色管理的角色是一系列权限的集合,处于这个角色下的用户,就具有了该角色下的所有权限,可以对角色进行添加、修改、删除等操作。⑤用户管理的用户分为普通用户和管理员用户,普通用户必须要依托于某一个组织架构下,如“XX集团→YY煤矿→ZZ工作面”和“XX集团→WW煤矿→ZZ工作面”这2个组织架构,用户如果是在“XX集团”下,则该用户可以看到“XX集团”下所有煤矿工作面的设备;用户如果是在“YY煤矿”下,则该用户可以看到该“YY煤矿”下所有工作面的设备;用户如果是在“ZZ工作面”下,则只能看到该工作面下的设备;管理员用户由超级管理员维护,普通用户由具有权限的管理员维护。⑥组织架构是树状目录,可以对组织架构进行添加、修改、删除等操作;如果要删除的组织架构下面还有子架构,则不允许删除,必须先删除所有的子架构后,才能删除父架构。⑦系统初始化通过渐进式步骤,对健康管理系统相关字段进行初始化操作。初始化完成后会自动生成该设备的业务数据库,并自动生成该数据库SQL文件,使用该SQL文件即可快速部署线下的边缘网关的健康管理系统,以达到初始化同步。
4 系统界面设计
线下边缘网关界面设计:因为线下边缘网关采用的C/S模式,所以使用Python+PyQt进行界面开发。使用标签页的方式进行布局,每一个标签页就是一个主要功能。为了方便调试,在右上方添加了数据源状态指示灯和服务器状态指示灯,用以实时显示和数据源的通信状态以及和同步服务器的通信状态。
线上数据平台界面设计:因为线上数据平台采用的B/S模式,所以使用开源的Python+AdminLTE框架模板。AdminLTE是一个完全响应管理模板。基于Bootstrap3,jQuery 3.3.1 这2个框架,易定制模板。适合多种屏幕分辨率,从小型移动设备到大型台式机。内置了多个页面,包括仪表盘、邮箱、日历、锁屏、登录及注册、404错误、500错误等页面。可以按照AdminLTE的默认方式,对主要功能进行布局。
5 结语
万丈高楼平地起,一个好的系统一定要有一个良好的设计作为基础。本文结合可靠性、健壮性、可修改性、先进性、可扩展性、安全性等多个角度,详细介绍了井下输送设备健康管理系统的架构设计、数据库设计、系统功能设计、系统界面设计等,重点介绍了一些关键技术点,如SaaS系统的技术架构、多租户数据库模型、独立线程数据同步等,为开发井下输送设备健康管理系统打下了坚实的基础。