Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

CASE ANWEISUNG mit Hex Variablen

schneider
2006-06-20
2006-06-21
  • schneider - 2006-06-20

    Hallo,

    ich lese von einem CAN-Bus vierstellige Fehlernachrichten in hex aus.

    Ist es möglich diese hexzahlen direkt als Bedingung in einer CASE Struktur abzufangen. Bzw. generell möglich diese zu konvertieren und wenigstens als DINT Wert in CASE abzufragen ?

    MfG

    Tobias Ruf

     
  • Erik Böhm - 2006-06-21

    Hallo

    Wenn ich dich richtig verstehe, dann ist eine 4stellige HEX-Zahl zwischen

    16#0000 und 16#FFFF. Die case Anweisung kann aber nur den Bereich bis 16#7FFF (0-32767).

    Die Antwort ist genau so einfach wie unbefriedigend:

    Wenn deine Nachrichten in diesem Bereich bleiben, dann gehts. Ansonsten nicht.

    Als Umweg könntest du den empfangenen Wert in High und Low-Byte trennen und 2 verschachtelte Case benutzen.

    Also z.B.

    case byHighByte of

    16#FF:

      case byLowByte of
    
         16#FF:
    
            ; (* Anweisungen *)
    
      end_case
    

    end_case

    MfG

    Erik

     

Log in to post a comment.