Bytearray zu String wandeln und umgekehrt

More
5 months 1 week ago - 5 months 1 week ago #435 by Manuel
Hallo, ich versuche seit ein paar Tagen eine kommunikation über MQtt aufzubauen. Die kommunikation ansicht funktioniert gut, allerdings habe ich Probleme beim ändern und auswerten des Payloads.
Der payload muss ja als Bytearray übergeben werden, wie kann ich nun einen String übergeben?Ich habe mehrere Verfahren ausprobiert, jedoch bekomme ich den String bzw. das Bytearray nicht in einen String gewandelt. Wie löst ihr das, oder gibts dafür eine einfache lösung? Für hilfe wäre ich sehr Dankbar.

Ich habe eine Function in ST erstellt. lt. meinen vorstellungn sollte es funktionieren, tut es aber nicht .
Function_block bytearray_to_String

VAr_INPUT
	bytearray: array[0..80] of byte;
END_VAR
VAR
	i:int;
	zeichen: String[1];
END_VAR
var_output
	Text: String[80];
end_var


for i:=0 to 80 by 1 do
	zeichen := TO_STRING(IN:=bytearray[i]);
	Text[i]:= zeichen[1];
end_For;

END_FUNCTION_block

ich sende zum Broker eine 1, dann erhalte ich eine 1 in Text,
sende ich 123, erhalte ich 55, obwohl ich im
bytearray[0]=16#31
bytearray[1]=16#32
bytearray[2]=16#33 erhalte.
=> lt. utf8 is das auch richtig.

mache ich vielleicht beim umwandeln etwas falsch?
Last edit: 5 months 1 week ago by Manuel.

Please Log in or Create an account to join the conversation.

More
4 months 2 days ago #442 by Walter Zögernitz
Hallo Manuel,


ich habe mal ohne MQTT "Umweg" Deine Umwandlung getestet - siehe Bild im Anhang. Sieht es bei dir anders aus?

lg
Walter
Attachments:

Please Log in or Create an account to join the conversation.

LOGI.CALS AUSTRIA

Address

Europaplatz 7/1,
3100 St. Pölten

LOGI.CALS GERMANY

Address

Postfach 1306,
40738 Langenfeld
© 1987 - 2019 logi.cals GmbH