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

Ergebnis 1 bis 3 von 3

Thema: Unix Timestamp - ich kriegs nicht hin

  1. #1
    Registriert seit
    14.05.2013
    Beiträge
    7
    Danke
    0
    Erhielt 5 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche gerade mit Hilfe des oscat Bausteins DT_DINT eine Unix Timestamp zu bekommen. Leider geht die CPU immer auf STOP, wenn ich das tue.

    Ich habe die notwendigen Bausteine auf die S7-312C geladen: DT_DINT aus oscat, DT_DATE und DT_TOD aus der IEC Baustein-Bibliothek.

    Ich habe in STL eine Function mit den beiden temporären Variablen #result (INT) und #dtTemp (DATE_AND_TIME) erstellt.

    Der Code in der Funktion sieht so aus:

    CALL "READ_CLK"
    RET_VAL:=#result
    CDT :=#dtTemp

    CALL "DT_DINT"
    DATI :=#dtTemp
    RET_VAL:=DB70.DBD9

    Leider geht immer die "SF"-Lampe an der CPU an, wenn der CALL "DT_INT" ausgeführt wird.

    Ich stehe im Moment auf dem Schlauch, ich weiss nicht was ich falsch mache.

    Für Eure Hilfe wäre ich dankbar,

    Carsten
    Geändert von Lace (24.09.2016 um 16:09 Uhr)
    Zitieren Zitieren Unix Timestamp - ich kriegs nicht hin  

  2. #2
    Registriert seit
    29.03.2004
    Beiträge
    5.372
    Danke
    134
    Erhielt 1.586 Danke für 1.158 Beiträge

    Standard

    Am Besten schaust du in den Diagnosepuffer der CPU, was für ein Fehler dort vorliegt.
    Wenn du damit selber nicht weiterkommst, dann kannst du den Diagnosepufferinhalt in einer Textdatei speichern. Den Inhalt stellst du dann hier ins Forum und wir gucken dann weiter.
    Die Genialität einer Konstruktion liegt in ihrer Einfachheit – Kompliziert bauen kann jeder.

    (Sergei Pawlowitsch Koroljow, sowjetischer Konstrukteur von Raketen und Weltraumpionier)

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    10.085
    Danke
    838
    Erhielt 2.969 Danke für 2.393 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich würde mal vermuten, daß Du in der CPU keinen DB70 hast, oder der ist kürzer als 13 Bytes.

    Weiteres: warum gibst Du bei dem "DT_DINT" RET_VAL:=DB70.DBD9 an, also eine ungerade Adresse DBD9? Das ist sehr unüblich, weil auf ungeraden Adressen in DB kann man keine DINT-Variablen deklarieren. Sollte da vielleicht eigentlich ...DBD8 stehen?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 21.11.2015, 15:07
  2. Unix-Timestamp erzeugen
    Von darkthunderbird im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 10.06.2013, 15:03
  3. Antworten: 5
    Letzter Beitrag: 19.01.2012, 23:40
  4. S7 und UNIX-Timestamp
    Von argv_user im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 13.10.2009, 10:28
  5. Mitsubishi Ethernet - ich krieg es nicht hin
    Von elektro_mensch im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.10.2007, 00:20

Stichworte

Lesezeichen

Berechtigungen

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