Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 8 von 8

Thema: Zwei Kleinigkeiten noch :-)

  1. #1
    Registriert seit
    22.10.2012
    Beiträge
    80
    Danke
    8
    Erhielt 5 Danke für 4 Beiträge

    Standard


    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 ....)

    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.
    Zitieren Zitieren Zwei Kleinigkeiten noch :-)  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    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é

  3. #3
    Registriert seit
    22.10.2012
    Beiträge
    80
    Danke
    8
    Erhielt 5 Danke für 4 Beiträge

    Standard

    @ 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

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    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()".

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Achso, zur Remanenz ist das was vollmi geschrieben hat nicht vollständig bzw. nicht immer richtig. Steht aber alles in der Hilfe vom TIA Portal.

  6. #6
    Registriert seit
    22.10.2012
    Beiträge
    80
    Danke
    8
    Erhielt 5 Danke für 4 Beiträge

    Standard

    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

  7. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    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);

  8. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    Berger (05.06.2014),ihoffiwerdbaldtechniker (27.04.2014)

  9. #8
    Registriert seit
    22.10.2012
    Beiträge
    80
    Danke
    8
    Erhielt 5 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    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

Ähnliche Themen

  1. Antworten: 20
    Letzter Beitrag: 20.09.2017, 19:23
  2. Antworten: 10
    Letzter Beitrag: 16.08.2011, 16:31
  3. 1FT5 noch lieferbar?
    Von Sockenralf im Forum Antriebstechnik
    Antworten: 2
    Letzter Beitrag: 12.07.2009, 21:46
  4. Antworten: 9
    Letzter Beitrag: 16.12.2007, 21:20

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •