Chars_to_String in SCL

fk- princess

Level-1
Beiträge
112
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
habe von meinem umwandlungsversuch mal ein photo angehängt...

ich finde zu den umwandlungsfunktionen nirgends mal kleine beispiele, wie man die syntax bei den jeweiligen befehlen zu schreiben hat
lasse ich die eckigen klammern weg, wie bei der deklaration der ein und ausgänge beim funktionsaufruf, bekomme ich den syntaxfehler: falscher datentyp
schreibe ich die erste stelle bei der Arrayquelle in die eckigen klammern, syntaxfehler: falscher datentyp
lasse ich die klammern leer, soll ich mit einer eckigen klammer enden...

ich checks grad nich, was TIA von mir will :(
dieses ganze scl gedöns wird mir immer unsympatischer


CHARS_TO_STRING.JPG
 

Anhänge

  • chars_to_string.jpg
    chars_to_string.jpg
    83,1 KB · Aufrufe: 27
  • CHARS_TO_STRING.JPG
    CHARS_TO_STRING.JPG
    247,2 KB · Aufrufe: 22
Zuletzt bearbeitet:
Hallo,
hat eine schlechte Qualität, der Screenshot.
Außerdem ist der Code auch nicht sehr aussagekräftig ...
Hast du die verwendeten Strings (vor Allem sofern sie TEMP sind) vor der ersten Benutzung initialisiert (in SCL wäre das myString := '' ;) ?
Wenn nein, dann mach das doch mal bitte.
Wenn doch, dann liefer doch bitte mal etwas mehr Code in etwas besserer Qualität ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich sehe gerade, das das bild wirklich grottig ist. werde es gleich ändern...

ich will aus einem arry, was ich über tcp empfange einen string machen, damit ich mit den funktionen string to DINT arbeiten kann um die telegramminformation nutzen zu können.
der einfacheit halber habe ich erstmal globele variablen genutzt. das array ist in einem datenbaustein abgespeichert.
 
Mist, wollte gerade mal nachsehen, aber die 300-er hat den Befehl gar nicht. :icon_cry:
 
dank dir... ich habe deine Lösung als ansatz für meine genommen. da bei mir das array immer eine länge von 6 bytes hat, konnte ich das ganze wie folgt vereinfachen. muss mich erst wieder mit den hochsprachen anfreunden und das hier war eine gute übung dazu.

bei der "typ-wandlung" kann man ganz schnell fehler machen, wie sich herraus stellte...

#Flaeche_ZwSp := 0;

FOR #Bytes := 1 TO 6 BY 1 DO // Anzahl der Durchläufe
IF #ARRAY_Flaeche[#Bytes] >= b#16#30 // Abfrage, ob das ASCII-Zeichen eine Zahl ist
THEN
IF #ARRAY_Flaeche[#Bytes] <= B#16#39
THEN
CASE #Bytes OF
1: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*100000);
2: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*10000);
3: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*1000);
4: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*100);
5: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*10);
6: #Flaeche_ZwSp := #Flaeche_ZwSp + (BYTE_TO_DINT((#ARRAY_Flaeche[#Bytes]-48 )*1);
END_CASE;
END_IF;
END_IF;
END_FOR;

#INT_Flaeche := #Flaeche_ZwSp; // Übertragung des DINT-Wertes der Fläche in den Datenbereich
 
Zurück
Oben