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

Ergebnis 1 bis 7 von 7

Thema: AWL: aus 8 Bits ein Byte machen

  1. #1
    Registriert seit
    27.02.2009
    Beiträge
    9
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin grad echt unfähig oder denke falsch. Eigentlich will nichts anderes als 8 Eingangsbits in ein Byte zu schreiben und das ganze in AWL.
    Ja, in AWL.

    Ich habe ein Bildchen gemalt im Anhang, wie ich den FB gerne aufrufen möchte.
    Wäre cool, wenn mir jemand auf die Sprünge helfen könnte (mit Erklärung am Besten)

    Tausend Dank im Voraus.
    Zitieren Zitieren AWL: aus 8 Bits ein Byte machen  

  2. #2
    Registriert seit
    24.03.2010
    Ort
    Westerwald
    Beiträge
    155
    Danke
    39
    Erhielt 13 Danke für 7 Beiträge

    Standard

    Ich sehe leider keinen Anhang, aber hier 2 möglichkeiten
    Code:
    U Bit0
    = DB1.DBX0.0
    
    U Bit1
    = DB1.DBX0.1
    
    U Bit2
    = DB1.DBX0.2
    
    U Bit3
    = DB1.DBX0.3
    
    U Bit4
    = DB1.DBX0.4
    
    U Bit5
    = DB1.DBX0.5
    
    U Bit6
    = DB1.DBX0.6
    
    U Bit7
    = DB1.DBX0.7
    
    L DB1.DBB0
    ....
    Code:
    U Bit0
    = M0.0
    
    U Bit1
    = M0.1
    
    U Bit2
    = M0.2
    
    U Bit3
    = M0.3
    
    U Bit4
    = M0.4
    
    U Bit5
    = M0.5
    
    U Bit6
    = M0.6
    
    U Bit7
    = M0.7
    
    L MB0
    ....

    Wenn die Bits nebeneinander liegen, zB in einem Eingangsbyte, kann man es auch so machen:

    Code:
    L EB0
    T MB0
    Gruß Florian

    Programmierer in sechster Generation

  3. #3
    Registriert seit
    15.05.2015
    Beiträge
    79
    Danke
    2
    Erhielt 17 Danke für 17 Beiträge

    Standard

    Ich würd einen FC machen den du dann öfter verwenden kannst. Bin zwar aus der Classic Welt, denke aber das müsste in TIA auch gehen.

    Byte im Temp Bereich des FCs anlegen und:

    L P#Temp_Byte
    LAR1
    U In_Bit_0
    = [AR1,P#0.0]
    U In_Bit_1
    = [AR1,P#0.1]
    ..
    ..
    L Temp_Byte
    T Byte_Out

  4. #4
    Killermense ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2009
    Beiträge
    9
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Bit2Byte.png
    Anscheinend hat der Bild Upload nicht geklappt

  5. #5
    Killermense ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2009
    Beiträge
    9
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Alles klar, vielen Dank. Ich habe beide Vorschläge verstanden.

  6. #6
    Registriert seit
    17.09.2008
    Beiträge
    88
    Danke
    16
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Wenn du im TIA Arbeitest würde ich die Slice Funktion verwenden
    Code:
          A     #Bit1
          =     #Byte.%X0
          A     #Bit2
          =     #Byte.%X1
          A     #Bit3
          =     #Byte.%X2
          A     #Bit4
          =     #Byte.%X3
          A     #Bit5
          =     #Byte.%X4
          A     #Bit6
          =     #Byte.%X5
          A     #Bit7
          =     #Byte.%X6
          A     #Bit8
          =     #Byte.%X7

  7. #7
    Registriert seit
    10.03.2015
    Beiträge
    5
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich würde im TIA Portal wie El Cattivo vorgeschlagen den Slice Zugrif nehmen und das als FC programmieren, der als Funktionswert nicht VOID sondern das Byte liefert.
    Das hat den Vorteil, dass ich in SCL das Ergebnis auch in einem Ausdruck verwenden kann.
    z.B.

    IF "Bits_to_Byte"(in_Bit1 := #x1,
    in_Bit2 := #x2,
    in_Bit3 := #x3,
    in_Bit4 := #x4,
    in_Bit5 := #x5,
    in_Bit6 := #x6,
    in_Bit7 := #x7,
    in_Bit8 := #x <>0 THEN
    ;
    END_IF;

    In den anderen Sprachen schadet es auch nichts.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 04.01.2014, 16:27
  2. Status-Byte aus Bits zusammen setzen
    Von FinalMistery im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 19.09.2011, 13:28
  3. Bits aus Byte-Array holen
    Von MW im Forum Hochsprachen - OPC
    Antworten: 7
    Letzter Beitrag: 11.07.2007, 20:29
  4. Bits aus Byte
    Von Reto im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 30.01.2007, 23:53
  5. Bits in temporäres Byte mappen und gesetzte Bits zählen
    Von yetibrain im Forum PC- und Netzwerktechnik
    Antworten: 3
    Letzter Beitrag: 19.02.2005, 16:31

Lesezeichen

Berechtigungen

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