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 | +--------------------------+