-> Hier kostenlos registrieren
Hallo zusammen,
irgendwie sitze ich hier grad auf dem Schlauch und komme nicht weiter, vielleicht könnt ihr mir helfen:
Mit einer S7-226 (6ES7216-2AD23-0XB0) möchte ich einen Datenstring an einen Servoantrieb senden.
Zur Berechnung der Prüfsumme muss der Wert meiner Variable (welche im Datenstring übertragen wird) in HEX vorliegen.
Bei der Berechnung der Variable möchte ich mit natürlich mit Dezimalzahlen (und nicht mit HEX) arbeiten.
Mein Problem ist nun die Umwandlung meines Dezimal- in einen HEX-Wert.
In meinem Beispiel soll die Variable den Wert +19476 haben.
Die sollte einem HEX Wert von 4C14 enstprechen.
Ich finde nur keinen Weg DEZ nach HEX umzuwandeln.
Als Lösungsansatz habe ich versucht aus dem DEZ - Wert einen ASCII String (ITA) zu bilden:
Dabei erhalte ich folgendes Ergebniss:
VW 4000 +19476
VB 5000 ASCII ' '
VB 5001 ASCII ' '
VB 5002 ASCII ' '
VB 5003 ASCII '1'
VB 5004 ASCII '9'
VB 5005 ASCII '4'
VB 5006 ASCII '7'
VB 5007 ASCII '6'
Diesen ASCII - String versuche ich nun in einen HEX - Wert zu wandeln (ATH):
Dabei erhalte ich folgendes Ergebniss:
VB 6001 16#19
VB 6002 16#47
VB 6003 16#60
Aber DEZ 19476 entspricht ja nicht HEX 19476 sondern HEX 4C14.
Ich hoffe ihr versteht mein Problem und habt einen Lösungsansatz für mich.
Vielen Dank schon mal im vorraus
smartie
irgendwie sitze ich hier grad auf dem Schlauch und komme nicht weiter, vielleicht könnt ihr mir helfen:
Mit einer S7-226 (6ES7216-2AD23-0XB0) möchte ich einen Datenstring an einen Servoantrieb senden.
Zur Berechnung der Prüfsumme muss der Wert meiner Variable (welche im Datenstring übertragen wird) in HEX vorliegen.
Bei der Berechnung der Variable möchte ich mit natürlich mit Dezimalzahlen (und nicht mit HEX) arbeiten.
Mein Problem ist nun die Umwandlung meines Dezimal- in einen HEX-Wert.
In meinem Beispiel soll die Variable den Wert +19476 haben.
Die sollte einem HEX Wert von 4C14 enstprechen.
Ich finde nur keinen Weg DEZ nach HEX umzuwandeln.
Als Lösungsansatz habe ich versucht aus dem DEZ - Wert einen ASCII String (ITA) zu bilden:
Code:
LD SM0.0
ITA VW4000, VB5000, 16#0
VW 4000 +19476
VB 5000 ASCII ' '
VB 5001 ASCII ' '
VB 5002 ASCII ' '
VB 5003 ASCII '1'
VB 5004 ASCII '9'
VB 5005 ASCII '4'
VB 5006 ASCII '7'
VB 5007 ASCII '6'
Diesen ASCII - String versuche ich nun in einen HEX - Wert zu wandeln (ATH):
Code:
LD SM0.0
ATH VB5003, VB6001, 5
VB 6001 16#19
VB 6002 16#47
VB 6003 16#60
Aber DEZ 19476 entspricht ja nicht HEX 19476 sondern HEX 4C14.
Ich hoffe ihr versteht mein Problem und habt einen Lösungsansatz für mich.
Vielen Dank schon mal im vorraus
smartie