Glenn R. Drake | Jeffrey S. Smith |
Systems Modeling Corporation 504 Beaver Street Sewickley, Pennsylvania 15143, U.S.A. |
Department of Industrial Engineering Texas A&M University College Station, Texas 77843, U.S.A. |
ABSTRACT
This paper introduces a framework for on-line simulation systems in the operational planning, scheduling, and control of manufacturing systems. Five basic concepts for software design of an on-line simulation system are identified and an example simulator is illustrated.
1 MOTIVATION
There has been a growing interest in real-time, "intelligent" shop floor control systems that use simulation technology to predict the future impact of short-term manufacturing decisions (Erickson et al. 1987, Wu and Wysk 1989, Harmonosky and Robohn 1991, Rogers and Flanagan 1991, Smith et al. 1994, Drake et al. 1995, Jones et al. 1995). Although recent researchers have examined the responsibilities and underlying issues of on-line simulation systems, there has been a tendency to view the simulation software as a "black box" and examine solely its interactions with other system components such as data collection devices, neural networks, expert systems, genetic algorithms, control mechanisms, and process planning functions. Thus, the design of the simulation system itself has been largely ignored and a framework for on-line simulation systems is still needed.
There is currently a large commercial market for simulation-based analysis in manufacturing. This market is illustrated by the demand for products such as Arena/SIMAN® (Pegden et al., 1995), SlamSystem and FACTOR (O'Reilly, 1995), Witness and PROVISA (Thompson, 1995), Extend (Krahl, 1995), and AutoMod/AutoSched (Roher, 1995). Some of these packages (e.g., Arena/SIMAN, Extend, Witness, SlamSystem) are primarily designed for and used in design applications (i.e., long-term, predictive analysis). Others, such as AutoSched, PROVISA, and FACTOR, are primarily designed for and used in short-term finite capacity planning and scheduling applications. Irrespective of their primary focus, it is often difficult to implement these systems in on-line planning, scheduling, and control applications due to one or more of the following reasons:
The common inefficiencies of current commercial packages and the increasing interest in real-time planning, scheduling, and control indicate that an effective framework for on-line simulation systems is needed. When developing important concepts for such a framework, it is useful to examine the applications of on-line simulation technology.
2 THE USERS OF ON-LINE SIMULATION SYSTEMS
On-line simulation systems incorporate two powerful features: 1) the ability to reliably predict the future behavior of the shop floor given its current status, and 2) the ability to emulate and/or dictate the control logic of a manufacturing system. These two capabilities offer potential benefits to a variety of end-users in a manufacturing organization. Figure 1 shows an on-line simulation system integrated with several functional areas of a facility.
First, simulation can help capacity planners determine order lot sizes, release dates, and work calendars for resources by incorporating simulated scheduling constraints in their decision making. Second, once orders are released, simulation offers real-time schedulers the ability to evaluate strategies for sequencing jobs through the workcenters. In dynamic manufacturing environments, it may be advantageous to change the way a shop is controlled at certain points in time.
Third, once the desired operational strategy and part mix have been determined, simulation can interact in real-time with shop floor management. Work lists can be generated and distributed to shop floor execution or dispatched on-line in a task-by-task manner (Smith et al. 1994). Running parallel to the actual system in real-time allows the simulation system to keep track of current status and send feedback to the scheduling function on the current schedule's performance.
Fourth, by emulating current shop conditions, simulation can help the marketing and sales functions reliably predict order leadtimes and quote accurate duedates to customers. Using simulation in this manner can decrease the amount of work in process and add to the reputation of the organization by improving its ability to meet promised delivery dates (Rogers and Flanagan 1991). Finally, the simulation system must interact with engineering for the necessary data (e.g., process plans, layout information) to perform valid analysis. Simulation output can give feedback to the engineering function on the performance of a current design (e.g., the layout of a workcenter).
3 CONCEPTS FOR ON-LINE SIMULATION SYSTEMS
It is apparent that several functional areas of an organization might interact with on-line simulation technology. In response, five basic concepts for simulation systems in on-line planning, scheduling, and control are identified:
Figure 1. An on-line simulation system for planning, scheduling, and control.
4 GENERAL FRAMEWORK
When simulationists develop simulation models and turn them over to end-users for experimentation, they are delivering simulators. These end-users often include plant engineers, managers, and sales representatives with little or no simulation expertise. Though they may contribute input or functional specifications to the modeler(s) for project purposes, these personnel are usually not directly involved in model development. Instead, they require the simulator for daily decision making and task dispatching. If the same interface is used for these end-users as was used for the simulationists, then these end-users have access to simulation primitives that may be confusing no matter how "easy" the package is to use (Brunner and Crain 1991). Moreover, access to these primitives is generally unnecessary.
Figure 2 shows a general framework for on-line simulation systems in scheduling and control. In departure from traditional simulation software, the user interface is separated into two distinct environments: the modeling environment for simulationists and the simulator environment for end-users. The modeling environment focuses on the simulation constructs and logic necessary for developing simulation models intended for on-line use. Once a model is completed, it is "handed over" to the simulator environment which focuses upon the activities that comprise the real-time planning, scheduling, and control process (e.g., data entry, experimentation, output analysis).
Figure 2. General framework.
The simulation model developed for on-line planning, scheduling, and control applications can be decomposed into five primary functional elements. These functional elements are:
Figure 3 illustrates the functional elements of an on-line simulation model and their relationships with the modeling and simulator environments in Figure 2. Note that the modeling environment is separated into two distinct frames or interfaces: the model frame for defining the physical structure and task dispatching of the simulator, and the rules frame for developing the control logic or rule base of the simulator (e.g., alternative scheduling rules, batching rules, procedures for exception handling). Functions for loading simulation input from input databases and writing simulation output to output databases are automatically compiled during model development and do not require manual editing. End-users define simulation input and manipulate simulation output (e.g., generate Gantt charts) through the simulator environment.
The modeling environment's organization incorporates flexibility into the simulation system in two primary ways. First, it facilitates the development of simulators which separate the functional elements of physical structure, control logic, simulation input, and simulation output so that different scenarios (e.g., part mixes, scheduling rules, work calendars) can be readily "plugged in" and evaluated without model recompilation. Constructs for modeling task dispatching are incorporated with constructs for modeling physical structure such that the same model used for design, planning, and scheduling can be used for direct shop floor control. Thus, within the simulator environment, end-users exploit generic, reusable models designed for easy "what if" experimentation and automated execution. This concept is referred to as flexible simulation (Drake et al. 1995). The modularity of the rules frame facilitates the addition of new rules to the simulator's rule base.
Figure 3 shows the simulator environment separated into three distinct frames: the entity frame for simulation input (e.g., entering production data), the experiment frame for experimentation and execution (e.g., selecting operating rules from the rule base), and the output analysis frame for data manipulation and presentation (e.g., creating Gantt charts, order tracking). The interactive montitor provides a real-time interface to the on-line simulator tool. This monitor might include real-time animation, and could feasibly be detached from the simulator environment and implemented "stand-alone" at workcenters for real-time interaction (e.g., entering status and receiving tasks from the simulator).
Additionally, the proposed simulator environment incorporates software interfaces for the activities of simulation input, experimentation, output analysis, and real-time task dispatching. These software interfaces are illustrated in Figure 4. A simulator language to the manager of the simulation engine facilitates the automation of real-time planning, scheduling and control applications. The language incorporates commands for verifying simulator programs (i.e., debugging), loading simulation input from the entity frame, setting up and executing simulation experiments in the experiment frame, and calling analysis and presentation routines in the output analysis frame. Macros of commands might be created for end-users with different "views" or objectives (e.g., a scheduling macro, a marketing macro). To dispatch tasks on-line, the simulation system and shop floor management communicate through a task initiation queue (TIQ) and a task completion queue (TCQ) (Smith et al. 1994). Monitoring and tracking of tasks can also be implemented using the TIQ/TCQ interface. Structured query language (SQL) might be used to link with a variety of database management systems and extract simulation input (e.g., shop status, process plans) or forward simulation output (e.g., schedules, performance, expected completion times).
Figure 3. General framework and functional elements of an on-line simulation model.
Figure 4. Software interfaces to the simulator environment.
5 EXAMPLE OF A CONVENTIONAL ON-LINE SIMULATOR
To further motivate the general framework discussed in Section 4, a conventional SIMAN V (Pegden, et al., 1995) simulator for a simple manufacturing system is now illustrated. The example system is shown in Figure 5. Six types of jobs arrive from Workcenter A to Workcenter B. Workcenter B is a small station that consists of two machines with an input buffer in front of each. Depending on the part type, jobs can be processed on Machine 1 only, Machine 2 only, or either of the resources. Jobs are forwarded to Workcenter C after processing. The operators at Workcenter B have three primary objectives. First, they want short lead times to aid on-time completions of orders at the factory level. Second, they want low levels of work-in-process (WIP) to minimize inventory costs. Third, they would like to forward anticipated completion times of jobs to the personnel of Workcenter C so that those operators can plan their operations. To meet their objectives, the operators at Workcenter B confront four major operating decisions. Three of these decision points are illustrated as question marks in Figure 5. The first decision entails incoming jobs with alternative routings, whereby one of the two machines must be selected. Machine 2 is the more expensive model and processing times are always shorter on this resource. The next two decisions involve the processing sequences on Machine 1 and Machine 2 (i.e., job dispatching from the input buffers). The last decision involves the work calendars of Machine 1 and Machine 2, whereby a fixed daily percentage of downtime is required for each resource for routine maintenance.
Due to the dynamic nature of the product mix released from Workcenter A, and the impact of the four operating decisions, it is considered advantageous to change the decision strategies of Workcenter B at certain points in time. Thus, to maintain short lead times and low WIP, strategies are alternated based on real-time shop conditions. Table 1 lists the processing times for the six part types manufactured in Workcenter B and the alternative strategies (i.e., decision rules) for machine selection and queue dispatching. These rules are sensitive to the workstation's dynamics and considered good candidates for improved performance. A model of Workcenter B was developed for on-line planning, scheduling, and control applications at Workstation B using the SIMAN V simulation language and environment. The simulator is generic in that different combinations of the decision rules in Table 1 can be assigned without model editing or recompilation. This simplifies "what if" experimentation by end-users unfamiliar with SIMAN or the model's structure. Once a satisfactory strategy is determined, task lists can be generated and distributed to the operators in Workcenter B and predicted completion times of jobs forwarded to the personnel in Workcenter C. SIMAN code for the model and experiment files is shown in Figures 6 and 7 respectively. X's mark the functional elements (i.e., physical structure (P), control logic (C), task dispatching (T), simulation input (I), and simulation output (O)) associated with each SIMAN construct. For example, Line 6 in Figure 6 defines some of the physical structure of the model as well as task dispatching.
Figures 6 and 7 illustrate the modeling effort required to develop a "user-friendly" simulator using the conventional Arena/SIMAN environment. Though an attempt was made by the modeler to textually partition the model and experiment files into their functional elements, the simulation system does not explicitly support a modular separation of these activities. Some general observations will now be made on the simulator's functional elements:
Figure 5. Example system
the rule base. Within the proposed framework, these constructs would be defined in the rules frame of the modeling environment. End-users select rules from the rule base by assigning numerical values to the variables Decision1, Decision2, and Decision3.
SUMMARY
The simulator presented in Figures 6 and 7 is "flexible" in that different scheduling rules can be defined in the model without recompilation. Also, the simulation output is aggregate such that multiple statistics can be calculated from the raw data by external functions. Thus, the output from the simulator is useful for a variety of end-users with different objectives. The generic characteristics of the model simplifies operational use of the tool by personnel unfamiliar with the SIMAN simulation language.
However, to change work calendars or enter additional production data would require editing of the model code. Developing flexibility for these instances necessitates additional effort by the modeler. For large models, it is likely the efforts to make user-friendly models could be considerable. The framework presented in this paper simplifies the development of generic simulation models for on-line use.
Table 1. Operation times and decision rules. | |
Processing Times (Min) | Rule Base |
PartType M/C 1 M/C 2 1 10 - 2 - 6 3 13 - 4 - 9 5 15 8 6 12 6 |
Alternative Machine Selection: Always M1, Always M2, SNQ, STPT Machine 1Q Dispatching: FIFO,SPT Machine 2Q Dispatching: FIFO,SPT |
REFERENCES
Brunner, D. T., and Crain, R. C., 1991, GPSS/H in the 1990s. Proceedings of the 1991 Winter Simulation Conference: 81-85.
Drake, G., Smith, J.S., and Peters, B. A., Simulation as a Planning and Scheduling Tool for FMS," Proceedings of the 1995 Winter Simulation Conference, December 1995, Washington DC.
Erickson, C., Vandenberge, A., and Miles, T., 1987, Simulation, animation, and shop-floor control. Proceedings of the 1987 Winter Simulation Conference: 649-652.
Harmonosky, C. M., and Robohn, S. F., 1991, Real-time scheduling in computer integrated manufacturing: A review of recent literature. International Journal of Computer Integrated Manufacturing, 4, 331-340.
Jones, A., Rabelo, L., and Yuehwern, Y., 1995, A hybrid approach for real-time sequencing and scheduling. International Journal of Computer Integrated Manufacturing, 8, 145-154.
Krahl, D., An Introduction to Extend, Proceedings of the 1995 Winter Simulation Conference, December 1995, Washington DC.
O'Reilly, J. J., Introduction to SLAM II and SLAMSYSTEM, Proceedings of the 1995 Winter Simulation Conference, December 1995, Washington DC.
Pegden, C. D., Shannon, R. E., and Sadowski, R. P., 1995, Introduction to Simulation Using SIMAN, McGraw-Hill, Inc., New York.
Pindeo, M., 1995, Scheduling: Theory, algorithms, and Systems, Prentice Hall, Englewood Cliffs, NJ.
Rogers, P., and Flanagan, M., 1991, On-Line simulation for real-time scheduling of manufacturing systems. Industrial Engineering, 23, 37-40.
Rohrer, M., AutoMod, Proceedings of the 1995 Winter Simulation Conference, December 1995, Washington DC.
Smith, J. S., Wysk, R. A., Sturrock, D. T., Ramaswamy, S. E., Smith, G. D., and Joshi, S. B., 1994, Discrete event simulation for shop floor control, Proceedings of the 1994 Winter Simulation Conference: 962-969.
Thompson, W. B., A Tutorial for Modeling with the WITNESS Visual Interactive Simulator, Proceedings of the 1995 Winter Simulation Conference, December 1995, Washington DC.
Wu, D. S., and Wysk, R. A., 1989, An application of discrete-event simulation to on-Line control and scheduling in flexible manufacturing. International Journal of Production Research, 27, 1603-1624.
Zeigler, B. P., 1980, Concepts and software for advanced simulation methodologies. IEEE: Simulation with Discrete Models: A State-of-the-Art View, 25-43.
AUTHOR BIOGRAPHIES
GLENN R. DRAKE is an associate applications engineer for Systems Modeling Corporation. He received his B.S.I.E. in 1994 and his M.S.I.E. in 1996 from Texas A&M University.
JEFFREY S. SMITH is an assistant professor in the
Industrial Engineering Department at Texas A&M University.
His research interests are in shop floor control, manufacturing
systems design, analysis, control, and simulation.
Line |
SIMAN Constructs | Comments | P | C | T | I | O |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
BEGIN; ;************Physical Structure**************** ;Processing at Machine 1 Mach1Q QUEUE,Machine1Q; SEIZE,Machine1:NEXT(Out1); In1 DELAY,ProcessTime,ProcessPart:NEXT(Out2); In2 RELEASE,Machine1:DISPOSE; ;Processing at Machine 2 Mach2Q QUEUE,Machine2Q; SEIZE,Machine2:NEXT(Out3); In3 DELAY,ProcessTime,ProcessPart:NEXT(Out4); In4 RELEASE,Machine2:DISPOSE; ;************Control Logic of System******************** ;Alternative Machine Decision (Decision 1) Ent BRANCH,1: IF,PartNum.EQ.1.OR.PartNum.EQ.3.OR.Decision1.EQ.1,Mach1: IF,PartNum.EQ.2.OR.PartNum.EQ.4.OR.Decision1.EQ.2,Mach2: IF,Decision1.EQ.3,SNQ: IF,Decision1.EQ.4,STPT; ;Smallest Number in Queue Rule (SNQ) SNQ BRANCH,1: IF,NQ(Machine1Q).EQ.NQ(Machine2Q),STPT: IF,NQ(Machine1Q).GT.NQ(Machine2Q),Mach2: ELSE,Mach1; ;Shortest Total Processing Time in Queue Rule (STPT) STPT ASSIGN:Counter=1: ProcessTime=OpTime(PartNum,1): SUM1=ProcessTime; WHILE:Counter.LE.NQ(Machine1Q); ASSIGN: SUM1=SUM1+AQUE(Machine1Q,Counter,1): Counter=Counter+1; ENDWHILE; ASSIGN:Counter=1: ProcessTime=OpTime(PartNum,2): SUM2=ProcessTime; WHILE:Counter.LE.NQ(Machine2Q); ASSIGN: SUM2=SUM2+AQUE(Machine2Q,Counter,1): Counter=Counter+1; ENDWHILE; BRANCH,1: IF,SUM1.GT.SUM2,Mach2: ELSE,Mach1; ;Machine 1 Queue Dispatching (Decision 2) Mach1 ASSIGN: Priority=QueueRules(Decision2): ProcessTime=OpTime(PartNum,1):NEXT(Mach1Q); ;Machine 2 Queue Dispatching (Decision 3) Mach2 ASSIGN: Priority=QueueRules(Decision3): ProcessTime=OpTime(PartNum,2): NEXT(Mach2Q); ;********Simulation Input and Output********************* ;Reading Orders from Orders Database CREATE,1:,1; loop1 DELAY,0,ReadOrder; loop2 READ,OrdersFile:OrderNum,PartNum,Quantity,Again; DUPLICATE: Quantity,Id; BRANCH,1: IF,Again.EQ.0,loop1:ELSE,loop2; Id ASSIGN: NUM=NUM+1: PartID=NUM: NEXT(Ent); ;Generating Output Out1 WRITE,OutFile:"S,1,%8.3f,%6.0f\n": TNOW,OrderNum,PartID:NEXT(In1); Out2 WRITE,OutFile:"F,1,%8.3f,%6.0f\n": TNOW,OrderNum,PartID:NEXT(In2); Out3 WRITE,OutFile:"S,2,%8.3f,%6.0f\n": TNOW,OrderNum,PartID:NEXT(In3); Out4 WRITE,OutFile:"F,2,%8.3f,%6.0f\n": TNOW,OrderNum,PartID:NEXT(In4); |
Begin Model The Machine 1 Queue Seize Machine 1 Process the Part Release Machine 1&Leave The Machine 2 Queue Seize Machine 2 Process the Part Release Machine 2&Leave Alternative Machine Rules Select Machine 1 In-Buffer Select Machine 2 In-Buffer SNQ Rule to Select STPT Rule to Select SNQ Rule STPT Tiebreaker Select Machine 2 In-Buffer Select Machine 1 In-Buffer STPT Rule Calculate the Total Processing Time in
the In-Buffer for Machine 1 Calculate the Total Processing Time in
the In-Buffer for Machine 2 Select Machine 2 In-Buffer Select Machine 1 In-Buffer Assign Queue 1 Rank Assign Queue 2 Rank Create One Entity Send ReadOrder Task Read an Order Create the Order Read another Order? Assign Part Identifiers Enter Part into System Write StartTime of job at Machine 1 Write EndTime of job at Machine 1 Write StartTime of job at Machine 2 Write EndTime of job at Machine 2 |
X XXXX XXXX |
X X X X X X X X X X X X X X X X X X X X X X |
X X X |
X X X X X X X X X X X |
X X X X |
Figure 6. Example SIMAN V model file.
Line | SIMAN Constructs | Comments | P | C | T | I | O |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
BEGIN,Yes,Yes; PROJECT,Example,GRD,,No; RESOURCES: 1,Machine1,SCHEDULE(Daily); 2,Machine2,SCHEDULE(Daily); QUEUES: 1,Machine1Q,LVF(Priority); 2,Machine2Q,LVF(Priority); VARIABLES: PartExec: ReadExec: Counter: SUM1: SUM2: NUM: OpTime(6,2),10,0,13,0,15,12, 0,6,0,9,8,6: Decision1: Decision2: Decision3; ATTRIBUTES: ProcessTime: OrderNum: PartNum: PartID: Quantity: Priority: Again; EXPRESSIONS: QueueRules(2),TNOW,ProcessTime; SCHEDULES: Daily,1*480,0*120,1*480,0*120,1*480 TASKS: 1,ProcessPart,PartExec, "process part %6.0f",PartID,IDENT: 2,ReadOrder,ReadExec, "Enter Order TGID=%6.0f",IDENT; FILES: 1,OrdersFile,"Orders.DB",SEQ,,Rewind,",": 2,OutFile,"Output.DB",SEQ,,Rewind,; REPLICATE,1,0,1800,Yes,Yes; |
Begin Experiment Model Information Machine 1 Resource Machine 2 Resource Machine 1 Queue Machine 2 Queue Emulation Variable Emulation Variable Loop Variable Sums Variable Sums Variable Part Identifier Variable Processing Times Alternative Machine Var. Queue 1 Dispatching Var. Queue 2 Dispatching Var. Processing Time Order Identifier Part Type Part Identifier Order Quantity Queue Rank Order Variable Queue Ranking Rules "Daily" Work Calendar TIQ task for processing TIQ task for readingOrders Orders Database Output Database Run Control Information |
X X X X X X |
X X X X X X X X X X X X X |
X X X X |
X X X X X X X X X X |
X |
Figure 7. Example SIMAN V experiment file.