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

Seite 2 von 10 ErsteErste 1234 ... LetzteLetzte
Ergebnis 11 bis 20 von 99

Thema: Mit Pointer in Ringregister schreiben

  1. #11
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Okay, ich hab den quellcode jetzt eingebunden und er erhöht nur die ereignisnummer um +1 bei jeder zweiten positive flanke.
    die uhrzeit macht nichts mehr und im register nummer 90.0 steht dasselbe wie in 10.0. CRAZY!!!!!

  2. #12
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Was soll die Ereignisnummer überhaupt aussagen?
    Du müsstest bei jeder Positiven Flanke eine Bearbeitung des Programms haben, also müsste sich der Zeiger auch jedes mal ändern. Macht er das?
    mfG Aventinus

  3. #13
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich hab jetzt was umgeschrieben und er springt jetzt immer einen eintrag weiter zur nächsten ereignisnummer!

    Ich probiere jetzt erstmal wie weit ich komme ohne dumme fragen zu stellen, mal sehen wie lange ... DANKE vorerst

  4. #14
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    kein Problem, wenn du nochmal hilfe brauchst, melde dich einfach
    mfG Aventinus

  5. #15
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay, ich habs nicht hinbekommen dass die aktuelle Uhrzeit zu jedem Registereintrag geschrieben wird. Wie geht das, hat da jemand einen Code, bzw, eine Erweiterung für meinen Code?


    Netzwerk 1
    Code:
          U     E    124.1
          FP    M     10.0
          =     M     10.1
    
          U     M     10.1
          SPBN  M001
          L     "Register".Ereignis[0].Ereignisnummer
          L     1
          +I    
          T     "Register".Ereignis[0].Ereignisnummer
    
    
    
    
    // Daten eintragen
          L     8
          *I    
          +     10
          SLD   3
          LAR1  
    
          L     DBW [AR1,P#0.0]             // Ereignis laden
          +     1                           // eins addieren
          T     DBW [AR1,P#0.0]             // und wieder sichern
    
    
    
    M001: NOP   0
    Netzwerk 2
    Code:
          U     E    124.1
          FP    M     10.2
          =     M     10.3
    
          U     M     10.3
          SPBN  M003
          L     "Uhrzeit".Aktuell_Stunden
          T     #Temp_akt_h
    
    M003: L     #Temp_akt_h
          T     "Register".Ereignis[0].Stunde
    Netzwerk 3
    Code:
          U     E    124.1
          FP    M     10.4
          =     M     10.5
    
          U     M     10.5
          SPBN  M004
          L     "Uhrzeit".Aktuell_Minuten
          T     #Temp_akt_m
    
    M004: L     #Temp_akt_m
          T     "Register".Ereignis[0].Minute
    Netzwerk 4
    Code:
          U     E    124.1
          FP    M     10.6
          =     M     10.7
    
          U     M     10.7
          SPBN  M005
          L     "Uhrzeit".Aktuell_Sekunden
          T     #Temp_akt_s
    
    M005: L     #Temp_akt_s
          T     "Register".Ereignis[0].Sekunde

  6. #16
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Hallo,

    erklär mir mal was du mit Ereignisnummer und Parameter meinst. Dann kann ich dir vielleicht was zaubern.
    mfG Aventinus

  7. #17
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hey,
    im Endeffekt soll ein Ausfall eines Förderbands oder eines Elevators protokolliert werden.
    Für den Anfang soll "Ereignisnummer" bedeuten, wie oft das Förderband ausgefallen ist, z.B. zum 1. mal um 09:15:23 Uhr, zum 2. mal um 12:14:53 Uhr, usw...
    "ParameterXYZ" hat noch keine Bedeutung, bzw. da will ich später vielleicht nochmal was einfügen irgendwie!

  8. #18
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Das heißt aber auch, dass die Ereignisnummer eigentlich nur einmal braucht oder?
    mfG Aventinus

  9. #19
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    So, hab mal ein wenig umgebaut:

    Code:
          U     E    124.1
          FP    M     10.1
          SPBN  ende
    
    
          AUF   "MyDB"
    
    // Zeiger inkrementieren
          L     MW    12                    // Zeiger für Ringpuffer
          +     1
          T     MW    12                    // Zeiger für Ringpuffer
    
    // Zeiger auf Überlauf prüfen
          L     MW    12                    // Zeiger für Ringpuffer
          L     10                          // maximale Anzahl an Datensätzen
          >I    
          SPBN  over
          L     0
    over: T     MW    12                    // Zeiger für Ringpuffer
    
    
    // Ereigniszähler inkrementiern
          L     MW    14                    // Ereigniszähler
          +     1
          T     MW    14                    // Ereigniszähler
    
    // Daten eintragen
          L     8                           // Datensatzlänge
          *I    
          +     10                          // Startadresse des Datenfeldes
          SLD   3
          LAR1  
    
          L     MW    14                    // Ereigniszähler
          T     DBW [AR1,P#0.0]             // und wieder sichern
    
          L     "Uhrzeit".Aktuell_Stunde    // Aktuelle Stunde laden
          T     DBW [AR1,P#4.0]             // und in Ringpuffer sichern
    
          L     "Uhrzeit".Aktuell_Minute    // Aktuelle Minute laden
          T     DBW [AR1,P#4.0]             // und in Ringpuffer sichern
    
          L     "Uhrzeit".Aktuell_Sekunde    // Aktuelle Sekunde laden
          T     DBW [AR1,P#4.0]             // und in Ringpuffer sichern
    
    ende: NOP   0
    und bitte prüfe ob die Merker noch nicht verwendet sind. Wenn klemmt, einfach melden.

    Edit:
    Und die Anzahl Datensätze evtl. anpassen.
    mfG Aventinus

  10. Folgender Benutzer sagt Danke zu Aventinus für den nützlichen Beitrag:

    Minico89 (30.07.2013)

  11. #20
    Registriert seit
    23.07.2013
    Beiträge
    66
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hey, habs angepasst, klappt auch mit dem springen auf den nächsten Eintrag

    Nur dummerweise schreibt er mir immer nur die Sekunden in das Feld für die Sekunden, der rest bleibt leer... hab mal versucht den Pointern andere Nummern zu geben, wollte aber auch net klappen...

    Code:
          U     E    124.1
          FP    M     10.1
          SPBN  ende
    
          L     "Uhrzeit".Aktuell_Stunden
          T     #Temp_akt_h
    
          L     "Uhrzeit".Aktuell_Minuten
          T     #Temp_akt_m
    
          L     "Uhrzeit".Aktuell_Sekunden
          T     #Temp_akt_s
    
    
    
          AUF   "Register"
    
    // Zeiger inkrementieren
          L     MW    12                    // Zeiger für Ringpuffer
          +     1
          T     MW    12                    // Zeiger für Ringpuffer
    
    // Zeiger auf Überlauf prüfen
          L     MW    12                    // Zeiger für Ringpuffer
          L     10                          // maximale Anzahl an Datensätzen
          >I    
          SPBN  over
          L     0
    over: T     MW    12                    // Zeiger für Ringpuffer
    
    
    // Ereigniszähler inkrementiern
          L     MW    14                    // Ereigniszähler
          +     1
          T     MW    14                    // Ereigniszähler
    
    // Daten eintragen
          L     8                           // Datensatzlänge
          *I    
          +     10                          // Startadresse des Datenfeldes
          SLD   3
          LAR1  
    
          L     MW    14                    // Ereigniszähler
          T     DBW [AR1,P#0.0]             // und wieder sichern
    
          L     #Temp_akt_h                 // Aktuelle Stunde laden
          T     DBW [AR1,P#3.0]             // und in Ringpuffer sichern
    
          L     #Temp_akt_m                 // Aktuelle Minute laden
          T     DBW [AR1,P#4.0]             // und in Ringpuffer sichern
    
          L     #Temp_akt_s                 // Aktuelle Sekunde laden
          T     DBW [AR1,P#5.0]             // und in Ringpuffer sichern
    
    ende: NOP   0

Ähnliche Themen

  1. mit any pointer ein bit schreiben
    Von Limette im Forum Simatic
    Antworten: 24
    Letzter Beitrag: 01.03.2012, 12:40
  2. Array in DB schreiben(any-pointer)
    Von Limette im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 28.10.2011, 22:17
  3. Störmledungsbaustein mit Pointer?!?
    Von CrazyMC im Forum Simatic
    Antworten: 27
    Letzter Beitrag: 20.05.2010, 00:49
  4. Pointer als Out Variable Daten schreiben
    Von mkd im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.10.2009, 10:58
  5. Problem mit Pointer
    Von Mathias im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 06.02.2009, 10:03

Lesezeichen

Berechtigungen

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