-> Hier kostenlos registrieren
Hallo Zusammen,
Wir sollten von einer Seriennummer (INT) die einzelnen Zeichen als CHAR (5 Zeichen) an einen anderen Profibus-Teilnehmer übertragen, damit dieser es wieder in sein System einlesen kann.
z.B:
INT = CHAR
1 = 00001
10 = 00010
99 = 00099
120 = 00120
8888 = 08888
99999 = 99999
Den INT in ein CHAR umzuwandeln, haben wir mit diesem erstellten FB versucht:
Nun ist die Frage, wie wir die 0 bei kleineren Zahlenwerten an die richtige Stelle bringen.
Habt ihr da eine Idee oder einen Lösungsansatz
Wir sollten von einer Seriennummer (INT) die einzelnen Zeichen als CHAR (5 Zeichen) an einen anderen Profibus-Teilnehmer übertragen, damit dieser es wieder in sein System einlesen kann.
z.B:
INT = CHAR
1 = 00001
10 = 00010
99 = 00099
120 = 00120
8888 = 08888
99999 = 99999
Den INT in ein CHAR umzuwandeln, haben wir mit diesem erstellten FB versucht:
Code:
#outString := DINT_TO_STRING(#iDINT);
FOR #i := 1 TO 10 DO
#charIntern[#i] := STRING_TO_CHAR(MID(IN := #outString, L := 1, P := #i));
//#char[#i] := STRING_TO_CHAR(MID(IN := #outString, L := 1, P := #i));
IF (#charIntern[#i] = '1')
OR (#charIntern[#i] = '2')
OR (#charIntern[#i] = '3')
OR (#charIntern[#i] = '4')
OR (#charIntern[#i] = '5')
OR (#charIntern[#i] = '6')
OR (#charIntern[#i] = '7')
OR (#charIntern[#i] = '8')
OR (#charIntern[#i] = '9')
THEN
//Datenübergabe
#char[#i] := #charIntern[#i];
ELSE
//Wert 0 eintragen
#char[#i] := '0';
END_IF;
END_FOR;
Nun ist die Frage, wie wir die 0 bei kleineren Zahlenwerten an die richtige Stelle bringen.
Habt ihr da eine Idee oder einen Lösungsansatz