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

Ergebnis 1 bis 8 von 8

Thema: Zugreifen auf 4 Bit eines Eingangsworts

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Habe ein relativ einfaches Problem, komme aber nicht so richtig weiter:

    Bekomme von einem Motorstarter (von Phoenix Contact, aus der Inline-Familie) ein Eingangs-Byte mit verschiedenen Status-Informationen. Davon stehen die niderwertigen 4 Bit (0...3) für ein codiertes Verhältnis von aktuellem Motorstrom zum parametrierten Nennstrom. Das codierte Ergebnis liegt als eine Ganzzahl zwischen 0 und 15 vor. Nun also meine Frage:

    Wie kann ich auf eine 4-Bit-Zahl zugreifen? Welcher Datentyp ist dazu geeignet?

    Habe auf die Schnelle weder einen geeigneten Datentyp (das nächsthöhere nach BOOL ist ja INT -> 8 Bit) noch geeignete Zugriffsbefehle (LEBxx lädt das ganze Byte) gefunden.

    Oder kann ich evtl. das Ganze Byte laden und dann nur die unteren 4 Bit weiterverarbeiten (die oberen Bits auf 0 setzen???) ? Welche Möglichkeiten habe ich da? komme ich evtl. mit Zeigern oder Arrays weiter (Zeiger erscheinen mir zu speicherintensiv zu sein)?

    Würde mich über zahlreiche Antworten freuen. Vielen Dank im Voraus
    Zitieren Zitieren Zugreifen auf 4 Bit eines Eingangsworts  

  2. #2
    Registriert seit
    09.01.2006
    Beiträge
    31
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    warum nicht lade das ganze EB und maskiere die anderen 4 Bits aus dem Byte aus

  3. #3
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    Code:
    L    EB 0
    L    B#16#A
    UW
    T    MB 0
    Nun müsste eigentlich im MB 0 ein Wert von 0 bis 15 stehen

  4. #4
    Registriert seit
    18.09.2004
    Ort
    Münsterland/NRW
    Beiträge
    4.718
    Danke
    729
    Erhielt 1.158 Danke für 969 Beiträge

    Standard

    Ich würde B#16#F anstatt B#16#A schreiben.

    mfg
    marlob

  5. #5
    Anonymous Gast

    Standard

    Was bedeutet A bzw. F?

    Und müsste ich da nicht eigentlich 15 (=00001111) nehmen?

  6. #6
    Registriert seit
    09.06.2005
    Ort
    Mülheim a. d. Ruhr
    Beiträge
    265
    Danke
    11
    Erhielt 13 Danke für 11 Beiträge

    Standard

    15(dez) == f(hex)

    EDIT: a(hex) == 10(dez) == 1010(bin)
    .Punkt!

  7. #7
    Anonymous Gast

    Standard

    Danke

  8. #8
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Anonymous
    Was bedeutet A bzw. F?

    Und müsste ich da nicht eigentlich 15 (=00001111) nehmen?
    ups
    stimmt, natürlich muss es B#16#F sein

Ähnliche Themen

  1. SCL: Auf Bits eines Word zugreifen.
    Von Aksels im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 28.10.2011, 17:10
  2. Mit C# auf SPS zugreifen
    Von Red-Sh4nks im Forum Hochsprachen - OPC
    Antworten: 22
    Letzter Beitrag: 04.06.2010, 18:10
  3. IN SCL auf dbx zugreifen
    Von Bensen83 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 14.03.2010, 13:11
  4. auf DB in SCL zugreifen
    Von Bensen83 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 18.02.2010, 12:33
  5. Antworten: 4
    Letzter Beitrag: 28.08.2007, 11:02

Lesezeichen

Berechtigungen

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