基于Django的管线试压包状态跟踪系统在FPSO建造中的应用
2023-10-20邢同超马桂君王令司石振华聂兰兆
邢同超,马桂君,王令司,石振华,聂兰兆
(海洋石油工程(青岛)有限公司质量管理中心,青岛 266520)
0 引言
石油化工行业的管线多数都是以焊接的形式连接,焊缝质量的优劣直接影响整个系统的质量。检验焊缝质量最主要、最广泛的方法就是对管线进行试压,使其在规定的时间范围内承受规定的压力而不发生破坏,试压工作在管线加工制造过程中具有举足轻重的作用[1-2]。浮式液化天然气生产储卸装置(FPSO)管道多、系统多,管线错综复杂,试压包数量多,试压包状态跟踪统计工作量繁重且难度高,如何快速高效地对试压包状态进行实时跟踪统计是项目管理人员和现场检验人员关注的重点。基于以上需求,本文提出了一种解决方案,基于Django 建立了一套管线试压包状态跟踪系统,通过在某FPSO 项目的实际运行,应用效果良好,其中的应用经验可供其他类似项目参考。
1 管线试压包管理系统
管线试压一般工作步骤:管线预制及检验完成→试压包批复→查线及A类尾项整改完成→冲洗/吹扫→压力试验→清洁干燥→管线复位→最终检查,从查线及A 类尾项整改完成至最终检查的步骤均为检验节点。根据项目要求,试压包检验节点状态和A 类尾项的整改状态均须进行跟踪。在以往此类项目中,统计工作一般利用Excel 完成,相关数据离散地保存在个人电脑上,不便于数据共享及实时查询。某FPSO 项目管线试压包共计1200 多个,尾项达数万条,统计跟踪工作量非常大。为解决这些问题,本文基于Django 建立了一套管线试压包状态跟踪系统,该系统实现了试压包数据的上传下载、试压包过程数据录入、各检验节点状态及尾项状态的实时统计。
2 系统主要功能设计
系统主要功能包括配置模块、试压包基础信息模块、试压包状态跟踪表录入模块、试压包状态查询统计模块。
2.1 配置模块
配置模块用来管理字段的显示、显示位置、模板文件导入导出、导出位置、表头默认值。
根据项目需要,试压包状态表中的过程数据录入完成后,需要导出到Excel 格式的模板中。为此,用户需要将模板文件上传至系统后台,并设置每个字段的导出位置。对于表头区域的字段,只需要明确单元格地址即可,如“A3”。对于表格区域的字段,需要填写第一行的地址。
表头中的部分字段的填写内容是固定的,如项目名称,系统需要具备填表头默认值的功能,在后续用户每次填写一个新的试压状态跟踪表时,用户设置的默认值将自动填写至相应的字段内容中,减少用户的输入,提高录入信息的准确度。
2.2 试压包基础数据模块
试压包基础数据模块包含每一个试压包的基础信息,这些信息项包括:模块号、试压包号、试验压力、试验介质、图纸号等。
2.3 试压包状态跟踪表录入模块
该模块用来管理试压包状态跟踪表的新增、修改、删除、报告导出。
每一个试压包对应一个状态跟踪表,报告号可以根据项目要求设定报告前缀,在第一份跟踪表创建完成后,后续的编号采用流水号的方式自增即可。
状态跟踪表表头区域的信息项包括:项目名称、模块号、场地、施工单位、试压包号、各方检验人员查线日期、查线结果、试压前清洁日期、试压日期、清洁干燥日期、管线恢复完成日期等。
表格区域的信息项包括:尾项中英文描述、图纸号、尾项类别、提出人、责任方、尾项关闭人、关闭日期等。
填写人在录入模块号、试压包号时,系统自动从试压包基础数据表中读取相应信息,并支持模糊匹配,这样可以减少用户的输入量,同时能够保证信息的准确性。
在导出报告时,用户可以根据关键字段进行筛选,如报告号、试压包号、模块号等,以便于迅速找到所需的报告。在选择多个报告时需支持批量导出。
2.4 查线统计模块
查线统计模块包括试压包状态统计和试压包尾项查询统计。
试压包状态统计主要功能是对试压包状态进行查询并统计,包括已查线数量、查线合格数量、试压前清洁完成数量、试压完成数量、清洁干燥完成数量、恢复完成数量。管理人员会对不同的模块查询相应周期内容的统计数据,这些统计信息会对项目的施工管理提供数据支持。
试压包尾项统计用于对试压前管线查线尾项进行统计,包括A/B 尾项总数、A/B 尾项累计关闭数量、A/B 尾项累计剩余数量、当日新增A项/B 项数量、当日关闭A 项/B 项数量等。除了统计汇总数据,还要生成每一个试压包的状态统计表。该状态统计表表头信息项如表1所示。
表1 状态统计表表头信息项
3 系统功能实现与展示
本系统利用Django 框架进行开发。Django是用Python 语言开发的一个免费开源的Web 框架,遵循MVC(models views controller)开发模式,用于开发基于B/S 架构的各类应用。由于Django 开发应用活动主要是在models.py、templates 文件夹里的各类模板和views.py 里进行的,因此Django 的开发模式也被称为MTV(models templates views)模式。Django 的MVC 流程架构示意图如图1 所示。
图1 Django的MVC流程架构示意图
本系统采用的Django 的版本为2.2,Python版本为3.8。系统前端使用了AdminLTE,Admin-LTE 是一款基于Bootstrap 的开源免费的模板主题工具,它提供了一系列响应的、可重复使用的组件,并内置了多个模板页面,同时自适应多种屏幕分辨率,兼容PC 和移动端。后端数据库采用开源的MySQL 数据库,Django 通过内置的MySQL适配器访问MySQL数据库。
Django 的ORM 操作本质上会根据对接的数据库引擎,翻译成对应的SQL 语句,所有使用Django 开发的项目无需关心程序底层使用的是MySQL、Oracle、SQLite,如果数据库迁移,只需要更换Django的数据库引擎即可。
试压包状态跟踪表对应的ORM 模型中包含的部分核心字段及字段类型见表2。
表2 试压包状态跟踪表对应的ORM模型中包含的部分核心字段
系统操作人员将技术人员提供的管线试压包基础数据上传至系统后台数据库。随着试压工作的进行,现场检验人员根据每天的实际检验情况在系统中录入查线尾项和各节点检验信息。试压包状态跟踪列表如图2所示。
图2 试压包状态跟踪列表
项目管理人员最关心的数据是每个工艺步骤的试压包数量有多少,如查线完成了多少,查线合格数量,试压完成多少,恢复释放数量有多少。利用本系统,项目管理人员可以登录系统,选择所需的模块号、日期等筛选条件,系统后台将自动生成试压包状态统计数据、尾项状态统计数据。试压包状态汇总数据见图3,同时可以根据需要生成每一个试压包的状态跟踪数据表,试压包状态跟踪数据表见图4。
图3 试压包状态汇总数据
图4 试压包状态跟踪数据表
4 管线试压包管理系统应用和效果
管线试压包管理系统应用前后对比见表3。
表3 管线试压包管理系统应用前后对比
5 结语
管线试压工作是一项技术含量高且危险性极强的工作[3],在FPSO 建造过程中,试压工作须严格按照管线试压程序执行,并对管线试压包的节点和查线尾项做好管理工作。按以往项目模式,需要大量人力参与试压包的数据整理、录入和统计汇总工作,过程繁杂且容易出错,因此亟需一套系统化的在线协作平台进行管理。本文从实际项目出发,介绍了一套管线试压包状态跟踪系统,经过项目的运行,提高了工作效率,提升了数据准确性,值得在管线试压工作中推广。