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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 47

Thema: Zerlegen eines DWORD in BYTE und wieder zusammensetzen

  1. #21
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.269
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von erzteufele Beitrag anzeigen
    moin
    wenn ihr grad so schön dabei seid *grins*

    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*
    Im einfachsten Fall, indem du mit einem MW arbeitest. Da kannst du direkt auf die Bits und das MW zugreifen. Ansonsten in einem FC/FB über indirekte Adressierung. Entweder du legst ein Temp-DWord an und greifst über indir. Adressierung auf die einzelnen Bits des DWord zu oder umgekehrt, di legst 16 Temp-Bool hintereinander an (Wordgrenzen beachten!) und greifst dann über indir. Adressierung (siehe FAQ) auf das Word zu. Welche Variante der indir. Adressierung du nutzt hängt dabei nur davon ab, wie oft du die Bits oder das Word benötigst, welches öfter verwendet wird kommt direkt in den Temp-Bereich.

    Eine weitere Möglichkeit ist SCL und der AT-Operator. Da kann man einer Variable unterschiedliche Sichten zuordnen, also auf ein Word, dessen Bytes oder auch Bits schauen.
    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

  2. #22
    Atlas ist offline Benutzer
    Themenstarter
    Registriert seit
    28.06.2007
    Beiträge
    63
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Guten Morgen!
    Mal eine Frage: wozu soll dieses Zerlegen eines REAL in 4 BYTE gut sein?
    Zitat Zitat von vierlagig Beitrag anzeigen
    mögliche anwendung: bytweise versenden ... über nen cp341 z.b.
    Genau dafür!


    Zitat Zitat von erzteufele Beitrag anzeigen
    moin
    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
    Ich habe fertige und getestete Bausteine die dir aus 2 BYTES ein WORD machen und umgedreht. Allerdings kann ich Dir den Code dafür erst heute abend posten wenn dir das auch hilft...

    Ansonsten kannst Du jedes einzelne BIT in einem WORD welches z.B. im DB1 auf Adresse 0 steht über DB1.DBX0.1 bis DB1.DBX1.0 direkt adressieren. Das muss dann aber immer manuell für jedes WORD programmiert werden.
    Geändert von Atlas (28.09.2010 um 09:11 Uhr)

  3. #23
    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 Atlas Beitrag anzeigen
    Genau dafür!
    meine glaskugel ist aus der reparatur zurück und funktioniert offensichtlich eimerfreistens
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #24
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.269
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    meine glaskugel ist aus der reparatur zurück und funktioniert offensichtlich eimerfreistens
    4L, jetzt bin ich aber beruhigt, deine letzten Posts heute ganz sehr früh haben mich etwas verunsichert.
    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

  5. #25
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.338
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    16 Bit in ein Word? War die Frage tatsächlich ernst gemeint?
    Dann vielleicht so:
    Code:
    L MW222      // enthält M223.0 (Bit0) ... M222.7 (Bit15)
    T #Wordwert
    Für solche Fälle eignet sich ein Schmiermerkerbereich. (Temp geht auch, aber nur in SCL durchgehend symbolisch)
    Code:
    TmpUnion_Bit24	M     220.0	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit25	M     220.1	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit26	M     220.2	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit27	M     220.3	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit28	M     220.4	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit29	M     220.5	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit30	M     220.6	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit31	M     220.7	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit16	M     221.0	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit17	M     221.1	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit18	M     221.2	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit19	M     221.3	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit20	M     221.4	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit21	M     221.5	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit22	M     221.6	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit23	M     221.7	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit8	M     222.0	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit9	M     222.1	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit10	M     222.2	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit11	M     222.3	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit12	M     222.4	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit13	M     222.5	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit14	M     222.6	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit15	M     222.7	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit0	M     223.0	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit1	M     223.1	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit2	M     223.2	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit3	M     223.3	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit4	M     223.4	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit5	M     223.5	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit6	M     223.6	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_Bit7	M     223.7	BOOL	temporäres DWord für Zugriff auf .0 ... .31
    TmpUnion_HH_B	MB    220	BYTE	temporäres DWord Bits .24 ... .31
    TmpUnion_HL_B	MB    221	BYTE	temporäres DWord Bits .16 ... .23
    TmpUnion_LH_B	MB    222	BYTE	temporäres DWord Bits .8 ... .15
    TmpUnion_LL_B	MB    223	BYTE	temporäres DWord Bits .0 ... .7
    TmpUnion_H_W	MW    220	WORD	temporäres DWord Bits .16 ... .31
    TmpUnion_L_W	MW    222	WORD	temporäres DWord Bits .0 ... .15
    TmpUnion_DW	MD    220	DWORD	temporäres DWord Bits .0 ... .31
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #26
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.338
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Zitat Zitat von Atlas Beitrag anzeigen
    Genau dafür!
    Na, dann bin ich auch beruhigt, daß Du weißt was Du tust.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #27
    Registriert seit
    19.11.2008
    Ort
    Schweigen am Weintor
    Beiträge
    707
    Danke
    191
    Erhielt 161 Danke für 92 Beiträge

    Standard

    @ralle ja immoment mach ich das direkt über eine db word direkt auf die einzelnen bits möchte des aber gerne indirekt machen in einem fb um dann noch einen timer dazuzubauen ... (für fehlermeldungen von zylindern) mach des ziemlich simpel ein die einzelnen bit´s sind fehler und werden dann word weiße verglichen erst wenn das wort dann unverändert über längere zeit bleibt wird das word an´s panel gesendet.

    und das mit das word auf ne temp legen sagt mir sogar grad was muss mal schauen

    auf den code von atlas bin ich trozdem gespannt

  8. #28
    Registriert seit
    13.10.2007
    Beiträge
    12.067
    Danke
    2.797
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    eimerfreistens
    damit ich auch alles verstehe in diesen Thread, was heißt den dieses Wort ? vlt. Freier Eimer?
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  9. #29
    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 Helmut_von_der_Reparatur Beitrag anzeigen
    damit ich auch alles verstehe in diesen Thread, was heißt den dieses Wort ? vlt. Freier Eimer?
    einwandfrei
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    rostiger Nagel (28.09.2010)

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    // DWORD -> BYTE

    L DW
    SLD 24
    SRD 24
    T Byte_1

    L DW
    SLD 16
    SRD 24
    T Byte_2

    L DW
    SLD 8
    SRD 24
    T Byte_3

    L DW
    SRD 24
    T Byte_4

    // BYTE -> DWORD

    L Byte_4
    SLD 24
    T DW

    L Byte_3
    SLD 16
    UD DW
    T DW

    L Byte_2
    SLD 8
    UD DW
    T DW

    L Byte_1
    UD DW
    T DW
    irgendetwas ist ja immer...
    ING. Gerald Miedler

Ä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
  •