% File: /usr/lib/prolog/teach/faultfinder/gasheater % Author: Peter Hammond + Peter Ross % Updated: 30 Nov 1983 % Purpose: FAULTFINDER: a specific example. % ==================== % = = % = Gas Water Heater = % = = % ==================== top_fault = ghnwp. % ****************** % * General faults * % ****************** ghnwp: name = '' & type = general & preconditions = none & question = 'Is the gas heater working properly' & confirmed if no & causes = plnw or pltl or plth or ngmb. plnw: name = '' & type = general & preconditions = none & question = 'Is the pilot light working' & confirmed if no & causes = mgco or ckno or me or pjb. pltl: name = '' & type = general & preconditions = not(plnw) & question = 'Is the pilot light too low' & confirmed if yes & causes = pjb or aswa. plth: name = '' & type = general & preconditions = not(plnw) & question = 'Is the pilot light too high' & confirmed if yes & causes = aswa or asm. ngmb: name = '
' & type = general & preconditions = not(plnw) & question = 'Are the main burners working' & confirmed if no & causes = ckno or bmsnogsv or wiocw. % ******************* % * Specific faults * % ******************* pjb: name = '' & type = specific & preconditions = none & question = 'Is the pilot jet blocked' & confirmed if yes & action = 'Remove, clear and replace the tip if necessary'. mgco: name = '
' & type = specific & preconditions = none & question = 'Is the main gas cock off' & confirmed if yes & action = 'Turn it on, you twit'. ckno: name = '' & type = specific & preconditions = none & question = 'Is the control knob or lever at "on"' & confirmed if no & action = 'Turn the control knob or lever to "pilot" or "on"'. me: name = '' & type = specific & preconditions = none & question = 'Is there money in the meter' & confirmed if no & action = 'Put some in, dodo'. aswa: name = '' & type = specific & preconditions = not(asm) & question = 'Is the adjustment screw wrongly adjusted' & confirmed if yes & action = 'Release and turn the screw to get a suitable flame'. asm: name = '' & type = specific & preconditions = none & question = 'Is the adjustment screw missing' & confirmed if yes & action = 'Rush out and buy one from the Gas Board. Then fit it'. plnole: name = '' & type = specific & preconditions = none & question = 'Has the pilot been on long enough' & confirmed if no & action = 'Leave it for 5 mins after lighting, before operation'. bmswob: name = '' & type = specific & preconditions = none & question = 'Does the bimetallic strip need replacing' & confirmed if yes & action = 'Replace the bimetallic strip'. plnnebs: name = '' & type = specific & preconditions = none & question = 'Is the pilot close enough to the bimetallic strip' & confirmed if no & action = 'Bend the pilot so the flame touches the strip'. svps: name = '' & type = specific & preconditions = none & question = 'Is the safety valve pin sticking' & confirmed if yes & action = 'Turn off gas and work the pin up and down a few times'. mgvs: name = '
' & type = specific & preconditions = none & question = 'The main valve may be stuck. Is it' & confirmed if yes & action = 'Test the main gas valve'. wiocw: name = '' & type = specific & preconditions = none & question = 'Are the water inlet and outlet wrongly connected' & confirmed if yes & action = 'MULTIPOINTS ONLY - switch the pipes around'. % ******************** % * Separable faults * % ******************** bmsnogsv: name = 'Bimetallic strip not opening gas safety valve' & type = separable & preconditions = none & question = 'Is the bimetallic strip opening the gas safety valve' & confirmed if no & action = 'With the pilot lit, push the end of the strip down.' & test = 'Do the burners ignite' & decisions = [ plnole if yes, pltl or plnnebs or bmswob or svps or mgvs if no ].