Step 7 Kürzeste Zeit herausfinden

Minico89

Level-1
Beiträge
66
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen, habt ihr einen Tipp für mich wie ich einen Zeitabstand herausfinden kann? Ich habe ein Förderband mit 2 Näherungssensoren und da kommen Pakete vorbei. Jetzt weiss ich zwar dass ich die Tageszeit vom zweiten Näherungssensor in Sekunden umwandeln und dann minus die Tageszeit in Sekunden vom ersten Näherungssensor rechnen kann. Aber wie finde ich jetzt aus den ganzen Paketen genau den kürzesten Abstand raus??? Im Anhang ist ne kleine Grafik, aber ich denke mal dass sich das jeder vorstellen kann! Und in der Suchfunktion hab ich nix ordentliches gefunden! Danke! __________________________ CPU 314C-2DP STEP 7 V5.5
 
Vorschlag: definiere eine Variable <kürzester Abstand in Sekunden> und initialisiere diese Variable mit dem maximal möglichen Wert. Danach - jedesmal wenn du einen Abstand in Sekunden berechnet hast - vergleichst du den berechneten Wert mit dem Wert von <kürzester Abstand in Sekunden>. Falls der berechnete Wert kleiner ist wird das der neue <kürzester Abstand in Sekunden>.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Genau so hab ich mir das auch gedacht, ich habe grade die Berechnung des Abstands geschrieben (auch mit Überlauf, falls ein Paket 2 Sekunden vor 24:00 Uhr am ersten Sensor vorbeikommt und 2 Sekunden nach 00:00 Uhr am zweiten Sensor).
Ich speichere mein Ergebnis in "Paketabstand_in_s" als Gleitpunktzahl ab. Wie sieht der passende Code dazu aus dann, ich habe verstanden wie du es meinst, aber mir fehlen die ersten paar Zeilen Code als Ansatz. Hast du bitte welche für mich ?
 
anderer Vorschlag:
Mit Näherungsschalter 1 einen Merker setzen und mit Näherungsschalter 2 wieder zurücksetzen.
Wenn Merker gesetzt ist die letzten Zykluszeiten aufaddieren. (OB1_prev_cycle)
Ergebnis: Zeit in ms
Vergleichen mit der kürzesten Zeit usw.
 
Ich würde das gerne alles in einem FB abfertigen, ohne irgendwelche Aufrufe in anderen Bausteinen. Der Tipp von Mediator hat m ir sehr gut gefallen, ich bekomme ihn nur nicht umgesetzt, ich glaube mir fehlt wirklich nur ein kleines Stück Anfangscode!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
Code:
L #Paketabstand_in_s
L #Variable_Zeitvergleich
<R
SPBN gross
L #Paketabstand_in_s
T #Variable_Zeitvergleich
gross: nop 0
wenn ich das richtig verstanden habe dann müsstest du das so ungefähr in deinen FB einbinden.
Eine Variable für den kleinsten Wert anlegen und deinen aktuellen Wert damit vergleichen bzw. ersetzen.
Ein wenig ausschmücken mit Flanke damit der Code nur abgearbeitet wird wenn es einen neuen Wert gibt etc.

Gruß, Toki
 
Dankeschön, genau sowas habe ich gebraucht, darauf kann ich jtzt schön noch andere Sachen aufbauen. Ich kam einfach nicht drauf, den ganzen Morgen darüber gegrübelt... :(
 
Gerne,
ich habe das in dem Beispiel zwar weggelassen,
aber vergesse bitte nicht die wunderbare Funktion //*Kommentar hinter deinem AWL Code.
Das erleichtert dir und ggf Anderen den Code später schneller nachzuvollziehen.

Gruß, Toki
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay, ich hatte alles fertig, dann wurde mir gesagt dass das wohl nicht funktioniert, weil die Anlage anders aufgebaut ist! (Gut dass es mir erst am Ende gesagt wurde ;) ) Ich würde gerne die Zeit zwischen den Paketen nur mit einem Näherungssensor messen. Das würde ich auch gerne mit einem Zähler umsetzen, im Sinne von : 0) Blinkmerker (Blinktakt erstmal egal) startet wenn Anlage eingeschaltet wird 1) "Paket kommt" -> Zähler1 starten der bei jedem Blinken hochzählt 2) "nächstes Paket kommt" -> Zähler1 stoppen, Zahl aus dem Zähler laden, mit Faktor X multiplizieren um auf die Sekunden zu kommen -> Zähler2 starten und wieder Zählen bis das nächste Paket kommt 3) Zähler2 wieder stoppen, Zahl aus dem Zähler laden, multiplizieren mit Faktor X, Zähler 2 zurücksetzen und Zähler1 wieder starten Da ich allerdings noch nie mit Zählern und mit dem toggeln des Blinkmerkers gearbeitet habe, und egal wie viel ich lese nichts raffe, wollte ich doch mal fragen ob ihr einen kleinen Code als Ansatz für mich habt, ich komme einfach nicht drauf!
 
Zuletzt bearbeitet:
Zurück
Oben