TIA Konvertierung String zu Integer

Fabster

Level-2
Beiträge
35
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin miteinander,

Ich habe ein sehr komisches Problem aktuell und verzweifle ein wenig.
Ein "Array of Bytes" wird in einen Baustein geliefert (als "arr") dieses will ich zu einem String mwandeln mit Chars_TO_Strg, dies funkitoniert soweit auch.
Chars_TO_Strg(Chars := #arr, pChars := 0, Cnt := 0, Strg => #output);

Nun da der String in die Variable #output gespeichert wurde will ich den ersten Character in einen Integer umwandeln.
#number := STRING_TO_INT(IN := #output[1]);

Dieser Integer soll in einen DB geschrieben werden.
"DUTY_DB".duty := #number;


Wenn ich das ganze beobachte bekomme ich folgenden:
#output[1] = '2'
STRING_TO_INT = 0
#number = 0

Warum wird das gane nicht konvertiert? Beziehungsweise wie bekoome ich es konvertiert?
 
Nun da der String in die Variable #output gespeichert wurde will ich den ersten Character in einen Integer umwandeln.
Du willst die Codenummer (ASCII-Code) des ersten Zeichens wissen? Warum dafür der Umweg über String? Da kannst du auch gleich das erste Char bzw. das erste Byte nehmen.
Sind in dem Array Ziffern-Zeichen ('0' ... '9') oder beliebige Zeichen enthalten? Willst du mehrere aufeinanderfolgende Ziffernzeichen in einen Zahlenwert umwandeln z.B. '12345mm' --> 12345? Dafür gibt es fertige Funktionen.

Was für eine CPU hast du?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin PN/DP,

Erstmal habe ich eine CPU 1514SP-2 PN.

Im Array können unterschiedliche Zeichen enthalten sein, das kommt per MQTT an die CPU.
Je nach Topic kommen entweder nur Ziffer-Zeichen oder Strings (z.B. "engine").
 
Ich muss die jeweiligen Topics unterscheiden was funktioniert und dann natürlich herausfinden was die entsprechende Payload ist und je nach Payload müssen unterschiedliche Ausgänge geschalten werden. Auch die Ziffern zeigen an welche Ausgänge geschalten werden sollen.

Deshalb auch die Konvertierung zu String zum unterscheiden, meinst du es macht mehr Sinn erst zu Konvertieren wenn ich weiß dass ein String kommen muss? Also nur bei Nachricht auf diesem Topic?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi...,,
Also #output[1] ist kein String sondern nur ein Zeichen...

Damit dürfte Strg_to_int nicht funktionieren.

Kopiere dir das erste Zeichen in einen Temporären String und wandle das dann.

Oder nehm #output[1] und ziehe 48 ab...
 
Zurück
Oben