Hallo DINA,
ich gehe mal von folgender voraussetzung aus:
Saege ist ein Einzelstation-Baustein (singleproc)
bei diesem Baustein kannst Du die Bearbeitungszeit (Reiter)
entweder :
- fest vorgeben,
- mit einer verteilungsfunktion hinterlegen,
- ueber eine Tabelle einem Typ zuordnen,
- ueber eine SIMTALK-Funktion zur Laufzeit individuell festlegen
ich würde hierzu die SIMTALK-Funktion wählen, die die taktzeit bestimmt - und zwar so:
über die Modulo-Funktion und die Anzahl der bereits bearbeiteten Be´s
(?.anzahlein) bestimme ich den Taktwechsel (takt 1,takt 2, takt1 ....)
Modulofunktion "\"
j:=?.anzahlein\2; ergibt j=0 wenn geradzahlig, j=1 wenn ungeradzahlig
ueber eine if-abfrage bestimmt´s du dann den rueckgabewert
if j=0 then
return taktzeit1;
else
return taktzeit2;
end;
prüfe bitte nochmals folgendes im (online-)Handbuch
Modulo-Funktion lautet meines Erachtens "\"- es gibt aber auch "\\" in SIMTALK um anderseits den ganzzahligen Quotienten der Modulo-Division zu bestimmen. Du brauchst aber den ganzzahligen Divisionsrest.
der Rückgabe-Wert der Methode sollte vom typ "time" sein - ich vermute real geht auch und ist einfacher handzuhaben.
also
:real
is
do
.
.
.
end;
WICHTIG !!!
öffne die Konsole wenn du simulierst
der Debugger meldet sich nicht wenn ein Fehler in dieser Methodenausführung auftritt- aber es wird in der Konsole gemeldet.
ueberprüfe das umschalten des taktes, indem du per "print" sowohl das
modulo-ergebnis alsauch die sich wechselnde taktzeit (?.bearbeitungszeit) dir ausgeben läßt.
anmerkung
bei derartigen taktschwankungen kann es zu stauungen/leerlauf vor /nach den Sägen kommen. wie hoch ist denn der vorgelagerte/nachgelagerte Takt im vergleich zu den sägetakten ?
1 Frage zum Schluß:
wie hast du denn den Montagevorgang jetzt realisiert ?
Gruß
------------------
DER SIMULATOR 