TIA Zwei Kleinigkeiten noch :-)

Beiträge
95
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Software:
Tia V12.1 SP1
WinCC Basic Version V12 SP1

Harware:
S7 1215c DCDCDC + 4*15bit AI
KTP 1000 PN Basic


ALso Erstmal ein dickes Daaaaaankkkkeschhhhhöööönnnn an alle dir mir geholfen haben.
Mein Programm steht und Funktionier komplett. Bis auf 2 Kleine schönheitsfehler ......
Ich werde das Programm heute abschließen und später bei der Inbetriebnahme den bedingungen anpassen. Die Simulation ist perfekt ( glaub ich zu mindest :p ....)

zu meinen zwei kleinen Problemen:
1. ich würde gern noch in scl die Uhrzeit und das Datum in einen DB schrieben.
die bedingung steht nur für einen Zyklus an.
muss ich hier uhrzeit UND datum schrieben oder gibts da einen eigenen Parameter. Da ich kein date befehl gefunden habe .....

Unbenannt10.PNG

Unbenannt11.PNG


Das zweite ist nur eine Frage:
ist es möglich in einem DB nur eine Variable Remanet zu setzen oder kann man nur den Gesamten DB Remanet setzten ?
Ich frage deswegen, da ich einen Stückzähler habe den ich anschließend Remanet setzen würde.
 
Wenn du die Hilfe bemühst siehst du das Read System Time das Format DateandTime zurückliefert. Das heisst du kannst das entweder zusammen abspeichern oder du musst es auseinandernehmen wenn du es getrennt als Date und Time abspeichern willst.

Es lassen sich nur ganze DBs remanent setzen nicht einzelne Variablen darin. Das gilt auch für Instanzdbs.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@ vollmi erstmal Danke

wegen der Hilfe bin ich ja auch drauf gekommen das es zusammen sein könnte.

leider komm ich an diesem Punkt nicht weiter

" prüfparameter". Uhrzeit := RD_SYS_T???????;
die variable uhrzeit ist in demfall time of day als datentyp im DB
 
RD_SYST gibt die Zeit als DTL zurück, das heißt da steckt das Datum und die Uhrzeit drin.
Um aus DTL die Einzelwerte zu extrahieren gibt es die Funktion "T_CONV". Die kannst du einfach aus dem Anweisungsfenster in dein Programm ziehen, und es wird nach den Datentypen gefragt die du konvertieren willst.
Letztenendes wird daraus in SCL ein "DTL_TO_DATE()" oder "DTL_TO_TOD()".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Thomas ich Probier da rum aber irgendwie geht es nicht .....
Ich habe einen DB ( prüfparameter ) darin eine Variable ( Uhrzeit ) vom typ time of day
Nun will ich Uhrzeit und Datum zusammen oder getrennt in den DB schreiben


Wenn ich
Prüfparameter.uhrzeit := XXXXXXX;
ich hab schon alles mögliche für die XXX durchprobiert.
aber hier hab ich irgendwie ein Denkfehler :-(
 
Du legst dir zusätzlich eine Temp-Variable mit Datentyp DTL an, in dem du dann den Zeitstempel zwischenspeicherst.
Das etwas seltsame an der RD_SYS_T Funktion ist, dass sie nicht den Zeitstempel zurückgibt, sondern den Fehlercode des Aufrufs. D.h. du brauchst noch eine zweite Temp-Variable für den Fehlercode, z.B. #temp_retval mit Datentyp INT.

Nennst du die Temp-Variable für die Zeit z.B. #temp_zeitstempel, dann sollte es so funktionieren:
Code:
#temp_retval := RD_SYS_T(#temp_zeitstempel); // Zeitstempel auslesen
// Bei Bedarf Fehlerbehandlung, wenn #temp_retval == 0 dann wurde die Funktion ohne Fehler ausgeführt

"Prüfparameter".Uhrzeit := DTL_TO_TOD(#temp_zeitstempel);
"Prüfparameter".Datum   := DTL_TO_DATE(#temp_zeitstempel);
 
ich habe immer versucht das direkt auszulesen das wollte er aber nicht

"Prüfparameter".Uhrzeit := DTL_TO_TOD(rd_sys_t);

Naja ich habs so übernommen und es hat super funktioniert Danke :)
 
Zurück
Oben