BYTE in STRING Konvertierung

SCLNewbie

Level-1
Beiträge
42
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammmen,

ich möchte eine Variable vom Typ BYTE in einen STRING umwandeln. Das dies direkt nicht geht, wandle
ich zuerst dAS BYTE in einen INTEGER-Wert um und danach in einen STRING. Der Variablen vom Typ STRING habe ich 254 Elemente
zugewiesen, trotzdem funktiniert es nicht....er spckt mir immer wieder den INTEGER aus...warum?? Vielen Dank!
 
Ich will ein "R" in der Variablentabelle sehen....er zeigt mir da immer nur den Wert 82 an wenn ich auf die Varaible vom Typ Zeichen in der VAT deklariere, warum net R?
 
Ich will ein "R" in der Variablentabelle sehen....er zeigt mir da immer nur den Wert 82 an wenn ich auf die Varaible vom Typ Zeichen in der VAT deklariere, warum net R?

Deine Variable muß dazu dann die richtige Länge haben.

'R' nur 52hex --> deine Variable muß ein Byte sein (MB3000)
'RR' --> deine Variable muß ein Word sein (MW3000)
 
Es kann einfach ein Byte sein, dann kannst du das in der Variablentabelle als Zeichen ansehen.Ein String geht auch, aber den kannst du in der Variablentabelle nur ansehen, indem du in der VAT untereinander jedes Byte einzeln ausgeben läßt. Es wäre gut zu wissen, was du denn überhaupt tun willst. Du hast schon des Char-Zeichen 'R' im richtigen Format 52hex vorliegen.
 
Es kann einfach ein Byte sein, dann kannst du das in der Variablentabelle als Zeichen ansehen.Ein String geht auch, aber den kannst du in der Variablentabelle nur ansehen, indem du in der VAT untereinander jedes Byte einzeln ausgeben läßt. Es wäre gut zu wissen, was du denn überhaupt tun willst. Du hast schon des Char-Zeichen 'R' im richtigen Format 52hex vorliegen.

Hi, Ralle,
geht auch mit einem Wort, also 2 CHAR (aus den beiden Bytes des Wortes) nebeneinander.
Gruss
 
Dazu mußt du auch einen String definieren. Concat kann nur auf einen initialisierten String zugreifen. Am einfachsten legst du in einem Datenbaustein einen String an und nutzt diesen. Concat verkettet Strings, was also willst du damit auf einen String zugreifen??? Was genau willst du machen?
 
Ich lese in einem FB mit dem SFC 51 I&M0 -Daten aus, welche in einen Instanz-DB geschrieben werden , dann wird ein relevantes BYTE (in dem Fall B#16#52)erst in einen INTEGER und danach in einen STRING umgewandelt. Diesen STRING packe in einen globalen DB. Mit dem CONCAT-Befehl greife ich auf dem STRING zu. Der mit CONCAT zusammengemergte STRING wird auf einem Monitor ausgegeben(RS232-Kommunikation)...,dort sehe ich aber immer nur die 82 stehen und kein "R"....wie geht das?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In der Variablentabelle kannst du das Byte z.B. DB1.DBB0 u.a. als Dezimal oder auch als Zeichen darstellen lassen. Wenn du ein Byte in einen String konvertieren willst, ist entscheidend, ob Du den Zahlenwert als String haben willst oder das dem ASCII-Code entsprechende Zeichen.
Willst Du den Zahlenwert haben, kannst Du die Konvertierungsfunktionen Int_To_String(Byte_To_Int(x)) verwenden. Willst Du das Zeichen konvertieren benutzt Du BYTE_TO_CHAR.
Für String-Konvertierungen gibt es auch in der Oscat-Bibliothek www.Oscat.de einige Funktionen mit denen man sich die Arbeit erleichtern kann. Habe ich auch schon oft benutzt wenn ich zu faul war mir selbst Gedanken zu machen. Man muß das Rad ja nicht zwei mal erfinden.

Vielleicht hilft es als Anregung ?
 
Ich lese in einem FB mit dem SFC 51 I&M0 -Daten aus, welche in einen Instanz-DB geschrieben werden , dann wird ein relevantes BYTE (in dem Fall B#16#52)erst in einen INTEGER und danach in einen STRING umgewandelt. Diesen STRING packe in einen globalen DB. Mit dem CONCAT-Befehl greife ich auf dem STRING zu. Der mit CONCAT zusammengemergte STRING wird auf einem Monitor ausgegeben(RS232-Kommunikation)...,dort sehe ich aber immer nur die 82 stehen und kein "R"....wie geht das?

1. CONCAT verbindet 2 Strings zu einem. Wenn du auf deinen String zugreifst und den verbinden willst, welcher ist der zweite ?
2. Bei der Ausgabe am Monitor würde ich mal schauen, welches Format dafür projektiert ist (INT oder STRING oder ASCII oder was auch immer)
3. Schön wäre es, hier mal konkrete Angaben zu posten (Code oder ScreenShot), damit du gezielte Hilfe erhalten kannst.
4. Dein "DrumHerumEiern" um die eigentliche Aufgabe verzögert doch nur die Lösung für dich selbst, leider.
 
Zurück
Oben