EZStrobe ACD Animation
EZStrobe provides graphical and interactive model verification (debugging) by animating the graphical model representation within Visio. Using animation provides insight into how the model really works and increases our confidence that it is indeed correct. EZStrobe animation uses special graphical elements (such as counters) and attributes (such as color, line thickness, bold text, etc.) to represent the dynamic state of the simulation (e.g., the current content of queues and the number of ongoing activity instances) and the events that take place during simulation (e.g., when an instance of an activity starts or ends, when a queue receives resources, or when resources flow through links). ACD animation elements are described below.
Controlling the Animation
Animation in EZStrobe is controlled through the EZStrobe Simulation Controller shown below. This controller appears only when an EZStrobe simulation is run, and then only if the Animate and enable breakpoints option is turned ON in the Model Options form.
The Begin button in the EZStrobe Simulation Controller starts the animation.
The visual speed of the animation depends on the position of the Animation Speed slider and can be decreased or increased while the animation is going on.
If checked, the Next event option pauses the animation at the next event. When the next event is reached, the simulation will pause immediately.
The Simulation Controller during a pause appears as follows:
Notice that the Begin button changes to Continue, and the current simulation time is displayed below the progress bar. The Continue button allows a paused animation to resume running.
While an animation is paused, or after it has ended, it is possible to right-click any activity or Queue in the ACD (the network) and inspect the current values of most associated statistics.
The displayed statistics should always be up to date. In some rare instances it may be necessary to force an update by clicking the Update Node Statistics button.
- A right-click on a Queue node brings up a context menu with queue statistics as shown on the left below.
- A right-click on an Activity node, brings up a context menu with activity statistics as shown on the right below.
To watch a step-by-step animation of all simulation details,
- Turn ON the Next event option, and
- Keep clicking the Continue button.
To take "bigger" steps that encompass all the events that take place at a given simulation time,
- Turn OFF the Next event option, and
- Turn ON the Clock Advance option.
To continue the animation and stop only after the simulation reaches a specified time,
- Turn OFF both the Clock advance and Next event options,
- Type the time at which you want the simulation to stop in the provided input box, and
- Turn ON the Time option.
This can be done whether the animation is ongoing or paused.
To make the simulation proceed without animation, and consequently at a much greater speed,
- Turn OFF the Animate option.
While a simulation runs with the Animate option OFF, it is possible to
- Turn ON the Clock Advance option and pause the simulation when the clock advances, or
- Specify a future time and turn ON the Time option to pause when that time is reached.
Once the simulation is paused, it is possible to turn ON the Animate option, and (a) continue or (b) view the animation step-by-step as above.
To end the animation and the simulation at any time,
- Click the End Model button.
Changing any aspect of a model, such as editing the parameters of a Queue or Activity, while the simulation is running has no effect. Changes will be ignored until a new simulation run starts.
Note: If animation is of no interest, it is best to turn off the model option to Animate and Enable breakpoints prior to running the simulation, rather than to turn off the Animate option in the Simulation Controller. The simulation will run up to 10 times faster this way.
Understanding the Animation
The visual elements of an EZStrobe animation are best explained by example using a small fragment of a paused ACD animation, such as the one below.
- The thick red border on DumpBucket indicates that one of its instances is terminating.
- The 20 on the top right shows the terminating instance's ID (the first intance has ID 0).
- The 1/21 in the top middle indicates that DumpBucket currently has only 1 active instance (the one terminating) and that a total of 21 instances have existed since simulation began.
- The blue thick border on SwingEmpty indicates that a new instance of SwingEmpty is starting (this happens while an instance of DumpBucket is terminating).
- The 20 on the top left of the activity indicates the starting instance's ID (the first instance has ID 0).
- The 0/20 in the top middle indicates that there 0 instances of SwingEmpty taking place (the one currently starting does not count until after its duration has been sampled), and that a total of 20 instances have existed since simulation started.
- The thick line used for the link that connects DumpBucket to SlInTrk indicates that 2.5 resource units are being sent to the Queue.
- The 5 at the top of SlInTrk indicates its current content (before the 2.5 units are received).
- If the Continue button is pressed on the controller, this link's line thickness will return to normal, SlInTrk's border will turn thick, and the number on top will be updated to 7.5.