UBC Theses and Dissertations

UBC Theses Logo

UBC Theses and Dissertations

Steel billet reheating : an expert approach Mui, Cliff 1998

Your browser doesn't seem to have a PDF viewer, please download the PDF to view this item.

Item Metadata

Download

Media
831-ubc_1998-0557.pdf [ 7.52MB ]
Metadata
JSON: 831-1.0078505.json
JSON-LD: 831-1.0078505-ld.json
RDF/XML (Pretty): 831-1.0078505-rdf.xml
RDF/JSON: 831-1.0078505-rdf.json
Turtle: 831-1.0078505-turtle.txt
N-Triples: 831-1.0078505-rdf-ntriples.txt
Original Record: 831-1.0078505-source.json
Full Text
831-1.0078505-fulltext.txt
Citation
831-1.0078505.ris

Full Text

Steel Billet Reheating: An Expert Approach B y C l i f f M u i B A S c , The University of British Columbia, 1989 A THESIS S U B M I T T E D I N P A R T I A L F U L F U L L M E N T O F T H E R E Q U I R E M E N T S F O R T H E D E G R E E O F M A S T E R O F A P P L I E D S C I E N C E in F A C U L T Y OF G R A D U A T E S T U D I E S D E P A R T M E N T O F M E T A L S A N D M A T E R I A L S E N G I N E E R I N G We accept this thesis as conforming Jp the re^uaired-ssjandard T H E U N I V E R S I T Y O F B R I T I S H C O L U M B I A July 1998 © C l i f f M u i , 1998 In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purposes may be granted by the head of my department or by his or her representatives. It is understood that copying or publication of this thesis for financial gain shall not be allowed without my written permission. Department of jA&TALS AMD rAATagvAlS £r>&lMfc£fllMG The University of British Columbia Vancouver, Canada Date O C T O B E R IS, DE-6 (2/88) ABSTRACT The manufacturing of steel bar products in mini-mills involves the continuous casting of billet sections, cooling of the billets, reheating to rolling temperatures and final shaping and size reduction in rolling mills. The operation of such furnaces can be a challenge due to the dynamic nature of both the reheating and rolling processes. The operation of a furnace was analyzed with the use of a S C A D A data collection system, steady state and transient mathematical models. The new knowledge gathered in this way was complimented by existing knowledge from experienced mi l l personnel to form the basis for an expert system designed to offer timely advice to furnace operators. The result was the development of an industrial expert system leading to an increase in furnace mi l l productivity. n TABLE OF CONTENTS A B S T R A C T ii T A B L E O F C O N T E N T S iii L I S T O F T A B L E S v L I S T O F F I G U R E S vi G L O S S A R Y viii A C K N O W L E D G M E N T S x C H A P T E R 1. I N T R O D U C T I O N 1 C H A P T E R 2. B A C K G R O U N D A N D P R E V I O U S W O R K 3 C H A P T E R 2.1. T H E S T E E L R E H E A T I N G F U R N A C E : 3 C H A P T E R 2.2. P R O B L E M S A S S O C I A T E D WITH R E H E A T I N G F U R N A C E O P E R A T I O N : 8 C H A P T E R 3. E X P E R T A N D S C A D A S Y S T E M S 19 C H A P T E R 3.1. E X P E R T SYSTEMS: 19 C H A P T E R 3.2. E X A M P L E S OF E X P E R T SYSTEMS: 22 C H A P T E R 3.3. P R O P O S E D I M P L E M E N T A T I O N OF A N E X P E R T S Y S T E M T O T H E R E H E A T I N G F U R N A C E : 2 8 C H A P T E R 3.4. O B T A I N I N G A N D PROCESSING F U R N A C E D A T A - T H E SUPERVISORY C O N T R O L A N D D A T A AQUISITION ( S C A D A ) S Y S T E M : 33 C H A P T E R 4. S C O P E A N D O B J E C T I V E S 38 C H A P T E R 4.1. S C O P E OF T H E PROJECT: 38 C H A P T E R 4.2. OBJECTIVES OF T H E PROJECT: 39 C H A P T E R 5. - M E T H O D O L O G Y 41 C H A P T E R 5.1. A P P R O A C H T O T H E R E H E A T I N G P R O B L E M : 41 C H A P T E R 5.2. I M P L E M E N T A T I O N O F T H E E X P E R T S Y S T E M : 45 C H A P T E R 5.3. T H E I N S T A L L E D E X P E R T S Y S T E M : 47 C H A P T E R 5.4. A N A L Y S I S OF T H E F U R N A C E OPERATION D A T A : 63 C H A P T E R 5.5. A N A L Y S I S OF T H E O P T I C A L P Y R O M E T E R D A T A : 66 C H A P T E R 5.6. A N A L Y S I S OF T H E B I L L E T GROUPINGS: 67 C H A P T E R 6. R E S U L T S A N D D I S C U S S I O N : 69 C H A P T E R 6.1. T H E E X P E R T S Y S T E M : 69 C H A P T E R 6.2. T H E I N T E R F A C E & O P E R A T O R RESPONSE: 76 C H A P T E R 6.3. BENEFITS OF T H E S Y S T E M T O T H E M I L L OPERATION: 80 C H A P T E R 7. C O N C L U S I O N S 81 B I B L I O G R A P H Y 82 A P P E N D I X A M A T H E M A T I C A L M O D E L I N G R E S U L T S 85 A P P E N D I X B H A R D W A R E 92 i i i APPENDIX C SOFTWARE 93 APPENDIX D PLANT TRIALS 94 APPENDIX E DATA PROCESSING CODE 95 APPENDIX F FILES ON THE QNX MMI COMPUTER 109 APPENDIX G COMDALE/C KNOWLEDGE BASE CODE 115 APPENDIX H RAW AND PROCESSED DATA FROM 6 OPERATING WEEKS 152 IV LIST OF TABLES Table 3.1 Description of Data/Knowledge Stream 32 Table 5.1 Possible Outcomes of Delay Time Estimation and Error Consequences 44 Table 5.2 Possible Outcomes of Delay Time Estimation and Control Responses 44 Table 5.3 Possible Detector Signal Sequences 54 Table 5.4 Child Processes Within the Inference Engine 62 Table 5.5 Reheating Furnace Control Procedure Analysis 65 Appendix Tables Table A - 1 Basic Post-Delay Firing Strategy 89 Table A - 2 Fine Post-Delay Firing Strategy 89 v LIST OF FIGURES Figure 2.1 Conversion from Scrap to Billet Steel 4 Figure 2.2 Schematic of the Post-heating Rolling Process 4 Figure 2.3 Side View of the Furnace 5 Figure 2.4 Existing Control Flow Diagram 6 Figure 2.5 End View Schematic of the Billet Support Beams 10 Figure 2.6 Top View of Billets Resting on Support Beams 11 Figure 2.7 Typical Axial Temperature Profile 11 Figure 2.8 Effect of Carbon Content on Steel Melting Temperature 15 Figure 2.9 Schematic of the Migration of Carbon from the Steel into the Combustion Atmosphere 16 Figure 2.10 Limiting conditions of time and temperature for various degrees of decarburization in 3" slab based upon isothermal data. 17 Figure 3.1. Pyrolysis Chamber for Alumina Fibres 24 Figure 3.2 Schematic of the Data and Knowledge Streams 31 Figure 3.3 QNX multitasking operating system 33 Figure 3.4 Knowledge Units Available to Comdale/C 36 Figure 3.5 Independent Application Modules 37 Figure 5.1 Interim Logging System 46 Figure 5.2 Block Diagram of the Current System 46 Figure 5.3 Block Diagram of the Proposed System 46 Figure 5.4 MMI Billet Profile Screen 49 Figure 5.5 SOP Product Selection Screen 53 Figure 5.6 Schematic of the Mill Sensor Layout 53 Figure 5.7 Hot Metal Detector (HMD - an optical position sensor) Signal Quality 54 Figure 5.8 Historical Furnace Operation Screen - Gas Flows 55 Figure 5.9 Historical Furnace Operation Screen - Temperatures 56 Figure 5.10 Advisory Screen 57 Figure 5.11 Inference Logic Cycle applied to the Knowledge Base 61 Figure 6.1 N6 Raw Gap Times 72 Figure 6.2 N6 Gap Time with Arbitrary Ranges 72 Figure 6.3 Example of Furnace Zone Temperature Traces 73 Figure 6.4 Example of Furnace Natural Gas Traces 73 Figure 6.5 Example of Furnace Air Traces 74 Figure 6.6 Example of Furnace Pressure Traces 74 Figure 6.7 Plot of Billet Temperature Profiles Over Time 75 Appendix Figures Figure A -1 Plant Trial Results as Compared with Modeling Results 85 Figure A - 2 Results of a Basic Strategy with a Null Strategy 90 Figure A - 3 Results of a Fine Strategy with a Null Strategy 90 Figure A - 4 Billet Release Gap Times 153 Figure A - 5 Billet Release Gap times 153 Figure A - 6 Billet Release Gap Times 154 Figure A - 7 Billet Release Gap Times 154 Figure A-8 Billet Release Gap Times 155 Figure A-9 Billet Release Gap Times 155 Figure A -10 Billet Release Gap Times 156 Figure A -11 Billet Release Gap Times 156 Figure A -12 Billet Release Profile - 40 second target 157 Figure A -13 Modified Billet Release Profile - 40 second target 157 vi Figure A -14 Magnified Billet Release Profile - 40 second target 158 Figure A - 15 Billet Release Profile - 50 second target 159 Figure A - 16 Modified Billet Release Profile - 50 second target 159 Figure A - 17 Magnified Billet Release Profile - 50 second target 160 Figure A-18 Billet Release Profile -100 second target 161 Figure A - 19 Modified Billet Release Profile -100 second target 161 Figure A - 20 Magnified Billet Release Profile - 100 second target 162 v i i \ GLOSSARY A l - "Artificial Intelligence is a collection of computer-based techniques, based on the manipulation of symbols rather than numbers, which enable computer to produce behavior which resembles that previously only seen in humans." [1,2] Bar- Describes a section of billets which has been deformed and is currently being rolled in the rolling m i l l B E T A - the second phase of software development in which developers w i l l make a limited release of the code in an unfinished form in order to obtain user feedback from final users. Bil let - A raw steel section prior to rolling typically less than 16 ft long, square section of 4 3/4", 6" or 8" for our mi l l (corresponds to N 2 , N 3 , and N6) Cobble - A bar misfed or tangled in mid rolling causing a stoppage in the rolling operation Comdale/C - Real-Time expert system software like Comdale/X but is capable of managing real-time inputs from the processes and making Expert control contributions Comdale/X - Expert system software including knowledge base generator, inference engine and man/machine interface- written by Comdale Technologies. Degree of Bel ief - The percentage in which one believes a proposition is correct Degree of Certainty - The percentage certainty that a piece of information is correct Heat - A single batch of heated steel conforming to a set of metallurgical standards which is destined for casting and rolling. Heuristics - A set of information, knowledge and procedures which is used in problem solving H M D - Hot Metal Detector - "electric eye" with a narrow range of vision which is sensitive to infrared radiation, i.e. the radiant energy from the hot billet as it passes a point in front of the detector. Inference Engine- The C P U of an expert system which performs knowledge based reasoning. ISO9002 - The international standard which manufacturing companies must comply to be able to carry the ISO9002 qualify insignia. Key Word Triplet - The sequence of three words link into a symbolic representation of a piece of knowledge, e.g. "object.attribute.value" each with a degree of certainly attached M M I - M a n Machine Interface - The interface between the process and the operator, can but does not necessary include control Pace - The distance that the walking beam moves the billets on each walk. This is also equal to the billets spacing or some whole fraction of the billet spacing. Pace rate - the rate at which the billets are walked through the furnace (i.e. steps/min) v i i i PID - Proportional Integral Derivative - Describes the control process in which control changes are made in a fashion which examines not only a non target condition but adjusts control with respect to magnitude of offset, required adjustment, and rate o f change. P L C - Programmable Logic Controller - a microprocessor designed to accept software instruction sets which adjust control outputs based on control inputs ProcessVision - Real-time process view and control software capable of accepting real-time inputs from processes and providing a visual interface for the process supervisor. Process Lore-the false belief in a basic principle or effects of segments of process control Q N X - P C based U N I X operating software which allows real-multitasking of software in the industrial environment - written by Quantum Software. Quality Assurance - The supervision of the process of producing a product in order to ensure all process steps contribute to a product which wi l l be within specifications Quality Control - The examination of products after production to ensure that the products are within specifications. S C A D A - Supervisory Control A n d Data Acquisition - a supervisory system which is capable of acquiring process information remotely and supplying appropriate control to the process. Skidmark - a skidmark is a thermal depression on a billet caused by the billet sitting on the relatively cold stationary support beam. Skidmark Severity - The severity in terms of the absolute temperature drop in the skidmark region in contrast to the surrounding regions. Slide Wire - a electro-mechanical system which results in a resistance output based on the mechanical position of a detector arm. Stand - A large piece of machinery housing a vertical stack of rollers in which a bar passes through the inner rollers to deform to a smaller size and/or shape Steady State - A state in which a conditions are stable and not changing Transient - A state in which conditions are changing Walking Beam - The mobile beam in a walking beam furnace which lifts the charge of billets off of stationary beams and moves them forward or backward. After the traverse of a Pace the walking beams set the charge back down on the stationary beams. ACKNOWLEDGMENTS I would like to express my deepest appreciation to Dr. Peter Barr and Dr. John Meech for their support and guidance towards the completion of this project. In addition I would like to thank Dr. Keith Brimacombe, Dr. Indira Samarasekera, and the Centre for Metallurgical Process Engineering and N S E R C for both financial and moral support in this endeavor. I owe a debt of gratitude to Vladimir Rakocevic for his invaluable assistance in creating the hardware drivers required by my system. I would like to acknowledge the assistance of the personnel at Al ta Steel, Bob Pugh, Doug Ostafichuk, Dennis Gutknecht, Mark Burrough, E d Duchesne, and the furnace operators for their support and patience during the system installation and operation. Special thanks go out to my friends and colleagues for their inspirational conversations and to my family for supporting all o f my decisions. x Chapter 1. In t roduc t ion In a typical minimil l steelmaking plant, the reheating furnace is situated between the caster which produces the billets, and the rolling mi l l which shapes the billets, into finished products. The operation of a steel billet reheating furnace located in Alberta, Canada w i l l be utilized for our analysis. The production of material such as construction rebar or rail sections involves the conversion of raw billets into hot rolled products. Billets must be heated in furnaces in order to bring average temperatures to a point at which the billets can be rolled with reasonably low forces as well as result in the proper microstructure at the end of the process. In the ideal world of furnaces operated within steel rolling mills, all processes run at steady state and no problems occur to disturb this perfect equilibrium. In this perfect world, steel billets are charged cold into the furnace and are removed hot at regular intervals, all of which are homogeneously heated prior to hot rolling in the downstream mi l l rolls. The furnace, of course, would be operated at optimal steady-state conditions at all times and would never require adjustment. The rolling mi l l would be able to accept these billets in a timely fashion and would shape all of the bars successfully into rolled products. Unfortunately, this ideal world does not exist. In the real world, furnaces routinely experience transient conditions. For example, scheduled delays due to regular downstream roll changes or unscheduled delays due to unexpected cobbles are a few of the conditions that may be encountered during the initial charging of billets. Furnaces have large thermal inertia - things change slowly and 1 errors take time to recover. Control of the furnace temperatures is critical i f the desired result is to produce a homogeneously heated product billet at the proper time and proper temperature. Intelligent control of this process is the responsibility of experienced furnace operators whom base their decisions on a myriad of different factors. Consistency of such operator-based control can be poor at the best of times therefore a systematic, computerized, approach seems to be the solution. Artificial Intelligence is defined as "a collection of computer-based techniques, based on the manipulation of symbols rather than numbers, which enable computers to produce behavior which resembles that previously only seen in humans" [1,2]. Expert Systems involve the application of Artificial Intelligence concepts to real world problems. Expert Systems operate very differently from conventional computer programs in that the problem solving techniques, or "heuristics", mimic human problem solving. Expert systems would therefore have a distinct advantage over conventional control schemes in experience laden applications such as steel reheating furnaces. The ultimate goal of this exercise is to improve product consistency and to lower mi l l operating costs. 2 Chapter 2. Background and Previous Work Chapter 2.1. The Steel Reheating Furnace: The facility chosen for the implementation of this expert system was a mini-mil l located in Alberta, Canada. The mi l l buys scrap steel on the open market, melts the raw material in an electric arc furnace and makes metallurgical adjustments to composition prior to a continuous casting process for the production of steel billets. The billets cast are square sections with dimension 4 3 / 4 " , 6", or 8" which are cut to lengths up to 16 feet long. The process from scrap to billet is illustrated in Figure 2.1. These billets are taken to a storage yard where they are cooled prior to scheduled charging into a natural gas fired steel reheating furnace. These billets are heated in the furnace to obtain a homogeneity of temperature prior to hot forming. The hot billets from the furnace are then shaped in a rolling mi l l to produce bar products such as grinding stock, railway tracks, rebar, and structural stock. The schematic in Figure 2.2 illustrates the billet processing from raw billets to final rolled product. The natural gas fired furnace utilizes a combination of stationary and walking beams which carry the billets into and out of the heating zones. The furnace is 16 feet, wide and 57 feet long and handles the billets in an orientation perpendicular to the axis of movement. The furnace is separated into three distinct control zones in which individual P L C s (programmable logic controllers) control the zone temperatures in accordance to the setpoints chosen by the furnace operator on shift. Figure 2.3 illustrates the side cut-away view of the reheating furnace 3 "From Scrap to billet" Figure 2.1 Conversion from Scrap to Billet Steel Reheating Furnace Storage Yard Stands Cooling Bed Figure 2.2 Schematic of the Post-heating Rolling Process 4 Flue Top Fired, Walking Beam, Steel Reheat Furnace Discharge gas flow — soak zone heating zone charge zone Figure 2.3 Side View of the Furnace Furnace combustion control is currently left to Programmable Logic Controllers (PLC's) which utilize Proportional-Integral-Derivative (PID) modules that maintain stable conditions. The control of the P L C ' s can be overseen by a myriad of supervisory systems, which may include simple setpoint control, mathematical model-based control, or variants of mill-wide supervisory control. The control of the furnace in our scenario is via a manual setpoint, control of which is left to furnace operators whom make control decisions based on experience and reasonable deductions. Figure 2.4 illustrates the control diagram of the existing control system. The complexity of this control problem stems from the fact that a billet may spend in the order of 100's of minutes within the furnace chamber experiencing a temperature history distinctly different from the majority furnace temperatures as well as provide simple control logic to avoid dangerous furnace 5 of billets in the furnace under normal mi l l operating conditions. It is therefore very difficult to manually analyze the furnace operation to the degree of certainty that can be found in the most efficient operating procedure. Control of the P L C ' s set points is left to the shift furnace operator who follows general guidelines for furnace control but relies mainly on experience and "know how" to select the appropriate measures during both steady state and transient operating conditions. walking beam mechanism Figure 2.4 Existing Control Flow Diagram Developed in conjunction with the expert systems initiative, the operation of the steel reheating furnace was examined thoroughly with mathematical models. A steady-state operation model was developed by Barr [3] to examine the efficiency of current steady-state operating procedures. A plant trial campaign along with the development of a transient furnace model was developed and verified on two Canadian reheating furnaces 6 by Scholey [4]. These mathematical models along with the scenario development by Osinski [3] would become integral to the development of this project. 7 Chapter 2.2. Problems Associated with Reheating Furnace Operation: In producing bar products, the ideal situation would be to transfer hot billets directly from the continuous caster to the rolling mi l l in order to utilize the sensible heat already within the steel [5]. Unfortunately this is not feasible due to the inability to detect and remove surface defects from the raw billets prior to rolling as well as the enormous problems involved with scheduling the caster and rolling mi l l to operate in perfect harmony. A s a result of these problems, steel reheating furnaces are necessary in order to heat the cold continuously cast steel billets to temperatures at which reasonable forces can be used in the roll stands since hot rolling stresses are inverse exponential functions of temperature [6]. The rolling m i l l requires production of homogeneously heated billets within temperature specifications at intervals dictated by the rate at which the rolling mi l l can reduce the sections to final dimensions. The billets must have sufficient time within the furnace in order to absorb enough heat to attain the target temperature. It is also necessary for the billets to homogenize, or "soak", for a minimum amount of time to ensure a fair degree of temperature uniformity. One problem in establishing homogeneity of temperature is a localized depression of temperature, known as a skidmark, caused by the portion of the billet sitting on the relatively-cold stationary support beam or skid. Figure 2.5 and Figure 2.6 show the geometry of the billets with respect to the water cooled support skids. These billet heating factors result in long minimum furnace residence times. Since the rolling mi l l 8 demands a hot billet every few minutes, the time to temperature plot for each individual billet presents a furnace operation problem which involves careful scheduling, furnace temperature control, and considerable experience in order to maximize production and minimize losses. Whether operating under steady state or transient conditions, skidmarks are unavoidable. While a billet is in a reheating furnace, it must rest on stationary beams designed to aid in the transfer of heat into the billet by exposing the bottom side of the billet to the hot radiative faces of the furnace as well as the convective heating of the hot combustion gases. Unfortunately, these support beams are water cooled and do not allow the same level of heat flux into the contact area. The result is a temperature depression, or skidmark. Skidmarks can be minimized by design features such as "hot faced" beams or perhaps staggered support beams which allow the affected area to change as the billet progresses along the axis of the furnace. However, skidmarks are unavoidable and affect the ability of the mi l l to roll the billet after discharge, even possibly to the extent of affecting the local post-rolled tolerances in the skidmark region [5]. The operation of the furnace in the soak (final) zone does not change the skidmark severity but also does not allow the feature to worsen (a long soak in a section without cooled supports would reduce skidmarks but the space and residence time required makes this impractical). While in the soak zone, skidmark severity is stabilized while the top to bottom temperatures are allowed to converge. This top to bottom difference is particularly evident in top fired furnaces. A typical axial furnace temperature profile is shown in Figure 2.7 [4]. The diagram shows data taken from plant trials which were obtained by tracking the progress of a billet through the furnace with thermocouples. It is evident 9 from this plot that the billet temperatures taken at different points on the billet exhibit a divergence prior to reconverging near the exit end of the furnace. The heat flux levels near the exit of the furnace are lower since the billet is at a stage where the objective is to homogenize rather than increase the internal temperatures. hi lie; walking beams in the raised position moving the billet along the z-axis of the page Figure 2.5 End View Schematic of the Billet Support Beams 10 Top view Billet walking direction Figure 2.6 Top View of Billets Resting on Support Beams 11 In the normal steady state operation of the furnace, issues such as zone temperatures, charge rate, furnace pace rates, etc. are consistent and do not require much attention. Once good operating conditions are found for steady state operation, they usually do not change substantially and become the basis of the furnace "static" knowledge. Static knowledge is easily quantifiable and can be updated as new factors or revelations concerning the steady state operation are uncovered. It is in the transient states such as startup, shutdown, product changes, and unscheduled delays that the control of the furnace becomes more challenging. In transient situations such as at startup, the billets are charged and heated in a variety of ways. In order to maximize the efficiency of the furnace in transferring heat to the billets in an expedient fashion, the space between billets may be doubled (a practice known as "double spacing") to increase the view factors thereby increasing heat flux into the exposed faces (the view factor is the fraction of the furnace which the billet face is exposed). Unfortunately, this is not the most optimal fuel efficient method due to high heating rates and low throughputs. In addition, temperature homogeneity may be sacrificed from such rapid heating rates. A t some point, the furnace charge must be changed to single spaced causing a transient control situation and subsequently a nontrivial difference in temperature history for each billet traveling through the combustion chamber. Furnace shutdown also presents a problem in that temperature history of the last billets to be charged w i l l be different from other billets of the same batch. The heat input 12 of the charge end of the furnace may be reduced to prevent overheating due to the loss of the new input of billets which act as heat sinks in the furnace. Product changes may require time consuming "roll changes" in the rolling m i l l causing the reheating furnace to "idle" billets during this scheduled delay in order to have hot billets ready at the beginning of the next charge cycle as well as to reduce fuel consumption [7]. This occurrence causes transient control conditions which again result in a change in thermal history for each of the charged billets which may impact the final product in terms of tolerances, metallurgy or rollability. Product changes, which may include changes in billet composition, target temperature or billet size, can also limit the efficiency of mi l l operations since the feasibility of operating the furnace with two products in tandem would be questionable with respect to maintaining quality. A t the beginning of each product change, the roll operator must make several iterations in terms of roll gap settings prior to steady state rolling operation. Billets requested from the furnace may be extremely staggered in terms of gap time as the stands are being "setup", especially i f a cobble is experienced. In rolling operations, a bar may be "derailed", a situation which is termed a "cobble". The end result of this event is a delay with a subsequent transient in the normal scheduling of billet releases from the furnace. The length of time required to clear a "cobble" can be from a few minutes to as long as many hours depending on the extent of the tangle as well as the amount of damage it may have caused to the m i l l equipment. However, a rough prediction of the delay time usually can be made as information is passed to the furnace operator from the maintenance crew. 13 In the case of unscheduled delays, the furnace operator must assess the delay and make a decision as to what should be done, i f anything. The various measures which are possible concerning furnace control during the delay are as follows: • do nothing i f the delay is short, • turn down the temperature settings in one or more of the temperature zones, and • turn the temperature settings back up prior to a billet request If an error in judgment is made while addressing a delay, the billets may overheat which can result in decarburization of surface carbon, adversely affecting product metallurgy. Other problems include excessive scale production, loss of production time while waiting for billets to reheat to rolling temperatures, excessive fuel consumption, and/or inhomogeneity of temperature profile. The temperature history of the individual billets are important as it relates to factors such as decarburization, scale formation, or possible product failure from exceeding temperature limits. The furnace processes a considerable amount of ball and rod stock for producing grinding stock for the mining and mineral processing industry. This product is high in carbon content, which allows the material to be very hard after processing. Here, the temperature of the billets must be hot enough so the billets can be rolled with reasonable forces but not exceed temperature limits which may be very close to the desired heating temperatures. The temperature limits are designated by the melting point of the steel in the core of the billets. The core carbon content is higher than the face because, during casting of the steel, dendrites reject carbon and the carbon migrates towards the liquid centre of the section. During reheating, the maximum temperature in the centre of individual billets should be below the local melting point to avoid potential 14 cracking problems. Centre-line melting may adversely affect the rolling operation downstream of the reheating process. Figure 2.8 shows the effect of increased carbon content on the melting temperature of the steel [2]. It is clear from the iron-carbon phase diagram that the melting temperature of steel decreases with increasing carbon content for the range in which we are concerned. Figure 2.8 Effect of Carbon Content on Steel Melting Temperature 15 Decarburization is the loss of carbon from the local composition of the steel due to high temperature diffusion [8]. When mild steel is heated to temperatures below 910°C, the surface layer of ferrite does not allow substantial diffusion of carbon due to the very low solubility of carbon in ferrite. Above 910°C, the solubility of carbon in austenite is high enough to allow nontrivial diffusional movement of carbon from the steel substrate into the combustion atmosphere. Figure 2.9 illustrates the outward migration of carbon from the steel to combustion atmosphere. Although the movement of carbon is not instantaneous, care must be taken to avoid extended exposure to a combination of time and high temperatures. The actual decarburization rates are dependent not only on time and temperature but also on internal temperature profiles, metallurgy and furnace gas composition. Figure 2.10 illustrates the effect of time and temperature on surface carbon content [8]. Combustion atmosphere 0 2 Figure 2.9 Schematic of the Migration of Carbon from the Steel into the Combustion Atmosphere 16 1 0 0 0 1100 1 2 0 0 1 3 0 0 TEMPERATURE , °C Figure 2.10 Limiting conditions of time and temperature for various degrees of decarburization in 3" slab based upon isothermal data. The extent o f decarburization can make the metal more susceptible to shear and spalling. Figure 2.7 shows a typical heating profile for the furnace. It is possible to see the point at which the furnace temperature reaches 910°C and carbon becomes mobile. It is at this point that the clock starts for the residence time at temperature with respect to decarburization. Increasing the time that billets are subjected to high temperatures results in excessive formation of scale. Scale is the oxidation of the Fe parent metal to FeO, Fe2C>3 and Fe3C>4 on the surface which is exposed to a hot oxidizing combustion atmosphere. 17 The amount of scale formed, much like the extent of decarburization, is dependent on the temperature, time at temperature, billet metallurgy, and furnace gas composition. Scale formation has been shown to decrease the tendency of decarburization but this is not entirely an asset. Scale directly affects the bottom line, in terms of increasing the amount of steel lost from the raw billet as final product and increasing the frequency of maintenance down-time due to the buildup of scale at the bottom of the reheating furnace [9]. Scale must be removed prior to rolling or it may be rolled into the final product leading to rejections based on rolled-in surface flaws [6]. Combustion options such as running the furnace in extremely fuel rich conditions has not proven feasible due to economic as well as operational safety issues. The only acceptable method thus far to reduce decarburization and excessive scale production is to minimize the high temperature exposure time [6]. Under normal operating conditions, decarburization and scale formation are not major concerns because the billet residence times are low compared with other reheating furnaces but this can change quickly under conditions of long or multiple delays [10,11]. In the case of common transient conditions, the furnace operator can follow a set of Standard Operating Procedures created by the mi l l personnel based on experience as well as simple heat transfer and residence time calculations. In theory, the SOP must be followed closely to ensure consistency. However, in reality, the SOP cannot account for all possible conditions which may affect the operating efficiency of the furnace. It is therefore the operator's experience, reasoning as well as trial and error which help bring new knowledge to the effective control of the furnace [11]. 18 Chapter 3. Expert and SCADA Systems Chapter 3.1.Expert Systems: Control problems which are complex and not easily discretized tend to be difficult to quantify mathematically. It is with these control problems that an expert system can be beneficial due to the knowledge-based nature of both the problem and solution. Expert systems are designed to hold information in a system which enables the gathering and organization of knowledge derived from experts in the exact manner as it is relayed to the knowledge engineer. This knowledge then can be utilized in the form of rules and procedures to assess problems and offer possible solutions where one may not have been available from other control system strategies. It is therefore unnecessary to completely analyze and understand the scientific and engineering fundamentals of all aspects of a problem in order to produce a reasonable control regime. The knowledge engineer is the person who may know something of the problem, facilitating good comprehension of the knowledge, but not necessarily an expert in the field [12,13]. It is often preferable i f the knowledge engineer is removed slightly from the problem in order that knowledge which may be obvious to the expert is not overlooked by the knowledge engineer [14]. The life cycle of the development of an expert system involves five distinct stages: Problem domain definition, Knowledge acquisition, Developmental programming, Testing and Verification [15]. The knowledge engineer must examine the scope of the problem in order to make decisions on strategy and structure of any subsequent solution. The scope of the problem 19 must be defined in order to move towards a solution which is reasonable and attainable. The strategy reflects the nature of the problem and directly affects the structure of its solution. It is in these early stages that the approach to a problem must be defined prior to any gathering of knowledge. The knowledge acquisition phase involves the knowledge engineer gathering information in all its forms including, interviewing experts, mathematical models, process analysis and historical information. Knowledge can come in many forms including Procedural, Declarative, Episodic, Semantic and Metaknowledge [12]. • Procedural knowledge is low level knowledge in the form of "know how" and is akin to a reflex in that the procedure is repetitious to a degree that is essentially automatic. A good example would be the procedural knowledge required to ride a bicycle. • Declarative knowledge is often referred to as "know-how" that is easily verbalized. This knowledge is usually very superficial and does not give insight into the underlying knowledge which an expert may use. • Episodic knowledge refers to knowledge in the form of temporal and spatial anecdotes which the expert may have acquired via experimental information. • Semantic knowledge is knowledge which contains concepts, definitions, relationships as well as rules for manipulating this information when reasoning. • Metaknowledge reflects the awareness of an expert in assessing how knowledge is used to solve problems. This knowledge also includes the ability to determine i f there is any solution to a problem. 20 Knowledge in all o f these forms, become the foundation from which a knowledge base for an expert system is transformed into a symbolic representation usable by a computer, or inference engine, programmed and designed to manage the knowledge units. The system developmental programming phase involves placing knowledge into the knowledge base in a form which allows the system to reach reasonable conclusions based on analyzing knowledge v ia the inference engine. System development involves the application of a "Conceptual Model" , in which the knowledge engineer [12] formalizes the structure of expertise and can layer the knowledge in accordance with different levels of abstraction and functionality. The conceptual model may include domain, inference, task and strategic layers. The knowledge domain represents the static knowledge and is made up of concepts as well as their relationships. The Inference layer integrates the knowledge in the form of what can be done with the knowledge in the knowledge domain. The Task layer are methods in which the inferences can be used to achieve specific goals. The Strategic layer is the generalization of how experts move towards problem resolution and is the most difficult knowledge to formalize [12]. The testing and verification phase involves testing the system in a real problem situation and verifying, often with the aid of the expert, to determine that the system is indeed providing reasonable solutions to problems [12]. It is acceptable to have experts, in the role of devil's advocate, collaborate with the system builders in the testing phase. These methods of verification and validation are important during system development since it allows deficiencies in the system to be identified or [12] facets to be tuned to provide the best possible solutions. 21 Chapter 3.2. Examples of Expert Systems: Cement K i l n Expert Systems have been used to control a wide variety of industrial processes in the past. For example an expert system was implemented on the control of a rotary cement k i ln in 1982 [1]. For cement kilns, the general practice was to control heat input manually with an operator adjusting the burner setpoint temperature in response to gross internal temperature changes. This process resulted in large fluctuations in process variables which directly affected the quality of the product as well as fuel consumption. The quality of the k i ln output is a function of the amount of clinker which is exposed to a heating environment in the correct temperature range for a correct time-at-temperature. Due to the long residence times within the k i ln (several hours), the time-temperature history of one portion of charge may be different from the rest of the charge during control incidents in which the ki ln may experience substantial temperature variations. Therefore the narrower the heating profile, the higher the quality of the clinker product output. A commercial expert system software package " L I N K m a n " was used as the base for this application. L I N K m a n relied on fuzzy logic, which is the application of logic in which information is obtained and processed along with calculated degrees of certainty. The fuzzy logic controller provided greater control of furnace temperatures resulting in improved product quality, decreased N O x emissions, fewer temperature excursions within the ki ln and a reduction of 10% in fuel consumption [1]. The expert system was successful in this case in controlling process temperatures because it was able to examine 22 complex process variables such as the varying composition of feed material, process delays and unexpected process disturbances based on operator experience. Instruments placed in extremely hostile environments can be susceptible to giving false readings which simple instruments cannot adequately filter. The system was able to reduce control errors induced by false readings created by sensor input fluctuations because it was possible to examine the signal for validity prior to usage. Gas Combust ion The prediction of gas composition in a combustion process can be difficult due to the complexity of the combustion reactions under different temperatures, varying pressures, pre-combustion gas compositions and fluid dynamics through the complex combustion chambers. A process schematic is presented in Figure 3.1. [16]. A fuzzy logic based controller was utilized to control the combustion gas composition in a pyrolysis reaction of alumina fibers used in metal matrix composites. Combustion gas composition directly affects the quality of fiber produced in this furnace therefore the consistent control of the combustion was paramount. In this system, introducing a complete furnace model to predict and control the operational parameters was not feasible and had the drawback of omitting the experience of the operator. In this application, a finite-element steady-state model of the fluid dynamics was used to define the boundary conditions for control parameters within a safe zone which would result in good combustion gas compositional control. These control parameters, along with rules based on expert operator experience, were programmed into the fuzzy controller which directly controlled the furnace mass flow valves. This system allowed for good control of combustion gas composition via knowledge gained from the mathematical model as well 23 as operator experience. While implementation proved useful in this application for controlling combustion gas composition, necessary refinements such as disturbance (noise) rejection were needed to complete the control strategy. flow rate sensor Thermocouple Figure 3.1. Pyrolysis Chamber for Alumina Fibres Autogenous Milling The operation of an autogenous grinding mi l l at Wabush mines [17] was the subject of an Comdale/C application in an attempt to improve control and efficiency of the grinding circuit. In this application, the expert system was provided with access to output signals from operational PLC ' s . This information was examined in the inference engine using a set of rules and fuzzy sets developed with the assistance of the mi l l operators, or experts. This allowed the system to be operated in a manner similar to human operators but with much better response times and much more consistency. The addition of efficient computer control was possible without the need to discretely analyze 24 a complex control problem. The operation of this grinding circuit is based on the knowledge of operation obtained from operator experience and logical analysis of the process flow. The efficiency of the operation was increased by as much as 20% for certain products due to the ability of the system to operate the mi l l equipment at closer and more consistent levels to its full design potential [17]. Continuous Cast ing The control of continuous casting of steel billets is a process, cloaked in "Process Lore", understood well in some aspects but poorly understood in others. The control of such processes has been left to the development of many practices based on sources such as general casting operator experience as well as researched aspects of the process. A process devoid of substantive knowledge can be subject to ingrained practices which, although incorrect, can be difficult to change. It is necessary to separate useful knowledge from the counterproductive methods based on Process Lore [18]. It is in the essence of an expert system that the control of such a process can be quantified in such a vast array of pertinent but sometimes contradictory factors. In the application of an off-line expert system to the process of continuous billet casting, the knowledge gathered from research [19] and useful experience was separated from counterproductive practices. This knowledge was accumulated and structured into a knowledge base written in the shell Comdale/X. This implementation involved the ability to assess billet quality problems off-line as well as offer the ability to tutor non-experts in the finer points of proper billet casting practices [13,20]. The system was brought to the next logical step with the implementation of the knowledge base in the form of a Comdale/C application. Real-time and on-line applications are applications which examine process variables 25 directly and produce results which are timely to the control of the process. The Comdale/C system allowed the expert system to operate in real-time and on-line with a billet caster and to examine the process variables with a myriad of remote sensors collecting trend data. This system facilitated assessment of billet quality problems before the billet left the mould as well as offer advice to the operator on how to remedy problems during the process operation. While expert systems can be used to filter out noisy process data and provide useful process trends, this may not be the most efficient utilization of the system. In order to increase processing speed and decrease the unnecessary creation of complexity in the expert system, a separate module to prefilter this data can be implemented. A computational intelligence (CI) module can feed the expert system vital trend data in a timely fashion without the need to pass all remotely acquired data. In the application of a computational intelligence module to the expert system for a billet continuous casting process [21], data was acquired at a rate of ~20Hz and processed through a CI module written in a low level processing language (C) using an operating system which allowed real-time multitasking of both the CI unit and the expert system. The marriage of "hard code" signal processing intelligence and the "soft code" of the expert system allows for real-time casting analysis without unnecessarily subjecting the numerical complexity of the data stream to the inference engine. Only pertinent information gathered by the CI modules, which may use repetitive artificial intelligence (Al ) techniques, is passed onto the expert system for processing [22]. It is clear from these examples of expert system applications, that results can be rewarding. Expert systems allow the collection of operational knowledge from many 26 sources to form a knowledge base. This knowledge is in a symbolic form similar to the structure humans use in problem-solving processes. The process can therefore be controlled in a manner similar to human operators without explicitly understanding the fundamentals of a problem. In addition to offering more efficient control, an expert system can standardize practices and can become a useful teaching tool for inexperienced operators. The application of an expert system to this steel billet reheating furnace therefore would be a logical step forward in solving some control problems. 27 Chapter 3.3.Proposed Implementation of an Expert System to the Reheating Furnace: In reheat furnace operations, several issues are of concern. The mi l l considers production as the primary motivation for operating the reheat furnace. In the greatest sense of the phrase, "Time is Money", rolling mills must not be idly waiting for hot billets from the furnace i f a profitable operation is to be maintained because of the high overhead costs of maintaining such facilities [6]. A t the same time, product quality must be maintained since substandard product billets can potentially lead to higher rejection rates, or increase the extent of product downgrading after rolling. Finally, fuel consumption is also important as this constitutes a major part of production cost in the bottom line of the mill 's financial ledgers. With all of these issues in mind, we can proceed in providing an educated analysis of the mi l l operation. To understand the problem requires intimate knowledge of the cause and effect of furnace operating procedures. Due to the slow speeds at which data is generated for a wide array of operating conditions, long term data collection is required. Data such as billet size, grade, product range, as well as temperatures and operator response must be collected. In order to keep the cost of data acquisition low, the data collection platform chosen was a PC-based system linked to the plant network in a fashion as to allow the periodic retrieval of data as required. Figure 3.2 outlines the data collection and transfer regime within this project. Table 3.1 describes the links between all o f the individual components/players. 28 The operational knowledge used to control the furnace in the form of furnace operators experience should be a valuable starting point in building a knowledge base. Unfortunately, the furnace operators have created different approaches to transient conditions and their experience under similar experience, while useful, was not consistent enough to allow for the collection of the "best" knowledge. This "episodic" knowledge was very disjointed and often clouded by process lore. Therefore it was not directly used in the knowledge acquisition phase. However, a set of "Standard Operating Practices" (SOP) by the most experienced operator, the combustion engineer, and through, discussions with the remaining operators was created to provide congruency in operating strategy. This agreement in the required furnace operating practices provides a fair degree of procedural consensus [12]. The majority of this knowledge is in the form of "declarative" and "procedural" knowledge and is considered significant because it was carefully scrutinized by the combustion engineer. The SOP was therefore used as the basis for the creation of the reheat furnace control knowledge base. Several plant trials were performed in association with the modeling portion of the Billet Reheating project. These trials involved thermocouple instrumentation of test billets which were charged into the furnace and heated in accordance with normal operating procedures [3]. The internal as well as surface billet temperatures were recorded along with the three zone temperatures, zone gas and air firing rates, gas temperature, furnace pressure, and gas composition. Information gathered from instrumented billet plant trials along with long term data gathered from the system allowed verification of a static as well as a 3-D transient billet furnace model developed at the University of British Columbia [3]. This model was used in conjunction with mi l l 29 personnel to discuss the ramifications of certain operating procedures on product quality, operating efficiency and fuel consumption. The new procedures, were intended to become the basis of new knowledge for the Standard Operating Practices as well as an online advisory expert system. The knowledge gained in this exercise represents both the semantic and metaknowledge of the mi l l experts as well as the modeling experts. The available knowledge fits well into a conceptual model. Basic knowledge, such as the cause and effect of raising burner rates or increasing production rates make up the knowledge domain. The inference layer is made up of how this information can be used, such as what can be accomplished by adjusting these variables. The task layer involves how we can use these endpoints to solve a specific problem which may not seem to have a direct relation, such as how one would go about reducing scale formation. The strategic layer encompasses these concepts " in the big picture" such as the approach of using data collection and mathematical models to examine furnace operation. Once sufficient structured knowledge of the process is gathered, an expert system could be configured to implement control action directly based on information from the furnace as well as operator input. Unfortunately, due to the extreme scope of such a project, the primary goal of the system is to provide online advice to the furnace operators whom w i l l implement the control actions based on the advice and their own experience. The expert system w i l l be designed to allow basic knowledge to be maintained as well as the addition of new knowledge as it becomes available. The expert system w i l l provide timely, online knowledge-based advice through a user friendly man-machine interface. In addition, the system wi l l create the ability for mi l l management to introduce a standardized methodology for handling the majority of furnace transients. 30 * DOS TZ3 Network Server 12 Q \ \ Modeling Experts Figure 3.2 Schematic of the Data and Knowledge Streams Knowledge Engineer 31 Table 3.1 Description of Data/Knowledge Stream Path Description 1 The operators read the data from the mi l l sensors and make adjustments to the process to suit operating conditions 2 The operators read the data from the P L C ' s and make adjustments to the gas flows rates and target temperature setpoints to suit the operating conditions 3 The M M I has access to all of the same sensors the operators use 4 The M M I has access to all of the P L C data except for setpoint 5 The M M I and furnace operators interact, exchanging valuable process data 6 The M M I and Bridge computer are linked via a TCP-IP protocol which allows the two way transfer of data (configured to collate once per day) 7 The Bridge computer is linked with the m i l l network server via Token Ring™, allowing networked managers to examine operating data 8 The furnace operator interact with the mi l l managers to develop new and more efficient procedures based on experimentation 9 The mi l l managers can periodically update the M M I with an updated knowledge base file 10 The mi l l managers have instantaneous access to the M M I from the bridge machine (bi-directional) 11 The mi l l managers can access via database, all historical operational data 12 The knowledge engineer has remote modem access to the network server to obtain operational data and upload new knowledge (bidirectional) 13 The modeling experts interact with the mi l l managers to exchange knowledge concerning procedures and goals 14 The knowledge engineer interacts with the mi l l managers to acquire knowledge concerning the process 15 The knowledge engineer interact with the modeling experts to facilitate the development of the knowledge base via modeling results 32 Chapter 3.4. Obtaining and Processing Furnace Data - The Supervisory Control And Data Aquisition (SCADA) System: The expert system S C A D A package chosen for the implementation of this expert system was ProcessVision and Comdale/C operating on a P C . The P C , powerful for it's time, is capable of running the operating system Q N X . Q N X is a microkernel real-time multitasking operating system designed for efficient file and message handling. Figure 3.3 illustrates the importance of Q N X to our S C A D A system. Figure 3.3 Q N X multitasking operating system In simple terms, the operating system is capable o f running different tasks simultaneously without being restricted to the bottleneck of any slow tasks. This was a necessary step in order to ensure that all aspects of the system can operate independently. "ProcessVision is a S C A D A package which allows the expedient development of process control interfaces as well as provide the framework for Comdale/C. Comdale/C is the real-time version of Comdale/X (an off-line expert system tool designed to process case studies) and operates in continuous inference cycles unlike the single session nature of ProcessVision embodies up to 12 individual modules all interacting with the microkernal in parallel 33 Comdale/X. ProcessVision provides the user interface, data collection and data handling to the system. Comdale/C is integrated with ProcessVision to provide very efficient data and knowledge processing. Comdale/C structures knowledge into key-word-triplets (KWTs) instead of variables. The structure of the triplet name provides insight into its value. The three segments of the K W T are the object, attribute and value [23]. The object indicates the piece of information the system is describing, the attribute is the property of that object in question, and the value is the number or logical operator assigned to the KWT. Each K W T is assigned a "degree of belief which describes a percentage assessment of the certainty of the correctness of the knowledge. Figure 3.4 displays the unit of knowledge available in the Comdale/C environment [13]. The knowledge tree structure displayed in Figure 3.4 shows that knowledge segments which Comdale/C utilizes are discretized into four groupings. The knowledge is in the form of structural, procedural, external and metaknowledge. The declarative, episodic, and semantic knowledge as stated previously are defined as the Structural knowledge which constitutes the rules and facts in the system. The significant addition to these groupings is external knowledge which refers to knowledge available to the system from other programs. In the case of our application, this external knowledge comes from data acquisition drivers which convert sensor information into useful knowledge in the form of KWTs [24]. This is the key which allows the inference engine to be brought online to be a real-time application responding to new conditions with new conclusions. The Comdale/C application can be separated into a series of separate modules each given specific tasks. Although these modules all operate in the QNX environment independently, they are linked and influence the operation of each other. This interaction 34 can be seen in Figure 3.5 [25]. Although the modules exist for completing certain specific tasks, for the sake of user-friendliness, some module tasks were reconstructed in a form acceptable for operator perusal. A n example of this would be the expert view module which is a windowed running list of expert processes. This style of information display was deemed unsuitable by personnel accustomed to retrieving information in a format and position that does not change. As a result, an advisory screen was created within the process view module to cement the data in consistent and predictable locations. The Comdale system was originally designed to operate efficiently as it controlled processes with relatively slow reaction times. The inference engine is operated with a one second or more cycle time which is adequate for moderately paced supervisory control situations. The cycle times of the system must be fast enough to accurately sample events which are critical to operation. The reheat furnace system has a myriad of slow response inputs and one fast input. The input from the pyrometer consists of -2000 points gathered over 1-2 seconds every minute or so. This alone would make the system unusable i f not for the inclusion of a set of high speed data collection programs operating in parallel with the Man-Machine Interface (MMI). The data collection drivers intelligently sample the inputs until an event is detected. After the record of the event has been buffered internally in the driver, the data is processed and uploaded into the inference engine at an acceptable rate. The expert system can then use the information over the subsequent inference cycles to determine an appropriate action plan. 35 Knowledge |_ Classes I • Objects. .Attributes. • c Trit .Values. I .Degree of Belief Keywork Triplets . logical _ . String .Numeric. • Exclusive sets . Multichoice sets .Rules . Condition Statements. -Conclusion Statements, -Else Statements I Fuzzy sets E Single Double Integer — Keyword Triplets Logical Connectives Predicates/Operators — Functions I—Keyword Triplets _ Certainty Factors _ Assignments _ Functions .Procedures. Metaknowledge. . Search Strategies • Inference Stategies -Input/Output Stategies .Communication Control . Triplet Representations . Customized Questions . Customized Rule Descriptions .Customized Explanations Figure 3.4 Knowledge Units Available to Comdale/C 36 Historical Database K—• Database 4 L Event 4 k Trend Manager 1 • Scheduler J f Manager Point Database Inference Engine < • Alarm Manager H—• Message Manager Process Instrumentation Knowledge Base H—• Explainer Engine Process View Expert View Figure 3.5 Independent Application Modules 3 7 Chapter 4. Scope and Objectives Chapter 4.1.Scope of the project: Steel billet reheating furnaces have larger thermal inertias and are rarely operated under steady state conditions which makes control a difficult task. The delay phenomenon is the single largest factor affecting the operation of the furnace. Delays have the effect of creating varied temperature histories and thus differing temperature profiles in the billets. Control of the furnace has been left up to the discretion of the furnace operators who control heat input into crude non-independent heating zones based on operating experience. Inefficient operation of the furnace can result in a financial penalty for the steel mill in terms of fuel costs, product loss, and mill idle time. The goal of furnace control has been to focus on the production of steel billets at the correct temperature while ignoring other variables. It is therefore necessary to develop consistent strategies for furnace control that minimize other losses during delay situations. Due to the nature of the problem long term data collection is necessary to obtain a representative sample of the problem. The recording of experimental data from the mill on a long term basis required that the system be industrially robust in terms of software as well as hardware. The knowledge that is used to control the furnace is in the form of experience acquired by furnace operators; this can be difficult to quantify. A direct algorithm-based 3 8 system is therefore not feasible in this situation. In contrast, an expert system is able to examine many different facets of a problem and produce an answer based on information contained in a knowledge base. The information contained within our knowledge base is made up of knowledge of the furnace operators as well as information gleaned from a 3D transient mathematical model. This expert system would weigh the various parameters and produce recommendations based on an embedded knowledge base. Chapter 4.2. Objectives of the project: The overall objective of this project was to develop a system which will increase production, increase product quality, decrease product losses and reduce fuel consumption by reacting to furnace delays and/or upsets which will minimize deviation of billet temperatures. To these ends, the following is a set of necessary steps to attain these goals. (1) To implement an online data acquisition system to record furnace and billet data as well as provide a user friendly interface for the furnace operators. (2) To closely examine the delay phenomenon with respect to billet size and roll product. (3) Based on statistical plant data, categorize delays in terms of cause, frequency and duration and develop case studies for some of them. 39 (4) From this basis, incorporate improved response strategies into knowledge contained within an online real-time expert system. (5) To validate the system by obtaining feedback from mill personnel. 40 Chapter 5. - Methodology Chapter 5.1 .Approach to the Reheating Problem: The furnace had been operating satisfactorily in processing the billets for the rolling mill but mill personnel wanted to improve some specific aspects of the reheating procedure. Delays in the production of hot billets resulted in loss of useful rolling mill time and subsequently a monetary loss to the mill. As well, poor procedural operation resulted in low recovery rates or product yields due to rejection as well as product downgrading. One goal of this project was to attempt to reduce both of these factors as well as to reduce fuel consumption. The situation was investigated as a control problem with the major factor being the ability to accurately predict billet requirements with lead times in the order of hours. With this in mind, we can approach the problem with the realization that it may not be possible to completely quantify all transient situations. The best that can be offered in an operation in which any number of possible control situations are possible, is to statistically isolate the most frequent transient conditions and produce a suitable response for each case. While this is a good approach, it is also necessary to understand that the extent of a transient may not be accurately predicable on the onset of the incident. This has the effect of infinitely complicating the number of possible outcomes requiring a conscious restriction of the scope of this project. 41 One of the major problems plaguing the reheating furnace is one of standardization. In this mill, the reheat furnace is operated by four full-time operators as well as two temporary operators. The primary furnace operators come from a variety of backgrounds but most operators are chosen based on union seniority in the mill hierarchy of maintenance personnel. The operation of the furnace is left to the discretion of these mill workers who learn their skills from each other as well as some less than reputable sources (one incident included implementation of psychic billet manipulation!). The goal of the combustion engineer is to increase the reheat furnace efficiency. It is believed that part of this goal can be achieved by standardization procedures used by the furnace operators to delay situations. In order for the mill to conform to quality standards such as ISO 9002, process control must be standardized and documented. A n expert system would allow each operator to have access to all of the mill's standard recommended settings and procedures deemed appropriate by documented experience and combustion analysis. An expert system can be used to collect as much static knowledge on the operation of a reheating furnace as well as make timely assessments of transients based on the "best guess" of the furnace operators.. The system must be capable of recognizing the start of a delay. Under ideal situations, the system will be told of a delay by the operator because this allows for the system to provide advice sooner. Unfortunately, due to the frantic nature of many delays this option is not reliable. The system is capable of detecting a delay by intelligently monitoring the gap times between billets and trigger a response regime i f the gap time is a certain percentage above normal. This trigger needs to be tuned to dynamically adjust 42 the "normal" gap time as a floating average and respond only when a delay of non-trivial duration is detected. Upon detection of a delay situation the system flags the operator to provide an initial estimate of the delay duration. This estimate will be provided to the system in the form of selecting from one of three choices, short, medium, and long. The range of each of these delays will be assigned from the knowledge base as defined by the particular product. The system will then issue an advisory based on this input as well as information provided by the knowledge base (SOP). As the delay progresses, the system tracks the actual delay length to determine i f the initial estimate was incorrect. If the delay terminates prematurely or the delay is longer than initially estimated, the advice that was issued will not be suitable for the situation. The system must be able to detect the aberration and issue a revised response advisory. This advice will dynamically change based on the estimated delay time as well as the progressive actual time. Table 5.1 displays the nine possible outcomes based on an initial three choice estimate. Here, the subsequent advisory control response is valid for 3 of the 9 scenarios which leaves 6 of the remaining 9 with responses which may not necessarily be appropriate. It is possible to create a system which can request the operator to estimate the transient variables and produce advice based on this guess. If the estimation is not accurate, the system can adapt itself based on operating conditions or by the operator updating the estimation. The system can be enriched with knowledge on how to respond to delay situations after the delay has progressed towards one of 6 remaining scenarios 43 where the actual and estimated delay times are not the same. The overall result would be the minimization of the impact of poor control decisions and therefore an increase in the overall furnace and mill efficiencies. [26] An example of possible control advice outcomes is illustrated in Table 5.2. Table 5.1 Possible Outcomes of Delay Time Estimation and Error Consequences Predicted Short Delay Predicted Medium Delay Predicted Long Delay Actual Delay is Short Accurate delay estimate Furnace too cold, delay in heating back to temperature Furnace much too cold, delay in heating Actual Delay is Medium Furnace not cooled enough, billets may overheat Accurate delay estimate Furnace too cold, delay in heating back to temperature Actual Delay is Long Furnace not cooled enough, billets may overheat and spend too much time at high temperatures Furnace not cooled enough, billets may overheat, possibly long high time at temperature times Accurate delay estimate Table 5.2 Possible Outcomes of Delay Time Estimation and Control Responses Predicted Short Delay Predicted Medium Delay Predicted Long Delay Actual Delay is Short Well understood and simple control Furnace too cold, advise heating regiment Furnace much too cold, advise a rapid heating regiment Actual Delay is Medium Furnace not cooled enough, advise lower zones set points Well understood and simple control Furnace too cold, advise a heating regiment Actual Delay is Long Furnace not cooled enough, advise lower zone set points, track overheat times Furnace not cooled enough, advise lower zones set points Well understood and simple control 44 Chapter 5.2. Implementation of the Expert System: The implementation of the expert system was divided into two distinct phases. The first was long-term data collection and logging phase. In this phase, inputs from the furnace controllers were taken along with some inputs seen only by the furnace operator which are compiled in daily log files. Figure 5.1 shows the control, detection and logging system. These files were taken and compiled into the cumulative collection of files on the plant database. These files along with hard copies of schedules were remotely retrieved and analyzed at U B C . The final phase of the system installation included compilation of the knowledge base and insertion into the man/machine interface which the operators were already familiar with. The system would detect transient conditions and provide timely advice to the operator in both steady-state and transient operating conditions. Figure 5.2 and Figure 5.3 show the integration block diagram of the current as well as the proposed systems. 45 Operator Interface and Data Logging Computer Figure 5.1 Interim Logging System M i l l Sensors PLC controllers Furnace Operator Figure 5.2 Block Diagram of the Current System M i l l Sensors Inference Engine Knowledge Base Man Machine Interface/PLC controllers Furnace Operator Figure 5.3 Block Diagram of the Proposed System 46 Chapter 5.3. The Installed Expert System: The expert system implementation was divided into two distinct phases. Phase I involved installation of a data logging system which was not only acceptable to the end users but also facilitated long term collection of furnace control knowledge. The development of the man-machine interface was considered to be of utmost importance due to the need for operator acceptance [12] in the development as well as creation of a method to verify the expert system. Phase II of the project involved completing the assembly of the knowledge base as well as installation of the advisory functions of the man-machine interface. The billets are scanned for a temperature profile in order to retrieve information for use in the Expert System or for display to the operators. Information such as maximum and minimum temperatures as well as the profile shape characteristics are used by the operator to decide the fate of the billet. A billet that is not up to the rolling mill standards for a particular job may be rejected prior to rolling or held after final rolling for quality control assessment. This feature is indispensable in operation of the furnace and so was implemented in the system as shown in Figure 5.4 . The user interface was created in a fashion which displayed the most important operational data on a "main" screen and supplementary information on secondary screens accessible by "clicking" action buttons on the main screen. This implementation was deemed necessary to minimize the complexity of the system operation and increase the acceptance of the furnace operators. Some other features, such as an enlarged high temperature display, large "red oval" visual 4 7 indicator of an alarm condition, and a schematic "billet position indicator" for determining the billet location, were also added to increase the degree of user acceptance. 48 Li 'c t i k i m j J ll«J 1127 * IBIS -1 i z f , ' i n n 1123 Q94 1127 l e w ; M i n u r i i n u i ) i t r 1825 " "'112 I 10B2ll i l lH G a p £1 "• 11 t l t l " " . s p c 24) .26) 2b> 1208 1288 ii: ..a • • t l l l l l l l l l l l l l l l t l . I l t l i . l l l l l l l t i • OS i l l . • i i l . l i l l i . 1 1 1 0 e l lIl!i i i i . , e | i l l lIIl l l l!IIIII!IIll l l l!i .llllllllllllllllllllllllllllllllllllllll m i 1 1 0 0 Illllllllllllllllllllllllllllllll'llllllllllllilUlli " i l l l l l l ' l l l i l l l l i l l l l l l l l l l l lHI 1 1 0 0 lBBBj "j" " §1 >il808 T o M i l ] i__ __t R e j e c t e d H E L t l R e m a i n i n g -m r^jjj ..— HEfti a \&E$D g r o u p « — .- • ' ' . • V -Most recent billet temperature profile Current heat information Max-min Peak Temperature " - V i s u a l alarm oval.... Message bar Upcoming heat Data from the five most Billet position recently scanned billets indicator(red) information Gap time Display screen Historical record of the minimum and maximum temperatures of the last 100 control buttons billets scanned Figure 5.4 M M I Billet Profile Screen 49 Traditionally, the furnace operators were accustomed to having a historical display of the billet minimum and maximum temperatures as each are scanned by an optical pyrometer prior to movement towards the rolling mill. This trending information visually allows the operator to "learn" from his own successes as well as mistakes. This episodic knowledge is useful in the development of general control trends but can be tainted by "process lore". An operator can look at the consequences of his actions in terms of the decisions made in the relatively distant past. Although this delayed learning process is useful, the complexity of furnace operation makes a simple cause and effect determination very difficult. This feature was important enough to include and is shown in Figure 5.4. Note that the information which has been deemed important in terms of trending information is the profile minimum and maximum temperatures because these two criteria affect the ability of the rolling mill to process the billet. In addition to the main screen, the operator has access to a heat-tracking screen. A "heat" represents a batch of steel which has been cast through the continuous caster and is usually specific in terms of chemistry, thermal history, and as-cast quality. A change in heat therefore represents a change in the input billets, which may also lead to a change in the rolled products therefore affecting the furnace operating conditions. If the change in operating conditions is substantial, the procedures for handling the transient from one heat to the other may be very different from the steady-state operating conditions of either heat. In the past, the operators have had to manually keep track of the heats as they entered and exited the furnace. 50 The heat tracking strip, as shown on the right of Figure 5.4 shows a system in which the operator is able to enter the current heat name as well as the next 4 heats along with all pertinent heat information. The billet heating and furnace operating parameters are selected from the SOP list as illustrated in Figure 5.5. This information is used by the operators but is also a great help to the expert system in terms of knowing the future charges in the furnace. This implementation of the automatic billet tracking was difficult due to the nature of the signals received from the mill (see Figure 5.6). A billet released from the furnace is seen by the first detector but not necessarily by the pyrometer and the second detector. The furnace operator may choose to reject the billet before or after the pyrometer. The pyrometer may see multiple scans of the same billet which can lead to a miscount. The furnace may drop more than one billet which will not register as two discrete billets prior to buffering in the reject zone before rolling. These signal inputs must be examined via a rule structure which attempts to deduce the actual events in the mill with a high degree of certainty. The expert system can quite accurately determine the position and condition of a billet with the use of the three available sensors and a set of rules based on the conditions outlined in Figure 5.4. Due to the difficulty of being absolutely certain of the result, the system can sometimes misinterpret the activity, therefore the operator has been provided with the ability to manually correct the count on the MMI . In addition to these logistical problems in signal interpretation, noise generated by the Hot Metal Detectors (HMDs) frequently result in false readings. These readings are filtered via a CI module, feeding the expert system a billet discharge signal only i f one has likely occurred. A schematic of an ideal signal as well as examples of noise which 51 may affect event detection is illustrated in Figure 5.7. The low level driver program acquiring the signal from the mill, filters the signal and only issues a billet passage condition when it has most likely occurred. The inference engine performs a secondary determination of billet passage by means of a weighted averaging of the signal over time. This weighted average is tuned by the operators to ensure the highest degree of accuracy. The pyrometer signal is also filtered by the drivers to prevent noisy peaks from affecting the profile which is displayed and recorded. In addition to the filtering process the driver extracts information such as a minimum temperature for each half of the billet, maximum temperature and maximum temperature difference. The implementation of the billet accounting feature alone was sufficient to convince the furnace operators to abandon the older system and use the new one. The older system was allowed to remain online so the operators had a transition period in which they could become accustomed to the new interface and procedures. In addition to the main screen interfaces, several auditing screens were provided which offer trends of furnace pressure, zone firing rates, and zone temperatures. These screens contain data which the system logs to daily files but is left in a form that the mill combustion engineer can examine on-site without having to download data to a graphing program in the mill offices. This data is useful in assessing operator performance and compliance to the SOP as well as providing a firing history necessary to predict the conditions of billets to be released. Figure 5.8 and Figure 5.9 show the screens as captured from the mill computer during a Phase II visit. This screen along with the mill database of operating condition changes proved the most useful tools in encouraging compliance amongst the operators to the SOP. 52 l i s t l N 6 - 3 1 1 6 c . - n C 3 N 6 H 2 : 6 1 2 - 6 8 4 N 2 : 6 1 2 - 6 8 4 N 2 : 6 1 2 - 6 8 4 N 2 : 6 8 4 - 7 5 6 N 2 : 6 8 4 - 9 5 8 N 2 : 6 8 4 - 7 5 6 N 2 : 7 5 8 - 8 3 0 N 2 : - 7 5 8 - 8 3 0 N 2 : 8 3 0 - 9 7 4 N 2 : 8 3 0 - 9 7 4 N 2 - 9 5 8 HZ: 9 5 8 - 1 0 6 N 2 : 9 8 0 - 1 0 5 N 2 : 9 8 0 - 1 0 5 M 2 : 1 8 6 2 - 1 1 3 M 2 : 1 8 6 2 - 1 1 5 H 2 : 1 0 6 2 - 1 1 3 N 2 : 1 1 1 6 - 1 1 5 u n a N 2 : 1 1 3 8 - 1 1 5 N 2 1 1 3 2 N 2 : 1 1 3 6 - 1 1 5 N 2 : 1 1 5 4 - 1 2 5 N 2 : 1 1 5 4 - 1 2 5 N 2 : 1 1 5 4 - 1 2 5 N 3 - 1 7 1 8 N 3 - 1 7 1 8 N 3 : 1 8 5 0 - 1 9 9 N 3 : 1 9 1 0 - 1 9 9 N 6 : 3 1 9 6 - 3 3 0 N 6 : 3 3 0 6 - 3 5 3 N 3 - 1 8 5 2 N 3 - 1 9 5 4 N 3 - 1 9 5 4 N 6 - 3 1 6 6 N 6 - 3 1 6 6 N 6 : 3 1 8 0 - 3 1 9 T o M i l l Ri i j tsc t i A Hi-n.t i II i i i i j ; , I IEAT"S VfcfMay g r o u p i [ ( P r e s s u r e ) . ( I e w p e y a t u r e ) • f l S & f a r i l iHMD* HUT Figure 5.5 SOP Product Selection Screen Reheat Furnace Hot Metal Detector -Furnace Figure 5.6 Schematic of the Mill Sensor Layout 53 Table 5.3 Possible Detector Signal Sequences Event Conditions #1 - Billet successfully passed from the furnace to the rolling mill The sequence is: H M D - furnace, optical pyrometer, and H M D - R l #2 - A billet was rejected after scanning The sequence is: H M D - furnace, optical pyrometer, optical pyrometer and the next is not H M D - R l #3 - A billet was rejected before scanning The sequence is: H M D - furnace, with no optical pyrometer within ~10 seconds #4 - Double drop - two billets were released The sequence resembles #1 except the following is: optical pyrometer, H M D - R l for the next billet #5 - A billet is removed from the system with the overhead crane This occasional event does not have a sensor sequence that can be discretized, therefore a manual correction on the system is provided for the operator C L E A N SIGNAL Voltage Time Voltage NOISY SIGNAL High Limit - Signal is above designated levels Spike - Short duration noise Time Low Limit - Signal is below designated levels Figure 5.7 Hot Metal Detector (HMD - an optical position sensor) Signal Quality 54 i l l d i f f e r e n c e C h a r g e Z o n e F l o u s 0 9 : 0 8 1 0 : 0 0 1 1 : 0 0 1 2 : 0 0 H e a t i n g Z o n e F l o u s 0 9 : 0 0 1 0 : 0 0 1 1 : 0 0 1 2 : 0 0 S o a k Z o n e F l o u s 4 " - 0 . 0 6 " H 2 0 C h r g _ G a s : V | . t r a c k i n g j T o M i l l J£ j TjTj; R e j e c t e d Rr-rM i n i n g _ ^ H E A T i P R g r o u p nm 1 0 / 0 1 • 9 0 . 0 4 " H 2 0 H e a t G a s fieit m r 0 " 4 " ' ' 0 . 0 4 " H 2 0 S o a k G a s 1 0 / 0 1 / 9 A , i :.t. 1 4 ? u i . i ; 11111 i I o n f B i l l e f ; (Preasur.eJ ifTenpdra-turej D E L A Y Trend-line of gas and air flow into the charge zone Current heat information Upcoming 1 heat Trend-line of gas and air information flow into the heating zone Display screen Trend-line of gas and air control buttons flow into the soak zone Figure 5.8 Historical Furnace Operation Screen - Gas Flows 55 1 3 0 8 . 8 9 8 3 . 0 0 C 5 0 0 . 0 0 C } i r g _ T e n p t »• ic k Micf T o tTTTi [T -R e j e c t e d £] R e n a i n i n g risM — p , M K A T 1%) g r o u p ffsg (i®&flfcl!EiS? HUD 8 9 : 8 8 1 8 : 8 8 1 1 : 8 8 1 2 : 0 8 r " 1 3 0 0 . 0 1 1 6 5 . 0 C 5 0 0 . 0 0 H e a t _ T e t m p H e a t i n g Z o n e 1 J 1 8 9 : 8 8 1 8 : 8 8 1 1 : 8 0 1 2 : 8 8 g IB / 8 1 / 9i r 1 3 8 8 . 0 1 1 9 7 . 0 5 0 0 . 0 0 S o a k _ T e n p S o a k h 0 9 : 8 0 1 0 : 0 0 1 1 : 0 0 1 2 : 0 0 1 0 / 0 1 / 9 6 £ s h u t d o w n ;< Trend-line of temperature in the charge zone Current heat information Upcoming heat information Display Trend-line of temperature in the heating zone Trend-line of temperature in the soak zone screen control buttons System shutdown button Figure 5.9 Historical Furnace Operation Screen - Temperatures 56 Phase II of the project included installation of the knowledge base containing knowledge from past procedures of the plant as well as recently altered procedures. This phase also included installation of an advisory screen which the operator is prompted to read during transition or transient-operating conditions. The screen, as shown in Figure 5.10, shows a typical product recommendation along with an area in which the operator can prompt the system to provide advice, once a delay has been detected, based on the operator's estimation of delay length. advisory F i l l s " N n . |M/l: OGU R.B. | P i n i s l i « ; < l L i : n < i t l , | | S h a p i : | i B i l l u t | M J : <.HJU WLZ l U i l l c - L L e n g t h | L £ U " 1 l - 0 " I C r a r t u | .JHH . I H H . 4 H M K . UPPT.II iiTi«jM|Ri:ironr.iNn rsnn IBM.I'.M^RM,/™, WMIRI UI .um iwti i us id" ! 1 . P r a t t . i i : i ; :!["M"2: 9 5 8 ~ 1 B 6 ~ H e a t : II * ' " p h a " __ - H . i x Ti:ni> 1 1 7 H C i M a x D i f f I H H t: ! F u r n P r e s . 1 3 0 " " U C ' , i • ' 'isEE8££§> ! ' B H ™ a R E A L •CiSMJ ^ S a ^ J M S C p 1 I B B - 1 3 0 0 s e c G A P : G r u m i : 14 ' M W U x ' l W J 2HHH -M2HH : : H H , , i a M S e t S o a k 1 i i L - j L t : C h a r g e O O O X 0 0 0 0 0 0 0 0 0 0 0 0 o oj 0 0 0 0 0 0 0 0 0 o o' 0 0 0 0 o o oj X 0 0 0 0 0 0 0 1 ' 4 0 , nr,R • " L O U C A M I O N S T E E L O N L Y UITII A P R A C T I C E NUMBER I K f i H H H 0)1 L 0 U E K " ? ? T ( 1 ) : SOAK S O N E : S e t control t o Maintain r o l l i n g tenperature: C>:): H E A T « (-IIAHGE Z O N E S : S e t , : m i l i - . i l s t o " H " output: l-" HIRNCif I P R I S M I K I . S i t ..1 H HUH ' C 4 ) : " A L L S T K E L U I T H A P R A C T I C E NUMHKK A l k H ' E Ill'fiHHW MUST U S E T H E " " D E L A Y MANAGEMENT THE S A M E A S H I G H ' f iHH' . 'N . Hfi l . I . S T O C K . L i t I N h I N u K O l i : ; ? ! * " H I L L K T S Ml 1ST BE C E N T R E D I N THE F U R N A C E " ! ? ? Figure 5.10 Advisory Screen 57 The expert system provides advice in the form of static advice as well as advice based on the condition of a delay. If the operator has made an estimate of the delay length, the system will provide the appropriate information to handle the situation. If the time of the delay is longer or shorter than the prediction, the advice changes to suit the situation based on knowledge added to the system previously. This screen, while not prominent, does allow the operator to retrieve advice from the system as required and perform operation changes in accordance with current operating procedures. The advice, i f not followed may result in a poor heating condition which the combustion engineer can address after the fact. If the change in procedure has a good effect on billet heating, the. combustion engineer has the option to assess the situation and change the procedures accordingly. This is the strength of the system, in that the intuitive skills of the operator can be merged with standard procedures to optimize reheating and therefore increase mill efficiency. The strength of an expert system is its ability to handle a vast amount of knowledge in a form which is not necessarily linear. This allows an expert system to operate with any number of rules and procedures. Of course the more information available to the system, the more reliable the deductions become. However, this non-linear nature makes the completion of sequential tasks cumbersome since the sequence of events can sometimes be quite random. Our system required that many events be completed in very specific sequences in order to maintain logical order in basic file/data "housekeeping" tasks. The ability of Comdale/C to invoke sequential procedures aided in this task but did not solve the problem of larger sequential tasks. A series of flags were therefore established to enable and disable rules within the 58 knowledge base which only allow certain procedures and rules to be active when required. The expert system implementation therefore ran on a very large inference cycle which was able to spawn a series of child cycles for accomplishing certain housekeeping tasks. The large inference cycle is slaved by a series of internal flags to allow the ordering of certain sequence sensitive tasks. Figure 5.11 outlines the main inference cycle along with some of the more interesting child cycles. It is important to note that although this flow chart seems to operate in a directed sequence and flow like a typical computer program, the flow is quite non-linear. The result is a form of controlled chaos which, of course, is similar in many ways to human thought. On startup of the expert system, a large number of key-word-triplets (KWTs) must be initialized with a set of starting point values. This is necessary to ensure that the system child processes can be enabled and the ProcessVision man-machine interface is setup for display. This is a simple procedure in which a series of Comdale/C procedures are enabled only once prior to being disabled for the duration of the system's operation. Due to the sequential and mundane nature of the static knowledge, most of this information is stored not in rule form but in the form of data files on the Q N X machine. During startup, a series of C programs which are in themselves child processes, are summoned to glean important knowledge base reference data from the files and compile a product profile with a series of K W T arrays. During normal operation, a series of housekeeping child processes are periodically invoked which themselves may call on other child process within the Comdale/C environment or in Q N X level processes. Table 5.4 lists the housekeeping 59 processes and conditions in which they are active. In normal operation, the advisory portion of the knowledge base is filled with static knowledge based on the input billet and output product. In a delay situation, the system enables the advisory segment associated with the tracking of delay time and dynamically adjusts advice based on user input and actual sensor readings. 60 LOAD BOP HEAT CHANGE BILLET ACCOUNTING MANUAL REJECT PYROMETER (timestamp) 0) o >. o T3 C o o <D 03 CD C o I Q. o O _ i LU O z LU CC LU EXPERT ADVICE ARRAY short-short short-med short-long med-short med-med med-long long-short long-med long-long FLAG OPERATOR DISPLAY ADVICE CASCADE GAP TIMES PYROMETER HMD FURNACE HMD LOAD BILLET BUFFER UNLOAD BILLET BUFFER Figure 5.11 Inference Logic Cycle applied to the Knowledge Base 61 Table 5.4 Child Processes Within the Inference Engine Process Purpose Effect Temperature Alarms Watch for static as well as product based temperature violations The operator is flagged and the event is logged in the data files Week Day Check To break the log files into day long files for transfer to the mill network Weekday named files are assembled into a 2 week buffer zone which is uploaded to the mill network nightly File Annotizer To create a log file of all furnace operational data Every 30 seconds all pertinent furnace data is saved to a daily temp file Gap time calculator To keep track of billet falls A gap time for the last billet to present time is updated every second until another billet fall Furnace H M D detector of a billet event at the furnace Increments the billet tracking buffer until a conclusion can be made of the event detected First stand H M D detector of the billet event at the entrance of the first set of rolls Indicates the billet leaving the sphere of detection of this system. A conclusion is drawn on the events to determine the probable fate of the billet(s) Pyrometer " H M D " To indicate a billet event at the pyrometer (internal signal) Adds to the location logic information that a billet may be moving towards the first stand but makes no deduction until another event is logged. Pyrometer time stamp To use the pyrometer as the line at which the gaps are tagged A l l gap times are based on the billet registering an event at the pyrometer. Manual reject Operator correction mechanism In certain rare cases, the three detectors can not deduce the correct event. This allow the operator to manually correct the event error Billet Accounting To track billets As events are reduced to actual billet movement the accounting is done in the heat tracking and the billet is logged to a billet event log file Heat Change Heat changes may affect furnace operation As a heat change is detected by internal flags, the subsequent heats are chained forward and all pertinent operational knowledge is upload from data files. Delay detection Internal delay detection invokes a response from the system to prepare advice A delay is detected, and the system prompts the operator to ask for operational advice based on the operators estimation of delay duration 62 Chapter 5.4. Analysis of the Furnace Operation Data: In an attempt to understand the delay phenomenon, it is necessary to collect as much statistical data as possible relating to as many delay conditions as possible. The furnace, for control purposes, is separated into three independent zones. Of course each of these zones is not explicitly independent as the temperature in one zone greatly affects the temperature in the others due to the open design geometry. The three furnace zones are controlled separately with three feedback loops. Each of the zones uses a thermocouple as the primary sensor of furnace temperature. The temperatures of the zones are converted near to the type "R" thermocouples from the millivolt reading into a 4-20 mA signal which is much more resistant to stray electrical interference. The milliAmp signals are read by three programmable logic controllers (PLC's) which adjust the gas and air flow to the individual zones in order to increase or decrease the zone temperatures. The amount of air and natural gas fed into each zone is detected with a slide-wire feedback loop connected to the servo-mechanisms which control the valve openings. The control of these zones follow basic PID principles in order to obtain target temperatures with a minimal time delay and temperature oscillation. The target temperatures are selected by the furnace operators based on historical operational data as well as current mill demand. Measured variables such as temperature, gas and air flows therefore provide invaluable amounts of information on the typical operation of the furnace in both steady-state and transient conditions. The operating information is 63 essential for the modeling portion of this project as the model will provide the new knowledge to the process. Due to the nature of the data, statistical trending must be employed. Long term delay and response data on furnace must be examined in order to seek out frequent scenarios as well as typical responses prior to proposing changes based on the mathematical model. The magnitude of the data collected in the data logging regime resulted in a complex process analysis problem. Typical monthly file sizes are in excess of 100 Megabytes which made traditional data analysis techniques too cumbersome to be feasible. To address this problem, a series of low level programs were written in F O R T R A N to scan the data files and retrieve relevant information or look for trends. This information was used to create a statistical picture of the furnace operation and control responses for subsequent model analysis. The procedural flow of this analysis is delineated in Table 5.5. 64 Table 5.5 Reheating Furnace Control Procedure Analysis Knowledge Engineer Billet Operating Procedure Identification retrieve logged data files • retrieve heat sheets • Billet size (from heat sheets) . Rolling M i l l Product (from heat sheets) Data Extraction Input Date/time band parameters • Extract logged data from the master files Gap Time Plot Analysis • plot gap times • identify frequent delay times Scenario Generation • Input gap sequence key extract response data extract profile data Modeling Experts Process Modeling Model responses Pose Alternatives • Model Alternatives Assess results Knowledge Engineer M i l l Experts Validation • Propose changes in procedure to the mill • Assess Changes on-line • Add Changes to the Knowledge Base 65 Chapter 5.5. Analysis of the Optical Pyrometer Data: After reheating, the hot billets are discharged from the furnace to a conveyor system where the scale is removed using a high pressure water descaling box. The billet is then moved past the viewing window of a scanning optical pyrometer. The pyrometer determines the temperature of an object based on the amount of infrared energy radiated from the object in accordance to a calibration of emmisivity factor. The scanning optical pyrometer provides a temperature profile along one side of the billet (usually the trailing side). As the billet drops from the discharge chute onto the conveyer system, it may perform a quarter turn which brings the bottom face to the view of the pyrometer. The majority of the pyrometer scans therefore are of the side of the billets. However, it is not uncommon for the billet to rotate randomly to show a different face to the pyrometer and give a more or less severe apparent skidmark (refer to the Statistical Process Control-SPC on Figure 5.4 to see the discontinuity in the data band). The billets move along the conveyer at a relatively consistent speed determined by the particular weight and friction with the rollers which generates a good representation of the profile but not the absolute length of the bar. This profile is provided to the furnace operators in real-time and provides an instant assessment of the suitability of the bars for use as well as a post-operational assessment of the past operational procedure. This information is the only tangible feedback the operators use. Information which is gleaned from this profile includes maximum temperature, maximum difference in temperature as well as skidmark severity. In terms of 66 statistical delay analysis, the pyrometer data is vital since it is also a good indicator of a billet release from the furnace. The time between billet releases is known as the gap time and statistical analysis of the gap times pinpoints frequent scenarios. This data is then used to extract furnace operational data which gives an insight into typical operator responses. Chapter 5.6. Analysis of the Billet Groupings: The mill bars can be classified into a number of groupings based on bar size, metallurgy as well as product. The bar sizes include the three billet classes N2, N3, and N6 representing square sections of 4.5", 8", and 10" respectively. These are section sizes which do not include the section length, a statistic which affects overall heat input required to raise the billets to a target temperatures. Chemistries in which the main classifications are based on carbon content and other alloying elements, outline the heating limitations. Billet chemistries for products such as ball and rod stock is extremely temperature sensitive and overheating can result in product rejection or even cracking of the billets inside of the furnace. The product for which the bar is rolled can affect the groupings as target temperatures and pacing rates can be constrained by rolling rate rather than heating rate. M i l l personnel indicated that roughly 40% of the production is rolling mill constrained, leaving the remaining 60% of the bars running the furnace at full capacity. Control of the furnace under the furnace constrained conditions is relatively straightforward if the furnace is run at full capacity and billets removed as soon as the 67 temperatures are within rolling specifications. It is during the 40% of production in which the process is constrained by the rolling mill in which the system is useful in furnace control. In order to restrict the possible scenarios, grouping of gap times are obtained from the statistical analysis of gap times for products with similar product rolling procedures and temperature requirements. With these gap time groupings, it is then possible to extract furnace operating conditions in steady-state as well as transient conditions. Based on these operating procedures, it is then possible to select not only the most common responses but also responses which may have had a good or bad effect on billet quality. It is from these responses that the mathematical model can be utilized to optimize the furnace operating responses under various steady-state and transient conditions. 68 Chapter 6. Results and Discussion: Chapter 6.1. The Expert System: As is quite often the case, delays can be hectic situations in which the ftirnace operator may become too occupied with delay related tasks to inform the system that a delay has occurred. Therefore, the system has been given the ability to determine the existence of a delay based on the examination of a series of sensor signals. Delay detection is based on the expert system examining the sequence and timing of the three detector signals available to the computer. The sequence is analyzed and a delay is flagged internally as well as externally in the form of a flashing button offering advice to the operator. The advice is offered in a manner which is as non-invasive as possible, the operator needs only to "click" on the advice button to summon the advisory screen containing recommended procedures. The system is currently stocked with declarative and procedural knowledge from the Standard Operating Practices as well as new knowledge from scenario "role playing" using the U B C transient furnace model. This knowledge forms the basis for the expert system in terms of providing the operator with knowledge gathered and refined from years of experience and from recent developments. When the knowledge based is stocked with appropriate responses pertaining to complex delay situations, the system will be able to offer timely advice for a myriad of transient operating conditions in addition to the current static knowledge. Statistical analysis of the delay data collected over the period of approximately one year has lead to the isolation of a few statistically significant delay situations. 69 APPENDIX H contains a sunimary of 6 weeks of furnace operation. Of the three billet size products, it was possible to identify three major categories of delays. In order to illustrate these categories, an example of arbitrary grouping of N6 gaps times is shown in Figure 6.1. The actual gap times between billets in shown on the horizontal axis and the actual number of billets released is shown on the vertical axis. It is evident from these plots that the three delay groupings can be extracted. The short, medium and long delays were identified as discernible groups. It is possible to rearrange the delays into arbitrary ranges and change the scale to focus on statistically frequent ranges. Also, i f we remove billets which were released on schedule, the groupings become much more evident (Figure 6.2). With this in mind, it was possible to retrieve operator control responses to each of the delay categories. Due to the nature of the data and the lack of details such as delay cause or overlapping transients, the only feasible approach in addressing these scenarios was to choose the most frequent delay responses. The system records and archives time-stamped temperature profiles of the billets for scrutinization. Furnace operating data was also available to the modeling experts. Figure 6.3 illustrates the zone temperature records which can be correlated with the billet temperature data. In addition to these traces, gas flows, air flows, and total furnace pressure stemming from operator control of the PLC's is shown in Figure 6.4, Figure 6.5, and Figure 6.6 respectively. A n example of the historical billet temperature profiles is illustrated in Figure 6.7. The responses can then be analyzed via the mathematical model to determine the efficiency of the operator's responses as well as the possibility of creating better response without the need to experiment with the actual furnace controls. The analysis can then be 70 expanded to include theoretical responses to incorrect initial responses based on inaccurate initial operator delay estimates. This information can then be placed into the expert system to provide timely new advice as an initially misdiagnosed delay progresses. Work on different aspects of transient procedural modeling continues. It had been believed that roughly 40% of the production is rolling mill constrained, leaving the remaining 60% of the bars operating the furnace at full burner capacity. Logged furnace operational data from the data provided for model scrutinization by Osinski showed that this was not that case in that not all of the zones of the furnace were under heavy firing condition with the large 8" billets. Again the manner in which the furnace is operated may have been affecting the furnace throughput. Further examination of these procedures is required to assess the feasibility of increasing furnace throughput by altering some of the ingrained operating procedures with this new knowledge. Details of the scenario modeling performed by Osinski are included in APPENDIX A. It is clear from this example of mathematically modeled delay response strategies, that the expert system can becomes more effective with the addition of externally generated knowledge. 71 700 - r 600 -500 -i r > o > c o r ~ - i - m c > < o r ^ - < - i o a > o o p - T - i o a > c o c o o c o r ~ - o c o r - ~ o - s r i - ~ o ^ i - r ^ T - ^ i - r ~ -T - T - r - C M C M C M C O C O C O ' ^ - ' ^ ' ' ^ - i r ) l f ) m Gap time (sec) Figure 6.1 N6 Raw Gap Times Gap time (sec) Figure 6.2 N6 Gap Time with Arbitrary Ranges 72 1400 1200 1000 800 600 400 200 M [I V Charge zone - Heat zone -Soak zone 4-CO co CO co CM CM CM ro •0- o CO CO o CM in O CM <b 1— CO cb 66 o O CM o CO m CO CM OO CO ur> in <b CO 1 •— 1— 1— *— T— —^ Temperature (°C) Figure 6.3 Example of Furnace Zone Temperature Traces Figure 6.4 Example of Furnace Natural Gas Traces 73 Figure 6.5 Example of Furnace Air Traces Figure 6.6 Example of Furnace Pressure Traces 74 Time Note: This example contains a 7.5 minute delay midway through the time sequence. Figure 6.7 Plot of Billet Temperature Profiles Over Time 75 Chapter 6.2. The Interface & Operator Response: The initial response to Phase I of the installation was with great reluctance on the part of the operators due to the belief that mill management intended to replace the furnace operators with a computer control system. This is consistent with the "Feigenbaum Bottleneck" which includes reluctance from experts due to the fear of "loss of work" from the A l technology, etc. [1,14]. These fears were alleviated by carefully demonstrating and explaining the system to the operators thereby clarifying the objectives of the system. Since the goal of the system was to supplement the tools the operators have in their "toolboxes" for determining appropriate operating procedures, this initial task was easily accomplished. The operators soon began to favour the new system over the older data collection system in that the interface allowed the operators to see information not previously available. Since the bulk of the development of the man-machine interface was completed over a three week period, the operators were able interact with and critique the interface during system development. This interaction allowed the development of a system which was not only useful and acceptable to all four primary furnace operators but also consistent with the goals of both the mill mangers as well as the system developer. The interface ergonomic factors were therefore deemed important for system acceptance which directly affected the level of cooperation required during the development and implementation phases [12]. Phase II of the installation was essentially a seamless addition to the interface. A l l of the screens of Phase I remained intact with interfaces which the operators had 76 become accustomed to and readily accepted as useful. Phase II added a single advisory screen which provided advice, based on the knowledge within the newly installed knowledge base and delay detection rules. As expected, this phase was the portion of the project most difficult to obtain general furnace operator acceptance. This reluctance is due mainly to the nature of furnace control in the past in which operators were allowed to implement any control procedure which seemed to produce billets during minimal mill delay. These control decisions often produced billets at the price of product quality or production. However, since the expert system goals were the same as the supervising combustion engineer, this reluctance will eventually be overcome. Of the four operators, one individual wanted no interaction with the advisory screens whatsoever due to reservations over the content of the SOP. Two of the operators were mostly indifferent but curious as to the advice that the interface would offer. The fourth operator was very keen on the concept and was quick in manipulating of the system and examining the information. Unfortunately, the knowledge base was not complete at the time and only procedural and declarative knowledge as well as relatively new knowledge generated as a result of the mathematical model were integrated into the system. This fact alone may explain the less than overwhelming response to the advisory portion of the S C A D A system, however the groundwork for a completed knowledge base has been laid. The ability to implement all aspects of the system however are active and the tools required for future updates to the system were provided to the rolling mill managers. A recent visit to the mill to check on the condition of the S C A D A system has resulted in a few revelations. The older A S Y S T system has been removed and the U B C M M I was operational as the sole window into the furnace operation. M i l l personnel 77 lauded the system as being extremely useful for both the operators as well as allowing detailed analysis to be performed by both U B C and mill personnel [10]. The billet tracking system however was not in use which also precludes the use of the expert advisory system except as a reference for the static knowledge of the system. This situation may be a result of operators' reluctance to perform the task or in part to an increase in the inaccuracy of the billet pass determination module of the system due to some changes in the furnace operation. The detection rules were designed to be tuned to the specific timing of the billets from detection at the furnace H M D , the leading edge of the pyrometer signal and the H M D at the first stand. This leads to the confirmation that an expert system, to be useful, must be maintained and updated regularly as process changes occur. The relative compliance of the operators to the mill SOP is still at low levels, as the logged data suggest. Any improvements which are made to the SOP are therefore moot i f the operators are not held accountable to the procedures. The expert system has been instrumental in identifying the low level of compliance but has not been useful in encouraging compliance due to the need to bring the knowledge base up to date. The ability of the mill personnel to monitor the compliance levels of the operators is unfortunately still a forensic task due to the lack of a fast network link from the S C A D A system to the plant network. This problem could not be addressed due to some plant standardization issues but may now be surmountable i f the networking problem is championed by mill personnel. It is the opinion of the author that a "champion" at the mill for the system addressing the networking issue would make the system viable in this 78 particular application and push the system towards encouraging fruitful standardization in furnace control procedures [14]. During this recent visit to Edmonton, it was determined that it is the intent of the mill to implement a level II PLC based system which will remove the operators from the furnace control loop. This would in turn, remove the U B C S C A D A system from the control loop, and all the expertise contain within its knowledge base. While this would indeed create an absolutely standard response to predetermined transients, the expertise of the operators would be lost. 79 Chapter 6.3. Benefits of the System to the Mill Operation: The implementation of an expert system to the billet reheating furnace was a success. Some of the benefits can be directly measured in terms of money saved from a decrease in product rejections, and others indirectly in terms of the introduction of order to a sometimes chaotic process. Some of the features which were implemented into the system which may not have been available or as refined in previous systems are: 1. Billet tracking system - to allow an automatic accounting of billet progress. 2. Real time data collection at high frequencies - low level CI drivers which collect data and perform simple processing of data. 3. Development of standardized on-line operating practices for delays - knowledge from different sources was compiled into a standardized knowledge base to be used by the furnace operators. 4. Temperature profile displays - graphical representation of temperature profiles in real time along with alarms and trend information. 5. Presentation of historical data - Trend information on temperature, air flow, fuel flow, billet temperatures, and furnace pressure is available for on-line inspection of operating procedures. 6. Generation of data files - Data files containing information of furnace activity and conditions is stored for retrieval by external applications. 80 Chapter 7. Conclusions This project has involved an examination of the problems involved in the control of a steel reheating furnace at an Alberta mini-mill. On completion of the project the following conclusions can be made: • The control of billet reheating furnaces has proven to be a challenging problem well suited to Expert Systems due to the heuristic nature of the problem. • A Expert System consisting of a data collection module and advisor module was developed and successfully installed at the Alberta mill. This system was still in operation 3 years after installation. This implementation can be considered a success due to the continued use by the mill. • The static and transient furnace models developed by the billet reheating project were effectively used to study control conditions and procedures leading to the development of some new knowledge, increasing mill efficiency. This new knowledge was assimilated into a S C A D A system. • The system allows creation of an operating standard in which inexperienced or undisciplined operators use proven procedures designed to increase productivity and decrease operational losses. • The system has proven itself as a useful tool to operators which benefit from the man-machine interface as well as the mill managers as they attempt to improve the operating bottom line via process efficiency. 81 BIBLIOGRAPHY 1. J.Efstathiou, "Expert Systems in Process Control", Harlow: Longman 1989, p. 114-138 2. H.E.Boyer, T.L.Gal, "Metals Handbook - Desk Edition", American Society for Metals, Metals Park OHIO, Sep 1992, p 28.2 3. P.V.Barr, K.E.Scholey, E.Osinski, Unpublished work in progress, Modeling of Steady-State and Transient Billet Furnace Operation, -1997. 4. K.E.Scholey, PhD Thesis - "A Transient, Three-Dimensional, Thermal Model of a Billet Reheating Furnace", U B C , 1996 5. J.K.Brimacombe, I.V.Samarasekera, E.B.Hawbolt, P.V.Barr, "Microstructural Engineering: Mathematical Models and Measurements to Link Steel Products and Processes", Steel Product-Process Integration, Halifax, Aug 1989. Canadian Institute of Mining and Metallurgy, pp. 147-167 6. W.J.Stry, J.D.Felske, "On Reheat Furnace Temperature Uniformity and Decarburization", 31st Mechanical Working and Steel Processing Conference, Chicago, Oct 1989, Iron and Steel Society, pp 603-616. 7. G.Howel, R.Sanchez , "More Effective Steelmaking with Computerized Reheat Furnace", Ind. Heat. Vol 51, No. 10, pp 28-30, Oct 1994 8. "Decarburization: Proceedings, Conference of Decarburziation", Sheffied England 1969 9. P.Agrawal, Private Communications, Spring 1993 "Expert: Ivaco", U B C 10. Dennis Gutknecht, Doug Ostafichuk, Bob Pugh, Peter Barr, Edmund Osinki -Private Communications, April 4, 1997 Edmonton "Experts: U B C and Alta" 11. Dennis Gutknecht, Doug Ostafichuk - Private Communications - Combustion Engineer, M i l l Engineer, summer 1995 "Expert: Alta" 12. L.Boullert, A Krigsman, R.A. Vingerhoeds, "Application of Artificial Intelligence in Process Control: Lecture Notes Erasmus Intensive Course", N Y Pergamon Press, 1992, p. 127-141 82 13. S.Kumar, J.A.Meech, I.V.Samarasekera, J.K.Brimacombe, "Knowledge Engineering an Expert System to Troubleshoot Quality Problems in the Continuous Casting of Steel Billets", I & S M September 1993, pp 29-34 14. J.A.Meech, " A l Applications in the Mining Industry into the 21st Century", A P C O M X X V Conference, Brisbane, May 9-14, 1995, p. 95-96 15. D.N.Chorafas, "Knowledge Engineering: Knowledge Acquisition, Knowledge Representation, the Role of the Knowledge Engineer, and Domains Fertile to Artificial Intelligence Implementation", New York, N Y , Van Nostrand Reinhold 1990, p. 20 16. Mark K Ekblad, Tamara L Artim., "Application of Fuzzy Logic Control of Gas Composition in a Combustion Process", 2nd IEEE Conference on Control Applications. Sep 13-16 Vancouver BC 17 K.McDermott, P.Clyde, M.Hall, C.A.Harris, "Expert System for Control of No.4 Autogenous M i l l Circuit at Wabush Mines. C M P P:roc.,1992, No.24,pp20-18. J.K.Brimacombe, "Empowerment with Knowledge Toward the Intelligent Mould for the Continuous Casting of Steel Billets", 76th Steelmaking Conference, Dallas Texas, USA, Iron and Steel Society pp.3-27, 1993 19. I.V.Samarasekera, J.K.Brimacombe, "Application of Mathematical Model for the Improvement of Billet Quality", Steelmaking Conference Proceedings, Vol 74 Washington, D.C., Iron and Steel Society, 1991,pp 91-103 20. Sunil Kumar, MASc Thesis, "An expert system to Diagnose Quality Problems in the Continuous Casting of Steel Billets", 1991 (PhD 1996) 21. V.Rakocevic, J.A.Meech, "Computational Intelligence in a real-time S C A D A system to monitor and control continuous casting of steel billets", IFSA '95 Sao Paulo, Brazil, July 22-28, 1995 22. J.C.Bezdek, "What is computational intelligence", - Computational Intelligence -Imitating life, 1994 IEEE World Congress on Computational Intelligence (WCCI),pp 1-12 23. "ProcessVision 4.2 Operation Manual", Comdale Technologies, Toronto Canada, 1995 24. V.Rakocevic, MASc Thesis - "Development of a S C A D A system to Monitor and Control Continuous Casting of Steel Billets",, U B C 1995. 83 25. J.A.Meech, C.A.Harris, "Expert Systems for Gold Processing Plants", Randol Gold Forum , Vancouver march 25-27, 1992 26. Dr. John Meech, Dr. Peter Barr - Private Communications, summer 1995 Vancouver" Expert and Knowledge Engineer, U B C " 27. Edmund Osinski - Private Communications, Work in Progress - -spring 1997 "Expert: U B C Model" 84 APPENDIX A Mathematical Modeling Results The Mathematical Model: The vast amount of data and information gleaned from the furnace with the U B C S C A D A system as well as data gathered from plant trials in Alberta and the pusher-type furnace at M R M located in Manitoba allowed the tuning and verification of the U B C 3D transient billet furnace model. The model is an offline tool necessary for running a number of "what i f scenarios in an attempt to improve the efficiency of the furnace. Given the good degree of confidence with the results obtained from the model, we were able to make some recommendations to the mill in terms of operational conditions. Figure A - 1 shows the Model Calculated (lines) vs. Experimental points (symbols) [4]. 1400 billet discharged from furnace 0 20 40 60 80 100 120 Time (min) Figure A -1 Plant Trial Results as Compared with Modeling Results 85 These recommendations allowed reduction in the number of rejections as well as a reduction in the degree of product downgrades in temperature sensitive products such as ball and rod stock. Following mill assessment of the procedural changes, they were assimilated into the plant's Standard Operating Practice which is an integral part of the operational knowledge base of our real-time advisory expert system. This change has allowed the creation of new knowledge as well as the mechanism to translate these new procedures to the mill level. The result of such new procedures and standardizations was to increase the levels of Quality Assurance for mill bar products. The furnace operational analysis of this specific scenario and subsequent system implementation has proven to have saved the mill in the order of $100,000 with the change of the procedural operating target temperature for rolling of ball stock [11]. In regards to "process lore", a common belief of the mill was that after delay transient conditions, the first two billets discharged from the furnace would be cold, and well below target temperature. The modeling of this situation by Osinski [10,27] did not show any cold billets at the end of delay transients. There was, however some evidence of cold billets at the end of longer delays from SCADA system logged data. Discussions with mill personnel and further modeling of the soak zone, revealed that a combination of the cooling effect of the exit door, the geometry of the zone and operator decisions resulted in colder billets. The discharge door was essentially a black body which acted as a heat sink near the discharge end of the furnace. In addition, some cold air moved through the seal of the door which cools the billet as well as diminishing the heating effect of the row of burners over the end billets. If the burner output is increased to 86 account for this cooling the next set of billets (5th or 6th) is overheated. As a result, the furnace operators under-burned the zone, leaving colder billets to be discharged at the end of longer delays. It had been believed that this feature was solely the result of cooling from the door and the inability of the furnace to supply enough heat to the soak zone. As a result of the dissolution of this particular piece of process lore, the control of the furnace can be better understood and control practices can reflect this new knowledge. Barr [10] suggested making procedural changes such as shutting down the second row of burners in the soak zone for temperature sensitive product or possible creating a new control zone in the furnace which would separate the soak zone into smaller control sections. Steady state and transient work by Barr and Osinski [10] suggest that the furnace is not optimally operated in terms of transfer of heat from combustion into the billets. For a large amount of the products, the charge zone is fired hard with the heating zone idled and soak zone used only for final temperature targeting. This procedure has allowed the operators to control the temperature with little loss in production. However, firing the charge zone heavily also means that most of this sensible heat exits the furnace quickly through the stack. If the heating zone were to be fired heavily, the heat of combustion would not only be absorbed in the heating zone but also in the charge zone which in turn would not need to be fired as heavily to maintain temperatures. The drawback of this procedure may be in the production rate of the furnace because the heat flux into the billets as viewed from the furnace axial profile would be skewed from the charge towards the heating zones. The result may be a reduction in the maximum pace rate due to the longer heating and homogenizing times. This may have the effect of 87 lowering the throughput of the furnace which may be more detrimental than the excess fuel consumption. Work on this aspect continues, as it may be possible to maintain throughput and reduce fuel consumption when reheating billets which are not bottle-necked at the furnace. It was determined via gas flow data traces that the amount of excess air supplied to the burners under delay driven idle conditions varied to a large degree. This variation can lead to a change in an adverse furnace atmosphere and increase the degree of scale formation. This loss due to scale can be absorbed into the costs of delays but can be detrimental in the production of grades with particularly adherent scale. It has been proposed that the burning ratios be raised into a more stable region and the heating profile in the furnace be redistributed to allow a zero net change in heat input. This would decrease the extent of scale loss during delay conditions though better furnace atmosphere control [10,27]. A set of "typical" delay scenarios were obtained from mill as selected from the historical log files, including recommended responses. These were analyzed by Osinski with the use of the U B C model to determined their effectiveness. While the procedures had merit, it was clear that improvements could be made to these procedures. Osinski postulated possible new procedures and tested a number of variations. The result was a set of new post delay procedures which the model deemed as more effective. Osinski assembled a set of results from the modeling efforts which included the examination of the effectiveness of three delay strategies as follows: 1.. null strategy - no action is taken during or after this delay 88 2. basic strategy - as is currently prescribed 3. fine strategy - fine adjustments to the operation during and after the delay The firing strategies noted above are summarized in Table A - 1 and Table A - 2 [10,27]. The modeled outcomes of these strategies is summarized in Figure A - 1 and Figure A - 2 Results of a Basic Strategy with a Null Strategy [10,27]. It is clear from these results that the null strategy as expected produces greatly overheated billets and that the fine control strategy produced billets with much lower standard deviations. These procedures have been presented to the mill for validation prior to assimilation into the mill SOP. Table A - 1 Basic Post-Delay Firing Strategy Charge Zone Heat Zone Soak Zone [Nm3/h] [Nm3/h] [Nm3/h] delay (70 min) 280 280 280 1st 10 min. after delay (70-80 min) 280 280 150 next 20 min. after delay (80-100 min) 1850 280 150 next 5 min after delay (100-105 min) 1850 280 400 steady state 1850 900 400 Table A - 2 Fine Post-Delay Firing Strategy Charge Zone Heat Zone Soak Zone [NmVh] [Nm3/h] [Nm3/h] delay (70 min) 280 280 280 1st 10 min. after delay (70-80 min) 280 280 150 2 n d 10 min. after delay (80-90 min) 1850 280 200 3 r d 10 min. after delay (90-100 min) 1850 280 200 4 t h 10 min. after delay (100-105 min) 1850 280 300 105-140 min 1850 900 300 140-150 min 1850 900 400 150-155 min 1850 900 600 steady state 1850 900 400 89 1260 1241 1220 1100 1060 —0— fins strateg —A— nuD strategy L i . \ tsar O 2D 40 60 80 100 120 140 160 180 200 time [mln] Figure A - 2 Results of a Basic Strategy with a Null Strategy 90 The steady-state and transient modeling has clearly proven itself to be a powerful tool in the understanding of furnace operation and has added new knowledge to a often misunderstood process. It is evident that further work along the same lines would provide invaluable process knowledge. It also follows that this knowledge, i f implemented in the expert system, would provide the floor level personnel with same level of control expertise without the burden of explicitly understanding the fundamentals behind the new knowledge. 91 APPENDIX B Hardware Mill Computer: (The U B C unit was essentially identical in configuration but not manufacturer) • I B M Value Point • 486DX2-66 • 16 Megabytes Memory • 340 Megabyte Harddrive • Mouse, Colour monitor, Keyboard This particular hardware configuration was selected in order to provide the minimum required hardware processing power. The actual computer was an I B M value point machine chosen by the mill in accordance to mill specifications for standardized computers. This selection, however provided an unexpected operational problem. The DAS-20 data acquisition card did not function properly due to inability to control the data stream transfer rates between the motherboard and the DAS-20. Generic computers of this age are equipped with CMOS adjustable transfer rates which readily allowed the BUS to be adjusted to match the transfer rates acceptable to the DAS-20. The solution to this problem proved to the removal of the I B M BUS riser card, which was IEEE standardized, and the installation of an A T BUS standardized riser card to make the hardware change in the BUS transfer rates. Data Acquisition Card: • DAS-20 - Keithly Metrabyte This card was selected for use in this project as well as the "SmartCast" project in order to provide not only the necessary acquisition rates and accuracy but also to standardize the software drivers necessary to operate these cards within the Q N X operating environment. Due diligence in the selection of this card was performed by Vladimir Rakocevic. Networking: • Token Ring network card • Serial data line-TCP-IP protocol Networking of the QNX furnace computer with the mill computer proved to be an effort restricted again by mill standardization. The mill operated all of their networks off an I B M token ring standard. The software allowing this option was not available until the end of the this project, therefore a temporary option was chosen. A serial line was installed from the Q N X machine to a bridge machine which transferred the daily log files from the QNX machine to the DOS machine once a day prior to sending the information onwards to the mill network for compilation with the database of operating variables. 92 APPENDIX C Software DOS 5 - A small DOS partition was installed to allow this machine be twinned and interchangeable with another plant machine in case of hardware or software failure. Q N X 4.21 operating system - This software was selected due to it's ability to provide real-multitasking on the industrial scale. QNX-windows interface - This software provides the Graphical User Interface necessary for a the expert system software to operate. Comdale ProcessVision, Comdale/C - The process view and expert system software combination which provided the man-machine interface with the furnace operators. The version of the software used was in B E T A form and required some additional low level drivers to solve some operational deficiencies Signal Conditioning Software - this is the small CI module which examines the incoming signals from the HMD's and determined the existence of a "real" or "ghost" signal, Author Vladimir Rakocevic and Cliff Mui U B C - data acquisition drivers - low level drivers which acquired data from the DAS-20 card performed some CI manipulations of the data stream prior to passing the relevant data onto the expert system. Authors Vladimir Rakocevic and Cliff Mui Networking software - QCP Serial software purchased as a "Band-Aid™" solution to the networking deficiencies, This allows a DOS machine to act like a Q N X terminal logging onto the Q N X server and retrieve data files via FTP and Telnet protocols -Developed by MultiMips Software Data processing software - small drivers designed to be evoked by the expert system to provide data to the expert system on demand as well as perform data file manipulation onto the bridge machine Data interfacing software - DOS based scheduling software running DOS scripts that moved the data from the bridge machine to the mill network Statistical Processing Software - Low level software written to extract information from data files of unmanageable size (> 100MB). Author Cliff Mui Mathematical Model - 3D steady state model designed to verify the steady state operation of the reheating furnaces. Author and Expert Dr. Peter Ban-Mathematical Model - 3D transient furnace model designed to used the data trends to determine the efficiency of control procedures. Author and Experts Dr. Peter Barr, Dr. Kenneth Scholey, Edmund Osinski. 93 APPENDIX D Plant Trials 1. K.Scholey, C.Mui, P.Wenman conducted plant trials at Alta Feb 28-Mar 1994 examining Transient and Steady-State furnace control conditions. 2. K.Scholey, C.Mui, P.Wenman conducted plant trial at Manitoba Rolling M i l l (MRM) examining Transient and Steady-State furnace control conditions, collected delay information, June 6-10, 1994 3. C.Mui, V.Rakocevic, and N.Walker installed a S C A D A system at Alta steel, interviewed personnel and collected data, November 27-December 19, 1994 4. C.Mui performed the installation of Phase II at Alta, Summer of 1995. 5. C.Mui, P.Barr, E.Osinski met with D.Gutknecht, D.Ostafichuk, B.Pugh at Alta to discuss new knowledge and inspect the M M I . Apr 3, 1997 94 APPENDIX E Data Processing Code The following is a series of small DOS programs developed in F O R T R A N to examine the large data files obtained from the mill: C file=iclip.for Cccccccccccccccccccccccccccccccccccccccccccc C C Ver 1.0 June 23, 1995 C This code is was written clip billet ID C data from fine Billet ID data files. C Ccccccccccccccccccccccccccccccccccccccccccccc c INTEGER SEC,LINE INTEGER D A T E , ST A R T D ATE,FINI S H D A T E INTEGER START,FINISH INTEGER TOMILL,REJECT CHARACTER*8 TIME,START_TIME,FINISH_TIME,LABEL C H A R A C T E R * 10 N U L L C LINE = 0 C C INPUT R A N G E F R O M CONFIG FILE C OPEN(UNIT=3,FILE='ICLIP.CFG') READ(3,*) START_DATE,START_TIME READ(3,*) FINI S H D ATE,FINI SH_TIME CLOSE(UNIT=3) DATE=START_DATE TIME=START_TIME C A L L CONVERT(DATE,TIME, START) D ATE=FINI SH_D A T E TIME=FINISH_TIME C A L L CONVERT(DATE,TIME,FINISH) C 202 FORMAT(I8,',',A, ,,',I3, ,,',I2, ,,',A,';,I9) OPEN(UNIT=l ,FILE='BILL_ID.TXT') OPEN(UNIT=2,FILE= ,ICLIP.TXT',STATUS='UNKNOWN') 100 READ(1,*) DATE,TIME,TOMILL,REJECT,LABEL,NULL LINE = LINE + 1 95 c C A L L CONVERTEDATE,TIME, SEC) C IF (SEC.GE.START.AND.SEC.LE.FLNISH) THEN WRITE(2,202) DATE,TIME,TOMILL,REJECT,LABEL,SEC PRINT*,DATE,TIME,LINE,START ,FrNISH ,SEC ELSE PRINT*,' ' ,DATE,TIME,LLNE ENDIF C IF (DATE.NE.9) THEN GOTO 100 ELSE ENDIF CLOSE(UNIT=l) CLOSE(UNIT=2) C END C C ccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccc c C SUBROUTINE FOR CONVERTING D A T E A N D TIME TO abs-seconds C SUBROUTINE CONVERT(DATE,TIME,SEC) C H A R A C T E R * 8 TIME INTEGER D A T E , S E C , B L A N K , B A S E INTEGER DD ATE,MONTH,D A Y,INDEX( 12) C H A R A C T E R * 1 HOURl,HOUR2,MrNl ,MIN2,SECl ,SEC2 INDEX(1)=0 INDEX(2)=2678400 INDEX(3)=5097600 FNDEX(4)=7776000 INDEX(5)=10368000 FNDEX(6)=13046400 INDEX(7)=15638400 INDEX(8)= 18316800 INDEX(9)=20995200 INDEX(10)=23587200 INDEX(11)=26265600 INDEX(12)=28857600 INDEX(13)=99999999 C C ABS-SEC-CONVERSION 96 c DDATE=0 B A S E = 0 IF(DATE.GE. 19940101. AND.DATE.LE. 19941231 )THEN DD ATE=D ATE-19940000 B A S E = 757382400 ENDIF IF(DATE.GE. 19950101 .AND.DATE.LE. 19951231 )THEN DDATE=DATE-19950000 B A S E = 788918400 ENDIF M O N T H = INT(DD ATE/100) D A Y = DDATE-MONTH* 100 IF (MONTH.LE.0.OR.MONTH.GE. 13) THEN M O N T H = 13 D A Y = 9 SEC = 999999977 ELSE HOUR1 =TIME(1:1) HOUR2 = TIME(2:2) MINI = TIME(4:4) MIN2 = TIME(5:5) SEC1 =TIME(7:7) SEC2 = TIME(8:8) SEC = B A S E SEC = SEC + (ICHAR(SECl)-48)*10+(ICHAR(SEC2)-48) SEC = SEC + (ICHAR(MINl)-48)*600+(ICHAR(MIN2)-48)*60 SEC = SEC + (ICHAR(HOUR1)-48)*36000+(ICHAR(HOUR2)-48)*3600 SEC = SEC + (DAY-1)* 86400 SEC = SEC + INDEX(MONTH) ENDIF B L A N K = ICHAR(SECl)-48 IF (BLANK.LE.0 .AND.BLANK.GE.9) THEN SEC = 999999988 ENDIF END C file=stats.for Cccccccccccccccccccccccccccccccccccccccccccccccccccc C C Ver 1.0 may 23, 1995 C This code is was written to compile statistics C of data files from alta steel using 100 points C and write a data file containing these stats 97 c Cccccccccccccccccccccccccccccccccccccccccccccccccccc c INTEGER TEM(800) INTEGER G A P , B A R S , F L A G INTEGER NUMBER(800),PERIOD(800) INTEGER MIN(800),MAXI(800) INTEGER MIN_E,MEST_W,MAX INTEGER SEC,T,X,SECJBUFF,LINE INTEGER DATE,DATE_BUFF C H A R A C T E R * 8 TIME,TIME_BUFF C LLNE = 0 S E C - 0 BARS = 1 DO 500 X=l,200 PERIOD(X)=0 MIN(X) = 0 MAXI(X) = 0 NUMBER(X)=0 500 CONTINUE C C INPUT C C OPEN(UNIT=3,FILE='STATS.CFG') C C R E A D IN CONFIG FILE C 300 READ(3,*) PERIOD(BARS) IF (PERIOD(BARS).NE.-9) T H E N BARS = BARS + 1 GOTO 300 ELSE BARS = BARS - 1 ENDIF CLOSE(UNIT=3) C C BEGIN LOADING IN GAP TIMES C OPEN(UNIT=l ,FILE='BILL_DAT.END') 100 SEC_BUFF = SEC READ(1 ,*) DATE,TIME,(TEM(T),T=1,100),MLNJE,MIN_W,MAX,SEC GAP = SEC - SEC_BUFF LINE = LINE + 1 98 C S T A R T S T O C K I N G B A R S C F L A G = 1 D O 4 0 0 X=1,BARS I F ( G A P . G E . P E R I O D ( X ) ) T H E N F L A G - X E N D I F 4 0 0 C O N T I N U E P R I N T * , D A T E , T I M E , L I N E , S E C , G A P , F L A G N U M B E R ( F L A G ) = N U M B E R ( F L A G ) + 1 M I N ( F L A G ) = M I N ( F L A G ) + M I N J E M A X I ( F L A G ) = M A X I ( F L A G ) + M A X C C I F ( D A T E . N E . 9 ) T H E N G O T O 100 E L S E E N D I F C L O S E ( U N I T = l ) C O P E N ( U N I T = 2 , F I L E = ' S T A T S . T X T , , S T A T U S = ' U N K N O W N ' ) W R I T E ( 2 , * ) L I N E , B A R S W R I T E ( 2 , * ) ' G A P , F R E Q , M I N , M A X ' D O 600 X = 1 , B A R S I F ( N U M B E R ( X ) . N E . O ) T H E N M I N E = M I N ( X ) / N U M B E R ( X ) M A X = M A X I ( X ) / N U M B E R ( X ) E L S E M I N _ E = 0 M A X = 0 E N D I F W R I T E ( 2 , * ) P E R I O D ( X ) , , ; , N U M B E R ( X ) , ' , , , M I N _ E ; ; , M A X 6 0 0 C O N T I N U E C L O S E ( U N I T = 2 ) E N D C file=gaps.for Cccccccccccccccccccccccccccccccccccccccccccccccccccc C C Ver 1.0 June 2 1 , 1995 C This code is was written to compile gap statistics 9 9 C of data files from alta steel using 100 points C and write a data file containing these gap stats C Cccccccccccccccccccccccccccccccccccccccccccccccccccc c INTEGER TEM(200) INTEGER GAP INTEGER SEC,T,SEC_BUFF INTEGER D A T E C H A R A C T E R * 8 TIME C SEC = 0 C C INPUT C C C BEGIN LOADING IN GAP TIMES C OPEN(UNIT= 1 ,FILE='BILL_D AT.END') OPEN(UNIT=2,FILE='GAPS.TXT ,,STATUS='UNKNOWN') 100 SEC_BUFF = SEC READ(1 ,*) DATE,TIME,(TEM(T),T=1,100),MLN_E,MrN_W,MAX,SEC GAP = SEC - SECJBUFF C WRITE(2,*) DATE ,7 ,T IME ,7 , SEC ,7 ,GAP PRINT*, GAP C IF (DATE.NE.9) THEN GOTO 100 ELSE ENDIF CLOSE(UNIT- l ) CLOSE(UNIT=2) END C file=Fclip.for Cccccccccccccccccccccccccccccccccccccccccccc C C Ver 1.0 June 23, 1995 C This code is was written clip furnace C date from furnace data files. C Ccccccccccccccccccccccccccccccccccccccccccccc 100 c INTEGER SEC.LINE INTEGER D A T E , S T A R T D ATE,FINI S H D A T E INTEGER CTEMP,HTEMP,STEMP INTEGER CSET,HSET,SSET R E A L CGAS,HGAS,SGAS R E A L CAIR,HAIR,SAIR,FPRESS INTEGER START,FINISH CHARACTER*8 TIME,START_TIME,FINISH_TIME C LINE = 0 C C INPUT R A N G E F R O M CONFIG FILE C OPEN(UNIT=3,FILE='FCLIP.CFG') READ(3,*) START_DATE,START_TIME READ(3,*) FINISH_DATE,FINISH_TIME CLOSE(UNIT=3) DATE=START_DATE TIME=START_TIME C A L L CONVERT(DATE,TIME,START) D ATE=FINI SH_D A T E TIME=FINISH_TIME C A L L CONVERT(DATE,TIME,FINISH) C 202 FORMAT(I8,V,A,','J4,',',I4,V,I4,V,I4,V,I4,',',I4,',' +,F5.2,V,F5.2,', ,,F5.2, ,;,F5.2S,;,F5.2, ,, ,,F5.2,V,F5.2) OPEN(UNIT=l ,FILE='FURN_TMP.TXT') OPEN(UNIT=2,FILE='FCLIP.TXT',STATUS='UNKNOWN') 100READ(1,*) DATE,TIME,CTEMP,HTEMP,STEMP,CSET,HSET,SSET,CGAS,HGAS +,SGAS,CAIR,HAIR,SAIR,FPRESS LINE = LINE + 1 C C A L L CONVERT(DATE,TIME,SEC) C IF (SEC.GE.START.AND.SEC.LE.FINISH) THEN WRITE(2,202) DATE,TIME,CTEMP,HTEMP,STEMP,CSET,HSET,SSET,CGAS +,HGAS,SGAS,CAIR,HAIR,SAIR,FPRESS PRJNT*,DATE,TIME,LINE,START,FINISH,SEC ELSE PRINT*,' ' ,DATE,TIME,LINE ENDIF C IF (DATE.NE.9) THEN 101 GOTO 100 ELSE ENDIF CLOSE(UNIT=l) CLOSE(UNIT=2) C END C C ccccccccccccccccccccccccccccccccccccccccccccccccccccc ccccccc c C SUBROUTINE FOR CONVERTING D A T E A N D TIME TO abs-seconds C SUBROUTINE CONVERT(DATE,TIME, SEC) C H A R A C T E R * 8 TIME INTEGER D A T E , S E C , B L A N K , B A S E INTEGER DD ATE,MONTH,D A Y,FNDEX( 12) C H A R A C T E R * 1 HOUR1 ,HOUR2,MIN 1 ,MLN2,SEC 1 ,SEC2 INDEX(1)=0 INDEX(2)=2678400 LNDEX(3)=5097600 INDEX(4)=7776000 LNDEX(5)= 103 68000 INDEX(6)=13046400 LNDEX(7)=15638400 LNDEX(8)= 18316800 INDEX(9)=20995200 INDEX(10)=23587200 INDEX(11)=26265600 INDEX(12)=28857600 INDEX(13)=99999999 C C ABS-SEC-CONVERSION C DDATE=0 B A S E = 0 IF(DATE.GE.19940101.AND.DATE.LE.19941231)THEN DD ATE=DATE-19940000 B A S E = 757382400 ENDIF IF(DATE.GE. 19950101. AND.DATE.LE . 19951231 )THEN DDATE=DATE-19950000 B A S E = 788918400 ENDIF 102 M O N T H = INT(DD ATE/100) D A Y = DDATE-MONTH* 100 IF (MONTH.LE.0.OR.MONTH.GE. 13) THEN M O N T H = 13 D A Y = 9 SEC = 999999977 ELSE HOUR1 =TIME(1:1) HOUR2 = TIME(2:2) MINI = TIME(4:4) MIN2 = TIME(5:5) SEC1 =TIME(7:7) SEC2 = TIME(8:8) SEC = B A S E SEC = SEC + (ICHAR(SECl)-48)*10+(ICHAR(SEC2)-48) SEC = SEC + (ICHAR(MINl)-48)*600+(ICHAR(MIN2)-48)*60 SEC = SEC + (ICHAR(HOUR1)-48)*36000+(ICHAR(HOUR2)-48)*3600 SEC = SEC + (DAY-1)* 86400 SEC = SEC + INDEX(MONTH) ENDIF B L A N K = ICHAR(SECl)-48 IF (BLANK.LE.0 .AND.BLANK.GE.9) T H E N SEC = 999999988 ENDIF END C file=case.for Cccccccccccccccccccccccccccccccccccccccccccccccccccc C C Ver 1.0 June 12, 1995 C This code is was written to compile case C studies from alta data files C and write a data file containing these cases C Cccccccccccccccccccccccccccccccccccccccccccccccccccc c INTEGER TEM(200) INTEGER TEM_BUFF(200) INTEGER GAP,FL A G , S A M P L E INTEGER MIN_E,MIN_W,MAX INTEGER MIN_E_BUFF,MIN_W_BUFF,MAX_BUFF INTEGER SEC,T,X,SEC_BUFF,LINE INTEGER DATE,DATE_BUFF INTEGER START,END 103 C H A R A C T E R * 8 TIME,TIME_BUFF C LINE = 0 SEC = 0 F L A G = 0 C C 202 FORMAT(I8,7 ,A,7, 14;, ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A '3 3 ' 14' ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 3 A ' 3 3 '14;, M4,', ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 ' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 3 A ~ 3 3 14;, ',14;, ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14;, M4,', ',14;, ' 14' 3 A ^ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ' 3 3 ' 14' 3 A "3 3 ' 14 " 3 A ~ 3 3 '14;, ',14;, ' 14' 3 A ~ 3 ? ' 14' 3 A ~ 3 3 ' 14 ' 3 A ~ 3 3 ' 14' ' 14' 3 A ~ 3 3 ' 14 " 3 A ~ 3 3 14;, ' 14' 3 A ~ ? 3 ',14;, ' 14' ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' ' 14' 3 A ~ 3 3 ' 14 " 3 A ~ 3 3 •14;, ' 14' 3 A ~ 3 3 ' 14 ' ? A ^ 3 3 ' 14' 3 A ^ 3 3 ' 14' 3 A ~ 3 3 1 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' ? A ~ ? 3 ' 14 " •14;, ' 14' 3 A ~ 3 3 ' 14 ' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A * 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 3 A ^ 3 3 '14;, ',14;, ' 14' ? A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 1 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 3 A ~ 3 3 '14;, ',14;, ' 14 ' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ J 3 ' 14' 3 A ' 3 3 ' 14' 3 A ~ 3 3 ',14,', ' 14 " 3 A ~ 3 3 '14;, ' 14' ' 14 ' 3 A ~ 3 3 ' 14 ' 3 A ~ 3 3 ',14;, ' 14' 3 A ~ 3 3 ' 14' 3 A * 3 3 ',14,', ' 14 " 3 A ~ 3 3 14;, ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' M9) c C INPUT C C R E A D IN CONFIG FILE C OPEN(UNIT=3,FILE='CASE.CFG') READ(3,*) START,END,SAMPLE CLOSE(UNIT=3) S AMPLE=S AMPLE-1 C C BEGIN LOADING D A T A A N D SEEK G O A L GAP TIME C OPEN(UNIT=l ,FILE='BILL_DAT.END') OPEN(UNIT=2,FILE='CASE.TXT',STATUS='UNKNOWN') WRITE(2,*) START,END C 100 SEC_BUFF = SEC D A T E B U F F = DATE T I M E B U F F = TIME M I N E B U F F = M I N E M L N W B U F F = M L N W M A X B U F F = M A X DO 600 X=l,100 T E M B U F F ( X ) = TEM(X) 600 CONTINUE 104 READ(1 ,*) DATE,TIME,(TEM(T),T=1,100),MIN_E,MIN_W,MAX,SEC GAP = SEC - SEC_BUFF LINE = LINE + 1 C C BEGIN SERCH FOR CASES C IF (GAP.GE.START.AND.GAP.LE.END.AND.FLAG.EQ.O) THEN PRINT* ,DATE,TIME,LINE,SEC,GAP WRITE(2,*) LINE WRITE(2,202) DATE_BUFF,TIME_BUFF,(TEM_BUFF(T),T=1,100), +MIN_E_BUFF,MIN_W_BUFF,MAX_BUFF,SEC_BUFF F L A G = S A M P L E ELSE ENDIF C IF (FLAG.GT.O.AND.FLAGLE.SAMPLE) THEN FLAG=FLAG-1 WRITE(2,202) DATE,TIME,(TEM(T),T=1,100),MIN_E,MIN_W,MAX,SEC PRINT*,FLAG ELSE ENDIF C C C H E C K FOR END OF FILE C IF (DATE.NE.9) THEN GOTO 100 ELSE ENDIF CLOSE(UNIT=l) CLOSE(UNIT=2) C END C file=BCLIP.for Cccccccccccccccccccccccccccccccccccccccccccc c C Ver 1.0 may 24, 1995 C This code is was written to CLIP data C of files from alta steel's billet file C using a usr config file (time based) C Ccccccccccccccccccccccccccccccccccccccccccccc c INTEGER TEM(IOO) 105 INTEGER D D A T E , X INTEGER M L N _ E , M l N _ W , M A X INTEGER SEC,T INTEGER DATE,START,END C H A R A C T E R * 8 TIME,TTIME C SEC =111111111 C C INPUT C C 0PEN(UNIT=1 ,FILE='BILL_DAT.END') 0PEN(UNIT=2,FILE='BCLIP.CFG') 0PEN(UMT=3,FILE='BCLIP.TXT' ,STATUS='UNKN0W') 203 F O R M A T ( I 8 ; ; , A ; ; , 14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ',14;, M4;, ' 14' 3 A ~ 3 '14;, ' 14 " 14 ' 3 A * 3 3 3 A ^ 3 3 ',14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ^ 3 3 *,i4;, ',14;, ' 14' 3 A ' 3 '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ',14;, ' 14 " 14 ' 3 A ^ 3 3 3 A ^ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ^ 3 3 ',14; '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' ' 14' 3 A ~ 3 3 ' ,i4;, ',14; '14;, ' 14 " 14 ' 3 A *3 3 3 A '3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ',14;, ',14; '14;, ' 14 " 14 ' 3 A ^ 3 3 3 A ^ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ',14; '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ',14; '14;, ' 14 " 14 ' 3 A ^ 3 3 3 A ^ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ',14; '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' ',14,', ' 14' 3 A ~ 3 '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' 14 " 14 ' ' 14' 3 A ~ 3 3 ',14,', ' 14 ' 3 A ~ 3 '14;, ' 14 " 14 ' 3 A ~ 3 3 3 A ~ 3 3 ' 14' 3 A ~ 3 3 ' , i4;; , i4;, ' 14 1 3 A ~ 3 3 ',14,', ' 14' 3 A ~ 3 '14;, ' 14 " 14 ' ' 14' 3 A ~ 3 3 ',19) c C Load first target block location C 200 READ(2,*) DDATE,TTIME C A L L CONVERT(DDATE,TTIME,START) READ(2,*) DDATE,TTIME C A L L C O N V E R T E D A T E , T T I M E , E N D ) C C Look for data C 100 READ(1,*) DATE,TIME,(TEM(T),T=1,100),MLN_E,MLN_W,MAX,SEC PPvESfT*,DATE,TIME,MrN_E,MIN_W,MAX,SEC IF (SEC.LE.START) THEN GOTO 100 ELSE 300 WT<ITE(3,203)DATE,TIME,(TEM(X),X=1,100),MIN_E,MIN_W,MAX,SEC IF (SEC.LE.END) THEN READ(1,*) DATE,TIME,(TEM(T),T=l,100),MrN_E,MLN_W,MAX,SEC 106 GOTO 300 ELSE CLOSE(UNIT=l) ENDIF ENDIF C CLOSE(UNIT=l) CLOSE(UNIT=2) CLOSE(UNIT=3) C END C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C c C SUBROUTINE FOR CONVERTING D A T E A N D TIME TO abs-seconds C SUBROUTINE CONVERT(DATE,TIME,SEC) C H A R A C T E R * 8 TIME INTEGER D A T E , S E C , B L A N K , B A S E INTEGER DD ATE,MONTH,D A Y,INDEX( 12) C H A R A C T E R * 1 HOUR1 ,HOUR2,MINl ,MIN2,SEC1 ,SEC2 INDEX(1)=0 INDEX(2)=2678400 INDEX(3)=5097600 INDEX(4)=7776000 INDEX(5)=10368000 INDEX(6)=13046400 INDEX(7)= 15638400 INDEX(8)=18316800 INDEX(9)=20995200 INDEX(10)=23587200 INDEX(11)=26265600 INDEX(12)=28857600 INDEX(13)=99999999 C C ABS-SEC-CONVERSION C DDATE=0 B A S E = 0 IF(DATE.GE. 19940101. AND.DATE.LE . 19941231)THEN DD ATE=D ATE-19940000 B A S E = 757382400 ENDIF 107 IF(DATE.GE. 19950101. AND.DATE.LE. 19951231)THEN DDATE=DATE-19950000 B A S E = 788918400 ENDIF M O N T H = INT(DD ATE/100) D A Y = DD A T E - M O N T H * 100 IF (MONTH.LE.0.OR.MONTH.GE. 13) THEN M O N T H = 13 D A Y = 9 SEC = 999999977 ELSE HOUR1 =TIME(1:1) HOUR2 = TIME(2:2) MINI = TIME(4:4) MIN2 = TIME(5:5) SEC1 =TIME(7:7) SEC2 = TIME(8:8) SEC = B A S E SEC = SEC + (ICHAR(SECl)-48)*10+(ICHAR(SEC2)-48) SEC = SEC + (ICHAR(MINl)-48)*600+(ICHAR(MIN2)-48)*60 SEC = SEC + (ICHAR(HOUR1)-48)*36000+(ICHAR(HOUR2)-48)*3600 SEC = SEC + (DAY-1)*86400 SEC = SEC + INDEX(MONTH) ENDIF B L A N K = ICH AR(SEC 1 )-48 IF (BLANK.LE.0 .AND.BLANK.GE.9) T H E N SEC = 999999988 ENDIF PRINT * ,D ATE,TIME, SEC END 108 APPENDIX F Files on the QNX MMI Computer The following is a list of the Q N X files within the operating system structure: Files in the subdirectory: /ProcessVision/alta 200.kbs PV load file _abs_sec* plugs time index into K B _cr* adds <CR> _cr_nc* adds <CR>, no comma _date* adds date then K W T to file _export* _kwt* adds K W T to file _kwt_nc* adds K W T to file (no comma) _shutdown* shutdown script _time* adds time time file abs.stg advisory.grp PV advisory.grp$ alta. aim alta.tar backup/ beep* PC beep sound billet.grp PV billetid.dat billet ID data file (daily) blocks/ bloop.msg bop/ comdx5.err difference, grp PV explain.xpl export.knw export.stg exportData* friday.bat* data script heat.grp PV listl.grp PV list2.grp PV list3.grp PV list4.grp PV list5.grp PV manual.txt manual left for alta 109 monday.bat* data script new.kn$ new.knw Knowledge base new.st$ new.stg PV new.t03 pressure.grp PV pview.pvw load order saturday.bat* data script spc.grp PV sunday.bat* data script symbol.bak symbol, diet test.grp thursday.bat* data script tm* tracking, grp PV trends/ tuesday.bat* data script tune, grp PV ver.txt wednesday.bat* data script xview.xvw zones.grp PV zones.temp furnace data file (daily) Files in the subdirectory: /das_profile _abs_sec* _abs_sec.c _abs_sec.map _abs_sec.o _cr* _cr.c _cr.map _cr.o _cr_nc* _cr_nc.c _cr_nc.map _cr_nc.o date* _date.c _date.map _date.o _export* _export.c _export.map _export.o _kwt* _kwt.c _kwt.c.old _kwt.map _kwt.map.old _kwt.o _kwt.o.old _kwt.old* _kwt_nc* _kwt_nc.c _kwt_nc.map _kwt_nc.o _string* _string.c _string.map _string.o _time* _time.c _time.err _time.map _time.o abs* average.c average.err average.map average.o avrg* backup/ calib.map calibr.c calibr.o calibration.c calibration.map calibration, o cc l ib .h ch_struct.h ch_structure.h clb* c lbl* cliff* cliff l* c l i f f h * config.clif config2.clif cr* cr_nc* define.h dt* exp* exportData* fflop* flipflop.c flipflop.map flipflop.o funtype.h globals.h kwt* kwt_nc* Is minmax.c minrnax.map minmax.o minmaxhuge.c minmaxhuge. o mm* proto.h ptd* put_data* putdata.c putdata.map put_data.o rndsmpl* rndsample.c rndsample.map rndsample.o sample, c sample.map sample, o sample_huge.c sample_huge.o samples.c smpl* str* struct.h task8 1* taskcliff* Billet Profile driver taskcliff.c task_cliff.map task_cliff.o task_cliffl * Furnace sensors driver taskcliffl .c taskcliffl .map taskcliffl .o temp/ tm* Files in the subdirectory: /D: backup/ ccj ib.h cliff/ cliff.c cliffl.c load_data* loads practice into K B loaddata.c loaddata.map load_data.o ltd* ptd* put_data* loads individual data into K B put_data.c putdata.map putdata.o Files in the subdirectory: /usr: chl_15.cfg config.clif config file for task_cliff config2.clif config file for task_cliffl config_fast.met confile/ decl/ decll_10v/ dec l11V/ decl3/ 113 decl3_0_10v/ decl3_l_5v/ dec14/ dec15/ decl 5 late/ dec 16/ dec17/ declgood/ dec3/ demo/ demo.cfg demol.cfg demo2.cfg democliff.cfg demo_vlad.cfg dos/ include/ jan30/ lib/ local/ nov28b/ octl4/ oct28/ spool/ Files in the subdirectory: /data: file, nam sat.id billet ID data files for sat sat.tmp furnace temps for sat sat.dat billet profiles for sat tue.id tue.tmp "etc..." wbf_sop.dat Practice master file 114 APPENDIX G Comdale/C Knowledge Base Code At the time of development, the version of ProcessVision utilized was in B E T A form and was not capable of performing many tasks and handling knowledge effectively. As a result, many tasks were circumvented by processing the knowledge in ways not necessarily efficiently but very expediently for the project implementation. In addition, much of the file management was done with Q N X level programs interfacing directly with the point data base of Comdale/C. The following is the entire code containing the rule base as well as some odd use of systems and drivers. Object @name = advise ©attribute = delayl_l .©string, delayl_2.@string, delayl_3.@string, delay2_l.@string, delay2_2.@string, delay2_3.@string, delay3_l.@string, delay3_2.@string, delay3_3.@string, delay_grpl_end.@float, delay_grpl_start.@float, delay_grp2_end.@float, delay_grp2_start.@float, delay_grp3_end.@float, delay_grp3_start.@float, delay_long.@string, expertl.@string, max_diff.@float endObject Object @name = alarm ©attribute = max_temp. ©float endObject Object @name = batch ©attribute = group 1.©float, group2.©float, group3.©float, group4.©float, heatl.©string, heat2.©string, heat3.©string, heat4.©string, total 1.©float, total2.@float, total3.©float, total4.@float, total5. ©float endObject Object ©name = billet ©attribute = age.©float, gapa.@float, gapb.@float, gape.©float, gapd.©float, max_temp.©float, min_temp.©float, min_templ.©float, min_temp2.©float, new.@float, position.©float, running_average.@float, top_temp.©float, true_age.©float, true_agel.©float, 115 truebuff. ©float, true_diff.@fioat, true_sec. ©float, true_zerosl .@float endObject Object @name = billetOOl @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet002 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet003 @attribute = spc_max. ©float, spc_min.@float endObject Object @name = billet004 @attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet005 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet006 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet007 ©attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet008 ©attribute = spc_max. ©float, spc_min. ©float endObject Object 116 @name = billet009 ©attribute = spc_max.©float, spcjrnin.©float endObject Object @name = billet010 ©attribute = spc_max.@float, spc_min.©float endObject Object ©name = billetOl 1 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billetOl 2 ©attribute = spcmax. ©float, spc_min.@float endObject Object ©name = billetOl 3 ©attribute = spc_max.©float, spc_min.@float endObject Object ©name = billetOl 4 ©attribute = spcmax.©float, spc_min. ©float endObject Object ©name = billetOl 5 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billetOl 6 ©attribute = spc_max.@float, spcjrnin.©float endObject Object ©name = billetOl 7 ©attribute = spc_max.@float, spc_min.©float endObject Object 117 @name = billet018 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet019 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet020 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet021 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet022 ©attribute = spcmax.©float, spc_min.@float endObject Object ©name = billet023 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billet024 ©attribute = spc_max.©float, spc_min.@float endObject Object ©name = billet025 (S)attribute — spc_max. ©float, spc_min. ©float endObject Object ©name = billet026 ©attribute = spcjnax. ©float, spcmin. ©float endObject Object 118 @name = billet027 ©attribute = spc_max.©float, spc_min.©float endObject Object ©name = billet028 ©attribute = spcjmax.©float, spc_min.@float endObject Object ©name = billet029 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billet030 ©attribute = spc_max.@float, spc_min.©float endObject Object ©name = billet031 ©attribute = spcjmax.©float, spc_min.©float endObject Object ©name = billet032 ©attribute = spc_max.©float, spc_min.@float endObject Object ©name = billet033 ©attribute = spc_max.©float, spcjnin.©float endObject Object ©name = billet034 ©attribute = spc_max. ©float, spc_min. ©float endObject Object ©name = billet035 ©attribute = spc_max.@float, spc_min.@float endObject Object 119 @name = billet036 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet037 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet038 ©attribute = spc_max. ©float, spc_min.@float endObject Object @name = billet039 (^attribute — spc_max.©float, spc min.©float endObject Object @name = billet040 ©attribute = spc_max.@float, spc_min. ©float endObject Object @name = billet041 ©attribute = spc_max.@float, spc_min.©float endObject Object ©name = billet042 ©attribute = spc_max.@float, spc_min.©float endObject Object ©name = billet043 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billet044 ©attribute = spc_max.@float, spc_min.©float endObject Object 120 @name = billet045 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet046 ©attribute = spc_max.@float, spcjnin.©float endObject Object ©name = billet047 ©attribute — spc_max.©float, spc_min.@float endObject Object ©name = billet048 ©attribute = spc_max. ©float, spc_min.@float endObject Object ©name = billet049 ©attribute = spc_max.@float, spc_min.@float endObject Object ©name = billet050 ©attribute = spc_max.@float, spcjrnin. ©float endObject Object ©name = billet051 ©attribute = spc_max.©float, spcjrnin.©float endObject Object ©name = billet052 ©attribute = spc_max.©float, spc_min.@float endObject Object ©name = billet053 ©attribute = spcmax. ©float, spc_min.@float endObject Object 121 @name = billet054 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet055 @attribute = spc_max.@float, spc_min.@fioat endObject Object @name = billet056 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet057 (S)attribute — spc_max.@float, spc_min.@float endObject Object @name = billet058 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet059 @attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet060 @attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet061 @attribute = spc_max.@float, spc_min.@fioat endObject Object @name = billet062 @attribute — spc_max.@float, spc_min.@float endObject Object 122 @name = billet063 ©attribute = spcjmax.@float, spc_min.@float endObject Object @name = billet064 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet065 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet066 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet067 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet068 (2)attribute = spc_max.@float, spc_min.@float endObject Object @name = billet069 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet070 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet071 @attribute = spc_max.@float, spc_min.@float endObject Object 123 @name = billet072 @attribute — spc_max.@float, spc_min.@float endObject Object @name — billet073 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet074 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet075 @attribute = spc_max.@float, spc_min.@fioat endObject Object @name = billet076 ©attribute = spc_max.@fioat, spc_min.@fioat endObject Object @name = billet077 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet078 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet079 ©attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet080 @attribute = spc_max.@float, spc_min.@fioat endObject Object 124 @name = billet081 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet082 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet083 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet084 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet085 (^attribute — spc_niax.@float, spc_min.@float endObject Object @name = billet086 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet087 (^attribute — spc_max.@float, spc_min.@float endObject Object @name = billet088 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet089 @attribute = spc_max.@float, spc_min.@float endObject Object 125 @name = billet090 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet091 ©attribute = spc_max.@float, spc_min.@fioat endObject Object @name = billet092 @attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet093 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet094 @attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet095 @attribute = spc_max.@float, spc_min.@fioat endObject Object @name = billet096 ©attribute = spc_max.@fioat, spc_min.@float endObject Object @name = billet097 ©attribute = spc_max.@float, spc_min.@float endObject Object @name = billet098 @attribute = spc_max.@float, spc_min.@float endObject Object 126 @name = billet099 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billet 100 @attribute = spc_max.@float, spc_min.@float endObject Object @name = billeta @attribute = diff.@float, max_temp.@float, min_templ.@float, min_temp2. @float endObject Object @name = billetb @attribute = diff.@float, max_temp.@float, min_templ.@float, min_temp2. @float endObject Object @name = billetbuf @attribute = diff.@float, max_temp.@float, min_templ.@float, min_temp2. @float endObject Object @name = billetc @attribute = diff.@float, max_temp.@float, min_templ.@float, min_temp2.@float endObject Object @name = billetd @attribute = diff.@float, max_temp.@float, min_templ.@float, min_temp2. @float endObject Object @name = charge @attribute = set.@float, set_buff.@float endObject Object 127 @name = charge_zone @attribute = air.@float, gas.@float, temp.@float, tempbuff. @float endObject Object @name = current ©attribute = group.@float, heat.@string, odd_reject.@fioat, rejected.@float, remain.@fioat, to_mill.@fioat endObject Object @name = data ©attribute = max_sets.@float endObject Object @name = delay ©attribute = average.©float, button.©float, default.©float, estimate.©float, factor.@float, time.@fioat, time_min.@float, time_minx.@float, time_miny.©float, time_minz.©float, time_ones.©float, time_sec.©float, time_tens.@float endObject Object ©name = delaya ©attribute = time_min.©float, time_ones.©float, time_tens.©float endObject Object ©name = delayb ©attribute = time_min.@float, time_ones.©float, time_tens.©float endObject Object ©name = delaybuf ©attribute = time_min.©float, time_ones.©float, time_tens.©float endObject Object ©name = delayc ©attribute = timemin. ©float, time_ones.©float, time_tens.©float endObject 128 Object @name = delayd ©attribute = time_min.@float, time_ones.©float, time_tens.©float endObject Object ©name = delayz ©attribute = time_min.©float, time_ones.©float, time_tens. ©float endObject Object ©name = detect 1 ©attribute = continue, ©float endObject Object ©name = heat ©attribute = load_flag.©float, select.@float, select_flag.@float, set.@float, set_buff.@fioat, tag.©float endObject Object ©name = heat_zone ©attribute = air.@float, gas.©float, temp.@float, temp_buff.@float endObject Object ©name = hmd ©attribute = reject_buff. ©float endObject Object ©name = hmdl ©attribute = factor.©float, sig.©float, sig_filter.@float, signal.©float, signal_l .©float, signal_2.©float, signa 1_3.©float, signa 1_4.©float, signaljbuff.©float endObject Object ©name = hmd2 ©attribute = factor.@float, sig.©float, sigfilter. ©float, signal.©float, signal_l.©float, signal_2.©float, signal_3.©float, signal_4.©float, signalbuff. ©float endObject 129 Object @name = idle ©attribute = cyclical.@float, file_store.@float, store_interval.@float, store_temp.@float, weekday_interval.@float, weekday_temp.@float endObject Object @name = show @attribute = age.@float, current.@string endObject Object @name = soak @attribute = set.@float, set_buff.@float endObject Object @name = soak_zone @attribute = air.@float, gas.@float, temp.@float, temp_buff. @float endObject Object @name = system @attribute = init.flag endObject Object @name = week @attribute = day.@float, day_buff.@float endObject Procedure @name = furnace_data_buffer @do = charge_zone.temp_buff.@float = FLOOR ( 0.500000 + charge_zone.temp.@float ) heat_zone.temp_buff.@float = FLOOR ( 0.500000 + heat_zone.temp.@float ) soak_zone.temp_buff.@float = FLOOR ( 0.500000 + soak_zone.temp.@float ) charge.set_buff.@float = FLOOR ( 0.500000 + charge.set.@float ) heat.set_buff.@float = FLOOR ( 0.500000 + heat.set.@float ) soak.set_buff.@float = FLOOR ( 0.500000 + soak.set.@float ) endProcedure Procedure 130 @name = initializeKWTs @do = current.heat.@string i s " " batch.heatl.@string is " " batch.heat2.@string is " " batch.heat3.@string is " " batch.heat4.@string is " SLEEP ("2") hmdl .signal_buff.@float = hmdl. signal. @fioat hmd2.signal_buff.@float = hmd2.signal.@float hmdl .sig_filter.@float = hmdl.signal.@float hmd2. sig_filter. @float = hmd2. signal. @float hmdl.factor.@float =3 hmd2.factor.@float = 3 delay, default. @float = 120 delay, average. @float =120 delay.factor.@float = 1.500000 delay.button.@float =-10 R U N P R O C E D U R E ( "initialize_more_KWTs" ) endProcedure Procedure @name = initialize_more_KWTs @do = A C T I V A T E ("_abs_sec") billet.position.@float =10 billet.true_buff.@float = 999999 S L E E P ( 1 ) billet.true_buff.@float = 999999 heat.tag.@float = 1 billet.top_temp.@float =1195 heat.load_flag.@float = 0 heat.select_flag.@float = 0 A C T I V A T E ("/D/loaddata 1") hmdl.signal_l.@float = 1 hmdl.signal_2.@float = 1 hmdl.signal_3.@float = 1 hmdl.signa l_4.@float = 1 hmd2. signal_ 1. @float = 1 hmd2.signal_2.@float = 1 hmd2.signal_3.@float = 1 hmd2.signal_4.@float = 1 endProcedure Procedure 131 @name = nextheat @do = current.heat.@string is batch.heatl.@string batch.heatl.@string is batch.heat2.@string batch.heat2.@string is batch.heat3.@string batch.heat3.@string is batch.heat4.@string batch.heat4.@string is " " heat.load_flag.@float = 1 endProcedure Procedure @name = spc_advancel @do = billetl O0.spc_min.@float billet 100.spc_max.@float billet099.spc_min.@float billet099.spc_max.@float billet098.spc_min.@float billet098.spc_max.@float billet097.spc_min.@float billet097.spc_max.@float billet096. spc_min.@float billet096.spc_max.@float billet095 .spc_min.@float billet095.spc_max.@float billet094. spc_min.@float billet094. spc_max. @float billet093. spc_min. @float billet093 .spc_max.@float billet092.spc_min.@float billet092.spc_max.@float billet091 .spc_min.@float billet091 .spc_max.@float R U N P R O C E D U R E ("sr. endProcedure = billet099.spc_min.@float = billet099.spc_max.@float = billet098.spc_min.@float = billet098.spc_max.@float = billet097.spc_min.@float = billet097.spc_max.@float = billet096.spc_min.@float = billet096.spc_max.@float = billet095.spc_min.@float = billet095.spc_max.@float = billet094.spc_min.@float = billet094.spc_max.@float = billet093.spc_min.@float = billet093.spc_max.@float = billet092.spc_min.@float = billet092.spc_max.@float = billet091.spc_min.@float = billet091.spc_max.@float = billet090.spc_min.@float = billet090.spc_max.@float ;_advance2") Procedure @name = spc_advancelO @do = billet010.spc_min.@float billetO 10.spc_max.@float billet009.spc_min.@float billet009.spc_max.@float billet008.spc_min.@float billet008.spc_max.@float = billet009.spc_min.@float = billet009.spc_max.@float = billet008.spc_min.@float = billet008.spc_max.@float = billet007.spc_min.@float = billet007.spc_max.@float 132 billet007.spc_min.@float billet007.spc_max.@float billet006.spc_min.@float billet006.spc_max.@float billet005.spc_min.@float billet005.spc_max.@float billet004.spc_min.@float billet004.spc_max.@float billet003 .spc_min.@float billet003. spc_max. @float billet002.spc_min.@float billet002.spc_max.@fioat billetOOl .spc_min.@float billetOOl .spc_max.@float endProcedure = billet006.spc_min.@float = billet006.spc_max.@float = billet005.spc_min.@float = billet005.spc_max.@fioat = billet004.spc_mm.@float = billet004.spc_max.@float = billet003.spc_min.@float = billet003.spc_max.@float = billet002.spc_min.@float = billet002.spc_max.@float = billetOOl .spc_min.@float = billetOOl. spc_max.@float = billet.min_temp.@float = billet.max_temp.@float Procedure @name = spc_advance2 @do = billet090.spc_min.@float billet090.spc_max.@float billet089.spc_min.@float billet089.spc_max.@float billet088.spc_min.@float billet088.spc_max.@float billetO87. spcjrnin. @float billet087.spc_max.@float billetO 8 6. spcmin. @float billet086.spc_max.@float billet085.spc_min.@float billet085.spc_max.@float billetO 84. spc_min. @float billet084.spc_max.@float billet083.spc_min.@float billet083.spc_max.@float billet082.spc_min.@float billet082.spc_max.@float billet081 .spc_min.@float billet081 .spc_max.@float R U N P R O C E D U R E ("sp endProcedure = billet089.spc_min.@float = billet089.spc_max.@float = billet088.spc_min.@float = billet088.spc_max.@float = billet087.spc_min.@float = billet087.spc_max.@float = billet086.spc_min.@float = billet086.spc_max.@float = billet085.spc_min.@float = billet085.spc_max.@float = billet084.spc_min.@float = billet084.spc_max.@float = billet083.spc_min.@float = billet083.spc_max.@float = billet082.spc_min.@float = billet082.spc_max.@float = billet081 .spc_min.@float = billet081 .spc_max.@float = billet080.spc_min.@float = billet080.spc_max.@float ;_advance3") Procedure @name = spc_advance3 @do = 133 billet080.spc_min.@float = billet079.spc_min.@float billet080.spc_max.@float = billet079.spc_max.@float billet079.spc_min.@float = billet078.spc_min.@float billet079.spc_max.@float = billet078.spc_max.@float billet078.spc_min.@float = billet077.spc_min.@float billet078.spc_max.@float = billet077.spc_max.@float billet077.spc_min.@float = billet076.spcjmin.@float billet077.spc_max.@float = billet076.spc_max.@float billet076.spc_min.@float = billet075.spc_min.@float billet076.spc_max.@float = billet075.spc_max.@float billet075.spc_min.@float = billet074.spc_min.@float billet075.spc_max.@float = billet074.spc_max.@float billet074.spc_min.@float = billet073.spc_min.@float billet074.spc_max.@float = billet073.spc_max.@float billet073.spc_min.@float = billet072.spc_min.@float billet073.spc_max.@float = billet072.spc_max.@float billet072.spc_min.@float = billet071 .spc_min.@float billet072.spc_max.@float = billet071.spc_max.@float billet071.spc_min.@float = billet070.spc_min.@float billet071 .spc_max.@float = billet070.spc_max.@float R U N P R O C E D U R E ("spc_advance4") endProcedure Procedure @name = spc_advance4 @do = billet070.spc_min.@float = billet069.spc_min.@float billet070.spc_max.@float = billet069.spc_max.@float billet069.spc_min.@float = billet068.spc_min.@float billet069.spc_max.@float = billet068.spc_max.@float billet068.spc_min.@float = billet067.spc_min.@float billet068.spc_max.@float = billet067.spc_max.@float billet067.spc_min.@float = billet066.spc_min.@float billet067.spc_max.@float = billet066.spc_max.@float billet066.spc_min.@float = billet065.spc_min.@float billet066.spc_max.@float = billet065.spc_max.@float billet065.spc_min.@float = billet064.spc_min.@float billet065.spc_max.@float = billet064.spc_max.@float billet064.spc_min.@float = billet063.spc_min.@float billet064.spc_max.@float = billet063.spc_max.@float billet063.spc_min.@float = billet062.spc_min.@float billet063.spc_max.@float = billet062.spc_max.@float billet062.spc_min.@float = billet061.spc_min.@float billet062.spc_max.@float = billet061.spc_max.@float billet061 .spc_min.@float = billet060.spc_min.@float 134 billet061.spc_max.@float = billet060.spc_max.@fioat R U N P R O C E D U R E ("spc_advance5") endProcedure Procedure @name = spc_advance5 @do = billet060.spc_min.@float = billet059.spc_min.@float billet060.spc_max.@float = billet059.spc_max.@float billet059.spc_min.@float = billet058.spc_min.@float billet059.spc_max.@float = billet058.spc_max.@float billet058.spc_min.@float = billet057.spc_min.@float billet058.spc_max.@float = billet057.spc_max.@fioat billet057.spc_min.@float = billet056.spc_min.@float billet057.spc_max.@float = billet056.spc_max.@fioat billet056.spc_min.@float = billet055.spc_min.@float billet056.spc_max.@float = billet055.spc_max.@float billet055.spc_min.@float = billet054.spc_min.@float billet055.spc_max.@float = billet054.spc_max.@float billet054.spc_min.@float = billet053.spc_niin.@float billet054.spc_max.@float = billet053.spc_max.@float billet053.spc_min.@fioat = billet052.spc_min.@float billet053.spc_max.@float = billet052.spc_max.@float billet052.spc_min.@float = billet051 .spc_min.@float billet052.spc_max.@float = billet051 .spc_max.@float billet051 .spc_min.@float = billet050.spc_min.@float billet051 .spc_max.@float = billet050.spc_max.@float R U N P R O C E D U R E ("spc_advance6") endProcedure Procedure @name = spc_advance6 @do = billet050.spc_min.@float = billet049.spc_min.@float billet050.spc_max.@float = billet049.spc_max.@float billet049.spc_min.@float = billet048.spc_min.@float billet049.spc_max.@float = billet048.spc_max.@float billet048.spc_min.@float = billet047.spc_min.@float billet048.spc_max.@float = billet047.spc_max.@float billet047.spc_min.@float = billet046.spc_min.@float billet047.spc_max.@float = billet046.spc_max.@float billet046.spc_min.@float = billet045.spc_min.@float billet046.spc_max.@float = billet045.spc_max.@float billet045.spc_min.@float = billet044.spc_min.@float billet045.spc_max.@float = billet044.spc_max.@float 135 billet044.spc_min.@float = billet043.spc_min.@float billet044.spc_max.@float = billet043.spc_max.@float billet043.spc_min.@float = billet042.spc_min.@float billet043.spc_max.@float = billet042.spc_max.@float billet042.spc_min.@float = billet041.spc_min.@float billet042.spc_max.@float = billet041.spc_max.@float billet041 .spc_min.@float = billet040.spc_min.@float billet041 .spc_max.@float = billet040.spc_max.@float R U N P R O C E D U R E ( Mspc_advance7" ) endProcedure Procedure @name = spc_advance7 @do = billet040.spc_min.@float = billet039.spc_min.@float billet040.spc_max.@float = billet039.spc_max.@float billet039.spc_min.@float = billet038.spc_min.@float billet039.spcjrnax.@float = billet038.spc_max.@float billet038.spc_min.@float = billet037.spc_min.@float billet038.spc_max.@float = billet037.spc_max.@float billet037.spc_min.@float = billet036.spc_min.@float billet037.spc_max.@float = billet036.spc_max.@float billet036.spc_min.@float = billet035.spc_min.@float billet036.spc_max.@float = billet035.spc_max.@float billet035.spc_min.@float = billet034.spc_min.@float billet035.spc_max.@float = billet034.spc_max.@float billet034.spc_min.@float = billet033.spc_min.@float billet034.spc_max.@float = billet033.spc_max.@float billet033.spc_min.@float = billet032.spc_min.@float billet033.spc_max.@float = billet032.spc_max.@float billet032.spc_min.@float = billet031.spc_min.@float billet032.spc_max.@float = billet031 .spc_max.@float billet031 .spc_min.@float = billet030.spc_min.@float billet031 .spc_max.@float = billet030.spc_max.@float R U N P R O C E D U R E ("spc_advance8") endProcedure Procedure @name = spc_advance8 @do = billet030.spc_min.@float = billet029.spc_min.@float billet030.spc_max.@float = billet029.spc_max.@float billet029.spc_min.@float = billet028.spc_min.@float billet029.spc_max.@float = billet028.spc_max.@float billet028.spc_min.@float = billet027.spc_min.@float 136 billet028.spc_max.@float = billet027.spc_max.@float billet027.spc_min.@float = billet026.spc_min.@float billet027.spc_max.@float = billet026.spc_max.@float billet026.spc_min.@float = billet025.spc_min.@float billet026.spc_max.@float = billet025.spc_max.@float billet025.spc_min.@float = billet024.spc_min.@float billet025.spc_max.@float = billet024.spc_max.@float billet024.spc_min.@float = billet023.spc_min.@float billet024.spc_max.@float = billet023.spc_max.@float billet023.spc_min.@float = billet022.spc_min.@float billet023.spc_max.@float = billet022.spc_max.@float billet022.spc_min.@float = billet021.spc_min.@float billet022.spc_max.@float = billet021 .spc_max.@float billet021. spc_min. @float = billet020. spc_min. @float billet021 .spc_max.@float = billet020.spc_max.@float RUN_PROCEDUPvE ( "spc_advance9" ) endProcedure Procedure @name = spc_advance9 @do = billet020.spc_min.@float = billetOl 9.spc_min.@float billet020.spc_max.@float = billet019.spc_max.@float billetO 19.spc_min.@float = billetOl 8. spc_min.@float billetOl 9.spc_max.@float = billetOl 8.spc_max.@float billetOl 8.spc_min.@float = billet017.spc_min.@float billetOl 8. spc_max.@float = billet017.spc_max.@float billetO 17.spc_min.@float = billetO 16.spc_min.@float billet017.spc_max.@float = billetOl 6.spc_max.@float billet016.spc_min.@float = billetOl 5.spc_min.@float billet016.spc_max.@float = billetOl 5. spc_max.@float billetOl 5. spc_min.@float = billetOl 4.spc_min.@float billetOl 5.spc_max.@float = billetOl 4.spc_max.@float billetOl 4.spc_min.@float = billetOl 3.spc_min.@float billetOl 4. spc_max.@float = billet013.spc_max.@float billetOl 3.spc_min.@float = billetO 12.spc_min.@float billetOl 3. spc_max.@float = billet012.spc_max.@float billet012.spc_min.@float = billetOl 1 .spc_min.@float billet012.spc_max.@float = billetOl 1 .spc_max.@float billetO 11 .spc_min.@float = billetO 10.spc_min.@float billetOl l.spc_max.@float = billetOl O.spc_max.@float R U N P R O C E D U R E ("spc_advancelO") endProcedure Procedure 137 @name = write_file_billetid @do ACTIVATE ("_date a current.to_mill.@f billetid.dat" ) A C T I V A T E ("_kwt a current.rejected.@f billetid.dat" ) A C T I V A T E ("_kwt a current.heat.@s billetid.dat" ) billet.true_zerosl .@float = POW (10, ( 6 - CEIL (LOG10 (billet.true_age.@float + 1 )) ) ) * billet.true_agel.@float A C T I V A T E ("_kwt a billet.true_zerosl.@f billetid.dat") A C T I V A T E ("_cr_nc a billet.true_age.@f billetid.dat") S L E E P ( 1 ) endProcedure Rule @name = a_initialize_KWTs IF system.init.flag is TRUE ELSE A C T I V A T E ( "_time" ) ELSE week.day_buff.@float = week.day.@float ELSE system.init.flag is TRUE ELSE billet.age.@float =100 ELSE show.current.@string is "ready" ELSE idle.cyclical.@float = 1.000000 ELSE idle.file_store.@float = 2 ELSE idle.store_temp.@float = 1 ELSE idle.weekday_temp.@float = 1 ELSE idle.store_interval.@float = 30 ELSE idle.weekday_interval.@float = 60 EL SE detect 1. continue. @float = 0 ELSE hmd.reject_buff.@float - 0 ELSE current.remain.@float = 0 ELSE current.to_mill.@float = 0 ELSE current.rejected.@float = 0 ELSE A C T I V A T E ( "abssec" ) ELSE R U N P R O C E D U R E (" in i t ia l ize^ WTs") endRule Rule @name = billet_max_temp_alarm IF billet.max_temp.@float > billet.top_temp.@float OR billetbuf.diff.@float > advise.max_diff.@float T H E N alarm.max_temp.@float = 5 ELSE alarm.max_temp.@float = 0.500000 endRule Rule @name = billet_max_temp_beeps 138 IF billet.max_temp.@float > billet.top_temp.@float A N D A G E (billet.max_temp.@float )<6 THEN A C T I V A T E ("beep") T H E N A C T I V A T E ("beep") T H E N A C T I V A T E ("beep") endRule Rule @name = delay_time_calc IF T THEN delay.time.@float = ((billet.age.@float + 5 ) / 60 ) THEN delay.time_min.@float = ( CEIL (delay.time.@float ) - 1 ) THEN delay.time_sec.@float = CEIL ( ( delay.time.@float - delay.time_min.@float ) * 60 - 0.900000 ) - 1 THEN delay.time_tens.@float = ( CEIL ( ( delay.time_sec.@float + 1 ) / 10 ) - 1 ) THEN delay.time_ones.@float = ( delay.time_sec.@float + 1 - ( delay.time_tens.@float * 10 ) ) - 1 THEN delay.time_minx.@float = CEIL ( ( delay.time_min.@float + 1 ) / 100 ) - 1 THEN delay.time_miny.@float = CEIL ( ( ( delay.time_min.@float + 1 ) - ( delay.time_minx.@float * 100 ) ) /10 ) - 1 T H E N delay.time_minz.@float = delay.time_min.@float - delay.time_minx.@float * 100 - delay.time_miny.@float * 10 endRule Rule @name = Detec t_delay IF billet.age.@float >= (delay.average.@float * delay.factor.@float ) THEN show.current.@string is " * * * * D E L A Y * * * * * " T H E N delay.button.@float = delay.button.@float * ( -1 ) ELSE delay.button.@float =-10 endRule Rule @name = detect_new_billet IF billet.true_buff.@float != billet.true_age.@float THEN billet.true_diff.@float = billet.true_age.@float - billet.true_buff.@float THEN billet.true_buff.@float = billet.true_age.@float THEN SLEEP (idle.cyclical.@float ) THEN billet.new.@float = 1 THEN billet.min_temp.@float = ( ( ( billet.min_templ .@float + billet.min_temp2.@float - ABS ( billet.min_templ.@float - billet.min_temp2.@float ) ) ) / 2 ) THEN GOTO ("detect_new_billet_continuedO") ELSE billet.age.@float = A G E (billet.true_age.@float ) ELSE billetbuf.max_temp.@float = billet.max_temp.@float 139 ELSE billetbuf.min_temp2.@float = billet.min_temp2.@float ELSE billetbuf.min_templ.@float = billet.min_templ.@float ELSE billetbuf.diff.@float = billet.max_temp.@float - billet.min_temp.@float ELSE delaybuf.time_min.@float = delay.time_min.@float ELSE delaybuf.time_tens.@float = delay.time_tens.@float ELSE delaybuf.time_ones.@float = delay.time_ones.@float ELSE billet.true_buff.@float = billet.true_age.@float E L S E SLEEP (idle.cyclical.@float ) endRule Rule @name = detect_new_billet_continuedO IF billet.new.@float == 1 T H E N billetd.min_temp2.@float = billetc.min_temp2.@float T H E N billetc.min_temp2.@float = billetb.min_temp2.@float THEN billetb.mm_temp2.@float = billeta.min_temp2.@float THEN billeta.min_temp2.@float = billetbuf.min_temp2.@float THEN billetd.mintemp 1 .@float = billetc.mintemp 1 .@float THEN billetc.min_temp 1 .@float = billetb.min_temp 1 .@float T H E N billetb.min_temp 1 .@float = billeta.min_temp 1 .@float THEN billeta.mintempl .@float = billetbuf.mintempl .@float T H E N billet.age.@float = A G E ( billet.true_age.@float ) THEN GOTO ( "detect_new_billet_continuedl" ) endRule Rule @name = detect_new_billet_continuedl IF billet.new.@float = 1 THEN billetd.max_temp.@float = billetc.max_temp.@float T H E N billetc.max_temp.@float = billetb.max_temp.@float THEN billetb.max_temp.@float = billeta.max_temp.@float T H E N billeta.max_temp.@float = billetbuf.max_temp.@float T H E N billetd.diff.@float = billetc.diff.@float THEN billetc.diff.@float = billetb.diff.@float THEN billetb.diff.@float = billeta.diff.@float THEN billeta.diff.@float = billetbuf.diff.@float THEN delayd.time_min.@float = delayc.time_min.@float THEN delayc.time_min.@float = delayb.time_min.@float THEN delayb.time_min.@float = delaya.time_min.@float THEN delaya.time_min.@float = delayz.time_min.@float THEN delayz.time_min.@float = FLOOR (billet.trae_diff.@float / 60 ) THEN delayd.time_tens.@float = delayc.time_tens.@float THEN delayc.time_tens.@float = delayb.time_tens.@float THEN delayb.time_tens.@float = delaya.time_tens.@float THEN delaya.time_tens.@float = delayz.time_tens.@float 140 THEN billet.true_sec.@float = billet.true_diff.@float - ( delayz.time_min.@float * 60 ) THEN delayz.time_tens.@float = FLOOR ( billet.true_sec.@float / 1 0 ) THEN GOTO ( "detectjnew_billet_continued2") endRule Rule @name = detect_new_billet_continued2 IF billet.new.@float == 1 T H E N delayd.time_ones.@float = delayc.time_ones.@float THEN delayc.time_ones.@float = delayb.time_ones.@float THEN delayb.time_ones.@float = delaya.time_ones.@float THEN delaya.time_ones.@float = delayz.time_ones.@float T H E N delayz.time_ones.@float = billet.true_sec.@float - ( delayz.time_tens.@float * 10) THEN billet.position.@float = 3 THEN GOTO ("Display_new_billet") endRule Rule @name = Display _messageready IF A G E ( show.age.@float )>8 THEN show.current.@string is "Ready " THEN show.age.@float = 2 endRule Rule @name = Display_new_billet IF billet.new.@float == 1 THEN show.current.@string is "New Billet THEN show.age.@float = 1 THEN billet.new.@float =0 THEN R U N P R O C E D U R E ("spcadvancel") endRule Rule @name = Display jpicture_clear IF A G E ( show.age.@float )>10 THEN billet.position.@float =10 endRule Rule @name = expert_delay_l_l IF delay.estimate.@float = 1 A N D billet.age.@float >= advise.delay_grpl_start.@float 141 A N D billet.age.@float <= advise.delay_grpl_end.@float T H E N ad vise, expert l.@string = advise.delay l_l.@string endRule Rule @name = expert_delay_l_2 IF delay.estimate.@float == 1 A N D billet.age.@float >= advise.delay_grp2_start.@float A N D billet.age.@float <= advise.delay_grp2_end.@float T H E N advise.expertl .@string = advise.delay 12.@string endRule Rule @name = expert_delay_l_3 IF delay.estimate.@float == 1 A N D billet.age.@float >= advise.delay_grp3_start.@float A N D billet.age.@float <= advise.delay_grp3_end.@float THEN advise.expertl.@string = advise.delayl_3.@string endRule Rule @name = expert_delay_2_l IF delay.estimate.@float == 2 A N D billet.age.@float >= advise.delay_grpl_start.@float A N D billet.age.@float <= advise.delay_grpl_end.@float T H E N advise.expertl.@string = advise.delay21.@string endRule Rule @name = expert_delay_2_2 IF delay.estimate.@float == 2 A N D billet.age.@float >= advise.delay_grp2_start.@float A N D billet.age.@float <= advise.delay_grp2_end.@float T H E N advise.expertl.@string = advise.delay2_2.@string endRule Rule @name = expert_delay_2_3 IF delay .estimate. @float == 2 A N D billet.age.@float >= advise.delay_grp3_start.@float A N D billet.age.@float <= advise.delay_grp3_end.@float T H E N advise.expertl.@string = advise.delay2_3.@string endRule Rule 142 @name = expert_delay_3_l IF delay.estimate.@float = 3 A N D billet.age.@float >= advise.delay_grpl_start.@float A N D billet.age.@float <= advise.delay_grpl_end.@float T H E N advise.expertl.@string = advise.delay3_1 .@string endRule Rule @name = expert_delay_3_2 IF delay.estimate.@float == 3 A N D billet.age.@float >= advise.delay_grp2_start.@float A N D billet.age.@float <= advise.delay_grp2_end.@float THEN advise.expertl.@string = advise.delay3_2.@string endRule Rule @name = expert_delay_3_3 IF delay.estimate.@float == 3 A N D billet.age.@float >= advise.delay_grp3_start.@float A N D billet.age.@float <= advise.delay_grp3_end.@float T H E N advise.expertl.@string = advise.delay3_3.@string endRule Rule @name = expert_delay_long IF billet.age.@float >= advise.delay_grp3_end.@float THEN advise.expertl.@string = advise.delay_long.@string endRule Rule @name = hmdl_signal_cycle_checkl IF hmdl.signal_l.@float ==1 A N D hmdl.signal_2.@float ==1 A N D hmdl.signal_3.@float ==1 THEN hmdl.sig.@float =1 endRule Rule @name = hmdl_signa l_cycle_check2 IF hmdl.signal_l.@float = 2 A N D hmdl.signal_2.@float =2 A N D hmdl.signal_3.@float ==2 THEN hmdl .sig.@float =2 endRule 143 Rule @name = hmd2_signal_cycle_checkl IF hrnd2.signal_l.@float ==1 A N D hrnd2.signal_2.@float = 1 A N D hmd2.signal_3.@float == 1 T H E N hmd2.sig.@float =1 endRule Rule @name = hmd2_signal_cycle_check2 IF hmd2.signal_l.@float ==2 A N D hmd2.signal_2.@float ==2 A N D hmd2.signal_3.@float ==2 T H E N hmd2.sig.@float =2 endRule Rule @name = hmd_billet_rejected IF hmd.reject_buff.@float > 1.100000 T H E N current.rejected.@float = current.rejected.@float + 1 T H E N current.remain.@float = current.remain.@float - 1 T H E N hmd.reject_buff.@float = hmd.reject_buff.@float - 1 T H E N show.current.@string is "Billet Rejected " THEN R U N P R O C E D U R E ("write_file_billetid" ) endRule Rule @name = hmd_double_billet_drop IF hmd.reject_buff.@float <(-0.100000) T H E N hmd.reject_buff.@float = 0 T H E N show.current.@string is "Double Drop " T H E N show.age.@float = 5 endRule Rule @name = hmd_signal_cycle IF T THEN hmdl.signal_4.@float T H E N hmdl.signal_3.@float THEN hmdl.signal_2.@float T H E N hmdl .signal_l .@float THEN hmd2.signal_4.@float THEN hmd2.signal_3.@float THEN hmd2.signal_2.@float THEN hmd2.signal_l.@float = hmdl.signal_3.@float = hmdl.signal_2.@float = hmdl .signal_l .@float = hmdl. signal. @float = hmd2. signal_3. @float = hmd2.signal_2.@float = hmd2.signal_l .@float = hmd2.signal.@float 144 endRule Rule @name = hmd_tune_factor_adjustment IF hmdl.factor.@float <hmd2.factor.@float THEN hmdl.factor.@float = hmd2.factor.@float endRule Rule @name = hmda2_billet_from_furnace IF hmd2.signal_buff.@float != hmd2.sig.@float THEN hmd2.signal_buff.@float = hmd2.sig.@float THEN show.current.@string is "Billet at descaler " THEN hmd.reject_buff.@float = hmd.reject_buff.@float + 1 THEN billet.position.@float = 1 THEN show.age.@float = 5 endRule Rule @name = hmdbl_billet_advance_to_mill IF hmdl.sig.@float != hmdl.signal_buff.@float THEN hmdl .signal_buff.@float = hmdl .sig.@float THEN show.current.@string is "Billet at 1st Stand " T H E N current.remain.@float = current.remain.@float - 1 THEN current.to_mill.@float = current.to_mill.@float + 1 THEN hmd.reject_buff.@float = hmd.reject_buff.@float -1 THEN billet.position.@float = 4 THEN R U N P R O C E D U R E ("write_file_billetid" ) endRule Rule @name = Load_basic_operating_practice IF heat.load_flag.@float = 1 A N D current.remain.@float != 0 THEN heat.load_flag.@float = 0 THEN A C T I V A T E ( "/D/put_data 1") endRule Rule @name = manual_reject_from_heater IF current.odd_reject.@float == 1 THEN current.remain.@float = current.remain.@float - 1 THEN current.rejected.@float = current.rejected.@float + 1 THEN current.odd_reject.@float = 0 THEN show.current.@string = "Manual Reject" 145 THEN show.age.@float = 3 THEN R U N P R O C E D U R E ("write_file_billetid") endRule Rule @name = Next_heat IF current.remain.@float < 0.500000 THEN current.remain. @float = batch.total 1. @float T H E N batch.total 1 .@float = batch.total2.@float T H E N batch.total2.@float = batch.total3.@fioat T H E N batch.total3.@float = batch.total4.@float T H E N batch.total4.@float = batch.total5.@float THEN batch.total5.@float = 0 THEN current.rejected.@float = 0 THEN current.to_mill.@float = 0 THEN hmd.reject_buff.@float = 0 THEN current.group.@float = batch.groupl .@float THEN batch.groupl .@float = batch.group2.@float T H E N batch.group2.@float = batch.group3 .@float T H E N batch.group3 .@float = batch.group4.@float THEN batch.group4.@float = 1 T H E N R U N P R O C E D U R E ( "nextheat" ) endRule Rule @name = running_average IF T THEN billet.gapa.@float = delaya.time_ones.@float + (delaya.time_tens.@float * 10 ) + ( delaya.time_min.@float * 60 ) THEN billet.gapb.@float = delayb.time_ones.@float + ( delayb.time_tens.@float * 10) + ( delayb.time_min.@float * 60 ) THEN billet.gapc.@float = delayc.time_ones.@float + ( delayc.time_tens.@float * 10 ) + ( delayc.time_min.@float * 60 ) THEN billet.gapd.@float = delayd.time_ones.@float + ( delayd.time_tens.@float * 10 ) + ( delayd.time_min.@float * 60 ) THEN billet.running_average.@float = (billet.gapa.@float + billet.gapb.@float + billet.gapc.@float + billet.gapd.@float ) / 4 endRule Rule @name = running_average_assignment IF billet.running_average.@float < ( delay.default.@float * delay.factor.@float ) A N D billet.running_average.@float > 25 THEN delay.average.@float = billet.running_average.@float ELSE delay.average.@float = delay.default.@float 146 endRule Rule @name = select_group_2 IF heat.select.@float = 2 A N D heat.select_flag.@float == 1 THEN batch.groupl .@float = heat.tag.@float T H E N heat.select_flag.@float = 0 endRule Rule @name = select_group_3 IF heat, select. @float = 3 A N D heat.select_flag.@float == 1 T H E N batch.group2.@float = heat.tag.@float T H E N heat.select_flag.@float = 0 endRule Rule @name = select_group_4 IF heat.select.@float == 4 A N D heat.select_flag.@float == 1 THEN batch.group3.@float = heat.tag.@float T H E N heat.select_flag.@float = 0 endRule Rule @name = select_group_5 IF heat.select.@float == 5 A N D heat.select_flag.@float THEN batch.group4.@float = THEN heat.select_flag.@float endRule Rule @name = selectgroupcurrent IF heat.select.@float == 1 A N D heat.select_flag.@float == 1 THEN current.group.@float = heat.tag.@float THEN heat.select_flag.@float == 0 THEN A C T I V A T E ( 7D/put_data 1") endRule Rule @name = select_group_max_2 = 1 heat.tag.@float = 0 147 IF batch.groupl.@float >data.max_sets.@float THENbatch.groupl.@float =1 endRule Rule @name = select_group_max_3 IF batch.group2.@float > data.max_sets.@float THEN batch.group2.@float = 1 endRule Rule @name = select_group_max_4 IF batch.group3.@float > data.max_sets.@float THENbatch.group3.@float =1 endRule Rule @name = select_group_max_5 IF batch.group4.@float > data.max_sets.@float THEN batch.group4.@float = 1 endRule Rule @name = select_group_max_current IF current.group.@fIoat > data.max_sets.@float THEN current.group.@float = 1 endRule Rule @name = select_group_max_tag IF heat.tag.@float > data.max_sets.@float THEN heat.tag.@float =1 endRule Rule @name = temp_zones_store_to_file IF A G E (idle.store_temp.@float ) > idle.store_interval.@float A N D charge_zone.temp_buff.@float > 0 A N D heat_zone.temp_buff.@float > 0 A N D soak_zone.temp_buff.@float > 0 A N D charge_zone.gas.@float > (-1 ) A N D heat_zone.gas.@float > (-1 ) A N D soak_zone.gas.@float > (-1 ) A N D charge_zone.air.@float > ( - l ) A N D heat_zone.air.@float > (-1 ) 148 A N D soak_zone.air.@float > (-1 ) T H E N idle.store_temp.@float = 0 T H E N idle.store_temp.@float = 1 THEN A C T I V A T E ("_date a charge_zone.temp_buff.@f zones.temp") T H E N A C T I V A T E ("_kwt a heat_zone.temp_buff.@f zones.temp" ) THEN A C T I V A T E ("_kwt a soak_zone.temp_buff.@f zones.temp") THEN A C T I V A T E ( "_kwt a charge.set_buff.@f zones.temp") T H E N A C T I V A T E ("_kwt a heat.set_buff.@f zones.temp") THEN A C T I V A T E ( "_kwt a soak.set_buff.@f zones.temp") THEN A C T I V A T E ( "_kwt a charge_zone.gas.@f zones.temp" ) THEN A C T I V A T E ( "_kwt a heat_zone.gas.@f zones.temp") T H E N A C T I V A T E ( "_kwt a soak_zone.gas.@f zones.temp" ) THEN A C T I V A T E ( "_kwt a charge_zone.air.@f zones.temp" ) THEN A C T I V A T E ( "_kwt a heat_zone.air.@f zones.temp") T H E N A C T I V A T E ( "_kwt a soak_zone.air.@f zones.temp" ) T H E N A C T I V A T E ( "_cr a furnace.pressure.@f zones.temp" ) THEN SLEEP ( 1 ) ELSE R U N P R O C E D U R E ( "furnace_data_buffer" ) endRule Rule @name = temp_zones_store_to_file_20sec IF A G E ( idle.store_temp.@float ) > (idle.store_interval.@float + 20 ) T H E N idle.store_temp.@float = 0 T H E N idle.store_temp.@float = 1 T H E N A C T I V A T E ( "_date a charge_zone.temp_buff.@f zones.temp") T H E N A C T I V A T E ( "_kwt a heat_zone.temp_buff.@f zones.temp" ) THEN A C T I V A T E ("_kwt a soak_zone.temp_buff.@f zones.temp") THEN A C T I V A T E ( "_kwt a charge.set_buff.@f zones.temp" ) THEN A C T I V A T E ("_kwt a heat.set_buff.@f zones.temp") THEN A C T I V A T E ("_kwt a soak.set_buff.@f zones.temp") T H E N A C T I V A T E ("_kwt a charge_zone.gas.@f zones.temp") THEN A C T I V A T E ( "_kwt a heat_zone.gas.@f zones.temp") T H E N A C T I V A T E ( "_kwt a soak_zone.gas.@f zones.temp") T H E N A C T I V A T E ( "_kwt a charge_zone.air.@f zones.temp" ) THEN A C T I V A T E ("_kwt a heat_zone.air.@f zones.temp") THEN A C T I V A T E ("_kwt a soak_zone.air.@f zones.temp") THEN A C T I V A T E ( "_cr a furnace.pressure.@f zones.temp" ) T H E N SLEEP (1 ) ELSE R U N P R O C E D U R E ("furnace_data_buffer" ) endRule Rule @name = weekdayjfriday IF week.day_buff.@float != week.day.@float 149 A N D week.day_buff.@float == 5 T H E N week.day_buff.@float = week.day.@float T H E N A C T I V A T E ("friday.bat" ) endRule Rule @name = weekdaymonday IF week.day_buff.@float != weekday.@float A N D week.day_buff.@float = 1 T H E N week.day_buff.@float = week.day.@float THEN A C T I V A T E ("monday.bat") endRule Rule @name = weekday_saturday IF week.day_buff.@float != weekday.@float A N D week.day_buff.@float ==6 T H E N week.day_buff.@float = week.day.@float THEN A C T I V A T E ( "saturday.bat" ) endRule Rule @name = weekday_sunday IF week.day_buff.@float != week.day.@float A N D week.day_buff.@float == 7 T H E N week.day_buff.@float = week.day.@float THEN A C T I V A T E ("sunday.bat") endRule Rule @name = weekday_test IF A G E ( idle.weekday_temp.@float ) > idle.weekday_interval.@float THEN idle.weekday_temp.@float = 0 THEN idle.weekday_temp.@float = 1 THEN A C T I V A T E ("Jime") endRule Rule @name = weekday_thursday IF week.day_buff.@float != week.day.@float A N D week.day_buff.@float ==4 T H E N week.day_buff.@float = week.day.@float THEN A C T I V A T E ("thursday.bat" ) endRule 150 Rule @name = weekday_tuesday IF week.day_buff.@float != week.day.@float A N D week.day_buff.@float = 2 T H E N week.day_buff.@float = week.day.@float THEN A C T I V A T E ("tuesday.bat") endRule Rule @name = weekday_wednesday IF week.day_buff.@float != week.day.@float A N D week.day_buff.@float = 3 THEN week.day_buff.@float = week.day.@float THEN A C T I V A T E ("wednesday.bat") endRule !*** LoadStrategy must go at the end of the Knowledge Base *** LoadStrategy @name = "new.stg" EndLoadStrategy 151 APPENDIX H Raw and Processed Data from 6 Operating Weeks The operating gap times of billets produced over a 6 week period is illustrated in Figure A - 4 to Figure A -10 Billet Release Gap Times . These figures contain 4000 recorded billet scans per plot and consecutively represents 32,000 billets processed over the 6 weeks. The bulk of the billets were processed within normal parameters as represented by the baseline blocks on the bottom of the plots. Changes in the baseline block height represents changes in the target billet processing time due to a change in production. The Individual spikes over the baseline represent the individual delays in the billet scans. Some individual products were chosen from this plot to examine the delays under specific conditions. Three processing plots were removed from this data set and analyzed for delay duration and frequency. Three individual products were chosen based on differing target billet release times of 40, 50 and 100 seconds. For Each of these products three plots were assembled. 1. Direct bar chart of the frequencies of the individual release times. See Figure A - 12, Figure A - 15 and Figure A - 18. 2. Modified bar chart which grouped the release frequencies into ranges of release times. See Figure A - 12 Billet Release Profile - 40 second target 3. , Figure A - 15 Billet Release Profile - 50 second target 4. and Figure A - 18 Billet Release Profile - 100 second target 5. . 6. Magnified bar chart with the baseline removed to show the non-conforming release times. See Figure A - 13 Modified Billet Release Profile - 40 second target 7. , Figure A - 17 and Figure A - 19 Modified Billet Release Profile - 100 second target 8. . From these plots, the most frequent delay durations can be extracted along with operational data and operator control regimes. This data can be provided to the mathematical modeling experts with the intent of generating new knowledge. 152 series 1-4000 2 0 0 • T- CM co m to CO — - < £ > — - CD — -CN m r-- o CM m — - CN CO LT) CO h-billet release Figure A - 4 Billet Release Gap Times series 4000-8000 .1 100 —- CM CO m cn co (n an I— CO CO —- CM CO h - •—- Lf) o> CO I— CO CO CO O CO U") N . CO CO T— CM CO —- l O C7) CO CO r ~ CO 0> C M C N I C N C N C N C N C M C M C O C O C O C O C O C O C O C O billet release Figure A - 5 Billet Release Gap times 153 series 8000-12000 200 150 50 0 billet release Figure A - 6 Billet Release Gap Times series 12000-16000 billet release Figure A - 7 Billet Release Gap Times 154 series 16000-20000 2 0 0 150.-e 100 -I ir a i i i i i | i | i iwinii inpi in en co i - m a i n s r i f l u i n N r - m o i n to CO T- CO <D CO C M O J C N C N C N C M C N C N C O C O C O r * - i - i o a ) f O r — i - m c n N O l N ' f N m r y T r i r i oo cn T- CM co billet release Figure A - 8 Billet Release Gap Times series 20000-24000 . § 100 m o co r -o CN in r» — • CO CD tn CD co C N C N C N t O J C N l C N C N C N C O C O C O C O C O C O C O C O billet release Figure A - 9 Billet Release Gap Times 155 series 24000-28000 billet release Figure A -10 Billet Release Gap Times series 28000-32000 j .1 111 1 | J 1 I "I llll! i n n nm II I f nil I i n III Hi l l 'inn imiiri II i i min LT C •> O. •J ^ - CSI CO r-co r- —-O) CM T CD •a- ID a r-- co o ) r-i —-) — CM m cn CD CO co —- 1613 1737 1861 1985 2109 2233 2357 2481 2605 2729 2853 2977 3101 m CN CN CO rj) c T r-t o •< CO c 0 r 0 r-u. m CO CM co u c p ~) 01 - CO 0 o 1 CO billet release Figure A -11 Billet Release Gap Times 156 Figure A - 12 Billet Release Profile - 40 second target 4000 2500 1500 1000 I I I I [ I I I T - T - 7 - CM gap time (s) Figure A -13 Modified Billet Release Profile - 40 second target 157 2 0 0 i<;n Figure A - 14 Magnified Billet Release Profile - 40 second target 158 1200 400 gap time (s) Figure A -15 Billet Release Profile - 50 second target 3000 2500 2000 1000 500 0 § ! i § • 1 1 •5 1 3 $ i f o o m L o m m o o o o o o o o o o o o o o o o o o o o o o o o T - c M c o - ' j - i n f ^ o J O C N ^ r i o c o o ^ r o o i n m o o o o o o o o o o o o ^ x - t - T - T - C N I C N C S I C O ' ^ - C D C O O ' ^ J - C O ^ - C N O C O O O O t - i - x - C N J C O ' ^ - ' ^ - t D C O O gap time (s) Figure A -16 Modified Billet Release Profile - 50 second target 159 100 75 50 C M C ^ C M ( 0 - * ( D < O O T T C O ^ - C M O C O O O O T - T - T - C S J C O ^ t ^ f C O O O O gap time (s) Figure A - 17 Magnified Billet Release Profile - 50 second target 160 350 300 250 150 100 50 0 gap time (s) Figure A - 18 Billet Release Profile - 100 second target JL, - f l c . . . n " k L "! "If o o L O L o m m o o o o o o o o o o o o o o o o o o o o o o o o T - c M c o ^ r u i t ^ c n o c N ' ^ - c D c o o ^ r c o i o i n o o o o o o o o o o o o T - ^ T - ^ T - C N C S I C N J C O T T C D O D O ^ C O ^ C N O C O O O O — - — - — - C N C O T ^ T t D C O O gap time (s) Figure A - 19 Modified Billet Release Profile -100 second target 161 1800 1600 1400 1200 >• 1000 c c r 600 200 gap time (s) Figure A - 20 Magnified Billet Release Profile - 100 second target 162 

Cite

Citation Scheme:

        

Citations by CSL (citeproc-js)

Usage Statistics

Share

Embed

Customize your widget with the following options, then copy and paste the code below into the HTML of your page to embed this item in your website.
                        
                            <div id="ubcOpenCollectionsWidgetDisplay">
                            <script id="ubcOpenCollectionsWidget"
                            src="{[{embed.src}]}"
                            data-item="{[{embed.item}]}"
                            data-collection="{[{embed.collection}]}"
                            data-metadata="{[{embed.showMetadata}]}"
                            data-width="{[{embed.width}]}"
                            async >
                            </script>
                            </div>
                        
                    
IIIF logo Our image viewer uses the IIIF 2.0 standard. To load this item in other compatible viewers, use this url:
http://iiif.library.ubc.ca/presentation/dsp.831.1-0078505/manifest

Comment

Related Items