Zeichenketten Sonderzeichen

qpec_hagen

Level-1
Beiträge
105
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen liebe Community,

habe zur Zeit ein mehr oder minder großes Problem. Ich brauche eine Zeichenkette, welche mit einem Dollarzeichen anfängt. Gibt es da eine Möglichkeit, das so zu benutzen?
Wollte z.B.: eine Zeichenkette '$HA' nutzen.

LG Manuel
 
Wenn du in SCL einer Stringvariable eine Zeichenkette zuweisen willst die mit $ beginnt musst du '$$HA' schreiben. $ wird als Fluchtzeichen interpretiert und beim kompilieren nicht in den String eingebaut.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hatte das mit dem Verdoppeln des Dollarzeichen eben auch schon im Sinn, wollte es aber erst noch nachschlagen.
Auf jeden Fall funktioniert es dann so auch außerhalb von SCL ...

Gruß
Larry
 
Dessen war ich mir grad nicht sicher, weil ja da kein Compiler den String zusammenbaut. Da hätte ich im Kopf, das man mit Lade Transferiere in den String reinschreiben kann was man will.

Korrekt, so mache ich das. Sonderzeichen schreib ich oft gleich als Hexwert (AWL) in die entsprechenden Byte.
Was auch ganz nützlich ist, wenn man sich mit den oft benötigten Strings (inkl. oder auch nur Sonderzeichen) einen DB anlegt. Dann kann man in jeder Sprache per concat die benötigten kompletten Strings einfach zusammenkopieren, ohne sich weiter Gedanken zu machen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antworten. Nun habe ich noch die Frage, wie ich bei einem beliebigen String den sogenannten Kopf erzeugen kann.
Problem: ich bekomme eine Zeichenkette per ser. Schnittstelle und möchte diese als String weiterverarbeiten. Allerdings liegt dieser String ohne den benötigten "Kopf" vor. Die maximale Länge ist mir dabei bekannt nur wie bekomme ich die aktuelle Länge raus?!
 
Danke für die Antworten. Nun habe ich noch die Frage, wie ich bei einem beliebigen String den sogenannten Kopf erzeugen kann.
Problem: ich bekomme eine Zeichenkette per ser. Schnittstelle und möchte diese als String weiterverarbeiten. Allerdings liegt dieser String ohne den benötigten "Kopf" vor. Die maximale Länge ist mir dabei bekannt nur wie bekomme ich die aktuelle Länge raus?!

Dein Empfangs-FB für die RS232 teilt dir die Länge der empfangenen Zeichen mit. Mit diesem Wert und deiner bekannten max. Länge kannst du dir den STRING-Header zusammenbauen.

Code:
CALL P_RCV, I_RCV
EN_R : =
R : =
LADDR : =
DB_NO : =
DBB_NO : =
NDR : =
ERROR : =
LEN : =       <--- HIER
STATUS : =

Hier das Handbuch
 
@Softmaschine,

das hab ich auch schon ausprobiert....dort habe ich allerdings nichts stehen an diesem Out. Dauerhaft null egal welche Zeichenkette reinkommt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Rückgabeparameter sind nur in dem Zyklus präsent, in dem das NDR kommt (also nur einen einzigen Zyklus lang !).

Sicherst du dir die Werte ?
 
Zuletzt bearbeitet:
@Softmachine:
Ja ich schreib mir den Out auf ein MW. Aber es geschieht nichts.
Gibt es noch eine Möglichkeit, mit die beiden Kopfbytes selbst zu bilden?
 
Hallo,
so wie SoftMachine es schreibt ist es aber korrekt.
Du bekommst die Länge von dem FB, aber die solltest du nur mit der steigenden Flanke von NDR in deinen Zwischenspeicher schreiben - dann kannst du das auch verwerten. Wenn du bei LEN immer absolut dein MW dran hast dann wird es so nichts.
Alternativ sehe ich für einen variablen Empfangspuffer nicht so die Möglichkeiten. Ich bin darauf auch schon mal hereingefallen (wahrscheinlich auch noch 100000 andere S7-Programmierer) - ich kann dir nicht plausibel erklären warum Siemens das so macht ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen liebe Community,

habe zur Zeit ein mehr oder minder großes Problem. Ich brauche eine Zeichenkette, welche mit einem Dollarzeichen anfängt. Gibt es da eine Möglichkeit, das so zu benutzen?
Wollte z.B.: eine Zeichenkette '$HA' nutzen.

LG Manuel

Sorry, darf man fragen für was man sowas braucht? Mir ist die verwendung von String und Char in der SPS irgnedwie total unklar. Hat da evtl. jmd. weiter Infos dazu?
 
Es ist schwer, dazu ein Beispiel zu geben - es hängt immer ein bißchen an dem persönlichen Bedarf.
Hier könnte es z.B. so sein, dass eine Zeichenkette in einer bestimmten Form für einen Drucker oder Laser aufbereitet werden soll.

Gruß
Larry
 
Zurück
Oben