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

Ergebnis 1 bis 9 von 9

Thema: HEX Konvertierung?

  1. #1
    Registriert seit
    27.05.2009
    Beiträge
    20
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Habe mal wieder ein (hoffentlich) kleines Problemchen! Ich habe einen HEX Wert, den ich gerne umwandeln würde in beispielsweise INT. Gibts da n Befehl für in TWIN CAT oder muss ich mir das selber zusammenrechnen?
    Für BOOL Werte zu INT gibts ja BOOL_TO_INT... Habe im Infosys von Beckhoff und in einigen Dokus gestöbert und nix gefunden, vielleicht kann mir ja hier mal wieder jemand aus der Patsche helfen
    Zitieren Zitieren HEX Konvertierung?  

  2. #2
    Codesys_123 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2009
    Beiträge
    20
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich muss mich ein wenig berichtigen, bzw ergänzen:

    Ich habe eine SYSTEMTIME die als TIMESTRUCT vorliegt. Ich möchte jetzt z.B. den Wert "systime.wHour", also den Wert für die Stunden, als INT Wert haben, bzw nich als HEX Wert. Im TIMESTRUCT sind die ganzen Werte aber Wörter (WORD). Wie bekomme ich da ne Umwandlung hin?!

    WORD_TO_INT geht komischerweise nich oO

    Habe das so geschrieben:

    "VAR
    timehour_int:INT;
    END_VAR"

    PROGRAM time
    "timerhour_int := WORD_TO_INT(systime.wHour);"

    Bekomme auch ne Warnung
    "Typ 'INT' des Operanden ist nicht gleich Typ 'WORD' der Konvertierung! Für die Konvertierung wird INT verwendet.

    Mache ich was falsch?!

  3. #3
    Registriert seit
    05.06.2009
    Beiträge
    24
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Mh, bei mir klappts.

    Code:
    PROGRAM MAIN
    VAR
        bStart            :    BOOL;
        timehour_int    :    INT;
        fbGetTime       :    NT_GetTime;
    END_VAR
    
    fbGetTime(
        NETID        := '',
        START       := bStart,
        TMOUT      := DEFAULT_ADS_TIMEOUT,
        BUSY         => ,
        ERR           => ,
        ERRID        => ,
        TIMESTR    => );
    
    timehour_int := WORD_TO_INT(fbGetTime.TIMESTR.wHour);
    Hatte erst die Konvertierung falsch herum, INT_TO_WORD. Da bekam ich auch die gleiche Meldung.

    Ansonsten gibt es außer den Typenkonvertierungen eigentlich auch keine direkte Konvertierung zwischen hex und dezimal, oder?! Wenn man mit 16# eine Zahl vorgibt, wird sie hexadezimal ausgewertet, 2# binär und ohne dezimal.

  4. #4
    Registriert seit
    05.06.2009
    Beiträge
    24
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Ne, meine Fehlermeldung war doch anders, genau andersherum.

    Typ Word des Operanden ist nicht gleich Typ int der Konvertierung...

    Sorry, dann weiß ich auch nicht

  5. Folgender Benutzer sagt Danke zu DirkS1017 für den nützlichen Beitrag:

    Codesys_123 (09.06.2009)

  6. #5
    Codesys_123 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2009
    Beiträge
    20
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Schade, schade

    hatte dein Programm auch gerade mal testweise ausprobiert.
    Bekomme zwar keine Fehlermeldung, aber der Wert bleibt trotzdem HEX... sprich "16#0000" anstatt "0" wenn ich mir das im online-modus anschaue...

  7. #6
    Registriert seit
    05.06.2009
    Beiträge
    24
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Dann klick mal in der Onlineansicht oben im Deklarationsteil mit der rechten Maustaste und wähle Dezimal aus. Dann solltest du es als Dezimalzahl sehen können?!

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

    Codesys_123 (09.06.2009)

  9. #7
    Codesys_123 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.05.2009
    Beiträge
    20
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ...hatte ich erwähnt das ich noch nich so lange mit TWIN CAT arbeite?

    Also das klappt ja Wenn ich das weiter verarbeiten möchte, ist das aber dann auch INT? Werds auf jeden Fall mal probieren! Schönen Dank nochmal!

    Wenn ich nich weiterkomme schreib ich nochmal kurz!

  10. #8
    Registriert seit
    05.06.2009
    Beiträge
    24
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    NP. Dafür ist das Forum da.

    Die Interpretation hängt vom Variablentyp ab. Bei einem INT z.B. geht der Wertebereich von 32767 bis -32768. Die Negativ-Zahlen fang ab 16#8000 (-32768 ) an und gehen dann bis 16#FFFF (-1). Was also z.B -32760 bei INT, ist bei WORD 32776. Binär steht aber bei beiden das Gleiche, wird nur unterschiedlich ausgewertet.

    Und da kommen dann die Konvertierungen ins Spiel, wenn man sich mit den Bereichsüberschreitungen nicht so detailiert befassen möchte.

    Die Onlineanzeige ist davon nochmal losgelöst. Dort kannst Du dir dann auch bei einem INT-Wert immer den dazugehörigen HEX-Wert anzeigen lassen, also den Speicherinhalt quasi.

  11. Folgender Benutzer sagt Danke zu DirkS1017 für den nützlichen Beitrag:

    Codesys_123 (09.06.2009)

  12. #9
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von DirkS1017 Beitrag anzeigen
    NP. ...

    Die Onlineanzeige ist davon nochmal losgelöst. Dort kannst Du dir dann auch bei einem INT-Wert immer den dazugehörigen HEX-Wert anzeigen lassen, also den Speicherinhalt quasi.
    Genau genommen hast Du ein gewisses Bitmuster an einer Speicherstelle. Das wird dann gemäss des Datentyps in den Operationen nach mathematischen Regeln durch das Programm ausgewertet. Das macht der Computer, ohne dass Du was siehst.

    Wenn Du dann wissen willst, was das Bitmuster nun eigentlich darstellt, welchen Wert es repräsentiert, wandelt das CoDeSys in einen String, der auf dem Display angezeigt wird.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren String  

Ähnliche Themen

  1. Konvertierung zu #TOD
    Von maccap im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.07.2014, 14:01
  2. S5 konvertierung
    Von bresner1 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.07.2008, 11:01
  3. Konvertierung
    Von mitchih im Forum HMI
    Antworten: 1
    Letzter Beitrag: 23.02.2008, 02:20
  4. konvertierung von S5 auf S7
    Von leon79 im Forum Simatic
    Antworten: 30
    Letzter Beitrag: 17.02.2007, 22:08
  5. Konvertierung S7 200 zu S7 300?
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 01.02.2006, 10:14

Lesezeichen

Berechtigungen

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