Step 7 Hex Zahl wandeln

Midav

Level-1
Beiträge
30
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, wünsche allen noch alles Gute für 2017


Meine Frage: gibt es einen automatischen Wandler- Umrechner von Dezimalzahlen in HEX Zahlen


zum Beispiel PEW256 ist ja w#16#100 für anlegen der PEW oder PAW Adresse an den SFC 14, SFC 15



Grüsse Michael
 
Nein so etwas gibt es nicht, da es auch nichts zu wandeln oder umrechnen gibt.
Hex sowie Dez ist schließlich nur die Darstellung einer (der selben) Binärfolge so wie sie von der SPS verarbeitet/gespeichert wird.

Beispiel : 2#10110110 kann als 8#266, 10#182 oder 16#B6 oder, oder, oder... dargestellt werden.
Dem ganzen liegt keine Wandlung zu Grunde, ist immer noch die selbe Binärfolge.
Ist in etwa als ob man das Wort "Haus" mit verschiedenen Zeichensätzen schreiben würde, sieht anders aus, das Haus hat sich aber nicht geändert.

Nun zu deinem Problem.
SFC14/15 möchten keine HEX-Zahl haben sondern deine Adresse (256) als Binärfolge.
Dafür dient der Typ WORD. Da ein WORD eine Binärfolge ist und keine Zahl darstellt, verwendet Step7 die HEX-Darstellung da diese bei der Darstellung von Binärfolgen am gebräuchlichsten ist.

Wenn du nur eine 10#256 so aufbereiten willst dass du diese an den SFC14/15 übergeben kannst, dann verwende einen einfachen MOVE um die Zahl auf eine WORD-Variable zu kopieren.
Wenn du aus "PEW256" zuerst die 256 rausholen willst um diese zu übergeben, dann wird es komplizierter.

PS.: Du kannst die Darstellung sogar während dem Beobachten zwischen Hex, Dez, Real umschalten in dem du Rechts auf den Datenpunkt klickst, dann "Darstellung" und dann das entsprechende wählst.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich bin mir nicht sicher ob du nach einem Weg suchst die Adressen dynamisch zur Laufzeit zu ändern, oder einen Weg suchst die Konfiguration in Zukunft gleich beim ersten mal richtig zu machen.
Für letzteres ( und falls du nicht gut im Kopfrechnen bist) gibt es in Windows den Taschenrechner der im Modus Programmierer die Wandlung von Dez in Hex vornehmen kann. Weiterhin gibt es in Excel die Funktion DEZINHEX() die das gleiche macht.

Wenn das ganze dynamisch geschehen soll, geht der Weg den RONIN beschrieben hat. Andererseits wenn es immer die gleichen Andressen sein sollen zwischen denen hin und hergewechselt wird, kannst du auch die Hex- Werte in einem DB abspeichern und dann den benötigten Wert raussuchen.
 
Zuletzt bearbeitet:
Da ich das schon zu oft falsch hatte, nutze ich in Excel die Funktion DEZINHEX() um mir die Werte die ich brauche ausrechnen zu lassen
Der Windows-Taschenrechner tut's auch.

Wenn man aus PEW256 die Adresse also 256 rausholen will, dann kann man das folgendermaßen machen.
FC erstellen mit Eingang "PEW" vom Typ "Pointer", Ausgang "LADDR" vom Typ "WORD" und folgenden Code reinschreiben.
Code:
      L     P##PEW                      //Adresse des FC-IN-Parameters IN_PEW (Typ POINTER)
      LAR1  
      L     D [AR1,P#2.0]               //Speicherbereich + Adresse aus POINTER
      SRD   3                           //Bitadresse 1234.x --> Byteadresse 1234
      T     #LADDR
"PEW256" wird dem FC so als Pointer übergeben was das extrahieren der Adresse (256) ermöglicht. Details Siehe HIER.
Die 256 wird dann als WORD ausgegeben was vom SFC14/15 geschluckt wird, mit hex hat das wie gesagt nix zu tun.
 
Zuletzt bearbeitet:
Nein so etwas gibt es nicht, da es auch nichts zu wandeln oder umrechnen gibt.
Hex sowie Dez ist schließlich nur eine Interpretation einer (der selben) Binärfolge so wie sie von der SPS verarbeitet/gespeichert wird.

... interpretiert
... zu interpretieren...
Kleiner Einspruch,

Hex, Dez, Binär usw. sind nicht Interpretation sondern Darstellung des Bitmusters.
Interpretation (=Auslegung) sind die Formate INT, Real ...
;)
 
Hallo midav,
ganz einfach online in Status Variablen gehen Z.B. MW400 2 Mal eingeben einmal in Ansicht Hex und Dez. Dann einfach bei Dez. deine 256 eingeben und parallel siehst du es auch in Hex Darstellung.
 
Zurück
Oben