Nach einiger Zeit habe ich mich wieder dieser Problematik gewidmet. Zur Erinnerung: Die Einzelstation soll ihre Rüstzeiten, je nach Rüstvorgängen der BEs, anpassen.
Den BEs habe ich jeweils die benutzerdefinierten Attribute "Breite", "Höhe" und "Länge" mit dem jeweiligen Wert (z.B. 1, 2, 3, ...) als string zugewiesen.
Den Einzelstationen haben ich ebenfalls diese Attribute als string (Wert immer 0) zugewiesen.
In der Eingangssteuerung der Einzelstation befindet sich Code1:
-------------------------
is
do
?.breite:=@.breite;
?.höhe:=@.höhe;
?.farbe:=@.farbe;
end;
-------------------------
In der Ausgangsteuerung der vorgelagerten Station befindet sich Code2:
-------------------------
is
do
if @.Breite = ?.nf.Breite then
?.nf.ruestzeit:=0;
end;
if @.Breite /= ?.nf.Breite then
?.nf.ruestzeit:=12;
end;
if @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;
if @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=10;
end;
if @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;
if @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=5;
end;
if @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;
if @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=22;
end;
if @.Breite = ?.nf.Breite and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;
if @.Breite /= ?.nf.Breite and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=17;
end;
if @.Länge = ?.nf.Länge and @.Farbe = ?.nf.Farbe then
?.nf.ruestzeit:=0;
end;
if @.Länge /= ?.nf.Länge and @.Farbe /= ?.nf.Farbe then
?.nf.ruestzeit:=15;
end;
if @.Farbe = ?.nf.Farbe and @.Breite = ?.nf.Breite and @.Länge = ?.nf.Länge then
?.nf.ruestzeit:=0;
end;
if @.Farbe /= ?.nf.Farbe and @.Breite /= ?.nf.Breite and @.Länge /= ?.nf.Länge then
?.nf.ruestzeit:=27;
end;
@.umlagern(?.nf);
end;
-------------------------
Im Ansatz klappt es auch. Die Maschine passt mit Code1 ihre Attributwerte immer denen der "ankommenden" BEs an und passt gemäß Code2 die Rüstzeit an. Dies geschieht allerdings nur, wenn sich ALLE DREI "Rüstattribute" (Breite, Farbe und Länge) ändern. Ändert sich nur eins (z.B. nur die Farbe) ist die Rüstzeit immer 0, obwohl eigentlich 5 Minuten gerüstet werden sollte (siehe Code2).
Liegt in der Methode noch ein Fehler vor? Erkennt ihn jemand?
Viele Grüße
NecDrop
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP