S7 Timer

Elektro

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich muß 60 Stellplätze Zeitlich überwachen. Kein Platz darf länger als 36h belegt sein. Gibt es eine Funktion in S7, die diese Bedingung erledigt?
Möchte die 60 Timer umgehen!! Eingebaut ist eine S7/300.
 
Hallo!

Du kannst zum bsp einen Timer nehmen der immer nach einer Minute einen Impuls ausgibt und sich wieder zurücksetzt. Für jeden Platz würde ich dann in einem DB einen Integer Typ anlegen da wo ich die Impulse mitzähle. Dann weißt du wie lange das der Platz belegt ist. Du könntest noch den Wert in deinem DB mit 36x60 vergleichen und spätestens wenn dein Platz den Wert erreicht hat dann muss er geleert werden.

godi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
3 Möglichkeiten:
- Suchfunktion hier im Forum benutzen, da wir das Thema "lange Zeiten" schon x-mal hatten
- IEC-Timer verwenden (mit SFBs - siehe Standard-Library) (maximale Zeit ca. 24 Tage)
- Taktmerker verwenden (in Hardwarekonfiguration einstellbar) - M x.5 (1 Hz) auf positive Flanke auswerten, mit dieser Flanke ein Doppelwort hochzählen lassen und auf > 129600 vergleichen (129600 sek = 36 h, DINT kann max. 68 Jahre zählen)

alles andere ist meiner Meinung nach Schwachsinn

mfg
Maxl
 
Hallo

mir fallen da zwei Anzätze ein

1)
Einen regelmäßigen Impuls erzeugen. (zB Blinktakt nutzen)
Wenn Parkplatz belegt ist, dann die Anzahl der Impulse zählen.
Wenn die Anzahl der Impulse einen vorgegebenen Wert überschreitet, dann eine Meldung herausgeben.

2)
Den Zeitpunkt zu dem der Parkplatz belegt wird speichen. (Aktuelle Zeit in einem Datenbaustein speichern)
Die gespeicherte Zeit mit der aktuellen Zeit vergleichen.
Wenn beim Vergleich die berechnete Standzeit größer als die maximale Zeit (bei dir 36 Stunden) ist, dann eine Meldung herausgeben.

Martin
 
Ich persönlich finde Ansatz 2 besser, den wollte ich auch vorschlagen.

CPU - Zeit lesen, sobald der Parkplatz belegt wird und in einem Array (für die jeweiligen Stellplätze) speichern.

Von der aktuellen Zeit die jeweiligen Array - Einträge subtrahieren und in bei Überschreitung ein Signal ausgeben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich persönlich finde Ansatz 2 besser, den wollte ich auch vorschlagen.

CPU - Zeit lesen, sobald der Parkplatz belegt wird und in einem Array (für die jeweiligen Stellplätze) speichern.

Von der aktuellen Zeit die jeweiligen Array - Einträge subtrahieren und in bei Überschreitung ein Signal ausgeben.

Ui ja das ist sehr gut,
dann kann man auch jederzeit die Einstellzeit überprüfen oder anzeigen lassen.

Die Zeitüberwachung evtl. in einen OB der nur jede Minute, oder alle 10 Sekunden abgefragt wird, um Rechenleistung zu vermindern.

Grüsse
 
Dafür gibt's ja bei jeder Steuerung den OB10.

Jede Minute oder alle 5 Minuten sollte reichen, würde ich sagen.
Nach 36 Stunden kommt es auf eine Zeitüberschreitung um weitere 5 Minuten auch nicht mehr an.
 
Zurück
Oben