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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Abfangen von falscher Eingabe

  1. #1
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe gerade eine kleine S7 Blockade.
    Ich habe einen FB mit 10 Boolsche IN-Variablen. Von diesen Inputs darf jeweils nur einer aktiv sein. Sobald mehr als zwei "1" sind, soll ein Error_bit gesetzt werden.
    Nun will mir nix richtiges einfallen, wie ich dies mit wenig code effizient hinbekommen soll. Meine erste Idee, das mit einem XOR mit 10 Eingängen zu lösen, brachte leider keinen Erfolg ( Ausgang ist bei einer ungeraden Anzahl an geschalteten Eingängen leider auch immer "1")
    Vielleicht weiß einer von euch ja weiter?

    Danke
    Zitieren Zitieren Abfangen von falscher Eingabe  

  2. #2
    Registriert seit
    20.02.2009
    Ort
    Leonberg (D) / Samara (RF)
    Beiträge
    24
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Beckx-net!

    Mach Dir aus den 10Bit ein Word,

    dann mit Sprungliste verteilen und alles was nicht passt -> letzter Eintrag -> Errorbit setzen BausteinEnde-

    Es gibt sicher elegantere Lösungen, aber so kannst Du u.U gleich zwei Fliegen mit einer Klappe schlagen.

    Gruß Thomas

  3. #3
    Beckx-net ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Daran habe ich in der Tat auch schon gedacht, habe aber auch so ein Gefühl, dass das ganze einfacher/effizienter gehen kann.
    Aber danke für die Antwort

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    loop über die inputs und einsen zählen. grundkenntnisse indirekter. adressierung vorrausgesetzt
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    20.02.2009
    Ort
    Leonberg (D) / Samara (RF)
    Beiträge
    24
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nich dafür!

  6. #6
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von t-poke Beitrag anzeigen
    Nich dafür!
    das sind vielleicht 10 zeilen code, was spricht dagegen?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    Registriert seit
    20.02.2009
    Ort
    Leonberg (D) / Samara (RF)
    Beiträge
    24
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo 4L,

    das war nicht für Dich gedacht!

    Thomas

  8. #8
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Also wenn die Eingangsdatenbits im Wort vorliegen:

    Code:
          L     #IN_WORD
          DTR   
          L     DW#16#7FFFFF
          UD    
          L     L#0
          <>D   
          =     #Fehler
    Das Bit #Fehler ist immer dann gesetzt wenn mehr als ein Bit im Wort gesetzt ist.

    Das wär doch mal eine schöne Prüfungsfrage. Wie und wieso funktioniert das?
    Geändert von Thomas_v2.1 (05.09.2009 um 22:28 Uhr) Grund: ITD entfernt

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

    Beckx-net (18.09.2009),borromeus (15.09.2009),Servernexus (21.11.2011)

  10. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Cool

    Das geht noch kürzer
    Code:
          L     #IN_WORD
          DTR   
          UD    DW#16#7FFFFF
          U     <>0
          =     #Fehler
    Zitieren Zitieren Optimierung  

  11. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    Beckx-net (18.09.2009),Servernexus (21.11.2011)

  12. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Also wenn die Eingangsdatenbits im Wort vorliegen:

    Code:
          L     #IN_WORD
          DTR   
          L     DW#16#7FFFFF
          UD    
          L     L#0
          <>D   
          =     #Fehler
    Das Bit #Fehler ist immer dann gesetzt wenn mehr als ein Bit im Wort gesetzt ist.

    Das wär doch mal eine schöne Prüfungsfrage. Wie und wieso funktioniert das?
    Da wär ich von alleine auch nicht drauf gekommen, aber man kann das schon rausbekommen.

    Die Auflösung gehört auch irgendwann mal dazu, also bring ich das mal, hoffentlich ein wenig verständlich.

    Ansatz:
    Eine 32Bit-Gleitpunktzahl nach IEEE754 besteht aus 1Bit Vorzeichen + 8Bit Exponent + 23 Bit Mantisse.

    Formel: x = s*m*b^e

    Vorzeichen s (fast ausnahmslos 1 Bit)
    Basis b (bei normalisierten Gleitkommazahlen nach IEEE 754 ist b = 2)
    Exponent e (r Bits), nicht zu verwechseln mit dem „biased exponent“ bzw. der Charakteristik
    Mantisse m (p Bits), manchmal als Signifikant bezeichnet
    23 Bit Mantisse => 2#0000_0000_0111_1111_1111_1111_1111_1111 oder DW#16#007FFFFF

    Alle Zahlen, bei denen nur ein Bit gesetzt ist (1,2,4,8,16,32,...) haben eine "leere" Mantisse, denn diese Zahlen "stecken" sozusagen komplett im Exponenten, da b=2.

    Schöne Übersicht zum Thema: http://de.wikipedia.org/wiki/IEEE_754
    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

  13. Folgende 6 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    Beckx-net (23.10.2009),borromeus (15.09.2009),drmicha (22.08.2011),Jochen Kühner (11.12.2010),Panzerknacker (06.09.2009),RGerlach (21.11.2011)

Ähnliche Themen

  1. Mobotix-Kamera-Stream abfangen
    Von merlin im Forum CODESYS und IEC61131
    Antworten: 0
    Letzter Beitrag: 24.09.2011, 20:29
  2. Gebersprung abfangen
    Von tisler im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 13.07.2010, 12:49
  3. Analog In Baugruppe Fehler abfangen
    Von LukeSkywalker im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.07.2009, 07:38
  4. Negative Zahlen abfangen in Step 5
    Von Idlav im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 25.04.2008, 09:51
  5. Profibus DP - SPS - Anlauf und Busausfall abfangen
    Von CrazyCat im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 12.07.2006, 10:58

Lesezeichen

Berechtigungen

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