Dito hey,Hey Leute,
ich habe folgendes Problem--> Ich habe ein Hochregallager mit 5 Etagen. In jeder Etage sind 5 Plätze frei. Ich soll das System so programmieren das wenn die Anlage ein Kasten ansaugt, es in die erste Etage hochfährt und dann nach einem freien Platz von den 5 gegebenen suchen soll, sind alle Plätze schon belägt, dann soll die Anlage in die 2 Etage fahren und dort weiter suchen bis ein freier Platz gefunden wird. Ich habe im Moment kein Ahnung wie das aussehen sollte bzw programmiert wird. (Am besten in FUP).
Danke im Vorraus für Hilfe.
Dito hey,
in FUP (oje) kann ich das nicht...
Aber in SCL/ST ist es easy:
Xy-Array erzeugen und in das Feld belegt reinschreiben.
Dann mit 2 For/next schleifen das Array je Etage dursuchen und wenn frei dann rausspringen > fertig.
Warnung: Was ist bei Stromausfall ?
Hinweis: Wenn es mehr wird (Plätze, Informationen) dann würde ich das von einer externen Datenbank organisieren. Ist deutlich sicherer und flexibler
Gesendet von meinem ONEPLUS A3003 mit Tapatalk
Sowas hatte ich vor ganz langer Zeit in der Ausbildung auch mal zu automatisieren. Ich habe das so gelöst, dass ich einen Zähler hatte den ich Dividiert habe mit der Maximalzahl der Plätze pro Etage für die Bestimmung der Höhe und eine Modulodivison gemacht habe um den Platz in der Etage zu ermitteln. Das ganze hatte den Charme, dass ich so auch gleich die Sollwerte für die Impulszählung der Positionsbestimmung hatte.
Ich hoffe ich habe mich ein wenig verständlich ausgedrückt.
Gesendet von meinem SM-G930F mit Tapatalk
FUNCTION "m7a_FirstBit_INT" : Void
TITLE = sucht das erste gesetzte Bit in einem INT-Wert : BIE:= >0
{ S7_Optimized_Access := 'FALSE' }
AUTHOR :
FAMILY :
VERSION : 0.1
//
VAR_INPUT
Wert : Int; // zu prüfender Wert
END_VAR
VAR_OUTPUT
BitPos : Int; // Position des ersten gesetzten Bits
END_VAR
BEGIN
NETWORK
TITLE = Nr des ersten gesetzten Bits
L #Wert;// zu prüfenden Wert in Akku
L 0;// vergleichen ob Wert = 0
<>I;// dann Ende, wenn nicht muss mind. 1 Bit gesetzt sein
SAVE;// Anzahl Bits <> 0 in BIE-Bit speichern
SPBN end;// ENDE, wenn Wert = 0
INC 1;// Schleifenzaehler in Akku 1 auf 1 stellen = BitPosition
TAK;// zu prüfende Bits in Akku 1 zurück
Loop: SRW 1;// 1 Bit hinausschieben
SPP save;// wenn poitiv, dann erstes Bit gefunden => speichern
TAK;// Schleifenzaehler in Akku 1
INC 1;// erhöhen Schleifenzaehler, BitNr.
TAK;// zu prüfende Bits in Akku zurück
SPA Loop;// Schleife für nächstes Bit wiederholen
save: TAK;// Schleifenzaehler, BitNr in Akku 1
end: T #BitPos;// BitPosition zurückgeben
END_FUNCTION
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?