Hallo Diplomand,
es macht aber schon nen Unterschied ob du ein Array of Char nimmst oder nen String. Da musste dich erstmal entscheiden.
MfG
André Räppel
Hi zusammen,
ich kopiere mir über den SFC20 verschiende Wörter (Buchstaben) in einen Datenbaustein; gnauergesagt in 10 array`s vom Typ char mit der Länge 8 Byte.
Ich habe hier leider keinen Weg gefunden einen Screenshot einzubinden. Also kurz per Hand
4 out Ende_Messdurchgang1[1] char ' ' ',,'
5 out Ende_Messdurchgang1[2] char ' '
6 out Ende_Messdurchgang1[3] char ' ' 'B'
7 out Ende_Messdurchgang1[4] char ' ' 'R'
8 out Ende_Messdurchgang1[5] char ' ' 'U'
9 out Ende_Messdurchgang1[6] char ' ' 'C'
10 out Ende_Messdurchgang1[7] char ' ' 'H'
11 out Ende_Messdurchgang1[8] char ' ' ' '
12 out Ende_Messdurchgang2[1] char ' ' ',,'
13 out Ende_Messdurchgang2[2] char ' '
14 out Ende_Messdurchgang2[3] char ' ' 'A'
15 out Ende_Messdurchgang2[4] char ' ' 'N'
16 out Ende_Messdurchgang2[5] char ' ' 'R'
17 out Ende_Messdurchgang2[6] char ' ' 'I'
18 out Ende_Messdurchgang2[7] char ' ' 'S'
19 out Ende_Messdurchgang2[8] char ' ' 'S'
29 out Ende_Messdurchgang3[1] char ' ' ',,'
usw
(leider übernimmt das System hier im Forum nicht meine Abstände, so dass Ihr es nahe beieinander sehen werdet.....) Naja, das Zeichen ganz rechts stellt jeweils den Aktualwert dar.
Meine Absicht war es immer die ersten beiden Bytes des Strings frei zu lassen. Laut Doku benötigt der Datentyp string 2 Bytes für maximale Länge des Strings und die tatsächliche Stringlänge.
Wenn ich die array`s in ProTool als String darstelle fehlt jeweils der erste Buchstabe meiner Wörter ; also wird irgendwie immer die Feld-Zelle [3] überschrieben. Woran kann das liegen oder was mache ich falsch ?
Gruß
Martin
Hallo Diplomand,
es macht aber schon nen Unterschied ob du ein Array of Char nimmst oder nen String. Da musste dich erstmal entscheiden.
MfG
André Räppel
N`Abend Andre,
naja dann sag mir doch mal Bitte, wie ich ein array in einem Ausgabefeld in ProTool darstelle .....gibt es da einen Trick, den ich nicht kenne ?![]()
Gruß
Martin
P.s
darfst ruhig Martin zu mir sagem weil *g* so heiße ich![]()
Hallo Martin
am einfachsten ist es wenn du den CHAR-Format beibehältst und im Pro Tool als Ausgabevariable einen "StringOfChar" oder "CharOfString" (habs nicht im Kopf)und die genaue Länge deiner Zeichenkette eingibst.
Falls du dich für String entscheidest, dann musst du deine CHAR-Kette in eine String-Kette umwandeln, ist nämlich nicht dasselbe. Das meint warscheinlich auch André.
mfG churchill
Morgen die Herren,
versuchen wir es also kurz zusammen und Ihr haut mit auf die Finger, wenn ich etwas falsch mache![]()
Ich lege ein Ausgabefeld mit der Länge 6 an (die Wörter "Winkel, Anriss haben je 6 Buchtstaben; das Wort Bruch hat dagegen nur 5....hier fülle ich den letzten Buchstaben mit einem Leerzeichen). Ist das soweit ok ?
Bei der Darstellungswahl des Ausgabefeldes wähle ich String, weil ich wohl kaum Dezimal, Hexadezimal,Binär, Datum oder Zeit nutzen kann !?
Die Feldlänge gebe ich mit 6 an, da meine Wörter immer 6 Zeichen aufweisen
Ich weise eine neue Variable zu. Dabei kann ich eben nur string wählen, weil mein Ausgabefeld den Typ string hat. Char oder sonstiges kann ich gar nicht anwählen !?
Die Länge in Bytes gebe ich mit 6 an ( in meinem DB nimmt ein Wort 6 Bytes in Anspruch)
Für Bereich gebe ich den den ersten Buchtstaben in meinem DB an
Das funktioniert alles ja auch soweit nur wird eben der erste Buchstabe nicht in mein Ausgabefeld übernommen. Ich nehme an dieser wird irgendwie überschrieben ?
Wo habe ich jetzt meine Denkbarriere ? Welchen Fehler übersehe ich oder was muß ich wo ändern ?
Liebe Grüße
Maddinsche
Hallo Maddinsche,
>>Für Bereich gebe ich den den ersten Buchstaben in meinem DB an
Nein! Für Bereich gibst du die Anfangsadresse des Strings an, also die Kopfdaten. Ausserdem musst du im String mit der Aktuallänge initialisieren, in deinem Fall also 6.
Stringlänge
Aktuallänge
Zeichen 1
Zeichen 2
Zeichen 3
Zeichen 4
Zeichen 5
Zeichen 6
MfG
André Räppel
Morgen Andre,
also wenn ich bei den Kopfdaten anfange, bleibt mein Ausgabefeld ganz leer. Was tun ?
Gruß
Martin
Ergänzend vielleicht ein Hinweis: wenn ich mir die aktuellen Werte in meinem DB ansehe, wird mir in der ersten Char-Zelle ; Feld 1 also ein komisches Zeichen angezeigt ....es sieht aus wie zwei Backslashes // in "Gänsefüßchengröße" " Ich weiß damit so gar nichts anzufangen
Hallo,
mail mir doch mal das Prog komplett. Ich guck mal
andre.raeppel@sps-concept.de
MfG
André Räppel
Hi nochmal,
*schmunzel* so einfach gebe ich nicht geschlagen von der Software. Ich versuche das heute nochmal und wenn ich dann bis morgen früh keine Lösung habe, schicke ich Dir das Teilprojekt ...
Gruß
Maddinsche![]()
Hallo Maddinsche
Schau dir mal diese Erklärung an, es stammt aus der STEP 7-Hilfe
mfG churchillCode:Format des Datentyps STRING Datentyp Länge (Byte) Format STRING[n] oder STRING n+2 ASCII-Zeichenkette beliebiger Länge. n gibt die Länge der Zeichenkette an. Maximale Länge sind 254 Zeichen. Wird keine Länge angegeben, ist die Voreinstellung 254 Zeichen. Datentyp Beispiele für das Format STRING[2] STRING[55] 'AB' 'Die Zeichenkette kann aus maximal 55 Zeichen bestehen.' Hinweis Sie müssen Ihre Zeichenkette in einzelne Hochkommata einschließen. Das folgende Beispiel zeigt die Reihenfolge der Bytes bei der Angabe des Datentyps STRING[4] mit dem Ausgangswert 'AB'. Dynamische Lokaldaten vom Datentyp STRING müssen vom Anwender vor dem ersten Verwenden initialisiert werden, z.B. durch eine AWL-Sequenz der Form: LAR1 P#lokal_string_var // lokal_string_var ist in VAR_TEMP deklariert als STRING[200] L 200 // oben genannte STRING-Länge T LB [AR1, P#0.0] // im MAX Len Byte des Strings eintragen L 5 // tatsächliche Länge des Strings T LB [AR1, P#1.0] // tatsächliche Länge des Strings eintragen Hinweis Wird der Inhalt eines Strings vom Anwenderprogramm geändert, muß auch das Byte "Tatsächliche Länge" beschrieben bzw. aktualisiert werden, damit der String vom PG angezeigt werden kann. Wurde eine temporäre Variable vom Datentyp STRING definiert, muß das Byte "Max. Länge" vor der Verwendung der Variablen im Anwenderprogramm mit der definierten Länge beschrieben werden.
Bookmarks