STRING_DI umwandeln (und String mit '0' auffüllen)l

kornman10

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.
Habe schon die Suche bemüht, bin jedoch nicht wirklich weiter gekommen.
Mein Ziel ist es mit den Daten, die ich aus einer Waage bekomme zu rechnen. Die Waage schickt mir einen String der aus 43 Zeichen besteht. So steht z.B. in den Bytes 18-22 das Gewicht in g. Hier wird der Wert 0 gramm so hinterlegt:
DBB18 ' '
DBB19 ' '
DBB20 ' '
DBB21 ' '
DBB22 '0'

der wert 30000g so:
DBB18 '3'
DBB19 '0'
DBB20 '0'
DBB21 '0'
DBB22 '0'

Diese Bytes schiebe ich mir mit BLKMOV in einen anderen String

Diesen String möchte ich gerne zum rechnen umwandeln, meine erste Idee war hierfür die "IEC FC37 String to Double Integer" zu nutzen. Jedoch verlangt diese Funktion ja auch in den nicht benötigten vorstehenden Stellen eine Zahl und nicht ' '. Nur bei Werten im Bereich von 10000 bis 30000 habe ich aber ja alle Bytes "gefüllt". Habt ihr evtl eine Idee wie ich am einfachsten vorgehen kann?

Vielen Dank für Eure Hilfe

Gruß Björn
 
Zuletzt bearbeitet:
Du könntest mit "REPLACE" die Null-Werte durch das Zeichen '0' ersetzen lassen, damit die anderen Konvertierungsfunktionen funktionieren.
Bei deinem blockmove musst du noch beachten, dass du später noch die Stringlänge des Ziel-Bereichs auf einen gültigen Wert setzen musst (Aktual- und Maximal-Länge). Denn ansonsten funktionieren die IEC-Bausteine nicht korrekt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da du weißt, in welchen Byte des DB die Werte stehen , könntest du im einfachsten Fall direkt über einen Vergleicher ermitteln, ob das DBB18 20hex (32dez) = Leerzeichen ist und wenn ja, die 20hex durch 30hex (48dez) = '0' ersetzen. Das für Byte 18,19,29,21, fertig.
 
Zurück
Oben