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

Ergebnis 1 bis 5 von 5

Thema: Zeitstempel in DB speichern

  1. #1
    Registriert seit
    18.01.2007
    Beiträge
    58
    Danke
    3
    Erhielt 3 Danke für 2 Beiträge

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich möchte bei einem Ereignis einen Zeitstempel in einem DB für das Datum und in einem DB für die Zeit speichern und zwar so, daß ich mit jedem neuen Ereignis das nächste DBW (Date) bzw. DBD (Zeit) beschreibe (Logger). Zeitstempel erzeugen ist kein Problem aber die
    fortlaufende Speicherung (indirekte Adressierung!?) klappt nicht. Es kann nicht so schwer sein, aber irgendwie krieg ich das nicht gebacken.
    Zitieren Zitieren Zeitstempel in DB speichern  

  2. #2
    Registriert seit
    19.09.2006
    Beiträge
    49
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    leg dir einen Header im DB an der den letzten Offset bzw. den Offset hinterlegt hat in den du als nächstes schreiben willst

    also cih schreibs einfach mal herunter:



    un ereignis
    beb

    l dbd0
    lar1
    un initialisierung
    un (
    l dbd 0
    l maxwert // Konstanter Maximalwert der Einträge z.B.
    >D
    spb log

    l offset // offset zum array der Logdaten z.B. p#10.0
    t dbd0
    log: nop 0
    l Zeitstempel
    t dbd[ar1,p#0.0 ]
    l date
    t dbw[ar1,p#4.0]
    + ar1 p#6.0 // wobei 6.0 die Länge eines Eintrages ist

    tar1 // ar1 in den Akku schreiben
    t dbd0 // und ins dbd 0 wegsichern damit beim nächsten Eintrag nichts überschrieben wird

    sollte so funktionieren
    mfg
    Stefan
    Kaum macht mans richtig, schon funktionierts...

  3. #3
    Registriert seit
    18.01.2007
    Beiträge
    58
    Danke
    3
    Erhielt 3 Danke für 2 Beiträge

    Standard

    Danke für die prompte Antwort. Ich habe noch probiert und folgendes gemacht:

    L MW 106 //Platzzähler
    SLD 3 //In Pointerformat
    T MD 120
    LAR1 //ins Adressregister


    AUF DB 1 //Speicher-DB auf
    L MW 0 //Wert laden Datum
    T DBW [AR1,P#0.0] //in den von AR1 def. Bereich laden

    L MD 2 //Wert laden Zeit
    T DBD [AR1,P#2.0]

    L MW 8 //Wert laden Status
    T DBW [AR1,P#6.0]

    L MW 106 //Platzzähler erhöhen
    INC 8
    T MW 106
    Das Programm trägt in einen DB Datum,Uhrzeit,Status ein. Im Status steht Z.B. welcher Eingang. Der FC mit dem Programm wird durch die Ereignisse aufgerufen. Je Ereignis habe ich 3 Einträge fortlaufend. Nach 128 gehts von vorne los. Die alten Werte bleiben erhalten bis sie wieder überschrieben werden. Das klappt soweit.

  4. #4
    Registriert seit
    19.09.2006
    Beiträge
    49
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    jo ist nicht schlecht bis auf
    den Befehl "INC 8" das ist ein 8 Bit Befehl und sollte nicht in Verbindung mit Wörtern verwendet werden...

    L MW 106
    + 8
    T MW 106

    ist eigentlich der gängige Weg was zu zählen oder erhöhen
    Kaum macht mans richtig, schon funktionierts...

  5. #5
    Registriert seit
    18.01.2007
    Beiträge
    58
    Danke
    3
    Erhielt 3 Danke für 2 Beiträge

    Reden


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jo, ist klar. Asche auf mein Haupt! Manchmal klebt man doch zu sehr am Assembler.

Ähnliche Themen

  1. Zeitstempel
    Von wusa im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 29.03.2007, 21:10
  2. Zeitstempel
    Von Wölli im Forum Programmierstrategien
    Antworten: 2
    Letzter Beitrag: 19.10.2006, 09:34
  3. Zeitstempel auslesen
    Von Maldito im Forum HMI
    Antworten: 4
    Letzter Beitrag: 08.03.2006, 11:26
  4. Min-Max Werte mit Zeitstempel speichern
    Von klauserl im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 10.01.2006, 12:58
  5. Zeitstempel bei Netzausfall
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 01.02.2005, 16:37

Lesezeichen

Berechtigungen

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