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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Byteweise auslesen von DINT-Werten

  1. #1
    Registriert seit
    03.02.2010
    Beiträge
    22
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    mir werden über die Profibusschnittstelle von einem Gerät Werte im DINT-Format in einem Datenbaustein zur Verfügung gestellt.

    Leider kann ich die Werte nicht direkt weiterverarbeiten, da ich sie im Wort- bzw. im Unsigned-INT-Format bräuchte.

    Kann mir jemand sagen, wie ich mir die untersten zwei Byte aus den DINT-Werten rausnehme?

    Vielen Dank

    Grüße schneijo
    Zitieren Zitieren Byteweise auslesen von DINT-Werten  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Code:
    L  "DB1".DINT_Wert
    T  #Word_Wert
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    schneijo (19.01.2011)

  4. #3
    Registriert seit
    11.09.2007
    Beiträge
    128
    Danke
    16
    Erhielt 8 Danke für 7 Beiträge

    Blinzeln

    Wenn du in AWL nicht so klar kommst, kannst du eine MOVE Box in KOP oder FUP benutzen.

    Links: Rechts:

    DINT WORD

    Die Variabeln kannst du auch beide in den selben DATENBAUSTEIN schmeißen.
    _____________________________________________
    Wer die F1 Taste kontrolliert ist ein König !!

  5. #4
    schneijo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.02.2010
    Beiträge
    22
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Harald,

    vielen Dank für die schnelle Antwort ...

    Wenn ich also den DINT-Wert lade und auf ein Wort schreibe fliegen automatisch die oberen beiden bytes weg.

    Und der Rest stimmt dann?

    Ich gehe hier über eine temporäre Variable. Passt das so?


    L "Empfdaten".diIstleistung // DINT-Wert
    T #wTemp1

    L #wTemp1
    T "12CF001".wDigitalsignal // Wort


    VG schneijo

  6. #5
    schneijo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.02.2010
    Beiträge
    22
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    AWL ist mir lieber - da gibt es was zu lernen ...

  7. #6
    Registriert seit
    11.09.2007
    Beiträge
    128
    Danke
    16
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Zitat Zitat von schneijo Beitrag anzeigen
    AWL ist mir lieber - da gibt es was zu lernen ...
    Zu lernen gibt es bei beidem....
    _____________________________________________
    Wer die F1 Taste kontrolliert ist ein König !!

  8. #7
    Registriert seit
    11.09.2007
    Beiträge
    128
    Danke
    16
    Erhielt 8 Danke für 7 Beiträge

    Blinzeln

    L "Empfdaten".diIstleistung // DINT-Wert
    T "12CF001".wDigitalsignal // Wort


    _____________________________________________
    Wer die F1 Taste kontrolliert ist ein König !!

  9. Folgender Benutzer sagt Danke zu duMMbatz für den nützlichen Beitrag:

    schneijo (19.01.2011)

  10. #8
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von schneijo Beitrag anzeigen
    Wenn ich also den DINT-Wert lade und auf ein Wort schreibe fliegen automatisch die oberen beiden bytes weg.

    Und der Rest stimmt dann?
    Exakt

    Zitat Zitat von schneijo Beitrag anzeigen
    Ich gehe hier über eine temporäre Variable. Passt das so?


    L "Empfdaten".diIstleistung // DINT-Wert
    T #wTemp1

    L #wTemp1
    T "12CF001".wDigitalsignal // Wort
    Ja, passt so. Die temporäre Variable kannste auch weglassen.

    Zitat Zitat von schneijo Beitrag anzeigen
    AWL ist mir lieber - da gibt es was zu lernen ...
    AWL ist mir auch lieber, weil Text. AWL/Text kann man hier einfacher als Beispielcode bringen als KOP/FUP.
    Am besten noch in einer CODE-Box mithilfe der [CODE]-Tags. Da gehen sogar Einrückungen.
    Code:
         L     "Empfdaten".diIstleistung        // DINT-Wert
         T     "12CF001".wDigitalsignal         // Wort
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Wenn der DINT-Wert zu groß für eine INT ist, kommt allerdings Mist dabei raus, also aufpassen oder vorher eine Wertebereichsprüfung machen!
    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

  12. #10
    Registriert seit
    11.09.2007
    Beiträge
    128
    Danke
    16
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    WORD
    (Wort)
    16
    Dualzahl

    Hexadezimalzahl

    BCD
    Dezimalzahl ohne Vorzeichen
    2#0 bis
    2#1111_1111_1111_1111
    W#16#0 bis W#16#FFFF

    C#0 bis C#999
    B#(0,0) bis B#(255,255)
    L 2#0001_0000_0000_0000

    L W#16#1000
    L word#16#1000
    L C#998
    L B#(10,20)
    L byte#(10,20)
    DWORD
    (Doppelwort)
    32
    Dualzahl


    Hexadezimal-
    zahl

    Dezimalzahl ohne Vorzeichen
    2#0 bis
    2#1111_1111_1111_1111_
    1111_1111_1111_1111
    DW#16#0000_0000 bis DW#16#FFFF_FFFF
    B#(0,0,0,0) bis
    B#(255,255,255,255)
    2#1000_0001_0001_1000_
    1011_1011_0111_1111

    L DW#16#00A2_1234
    L dword#16#00A2_1234
    L B#(1, 14, 100, 120)
    L byte#(1,14,100,120)
    INT
    (Ganzzahl)
    16
    Dezimalzahl mit Vorzeichen
    -32768 bis 32767
    L 1
    DINT
    (Ganzzahl, 32 Bit)
    32
    Dezimalzahl mit Vorzeichen
    L#-2147483648 bis L#2147483647
    L L#
    _____________________________________________
    Wer die F1 Taste kontrolliert ist ein König !!
    Zitieren Zitieren F1 ---> Datentyp  

Ähnliche Themen

  1. TCP-Verbindung Byteweise parsen
    Von CDeml im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.10.2011, 17:06
  2. Störmeldung DINT in FIFO ablegen und auslesen
    Von Viper68 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 18.02.2010, 12:50
  3. SCL byteweise XOR
    Von Gerri im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.09.2009, 16:27
  4. DINT nach INT bei positiven und ganzzahligen Werten (Frequenzmessung)
    Von poppycock im Forum Programmierstrategien
    Antworten: 9
    Letzter Beitrag: 23.07.2009, 21:28
  5. Antworten: 0
    Letzter Beitrag: 29.04.2009, 07:57

Lesezeichen

Berechtigungen

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