This repository contains associated code for the conference paper Semi-Automated Estimation of Reliability Measures from Maintenance Work Order Records.
$ pip install requirements.txt
To use the pipeline within this repository, an extract of maintenance work order records from 1SAP, SAP or JDE is required with the suitable fields available that map to the following:
- FUNCTIONAL_LOC_DESC - e.g. "Functional Location Description"
- FUNCTIONAL_LOC - e.g. "Work Order Functional Location"
- WO_DESCRIPTION - e.g. "Work Order Description"
- CREATION_DATE - e.g. "Work Order Created On Timestamp (UTC)"
- BASIC_START_DATE - e.g. "Work Order Basic Start Date"
- BASIC_FINISH_DATE - e.g. "Work Order Basic Finish Date"
- ACTUAL_START_DATE - e.g. "Work Order Actual Start Timestamp"
- ACTUAL_FINISH_DATE - e.g. "Work Order Actual Finish Timestamp"
- TOTAL_ACTUAL_HOURS - e.g. "Work Order Actual Total Hours"
- TOTAL_ACTUAL_COST - e.g. "Work Order Total Actual Costs"
- WO_CLASSIFICATION - e.g. "Work Order Type"
- Classification is either WO TYPE in SAP or Classification in JDE (preventative, corrective, etc.)
- OBJECT_TYPE - eg. "Functional Location Object Type Description"
- This is a high level object type (if avaialble) that identifies clearly what type of object (e.g. pump, motor, conveyor) the work order is associated with.
- ACTIVITY_TYPE - JDE specific - this has repair, overhaul, rebuild etc, classifications for work orders.
Before executing any code, a configuration file in YAML (.yml) format is required (a template for the configuration file is provided in config_template.yml with details about field value requirements).
Once a suitable data set has been selected and the configuration file set, the pipeline can be executed with python run.py. run.py will execute the following stages of the pipeline:
- Term expansion process via
term_expansion.py - Collocation identification via
collocations.py - Parameter estimation via
mwo_to_mtbf.py
The term expansion process consists of an iterative process where terms indicative of EOL events are input by the user after being presented with a set of options. The format of the command-line interface shows the focus term and top-n similar terms and their respective % similarity.
Similar to the term expansion process, collocations are captured through the command-line. In this case a set of collocations are presented (number set in configuration) where each collocation is shown in the following format collocation | number of occurences in dataset (% of dataset). Collocations are presented as most frequent to least frequent in the dataset.
- An output directory must be specified in the configuration file and must exist before the pipeline is executed.
- The term expansion process expects the user to input a seed term - we recommend seeding with the term
replace. - The pipeline ran through
run.pyexecutes the two stages (in three steps) sequentially, however each stage can be executed by running their respective script located in the/pipelinedirectory. This is recommended if you want to capture more collocations or re-run MTBF estimations as running the pipeline from scratch will require the term expansion process to be performed again.
Please cite our [conference paper] if you find it useful in your research:
@inproceedings{bikaun2021semiauto,
title={Semi-automated Estimation of Reliability Measures from Maintenance Work Order Records},
author={Bikaun, Tyler, and Hodkiewicz, Melinda},
journal={European Conference of the Prognostics and Health Management Society, PHM Society'2021.},
year={2021},
vol={6}
}
Please email any questions or queries to Tyler Bikaun (tyler.bikaun@research.uwa.edu.au)
