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

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 47

Thema: Zerlegen eines DWORD in BYTE und wieder zusammensetzen

  1. #31
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Gerri:
    was soll das sein ?
    Erstmal : nicht "L DW" sondern "L DBD"
    Und dann : beim Zusammensetzen nicht "UD" sondern "OD"

    Gruß
    Larry

  2. #32
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    DW war nur meine Bezeichnung für die Doppelword-Variable. U du hast recht OD!
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  3. #33
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    du schiebst die bytes nach links, dadurch werden die bits der bytes die du nicht benötigst null.
    Anschliessend schiebst du das byte in die andere Richtung und schreibst den Wert in das benötigte byte

    zb. Byte 3 ermitteln:

    1111_1111_1111_1111_1111_1111_1111_1111
    SLD 8

    -> 1111_1111_1111_1111_1111_1111_0000_0000
    SRD 24

    -> 0000_0000_0000_0000_0000_0000_1111_1111

    das Byte 3 ist nun selektiert.

    in der anderen Richtung schiebt man das byte and die gewünschte stelle des Doppelworts und "fügt es mit" OD "hinzu"
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  4. #34
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Frage

    Zitat Zitat von Gerri Beitrag anzeigen
    du schiebst die bytes nach links, dadurch werden die bits der bytes die du nicht benötigst null.
    Warum muß man Bits, die man nicht benötigt, extra nullen?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #35
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von erzteufele Beitrag anzeigen
    ich grübel seit lägerem ab und zu mal darüber 16 bit´s zu einem word zu machen... bisher is mir nichts gescheites dazu eingefallen

    wie würde das denn gehn *ganz lieb schau*
    Hier mal ein Baustein, der genau das macht, sogar ohne Schmiermerker.
    Funktioniert allerdings nicht als FC, sondern nur als FB und benötigt dadurch noch einen IDB.
    Code:
    FUNCTION_BLOCK "PackBits"
    TITLE =Dieser FB packt 16 Bits in ein Word
    //#Bit_0 muß der erste IN-Parameter sein, #Bit_1 .. #Bit_15 müssen direkt folgen!
    //Der Programmcode funktioniert nur als FB, nicht als FC!
    AUTHOR : PN_DP
    VERSION : 0.1
    
    VAR_INPUT
      Bit_0 : BOOL ;
      Bit_1 : BOOL ;
      Bit_2 : BOOL ;
      Bit_3 : BOOL ;
      Bit_4 : BOOL ;
      Bit_5 : BOOL ;
      Bit_6 : BOOL ;
      Bit_7 : BOOL ;
      Bit_8 : BOOL ;
      Bit_9 : BOOL ;
      Bit_10 : BOOL ;
      Bit_11 : BOOL ;
      Bit_12 : BOOL ;
      Bit_13 : BOOL ;
      Bit_14 : BOOL ;
      Bit_15 : BOOL ;
    END_VAR
    VAR_OUTPUT
      WordVal : WORD ;
    END_VAR
    BEGIN
    NETWORK
    TITLE =Eingangsbits in Ausgangsword übertragen
    
          L     P##Bit_0;      //Adresse des ersten IN-Parameters
          LAR1  ;
          L     W [AR1,P#0.0]; //alle 16 Bool-IN lesen
          TAW   ;              //-> Big Endian
          T     #WordVal;      //auf Ausgang schreiben
    
    END_FUNCTION_BLOCK
    Doch für diese simple Sache extra einen Baustein einsetzen?
    Da ist ja alleine der Code für den Baustein-Aufruf ein vielfaches der eigentlichen Funktion.
    Doch OK, es ist natürlich besser lesbar und die Chancen für Tippfehler sind geringer.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet
    Zitieren Zitieren FB PackBits  

  6. #36
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    773
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    was passiert wenn man einen Wert der grösser als ein byte ist auf ein byte transferiert? Bleiben die Bits die nicht verwendet werden (also vom nächst höheren byte) unberücsichtigt.
    Ehrlich gesagt hab ich das noch nie durchdacht dass das so ist
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  7. #37
    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

    Zitat Zitat von Gerri Beitrag anzeigen
    was passiert wenn man einen Wert der grösser als ein byte ist auf ein byte transferiert? Bleiben die Bits die nicht verwendet werden (also vom nächst höheren byte) unberücsichtigt.
    Ehrlich gesagt hab ich das noch nie durchdacht dass das so ist
    Genau so ist es, wenn du ein DWord auf ein Byte schreibst, wird nur das niederwertigste Byte des DWord in das Byte geschrieben, für den Rest ist ja kein Platz, der fällt also in den Gulli.
    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

  8. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Gerri (29.09.2010)

  9. #38
    Registriert seit
    26.09.2010
    Beiträge
    64
    Danke
    9
    Erhielt 12 Danke für 7 Beiträge

    Standard

    Hallo
    Eine weitere Variante
    Angehängte Grafiken Angehängte Grafiken

  10. #39
    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

    Zitat Zitat von Waldi1954 Beitrag anzeigen
    Hallo
    Eine weitere Variante
    ok, aber LD 0 ist häßlich. Besser wäre indir. Adressierung.
    Geändert von Ralle (29.09.2010 um 09:42 Uhr)
    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

  11. #40
    Registriert seit
    26.09.2010
    Beiträge
    64
    Danke
    9
    Erhielt 12 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    warum einfach wenns auch kompliziert geht?
    Was meinst du zu diesem Beispiel?
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: jpg DW.jpg (62,4 KB, 38x aufgerufen)

Ähnliche Themen

  1. Quersumme eines Byte,WORD,DWORD
    Von Susi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 07.04.2011, 16:19
  2. Auslesen eines Byte aus einem DWORD (SCL)
    Von tahren im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.06.2010, 12:01
  3. DWORD to Byte
    Von hank12 im Forum Simatic
    Antworten: 19
    Letzter Beitrag: 05.05.2009, 07:44
  4. byte in word / dword umwandeln
    Von Gerri im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 03.07.2008, 14:31
  5. Dword zu Byte, oder ähnlich....
    Von Anonymous im Forum PC- und Netzwerktechnik
    Antworten: 2
    Letzter Beitrag: 11.11.2005, 10:56

Lesezeichen

Berechtigungen

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