Forum: Mikrocontroller und Digitale Elektronik SPS: s7-200: "Tage" programmieren


von Dominik (Gast)


Lesenswert?

Hallo Leute :)
Ich benötige für meine S7-200 eine Einschaltverzögerung von 2 Tagen oder 
Ausschalt...geht das denn, wenn ja wie? So wie ich das sehe bin ich da 
auf >3000 Sekunden beschränkt :/ Lg

: Verschoben durch Moderator
von Steff (Gast)


Lesenswert?

Mit dem integrierten Taktmerker kannst du im Prinzip jede Zeitspanne 
"Abzählen".

von Dominik (Gast)


Lesenswert?

Also einfach mit einem Taktmerker einen vorwärtszähler ansteuern und mit 
einem = Vergleicher den Ausgang bei erreichen des fewünschten Wertes 
logisch 1 werden lassen?
Klingt gut :)
Kannst du mir helfen wie ich so einen Taktnerker konfiguriere das ich 
alle zB 60 Sekunden eine steigende Flanke habe? Danke, war mir schon 
eine große Hilfe :) lg

von Uwe R. (aisnmann)


Lesenswert?

Dominik schrieb:
> Also einfach mit einem Taktmerker einen vorwärtszähler ansteuern und mit
> einem = Vergleicher den Ausgang bei erreichen des fewünschten Wertes
> logisch 1 werden lassen?
> Klingt gut :)
> Kannst du mir helfen wie ich so einen Taktnerker konfiguriere das ich
> alle zB 60 Sekunden eine steigende Flanke habe? Danke, war mir schon
> eine große Hilfe :) lg

Dominik schrieb:
> Also einfach mit einem Taktmerker einen vorwärtszähler ansteuern und mit
> einem = Vergleicher den Ausgang bei erreichen des fewünschten Wertes
> logisch 1 werden lassen?
> Klingt gut :)
> Kannst du mir helfen wie ich so einen Taktnerker konfiguriere das ich
> alle zB 60 Sekunden eine steigende Flanke habe? Danke, war mir schon
> eine große Hilfe :) lg

Indem du einen Timer fuer 60 Sekunden ansteuerst, und immer wenn dessen 
Ausgang 1 ist, diesen Timer resettest und den Zaehler inkrementierst.

Abgesehen davon gibt es einen Systemmerker der im 30 Sekundenrhytmus den 
Zustand wechselt. (WIMRE gibt es einen fuer jeden Zyklus, einen fuer den 
ersten Zyklus [Anlaufmerker], einen fuer jede Sekunde, und einen fuer 
die Minute)

<RTFM>
<edit>
Wie schon gesagt, was du brauchst ist der Sondermerker SM0.4, der ist 
30sek an und 30 sek aus.
</edit>

Ideal ist es dann den Zaehler am Anfang des gewuenschten Zaehlzyklus zu 
resetten.

Damit kannst du deine Einschaltverzoegerung immer auf einen 
mindest-Zaehlerwert, bzw. dessen Ausgangsbit, vergleichen lassen, da der 
Zaehler nicht ueberlaeuft (wird IIRC durch das Betriebssystem 
verhindert).

Etwa so in AWL:
LD SM0.4
ED           'Flankenerkennung
LN SM0.0     'Ruecksetzeingang
ZV Z01,2880  'der eigentliche Zaehler


HTH, bye Uwe

von Grübler (Gast)


Lesenswert?

Steff schrieb:
> Mit dem integrierten Taktmerker kannst du
> im Prinzip jede Zeitspanne "Abzählen".

Mumpitz!

Ihr müsst euch mal langsam von den veralteten
Systemzeiten verabschieden. (Datentyp S5TIME)

Verwende die IEC-1131-3 Zeitfunktionen
in S7 z.B, die Einschaltverzögerung SFB 4.

Da kannst du den Datentyp TIME anlegen und der
geht von 1ms bis irgendwas mit 24Tagen

von fonsana (Gast)


Lesenswert?

Grübler schrieb:
> Ihr müsst euch mal langsam von den veralteten
> Systemzeiten verabschieden.

Sagt wer?

fonsana

von Grübler (Gast)


Lesenswert?

fonsana schrieb:
> Sagt wer?

Einer der schon sehr lange
in der Automatisierungstechnik steckt.

von fonsana (Gast)


Lesenswert?

Grübler schrieb:
> Einer der schon sehr lange
> in der Automatisierungstechnik steckt.

Das trifft auf mich auch zu.
Wie ist denn die sachliche Begruendung fuer Deine Aussage?

fonsana

von Dominik (Gast)


Lesenswert?

Also ich habe jetzt mit einer einfachen Bitverknüpfung inzwischen mit 
dem Merkerbyte SM0.4 einen 30 Sekunden Takt gemacht, zähle nur die 
negativen Flanken einen Zähler rauf bis 5760...Sollten also 45h sein, 
wenn sich da kein Denkfehler eingeschlichen hat :)

Verwende anschließend einen Öffnerkontakt (Z0) welcher dem Zähler 
zugehörig ist und bestimme dadurch ob ich mich innerhalb dieser 2 Tage 
befinde.
Ich finde die Lösung ist okay, da sie ja zum gewünschten Erfolg führt :)

Grübler schrieb:
> Verwende die IEC-1131-3 Zeitfunktionen
>
> in S7 z.B, die Einschaltverzögerung SFB 4.

Das interessiert mich dann aber natürlich schon, weil es nach einer viel 
schöneren Variante aussieht und man möchte ja nicht nur unnötig viel 
verwirrende Programmierung zusammenbasteln.
Wie kann ich denn eine solche Einschaltverzögerung erstellen, kannst du 
mir sagen wir eine solche zu parametrieren wäre?

Danke für euer Interesse an diesem Problem :) Lg

von Grübler (Gast)


Angehängte Dateien:

Lesenswert?

Dominik schrieb:
> Wie kann ich denn eine solche Einschaltverzögerung erstellen,
> kannst du mir sagen wir eine solche zu parametrieren wäre?

Du findest die Funktion in den S7-Bibliotheken, (siehe Anhang)
Den Rest findest du in der Onlinehilfe. Klick auf die
Funktion und dann auf F1. die SFB5 ist die Einschaltverz.

Dann baust du dein Programm in einen FB ein und nimmst
die SFBs als Multiinstanzen auf. Das wäre eine saubere
Sache. Ohne Merker, ohne die sch.. Systemzeiten

Warum soll man nach IEC1131-3 Programmieren?

- Weil es ein internationaler Standart ist
  und daher von allen gelesen und gewartet werden kann.
- Weil es Plattformunabhängig ist (siehe CoDeSys)
- Weil viele Kunden nur das akzeptieren

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.