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

Ergebnis 1 bis 5 von 5

Thema: Siwarex U Fehlerauswertung

  1. #1
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich kämpfe gerade für ein Projekt mit der Siwarex U

    Die Siwarex (einkanalig) hängt direkt an der cpu (314), die Auswertung mache ich mit dem Beispielprog. aus dem Projektierungspaket.
    Soweit sogut, funzt eigendlich auch bestens.
    Nun möchte ich aber nicht alle Fehlerbits (DB9.DBX106.0 - DBX109.7) einzelnd auswerten und in der Visualisierung für jeden Fehler einen Text hinterlegen.
    (mit den meisten Fehlern kann der Bediener sowiso nix anfangen)
    Meine Überlegung geht nun dahin die Fehlerbits als Doppelword abzufragen (DB9.DBD106 <> 0 dann Fehler), in dem Fehlertext der Visu soll dann ein Fehlercode eingebunden werden (die genaue erläuterung szeht dann in der Bedienungsanleitung)
    Und genau da stehe ich auf dem Schlauch....
    Meine Vorstellung zum Fehlercode: wenn DBX106.0 dann Code:1; wenn DBX106.1 dann Code:2; wenn DBX106.2 dann Code:3 usw.
    Ich könnte nun hingehen und für jedes der 32 Bit jeweils einen MoVE dranhängen.
    Beispielsweise:
    Code:
    // erstes Bit:
    U DB9.DBx 106.0
    L 1
    T #Fehlercode      // Integervariable
    // zweites Bit
    U DB9.DBx 106.1
    L 2
    T #Fehlercode
    // drittes Bit
    U DB9.DBx 106.2
    L 3
    T #Fehlercode
    ...
    ...
    ...
    // letztes Bit
    U DB9.DBx 109.7
    L 32
    T #Fehlercode
    Das gabze erscheint mir aber ziemlich "umständlich"
    gibts da einfacherer bzw. kürzere möglichkeiten?

    Gruß ukofumo
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.
    Zitieren Zitieren Siwarex U Fehlerauswertung  

  2. #2
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    was für nen Fehlercode gibst du aus, wenn mehrere Bits gleichzeitig kommen?
    "arbeite klug, nicht hart" - deutsches Sprichwort

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zu deinem Code:
    Dein Besispielcode funktioniert nicht, da Lade- und Transferbefehle nicht VKE-Abhängig sind. Also muß nach dem UND ein Sprung erfolgen.

    Code:
    // erstes Bit:
    L 1
    U DB9.DBx 106.0
    SPB TRAN
    // zweites Bit
    L 2
    U DB9.DBx 106.1
    SPB TRAN
    // drittes Bit
    L 3
    U DB9.DBx 106.2
    SPB TRAN
    ...
    ...
    ...
    L 0
    TRAN :T #Fehlercode
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Oups , ja Ok (war wohl heute morgen etwas früh)
    Hast recht Ralle...

    Also meine ursprüngliche Version schaute so aus:
    Code:
          U     DB9.DBX  106.0
          SPBNB M001
          L     1
          SPB   M033
    M001: U     DB9.DBX  106.1
          SPBNB M002
          L     2
          SPB   M033
    M002: U     DB9.DBX  106.2
          SPBNB M003
          L     3
          SPB   M033
    
    .....
    .....
    .....
    
    M031: U     DB9.DBX  109.7
          SPBNB M032
          L     32
          SPB   M033
    
    M032: L     0
    M033: T     #Fehlercode
    Die Version von Ralle ist da schon um einiges kürzer.
    m.E. müsste es doch irgendwie mit Pointer und oder Loopschleife auch noch um einiges kürzer gehen... (kopfkratz)
    Geändert von ukofumo (02.08.2009 um 16:31 Uhr)
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

  5. #5
    Registriert seit
    17.02.2009
    Ort
    Niederrhein
    Beiträge
    86
    Danke
    10
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab das ganze nun mal so gelöst:

    Code:
          L     DB9.DBD  106
          L     #testbit
          UD    
          T     #speicher
    
          L     #speicher
          L     0
          <>D   
          SPBN  next
          L     #errorcode
          T     #Fehlercode
    
    next: L     #errorcode
          L     32
          >I   
          SPB   exit
    
          L     #errorcode
          INC   1
          T     #errorcode
          L     #testbit
          SLD   1
          T     #testbit
          SPA   quit
    
    exit: L     1
          T     #errorcode
          T     #testbit
    
    quit: U     #reset
          SPBN  out
          L     0
          T     #Fehlercode
    out:  NOP   0
    Erläuterung dazu:
    #testbit ist eine statische Doppelword-Variable die mit 1 vorbelegt ist (Bit 0 gesetzt)
    Bei jedem Zyklus wird im #testbit das Bit jeweils um eine Stelle nach links geschoben,
    #errorcode ist ebenfalls eine statische Variable (Integer) die ebenfalls mit 1 vorbelegt ist.
    bei jedem Zyklus wird #errorcode um 1 aufaddiert.

    Ist nun sowohl im DB9.DBD106 als auch im #testbit das gleiche bit gesetzt ist die Variable #speicher nicht mehr gleich null und es wird der wert von #errorcode an die Ausgangsvariable #Fehlercode übergeben.

    Ist #errorcode größer 32 werden beide Zählvariablen wieder mit 1 vorbelegt und die chose beginnt von vorne

    Der Resetbutton der Visu der auch die einzelnen Fehlerbits zurücksetzt, setzt zum schluss die Ausgangsvariable #Fehlercode wieder zu Null

    Ich denke so könnte es gehen....

    Gruß ukofumo
    Geändert von ukofumo (02.08.2009 um 23:23 Uhr)
    Gruß ukofumo

    Es ist vollkommen egal, wie oft man im Leben hinfällt. Es ist nur wichtig, wie oft man wieder aufsteht.

Ähnliche Themen

  1. Fehlerauswertung Analogeingang
    Von eYe im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 27.07.2011, 14:50
  2. Fehlerauswertung im OB121
    Von Bensen83 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 18.02.2010, 08:49
  3. Fehlerauswertung Skalierungsblock FC 105
    Von Christoph T. im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.12.2009, 09:56
  4. siwarex
    Von ditz im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.05.2007, 07:52
  5. Antworten: 8
    Letzter Beitrag: 24.04.2006, 11:27

Stichworte

Lesezeichen

Berechtigungen

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