[comp.simulation] SIMULATION DIGEST V6 N4

simulation@uflorida.cis.ufl.edu (Moderator: Paul Fishwick) (11/01/88)

Volume: 6, Issue: 4, Mon Oct 31 13:53:28 EST 1988

+----------------+
| TODAY'S TOPICS |
+----------------+

(1) Looking for PD Discrete Event Routines
(2) Simulation Languages as Program Generators
(3) The SIMAN Module Processor (long message)

* Moderator: Paul Fishwick, Univ. of Florida
* Send topical mail to: simulation@uflorida.cis.ufl.edu
* Archives available via FTP to bikini.cis.ufl.edu, login as
  'anonymous', use your last name as the password, change
  directory to pub/simdigest.



-----------------------------------------------------------------------------

Date: Thu, 27 Oct 88 12:27:34 EDT
From: rob@xermes (Robert A. Schroeder)
To: philabs!uflorida.cis.ufl.edu!simulation@uunet.UU.NET
Subject: Wanted: Public Domain Discrete Event Simulation Routines in C
Cc: rob@uunet.UU.NET


I hope someone out there can help me.  I'm looking for a public domain
set of discrete event simulation routines written in C - preferably
using double linked list data structures.  I need routines that
perform functions similar to what is possible with the SLAM and SIMAN
(and probably just about any other general purpose simulation package)
list (file) manipulation subroutines.  I don't need any fancy front
ends, just the guts.

If anyone has information about the availability of such a package,
(or has written them him/her self) please let me know.  If there is
sufficient interest, I'd be happy to distribute the results of my query.

Thanks,

Rob Schroeder
Xerox - MESL
141 Webber Ave.
No. Tarrytown, NY  10591

(914) 631-4710
philabs!xermes!rob



------------------------------

From: rnews@sm.unisys.com
Date: 28 Oct 88 02:30:22 GMT
To: comp-simulation@rdcf.sm.unisys.com
Subject: Submission for comp-simulation
Responding-System: sdcsmb.sm.unisys.com

Path: sdcsmb!sm.unisys.com!aero!abbott
From: abbott@aero.ARPA (Russell J. Abbott)
Newsgroups: comp.simulation
Subject: Simulation languages as program generators
Date: 27 Oct 88 19:25:06 GMT
Reply-To: abbott@aero.UUCP (Russell J. Abbott)
Organization: The Aerospace Corporation, El Segundo, CA


I have been looking into the general field of systems that generate
executable programs.  Included in this area are standard programming
languages and application generators.  My interest is in the different
ways in which such generating systems abstract aspects of computations
and thereby provide their users leverage over them.  For example,
Algol-like languages abstract certain control structures, variables,
types, etc.  Application generators abstract the structures particular
to the application domain for which they are written.

Simulation languages also generate executable programs.  I know little
about simulation languages, but presumably they provide access to
abstractions useful in building simulations.  I would appreciate
references to simulation languages that provide interesting
abstractions.  Since my knowledge of simulation languages is limited,
all replies will be appreciated.

Thanks in advance.

-- Russ Abbott



------------------------------

Date: Thu, 27 Oct 88 11:27:14 edt
From: kra@demon.siemens.com (Kenneth R Anderson)
To: fishwick@fish.cis.ufl.edu
Subject: A SIMAN Model Processor


Prof. Dr. Horst Tempelmeier, Technical University of Darmstadt
Hochschulstr. 1, D-6100 Darmstadt, Tel. 06151/162163, Fax 01651/165489


                     THE SIMAN MODULE PROCESSOR

                  PC-based automatic generation of

                      SIMAN Simulation Models



The SIMAN  MODULE PROCESSOR  (SMP) is a PC-based program that can be
used to generate SIMAN simulation model based on predefined modules.
The SMP  inputs predefined,  filed modules, interprets them in rela-
tion to  interactively specified data (e.g. problem-specific parame-
ters) and  produces a  syntactically correct SIMAN simulation model.
After processing  by the  SMP, the  two data files (*.MOD and *.EXP)
comprising the  simulation model  - if  necessary -  can be  further
modified by the user with conventional editing methods.
The SMP relieves the user of all routine tasks capable of automation
which arise  in the  generation of  a new  simulation  model.  Where
modules are defined appropriately, it can be used for the generation
of fully parametrised SIMAN simulation models.

The user  can himself  develop any SIMAN modules and store them in a
module file  (module library).  When modules are defined, it is pos-
sible to  explain each input required in detail, so that even an un-
practised user  can operate  the SMP  and, following  the input com-
mands, can quickly produce operable simulation models.
Using this  concept, we  have developed  several libraries  for  the
generation of  simulation models for Flexible manufacturing systems,
warehouses, material handling systems etc., that are currently being
used by  german industrial  SIMAN users.  For  example,  the  module
library for  flexible manufacturing  systems comprises  modules  for
load/unload stations,  machining centers  with and  without  machine
breakdowns and/or tool changes, tool magazines that can be linked to
any machining  center, a  central tool  storage,  a  central  pallet
storage. All  these modules  can be  combined to  simulate  a  great
variety of  possible  flexible  manufacturing  systems.  Using  this
module library,  it takes  about 10  minutes to develop a simulation
model of a flexible manufacturing system.
The modules  consist of SIMAN statements that are enriched with SMP-
specific strings.  A general  rule is:  everything written  in upper
case letters  will be  transfered  to  the  SIMAN  simulation  model
without any  changes. Anything written in lower case letters will be
interpreted as to be exchanged interactively.


EXAMPLE APPLICATION OF THE SIMAN MODULE PROCESSOR

Let us  illustrate the application of the SMP with a simple example,
in this  case, an  standalone machine  with possible breakdowns. The
module library file reads as follows:

 ;; List of modules:
 ;; ---------------
 ;; 1. project control
 ;; 2. generate parts
 ;; 3. processing
 ;; 4. machine failures
 ;  EXPERIMENTAL FRAME MODULE PROJECT-CONTR
 ;. Project Initialisations
 PROJECT,title[%FILE.EXP%],analyst[ME],%DATE%;
 DISCRETE,max-ent[150],%SUM.ATTR%,%SUM.QUEUES%,stat[10];
 ;   S G: MAX-STATIONS=`-1,2`
 ;;                     CDDDDDDDDDDDDDDDDDDDDDDDDDDDY
 ;;                     @ reference to the second entry in the
                          last row
 REPLICATE,nruns[1],tstart[0.],tend[1000.];
 ;  MODEL MODULE GENPARTS
 ;. Generate workpieces
 ;;
 ;; Reservation of attribute numbers and parameter numbers
 ;; (this is generally not necessary)
 ;;
 ;          RS: #A-PARTTYPE#=1
 ;          RS: #A-WORKTIME#=2
 ;          RS: #A-ARRIVTIME#=3
 ;          RS: #P-PARTNUM#=1
 ;
          CREATE,batch[1]:EX(#P-IAZEIT#,1):MARK(#A-ARRIVTIME#);
          ASSIGN:A(#A-PARTTYPE#)=DP(#P-PARTNUM#,1);
          ASSIGN:A(#A-WORKTIME#)=howlong[DP(#P-PROCTIME#,1)];
 ;; --------------------------------------------------------------
 ;  EXPERIMENTAL FRAME GENPARTS
 ;
 ;.This is a comment that will be displayed on the PC-screen:
 ;.How many product types do you want to consider?
 INITIALIZE,X(#X-ANZPRODUKTE#)=number-producttypes[2];
 ;
 ;.Parameters of the inter-arrival-time distribution;
 ;.Enter the mean value (an exponential distribution is used):
 PARAMETERS:|#P-IAZEIT#,parameterset-definition[0.8;]
 ;
 ;.Enter the parameters of a discrete empirical distribution DP(IP,1):
 PARAMETERS:|#P-PARTNUM#,parameterset-definition[0.3,1,1.,2;]
 ;
 ;.Distribution of processing times:
 PARAMETERS:|#P-PROCTIME#,parameterset-definition[0.5,0.3,1.,1.1;]
 ;;---------------------------------------------------------------
 ;  MODEL MODULE PROCESSING
 ;  Processing of workpieces
 ;.This module may be used several times. In order to ensure
 ;.unequivocal labels,
 ;.enter a single letter or number, e.g. 1
 ;  S L: K=identification[1]
 START^K^   QUEUE,#Q-WORK^K^#;
          SEIZE:MACHINE;
 ;.Enter definition of processing time.
 ;.The default is using the prespecified attribute:
          DELAY:time[A(#A-WORKTIME#)];
          RELEASE:MACHINE:NEXT(goon[ENDE^K^]);
 ;.If module has been chosen several times, enter
 ;."NEXT(STARTidentification od next module)":
 ENDE^K^    TALLY:A(#A-PARTTYPE#),INT(#A-
 ARRIVTIME#):jumpto[DISPOSE];
 ;;---------------------------------------------------------------
 ;  EXPERIMENTAL FRAME PROCESSING
 ;;
 RESOURCES:#R-MACH#,MACHINE,capacity[1]
 ;.Specify at least one TALLY-Variable, because in the model there
 ;.is a TALLY-Block. The TALLY-Variable will be numbered
 ;.automatically:
 TALLIES:|"COUNT",name[FLOW TIME 1]
 TALLIES:|"COUNT",name[FLOW TIME 2]
 ;.Specify DSTATS-Variables: if you don't want to use DSTATS,
 ;.delete the whole line with key F9:
 DSTATS:|"COUNT",variable[NR(#R-MACH#)],name[Utilization;]
 ;  MODEL MODULE FAILURE
 ;. Failures
          CREATE:2,1;
 KREIS    QUEUE,#Q-FAIL#;
          PREEMPT:MACHINE;
 ;
 ;.Repair time?
          DELAY:repairtime[EX(#P-REPAIR#,2)];
          RELEASE:MACHINE;
 ;
 ;.Time between failures?
          DELAY:worktime[EX(#P-WORK#,2)]:NEXT(KREIS);
 ;  EXPERIMENTAL FRAME FAILURE
 ;
 RESOURCES:#R-MACH#,MACHINE,capacity[1]
 ;.Mean time to failure:
 PARAMETERS:|#P-WORK#,parameterset-definition[5;]
 ;.Mean time to repair:
 PARAMETERS:|#P-REPAIR#,parameterset-definition[1;]

Legend:
;.                 - comments that are displayed on the PC-screen
;                  - normal SIMAN-comments
;;                 - SMP comments
; S G:             - store as a global Variable
; RS:              - reservation: assign fixed number to a a
symbolic name
; []               - default value; will be taken if nor overwritten
#NNN#              - sybolic name (will be replaced by a number)
lower case strings - to be filled in interactively

The above  module library  has been  saved as  a normal  ASCII-file.
The SMP will read this library and put the modul names into in menu
screen, from which the user has to choose some modules.



                  S I M A N    M O D U L E    P R O C E S S O R
             Copyright Fachgebiet Fertigungs- und Materialwirtschaft
                  Fachbereich 1, Technische Hochschule Darmstadt
                       Hochschulstrasse 1, D-6100 Darmstadt





  1 PROJECT-CONTR Project Initialisations
  2 GENPARTS      Generate workpieces
  3 PROCESSING    Processing of workpieces
  4 FAILURE       Failures


In the  next step each line of the modules chosen will be scanned by
the SMP  for lower  case letters. These strings are displayed on the
screen and  the user  is asked  to fill in the actual values.


 ;  EXPERIMENTAL FRAME MODULE PROJECT-CONTR

 PROJECT,title[%FILE.EXP%],analyst[ME],%DATE%;

 Enter data for: title [%FILE.EXP%]  Example
 Enter data for: analyst [ME]  Tempelmeier

 DISCRETE,max-ent[150],%SUM.ATTR%,%SUM.QUEUES%,stat[10];

 Enter data for: max-entities [150]  300
 Enter data for: number-stations [10]  1

 REPLICATE,nruns[1],tstart[0.],tend[1000.]; RETURN

 Enter data for: nruns [1] RETURN

During the session the several function keys can be used.


After all modules have been processed, pressing function key F8 will
generate the  two SIMAN  files  (*.MOD  and  *.EXP).  In  the  above
example, they look as follows:

 BEGIN;
 ;************************************************
 ;*                  MANUFAC.MOD                 *
 ;************************************************
 ;  MODEL MODULE GENPARTS
 ;          RS: #A-PARTTYPE#=1
 ;          RS: #A-WORKTIME#=2
 ;          RS: #A-ARRIVTIME#=3
 ;          RS: #P-PARTNUM#=1
 ;
          CREATE,1:EX(2,1):MARK(3);
          ASSIGN:A(1)=DP(1,1);
          ASSIGN:A(2)=DP(3,1);
 ;  MODEL MODULE PROCESSING
 ;  Processing of workpieces
 ;  S L: K=A
 STARTA   QUEUE,1;
          SEIZE:MACHINE;
          DELAY:A(2);
          RELEASE:MACHINE:NEXT(ENDEA);
 ENDEA    TALLY:A(1),INT(3):DISPOSE;
 END;

 Cross-Reference:

 A  1       A-PARTTYPE
 A  2       A-WORKTIME
 A  3       A-ARRIVTIME
 P  1       P-PARTNUM
 P  2       P-IAZEIT
 P  3       P-PROCTIME
 Q  1       Q-WORKA
 R  1       R-MACH
 X  1       X-ANZPRODUKTE


 BEGIN;
 ;************************************************
 ;*                 MANUFAC.EXP                  *
 ;************************************************
 ;  Experimental Frame of all Modules
 ;====================================
 PROJECT,EXAMPLE,TEMPELMEIER,10/06/88;
 DISCRETE,300,3,1,1;
 DSTATS:1,NR(1),UTILIZATION;
 INITIALIZE,X(1)=2;
 PARAMETERS:1,0.3,1,1.,2:
            2,0.8:
            3,0.5,0.3,1.,1.1;
 REPLICATE,1,0.,1000.;
 RESOURCES:1,MACHINE,1;
 TALLIES:1,FLOW TIME 1:
         2,FLOW TIME 2;
 END;

The above  example is  very  simple;  but  it  hopefully  shows  the
strength of the concept inherent in the SMP.

Price: 1200 US-$
Demonstration disk available (5 US-$)
For further information call or write to:

                    Prof. Dr. Horst Tempelmeier
           Fachgebiet Fertigungs- und Materialwirtschaft
               Institut fr Betriebswirtschaftslehre
                  Technische Hochschule Darmstadt
                          Hochschulstr. 1
                   D-6100 Darmstadt, West Germany
                         Tel. 06151/162163
                          Fax 06151/165489



------------------------------



+--------------------------+
| END OF SIMULATION DIGEST |
+--------------------------+