OB100 verstehen

snowpanter

Level-1
Beiträge
21
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Wiedermal ne frage ;)

so...
ich soll als diagnosefunktion datum und zeit des letzten stromausfalls speichern...(und datum des letzten warmstarts mach ich dazu)
meine frage:

ich hab den
OB100 (Warmstart)
OB102 (Kaltstart = z.b. Stromausfall)

aber wie beschalte ich das ganze ?
bin soweit das ich den SFC1 drin habe, der die Zeit ausliest, zu der der OB gestartet wurde, aber wohin soll er das auslesen ? und wie kann ich mir das in der Variablentabelle anzeigen lassen ?
ich komm ne weiter...
hab schon gegooglet, war auf automation.siemens, und hab unsere unterlagen durchsucht...
nix gefunden...
 

Anhänge

  • OB102.JPG
    OB102.JPG
    58,1 KB · Aufrufe: 57
Es würde eigentlich reichen wenn du im OB100 den "OB100_date_time" kopierst und auswertest. Mit dem SFC1 ließt du die aktuelle Uhrezeit aus.. würde im OB100 auch funktionieren.
Um die Uhrzeit herauszubekommen wann die CPU auf Stopp gegangen ist, könntest du z.B. jeden Zykluss die aktuelle Uhrzeit speichern. Läufst du durch den OB100 kannste denn den gespeicherten Wert kopieren und anzeigen.


Kaltstart gibts bei der 300er nicht mehr wirklich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
schön, dass du es dir doch anders überlegt hast.

der SFC1 ist hier nicht wirklich zielführend, da er zum auslesen der Systemzeit dient. in deinem Code versuchst du damit die Zeit zu überschreiben, die der OB100 bereits mitbringt, nämlich die Zeit zu der er angefordert wurde.

also besteht die Aufgabe jetzt eigentlich nur noch das OB100_DATE_TIME in ein menschenlesbares Format zu bringen. Der Datentyp DATE_TIME ist ja ein zusammengesetzter Datentyp, d.h. dass er ohne weiteres nicht geladen, transferiert oder beobachtet werden kann.

wenn es nur um das Transferieren in einen Speicherplatz in einem Datenbaustein geht, solltest du dir mal den SFC20 anschauen.

wenn es um das zerlegen in Tag, Monat, Jahr, Stunde, Sekunde geht, empfehle ich dir, dass du die Hilfe zum Datentyp bemühst und dir evtl. mal diesen Thread zu Gemüte führst: http://www.sps-forum.de/showthread.php?t=24075
 
Hi,

Du kannst auch alles über den OB1 machen, da gibt es unter den Lokaldaten ein Byte, welches Du auf Kaltstart, Warmstart, etc. abfragen kannst. Das nutze ich z. B. um die Anlagen bei Wiederanlauf zu initialisieren. Und das aktuelle Datum steht auch in den Lokaldaten. Also nur noch nen Flankenbefehl und schon kannst Du Datum, Uhrzeit und was Du willst abspeichern oder an einen Baustein übergeben. Geh mal im Bausteinordner auf den OB1 (geht auch mit den anderen OB's, SFC's, SFB's), nur markieren! Und dann Taste F1 drücken, da bekommst Du die Lokaldaten erklärt.

Brauchst Du denn nur ein Datum mit Uhrzeit jeweils?

Grüße

Michael
 
Zuviel Werbung?
-> Hier kostenlos registrieren
und wie sieht dein Flankenbefehl auf ein byte aus? das tät mich ja mal interessieren ... ich hab da eine vermutung und mich schauderts schon bei dem gedanken daran...

Ich vermute mal er meinte:
Code:
U Neuanlauf
FP HM_Hochlauf
spbn kk
L Systemzeit
T Hochlaufzeit
kk:nop 0
 
Ist doch ganz einfach, erst nen Vergleicher auf das Byte (Ereignis) und mit dem VKE bitmäßig weiterarbeiten!

Grüße

Michael
 
Bin zwar im Forum neu, aber kann von über 15 Jahren SIMATIC Programmiererfahrung meine Erfahrungen mit einbringen. Dazu zählen auch komplexere Abläufe mit Servos, S7-Graph, indirekter Adressierung, BUS-Systeme, ...

dann schreib noch schnell 93 beiträge, dann bist du auch du ein erfahrener benutzer! :ROFLMAO:

meine vermutung war: auswertung mit hilfe von L1.0 und L1.1 *würg*
 
Zurück
Oben