Tải bản đầy đủ - 0 (trang)
8 Section 5: Completing the Conveyor System

8 Section 5: Completing the Conveyor System

Tải bản đầy đủ - 0trang

1241_C15.fm Page 29 Monday, September 15, 2003 4:56 PM



15.8.2 Model Description

In this section, you will make the following changes:

1. Add conveyor sections to complete the conveyor (refer to the conveyor illustration on the next

page).

2. Edit R_Operator2’s arriving procedure to send assembled loads to either station staout1 or station

staout2, with equal probability of going to either station.

3. Define a load attribute to track how long each load is in the system. Print the value to the Message

window.

4. Define a variable to track the total number of loads processed.

5. Define a run control to automatically stop the simulation after 8 h.



15.8.3 Adding Conveyor Section

You are now ready to add the remaining sections in the conveyor system.

1.

2.

3.

4.

5.

6.



Open the conveyor system “Conv.”

On the Conveyor palette, click Single Line. The Single Line window (Figure 15.32) opens.

If the Orthogonal check box is not selected, select it now.

Click the Snap to Section button.

Open the Measurement window.

Select Track Mouse.



Use Figure 15.33 for steps 7–9.

7. Click below the right end of sec1. This is the starting point for sec2.

8. Move the cursor down 30 feet to the end of sec2 (refer to the illustration); then click the mouse

button again. The conveyor sections are perpendicular. A transfer (a rectangle) is automatically

drawn between the two sections.

Tip: If you want to delete a section you are drawing and have only placed one end, press Esc. If you have

placed both ends, delete and redraw the section.

9. Draw sec3 and sec4.

10. To draw section 5, click Select on the Conveyor palette. Select section sec4; then select Copy from

the Edit menu.

11. Change the X To value to “16” (this moves the section 16 feet on the x axis); then click OK. as

shown in Figure 15.34. The copied section is automatically named sec4_1.

12. To rename the section, select sec4_1, select Edit from the Edit menu, then change the section

name to sec5. Click OK, Quit Edit Each.

13. Close the Measurement window.



FIGURE 15.32 Single line window.



© 2004 by CRC Press LLC



1241_C15.fm Page 30 Monday, September 15, 2003 4:56 PM



Q_Assemble

80



Sec1



V



X

R_Operator1



R_Operator2

X



Sta1



Sta2

Sec2



V



30



68

V



Sec4



V



X



16



Staout1



Sec3



Sec5



V



X



28



Staout2



FIGURE 15.33 Conveyor illustration.



FIGURE 15.34 Moving a copied section.



15.8.4 Adding Stations

Now you need to add exit stations where assembled loads can transfer out of the conveyor system.

1.

2.

3.

4.



On the Conveyor palette, click Station. The Station window (Figure 15.35) opens.

Change the station name to staout1.

Drag the station into the correct position on section sec4 (refer to Figure 15.36).

Drag station staout2 into the correct position on section sec5.



© 2004 by CRC Press LLC



1241_C15.fm Page 31 Monday, September 15, 2003 4:56 PM



FIGURE 15.35 Station window.

Q_Assemble

R_Operator



V



Sec1

X



X



Sta1



Sta2

Sec2



V



V



Sec4



V



Sec3



Sec5



V

Place Exit Stations Staout1 and Staout2



X



Staout1



X



Staout2



FIGURE 15.36 Define a process window.



Tip: If you are not happy with the placement of any station, you can move it:













On the Conveyor palette, click Select.

Select the station you want to move.

Select Move from the Edit menu.

Use the mouse to click and drag the station to the desired location.

Click OK.



Your conveyor path and stations are now drawn.

5. Export the model.



15.8.5 Editing the Process System

You are now ready to edit the process system and cause loads to travel down the rest of the conveyor

before exiting the simulation. You will also learn how to track the throughput and cycle time of loads in

the simulation.



© 2004 by CRC Press LLC



1241_C15.fm Page 32 Monday, September 15, 2003 4:56 PM



15.8.6 Adding an Arrayed Process (P_Out)

Instead of allowing assembled loads to leave the system immediately, you now need to send the loads to

one of the exit stations at the end of the conveyor. To direct the loads, you could create two separate

procedures (one to send loads to station staout1 and the other to send loads to station staout2). However,

because the only difference between the two procedures would be the name of the destination station,

you can save time by creating two arrayed processes that share the same arriving procedure.

Arrayed processes are copies of the same process. Other entities (such as queues and resources) can

also be arrayed. Arrays are useful when you need to create a group of entities that share the same

characteristics. Defining the processes as an array makes modeling easier because you need to write and

edit only one arriving procedure for both processes.

Another benefit of using arrays is that they allow you to align multiple entities of different types to

form assembly lines or work cells. In this model, you will associate each member of the process array

with a corresponding exit station on the conveyor. That is, loads that are sent to the first process will

also travel to the first exit station (staout1). Similarly, loads that travel to the second process will travel

to the second exit station (staout2).

1.

2.

3.

4.



Open the Process System.

On the Process System palette, click Process. The Process window opens.

Click New to define a new process. The Define A Process window opens.

Name the process P_Out; then press Enter.



Now you are ready to create the process array.

5. Change the Number of Processes to “2”; then press Enter. The Define A Process window appears

as shown in Figure 15.37.

6. Click OK to close the Define A Process window.

You have now defined two arrayed processes. In the AutoMod syntax, you can refer to an individual

process by appending the process number (in parentheses) to the name. For example, P_Out(1) and

P_Out(2).

15.8.6.1 Sending Loads to a Member of a Process Array

When loads have completed assembly, they must be sent from the P_CompleteAssembly process to one

of the two arrayed P_Out processes. In this model, each load has a 50/50 chance of going to either the

first arrayed process, P_Out(1) or the second arrayed process, P_Out(2).



FIGURE 15.37 Placing the exit stations.



© 2004 by CRC Press LLC



1241_C15.fm Page 33 Monday, September 15, 2003 4:56 PM



To distribute loads evenly between the processes, you can use a oneof distribution in the

P_CompleteAssembly arriving procedure. The oneof distribution allows you to select randomly from a

series of values or entities based on the frequency of each selection. The syntax for selecting P_Out1 and

P_Out2 with equal probability is shown in the procedure below.

Note: For more information about the oneof distribution, see the AutoMod syntax help online.

To edit P_CompleteAssembly’s arriving procedure:

1. Edit the source file mycode.m.

2. Edit the last line of the procedure to appear as shown below:

begin P_CompleteAssembly arriving procedure

travel to Conv.sta2/* Travel from current location to station sta2 */

use R_Operator2 for uniform 60,10 sec/* Delay to complete assembly */

/* use = get, wait, and free combined */

send to oneof(50:P_Out(1), 50:P_Out(2))/* Each load has a 50% chance of going to either

P_Out(1) or P_Out(2) */

end

Do not close the editor, you will define the P_out processes’ arriving procedure next.

15.8.6.2 Sending Loads to the Correct Exit Station

The arrayed processes P_Out(1) and P_Out(2) share the same arriving procedure. In the procedure you

need to align each process with a corresponding exit station on the conveyor. If loads are sent to P_Out(1),

they need to travel to station staout1. If loads are sent to P_Out(2), they need to travel to station staout2

(see Figure 15.38).

To align a member of the process array with a conveyor station, you can use the system keyword

procindex.



15.8.7 Using Procindex to Align Arrayed Entities

A system keyword is a name that represents a numeric value in the software. You can use the system

keyword procindex in the arriving procedure of an arrayed process to represent the current process’ index

number. For example, if a load is sent to process P_Out(1), the value of procindex is 1. If a load is sent

to process P_Out(2), the value of procindex is 2.

You can use the keyword procindex to align arrayed entities of different types. For example, assume

loads are sent to an arrayed process, P_Burnish. The arriving procedure for P_Burnish is written as

follows:



V



Sec4



Sec5



V



V



P_Out(1)

X Staout1



P_Out(2)

X Staout2



FIGURE 15.38 Conveyor illustration.



© 2004 by CRC Press LLC



1241_C15.fm Page 34 Monday, September 15, 2003 4:56 PM



begin P_Burnish arriving procedure

move into Q_Wait(procindex)

use R_Machine(procindex) for 10 sec

send to die

end

If a load is sent to the first member of the process array, P_Burnish(1), the value of procindex is 1.

Consequently, the load moves into the first member of the queue array, Q_Wait(1), and uses the first

member of the resource array, R_Machine(1).

If a load is sent to the second member of the process array, P_Burnish(2), the value of procindex is

2. Consequently, the load moves into the second member of the queue array, Q_Wait(2), and uses the

second member of the resource array, R_Machine(2).

In this tutorial, you will use the keyword procindex to align loads in the P_Out procedures with the

correct conveyor exit stations. Later, you will add arrayed queues, which will also be aligned using

procindex.



15.8.8 Defining P_Out’s Arriving Procedure

To define the arriving procedure that aligns each arrayed process with a corresponding conveyor exit

station, do the following:

1. At the end of the source file, type P_Out ‘s arriving procedure, as shown below:

begin P_Out arriving procedure

travel to Conv.staout(procindex)

send to die

end

Note: If you are using procindex, the keyword must be enclosed in parentheses to distinguish it from the

location name. This syntax is valid, because the AutoMod software allows you to include parentheses

around the numeric portions of location names. For example, when writing a procedure, you could

move loads into Conv.staout1 or Conv.staout(1).

2. From the File menu, select Save, then Exit.

3. Export the model.



15.8.9 Tracking Cycle Time

Now you will track cycle time for each load using a load attribute. A load attribute is a user-defined

entity that stores data. All loads have the same attributes; however, each load’s copy of an attribute may

contain data that is unique to that load (such as color, part type, and cycle time).

To track cycle time, you will put a time stamp on each load as it enters the system. As each load leaves

the system, you will compare the load’s time stamp to the current simulation time to determine how

long the load was in the system.

15.8.9.1 Defining a Load Attribute

You can create a time stamp for each load by creating a load attribute, A_Time, and setting it to the

current time when each load enters the system in P_EnterAssembly. When the load finishes P_Out, you

will subtract the value in A_Time from the current time to calculate cycle time.

To define the load attribute:

1. On the Process System palette, click Loads. The Loads window opens.

2. Click New to the right of the Load Attributes select list. The Load Attributes window opens.

3. Name the attribute A_Time; then press Enter.



© 2004 by CRC Press LLC



1241_C15.fm Page 35 Monday, September 15, 2003 4:56 PM



FIGURE 15.39 Load attributes window.



A load attribute can store many types of data (real, integer, time, and so on). In this model, the

attribute A_Time represents the time a load spends in the system, and is therefore of type Time.

4. From the Type drop-down list, select Time. The Load Attributes window appears as in Figure 15.39.

5. Click OK. The attribute A_Time now appears in the Load Attributes select list.

Before editing the model logic to track each load’s cycle time, you will create a variable to track the

number of loads that complete processing in the simulation (throughput).



15.8.10 Tracking Throughput

Tracking throughput involves counting the number of loads that complete processing in the simulation.

To count each load, you will create a variable, V_Numdone and increment the variable each time a load

leaves the system. A variable is a user-defined entity that stores data. All loads have access to the same

variables, and (unlike load attributes) the value of a variable is the same for every load in the model.

Tip: When determining how to store data in a model, use variables to track information that applies to the

entire model. Use load attributes to track information that is specific to each load.



15.8.11 Defining a Variable

To define the variable V_Numdone:

1. On the Process System palette, click Variables. The Variables window opens.

2. Click New. The Define A Variable window opens.

3. Name the variable V_Numdone; then press Enter.

Like attributes, variables can also be of different types. This variable is tracking integer data, so you do

not need to change the type.

4. Click OK. The newly defined variable appears in the Variables select list.

Note: Refer to Chapter 3, “Process System,” in volume 1 of the AutoMod User’s Guide for more information

about load attributes and variables.



15.8.12 Editing the Arriving Procedures to Track Statistics

You are now ready to edit the model logic to use the load attribute and variable that you have created.

To track cycle time, you will set the value of the load attribute A_Time to the current simulation time

whenever a load enters the simulation. When a load leaves the simulation, you will compare the current

simulation time with the attribute value to determine the cycle time.



© 2004 by CRC Press LLC



1241_C15.fm Page 36 Monday, September 15, 2003 4:56 PM



To track throughput, you will increment the value of the V_Numdone variable, each time a load leaves

the simulation. Editing the arriving procedures requires using the following AutoMod syntax:

set The set action sets the value of a variable or attribute to a defined value.

increment The increment action increases the value of a variable or attribute by a defined value.

ac The clock attribute ac refers to the current simulation time of the (absolute) clock. You can use the

attribute ac in model logic to get the current time at any point during a simulation.

1. Edit the source file mycode.m.

2. Insert the third line, shown below, into the P_EnterAssembly arriving procedure:

begin P_EnterAssembly arriving procedure

move into Q_Assemble/* Moves the load into the queue */

set A_Time to ac/* Stamp the load with its creation time */

get R_Operator1/* Claim the operator

wait for uniform 100,15 sec/* Delay for first step of assembly */

wait for 10 sec/* Delay to place the load on the conveyor */

move into Conv.sta1/* Get on the conveyor at station sta1 */

free R_Operator1/* Release the load’s claim on the operator */

send to P_CompleteAssembly/* Leave the current process */

end

The new line places a time stamp on each load as it enters the system. For example, a load that enters

this process at simulation time 60 s has its A_Time attribute set to 60.0.

3. Modify the P_Out arriving procedure to appear as shown below:

begin P_Out arriving procedure

travel to Conv.staout(procindex)/* Travel to exit station */

set A_Time to ac - A_Time/* Calculate cycle time */

print this load, “Time in system =” A_Time to message

inc V_Numdone by 1/* Count throughput */

send to die

end

The first two new lines finish tracking the cycle time for A_Time by subtracting the initial value of

A_Time from the current clock (ac) and printing it to the Message window. The last bold line increments

the variable V_Numdone to track throughput.

4. From the File menu, select Save; then Exit.



15.8.13 Defining Run Control

Currently, the model is defined to simulate indefinitely, until you pause or stop the simulation. You can

define a run control to determine how long the model simulates and how often statistics are reported.

A snap is a period of time after which statistics are written to the AutoMod report and are possibly reset.

The AutoMod report is named “Demo1.report” and is saved in the model directory.

1. From the Model menu, select Run Control. The Run Control window (Figure 15.40) opens.

2. Click New. The Define Snap Control window (Figure 15.41) opens.

3. Change the Number of Snaps to “8”; then press Enter. By default, each snap is 1 h long. Therefore,

the model writes statistics to the report file every hour for 8 h.

4. Click OK. The Run Control window opens, with the snap control description in its select list.

After eight snaps, the simulation will stop automatically.



© 2004 by CRC Press LLC



1241_C15.fm Page 37 Monday, September 15, 2003 4:56 PM



FIGURE 15.40 Run control window.



FIGURE 15.41 Define snap control window.



15.8.14 Building and Running the Model

You are now ready to run the model and see the effect of your changes in the simulation.

To run the model:

1.

2.

3.

4.



Export the model.

From the Run menu, select Run Model; then build the model. The Simulation environment opens.

Zoom in on the conveyor.

Press “p” to continue the simulation.



Watch to make sure loads travel down sections 4 and 5. Notice that a message is printed to the Message

window every time a load leaves the system. Each load’s time in system varies slightly because of the

random assembly times.

5. To run the simulation to completion, press “g” to turn off the animation. The animation stops,

and the simulation continues at an accelerated speed.

Once the simulation has run for the length of time defined in the Run Control (eight snaps of 1 h

each), an “End of run” message appears in the Message window, and the simulation automatically stops.



15.8.15 Checking Statistics

Once the model has finished, you can check the simulation statistics by displaying them to the screen or

by viewing the saved AutoMod report.



© 2004 by CRC Press LLC



1241_C15.fm Page 38 Monday, September 15, 2003 4:56 PM



Note: Depending on your placement of the conveyor stations and the version and build of the software you

are using, your statistics may vary slightly from those listed in this section.



15.8.16 Displaying Statistics to the Screen

When displaying statistics to the screen, you can view the system-generated statistics for entities in the

simulation, as well as the custom throughput statistic you defined using a variable in the model. In this

section, you will display statistics for:

• Resources

• Queues

• Processes

You will also display the value of the variables used in the simulation.

Note: You can display statistics and variable values both during the run and at the end of simulation. For

more information about statistics, refer to Chapter 7, “Running a Model,” in volume 1 of the AutoMod

User’s Guide.



15.8.17 Displaying Resource Statistics

To view the resource statistics for the two operators:

1. From the View menu, select Report. The Reports window opens.

2. In the entity type list, select “Resources”; then click Display. The Resources Report window opens.

Some of the resource statistics are shown below:

Name

R_Operator1

R_Operator2



Total

240

238



Util

0.91

0.49



Av_Time

109.58

59.46



Av_Wait

0.39

0.00



R_Operator1 assembled 240 loads (Total). In the model, R_Operator1’s assembly time is uniformly

distributed between 85 and 115, with a mean of 100 s. Because the operator takes an additional 10 s to

place each load on the conveyor, his average time of 109 s is reasonable. The average wait of loads requiring

assembly is very small (less than 1 s). Loads are required to wait for assembly because the operator is

highly utilized; the operator is utilized about 91% of the time (Util).

R_Operator2 has assembled fewer loads than R_operator2 (238 compared to 240). This is because he

must wait for loads to travel down the conveyor before he can begin work. R_Operator2’s assembly time

is uniformly distributed between 50 and 70 s, so his average time is approximately the mean (60 s).

R_Operator2 is utilized only about 50% of the time, and, consequently, loads have no waiting time to

complete assembly.

Now take a look at the queue statistics.



15.8.18 Displaying Queue Statistics

To view the queue statistics:

1. From the View menu in the Simulation window, select Report. The Reports window opens.

2. In the entity type list, select “Queues”; then click Display. The Queues Report window opens.

Some of the queue statistics are shown below:

Name

Q_Assemble

Space



© 2004 by CRC Press LLC



Total

240

240



Cur

1

0



Average

0.92

0



Max

2

1



Av_Time

109.98

0.00



1241_C15.fm Page 39 Monday, September 15, 2003 4:56 PM



The queue Space is a default queue where all loads start the simulation. You can see that a total of 240

loads were created in the simulation. Newly created loads immediately execute the first action in the

arriving procedure of their first process. In this model, their first action is to move into queue Q_Assemble.

As a result, loads spend no time in Space.

All created loads (240) entered Q_Assemble. When the simulation stopped, there was one load still

in the queue (the Cur statistic indicates the queue’s current quantity). The Max statistic indicates that a

maximum of two loads were in the queue simultaneously during simulation (one load being assembled,

and another load awaiting assembly). The average time that loads spent in the queue is equal to the

average time that loads spent being assembled by R_Operator1 (109.58) plus the average time they spent

waiting for the operator (0.39); displayed values are rounded to the nearest hundredth.

Now take a look at the process statistics.



15.8.19 Displaying Process Statistics

To view the process statistics:

1. From the View menu in the Simulation window, select Report. The Reports window opens.

2. In the entity type list, select “Processes”; then click Display. The Processes Report window opens.

Some of the process statistics are shown below:

Name

P_CompleteAssembly

P_EnterAssembly

P_Out(1)

P_Out(2)



Total

239

240

118

119



Cur

2

1

0

1



Av_Time

136.89

109.98

125.50

109.43



The statistics indicate that all created loads (240) entered the P_EnterAssembly process, and one load is

currently processing.

Notice that only 239 loads entered the P_CompleteAssembly process, and two loads are currently

processing. To understand the difference between the process total (239 loads) and the resource total for

R_Operator2 (238 loads), remember that the P_CompleteAssembly process includes a travel action. The

currently processing load is traveling to station sta2 but has not yet reached the operator. The travel time

also explains why loads spent more time on average in P_CompleteAssembly (136.89 s) than in

P_EnterAssembly (109.98 s).

From the total statistics for P_Out(1) and P_Out(2), you can see that a fairly equal number of loads

are being sent to both processes (119 vs. 118). The totals are often not exactly equal because the oneof

distribution defines a unique probability for each load (the frequencies are not normalized).

Now take a look at the custom statistic you defined in the model.



15.8.20 Displaying Variable Values

To view the value of the variable defined in the model:

1. From the View menu in the Work Area window, select Variables. The Variables Report window

opens, as shown in Figure 15.42.

The value of the V_Numdone variable indicates that 236 loads completed the simulation.

2. Edit The Model.



15.8.21 Viewing the AutoMod Report

AutoMod automatically summarizes statistics during the run and writes them to a report file at the end

of each snap. The report for your model is named “Demo1.report.” To view the report, close the

simulation environment and open the report file (Demo1.report) with any text editor.



© 2004 by CRC Press LLC



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

8 Section 5: Completing the Conveyor System

Tải bản đầy đủ ngay(0 tr)

×