2' 'ư>HELPA\NhNN:l8QCONTINUE n((PEXIT&%p=lHALTމPl8QPdSTEP 1f4߉lg STOP߉X^F%EFSTOP ,,OFFg^w@߉UtT߉WtO gp߉.Od Cg|߉ C|ŻOdg CModelsSchr5c.gpsLFeCFEOԴhLԴh+jE(((((((((({\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern Courier New;}} {\colortbl\red0\green0\blue0;} \deflang1033\pard\tx1200\tx2400\tx4450\plain\f2\fs20 * Adapted from "Simulation Using GPSS", by Thomas J. Schriber \par * Simulation of a Production Shop \par * \par *Loc Operation A,B,C,D,E,F,G Comments \par * \par * \par * Function Definitions \par * \par Grups FUNCTION P1,D3 ;No. of machine groups each job ty \par 1,4/2,3/3,5 \par Jtype FUNCTION RN1,D3 ;Distribution of job-types \par .24,1/.68,2/1,3 \par Tabnames FUNCTION P1,D3 ;Conversion table for table names \par 1,Tab1/2,Tab2/3,Tab3 \par * \par * Matrix Savevalue Initializations \par * \par Mat1 MATRIX ,3,5 ;Matrix of visitation sequences \par INITIAL MX$Mat1(1,1),Store6 \par INITIAL MX$Mat1(1,2),Store2 \par INITIAL MX$Mat1(1,3),Store3 \par INITIAL MX$Mat1(1,4),Store1 \par INITIAL MX$Mat1(2,1),Store2 \par INITIAL MX$Mat1(2,2),Store4 \par INITIAL MX$Mat1(2,3),Store5 \par INITIAL MX$Mat1(3,1),Store6 \par INITIAL MX$Mat1(3,2),Store3 \par INITIAL MX$Mat1(3,3),Store4 \par INITIAL MX$Mat1(3,4),Store5 \par INITIAL MX$Mat1(3,5),Store1 \par * \par Mat2 MATRIX ,3,5 ;Matrix of mean machining times \par INITIAL MX$Mat2(1,1),600 \par INITIAL MX$Mat2(1,2),200 \par INITIAL MX$Mat2(1,3),350 \par INITIAL MX$Mat2(1,4),1250 \par INITIAL MX$Mat2(2,1),650 \par INITIAL MX$Mat2(2,2),900 \par INITIAL MX$Mat2(2,3),1050 \par INITIAL MX$Mat2(3,1),250 \par INITIAL MX$Mat2(3,2),300 \par INITIAL MX$Mat2(3,3),500 \par INITIAL MX$Mat2(3,4),2500 \par INITIAL MX$Mat2(3,5),2350 \par * \par * Storage Capacity Definitions \par * \par Store1 STORAGE 14 ;Provide 14, 5, and 3 machines \par Store2 STORAGE 5 \par Store3 STORAGE 4 \par * Groups 1, 2, 3, respectively \par Store4 STORAGE 8 ;Provide 8, 16 and 4 machines \par Store5 STORAGE 16 \par Store6 STORAGE 4 \par * Groups 4, 5, and 6, respectively \par * \par * Table Definitions \par * \par Tab1 TABLE M1,2400,2400,10 ;Shop residence time (type 1 ) \par Tab2 TABLE M1,2400,2400,10 ;Shop residence time (type 2 ) \par Tab3 TABLE M1,2400,2400,10 ;Shop residence time (type 3 ) \par Tjobs TABLE V$Counter,10,10,5 ;Total jobs in shop \par * \par * Variable Definition \par * \par Counter VARIABLE W$Aaa+W$Bbb+W$Ccc \par * \par * Model Segment 1 \par * \par GENERATE (Exponential(1,0,96)) ;Jobs enter the shop \par ASSIGN 1,FN$Jtype ;Set P1 = job type \par Aaa ASSIGN 2,FN$Grups ;Set P2 = no. of groups to visit \par Next ENTER MX$Mat1(P1,P2) ;Capture machine in next group \par Bbb ADVANCE MX$Mat2(P1,P2),(Exponential(1,0,1)) ;Machining operation proceeds \par LEAVE MX$Mat1(P1,P2) ;Release this machine \par ASSIGN 2-,1 ;Update no. of groups yet to visit \par Ccc TEST E P2,0,Next ;Job done? If not, go to next grou \par TABULATE FN$Tabnames ;Yes, record time spent in shop \par TERMINATE ;Leave the shop \par * \par * Model Segment 2 \par * \par GENERATE 4800 ;Timer arrives at end of each day \par TABULATE Tjobs ;Record no. of jobs now in the sho \par TERMINATE 1 ;Decrement termination counter \par \par \par }