Echtzeituhr lesen bei S7-200?

MRT

Level-1
Beiträge
865
Reaktionspunkte
10
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich habe die Uhr eingestellt aber wie kann ich damit einen Ausgang oder einen Merker setzen? Habe im Forum einen Beitrag gefunden,
Nein nicht an T
An T legst Du die Adresse fest wo die Daten also sprich die Uhrzeit geschrieben wird. In diesem Bereich steht dann immer die aktuelle Zeit.
Ganz einfaches Beispiel:

VB 103 hier steht in Darstellung HEX die Stunden
VB 104 hier steht in Darstellung HEX die Minuten
VB 105 hier steht in Darstellung HEX die Sekunden

Das heißt im VB103 bis VB105 steht jetzt die aktuelle Zeit.
Jetzt mußt du Dir noch in 3 andere Bereiche die Werte schreiben ab wann
Du zB. etwas einschalten willst.

VB203 Stunden
VB204 Minuten
VB206 Sekunden

zb. VB 203=17 VB204=30 VB205=00 ergibt zB. 17.30 Uhr
jetzt mußt Du Deinen Einschaltpunkt in unserem Fall 17.30 mit der
aktuellen Uhrzeit vergleichen.Also VB103-VB104 vergleichen mit VB203-VB204.
Und mit dem vergleichen kannst Du Dir zB. dann einen Merker/Ausgang setzen der dann etwas einschaltet.


Hoffe Du kommst klar mit meiner Erklärung
Mit dem hier bist Du von einer Schaltuhr noch sehr weit entfernt aber kommst dem ganzen doch schon etwas näher.
geht das so? Und was für einen vergleicher müsste ich da nehmen, größer gleich, kleiner gleich, gleich?
Ich hoffe es kann mir wer helfen!
 
Hallo,
so im Großen und Ganzen bin ich einverstanden, nur waren die Werte die die Uhr ausgibt nicht BCD codiert? Habe jetzt leider keine CPU zum Testen. Als Vergleicher würde ich größer gleich nehmen. Probiers doch probehalber mit den Sekunden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich werde das mal probieren, ich hab als grundlage das Beispiel von Siemens da steht aber schon etwas von der BCD Codierung. Für was steht das BCD?
 
Hallo,
BCD steht für eine Codierung: 13 ist dual 0000 1101,in BCD: 0001 0011 also jede 10ner Stelle wird dual dargestellt, dafür gibt es Umwandler in Microwin.
 
Hallo!

Ich habe jetzt das mit dem vergleichen probiert, es ging aber nicht. Die Sekunden werden in den:
MOVB 16#10, VB105 // Sekunde = 00 einstellen.
geschrieben.
Und so habe ich das verglichen:
LDB>= VB105, 30
= A1.0

Das müsste aber passen, oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
da bist Du glaube ich einem Irrglauben aufgessen, Du mußt erst die Uhrzeit mit dem Modul READ RTC aufrufen und nicht versuchen zu stellen, und das ganze würde ich in FUP machen(ist übersichtlicher).
 
Hallo!

Ich habe jetzt im FUP diesen READ RTC geladen bei EN SM0.0 und bei T vb108 dazu geschrieben was mache ich mit dem ENO und kann ich dann den vb108 mit den den Sekunden vergleichen?
 
Hallo,
nein da besteht noch ein Verständnissproblem über den schon viele gestolpert sind, an dem READ_RTC Eingang T kommt das Variablen BYTE mit dem es losgehen soll, bei dir wäre das VB100( dann steht in VB100 das Jahr, VB101 der Monat,VB102 der Tag usw.)denn Du willst ja das VB105 die Sekunden angezeigt weren.
 
nein, ENO ist der Fehler Ausgang, brauchst Du nicht. nun müßte dein Vergleicher funktionieren(Du mußt die Werte dann aber wie BCD vergleichen, z.b. deine 30 macht folgendes Bitmuster 0001 1110, und da wird er aussteigen denn die letzte Ziffer ist 12, erlaubt ist nur 0-9).
 
Hallo!

Kann ich die zu vergleichende Zahl (z.B.: 30) in BCD umwandeln, wenn ich das richtig verstanden habe ist ja die Echtzeituhr auch in BCD geschrieben dann müsste das gehen oder?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
da mit mal ein Ergeniss zu sehen ist, ich kann es leider jetzt nicht nachprüfen da ich keine CPU hier habe, aber Du kannst einfach die 30 wegnehmen und 48 dransetzen denn 48 ist bitmäßig 0011 0000 und das ist in BCD 30.
in AWL müßte es dann so aussehen:
Netzwerk 1
LD SM0.0
TODR VB100
netzwerk2
LDB>= VB105, 48
= A0.0

Wie gesagt mußt Du ausprobieren :roll:
 
Hallo!

Jetzt hat sich was getan, hab die CPU in RUN gegeben dann war der Ausgang (A1.0)schon gesetzt. Ausgang 1.0 deswegen, weil bei dem Programm von Siemens A0.0 bis A0.5 von selbst immer ein und auschalten hat das irgendeinen grund oder muss das so sein?
 
Hallo,
jetzt dämmert es mir Du hast das Siemens-Beispiel im Hintergrund mitlaufen, ich dachte sollte ganz was neues werden, denn die verwenden VB400 als T , und beim Ausgangsbit 0 werden die Sekunden angezeigt.
Versuch es doch mal mit dem Code oben alleine weil das Siemensbeispiel ist etwas überladen.
 
Zurück
Oben