TIA CR (0D hex) --> $R; ETX (03 hex) ---> ???; STX(02 hex) ---> ???;

xymoro

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

Wenn ich CR (0D hex) in Step 7 brauche, schreibe ich einfach $R in meinen DB.
Kann mir einer sagen, was ich bei ETX (03 hex) oder STX (02 hex) in meinen DB schreiben muss.
Brauche ich vielleicht einen SCL FC?

Gruß
 
Na dasselbe wie vorher auch. Der Inhalt in den DBs ändert sich ja wegen TIA nicht. Also wenn du im DB ein 02 hex brauchst, lädst du das an diese Stelle.
Muss aber sagen für Stringarbeiten ist SCL schon schön.
Ich mach praktisch alle meine Ascii-Telegramme nur noch in SCL, weils einfach einfacher geht.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Diese Codes kenne ich von S7 Classic:

Nicht darstellbare Zeichen erhalten einen Ersatzcode.
Z.B. $'' , $05 oder $P .
(Benannte Steucodes:
$T .. $09 .. Tabulator
$L .. $0A .. Zeilenvorschub
$P .. $0C .. Seitenvorschub
$R .. $0D .. Wagenrücklauf )
 
Vielen Dank!
@vollmi: Leider weiß ich auch nicht wie das in Step7 funktioniert.
@holgero: Verstehe ich dich richtig, dass ein $T einem $09 gleichwertig ist? Ist dann folgender Code korrekt?
#tempString := '$0A$0D' //Zeilenvorschub Wagenruecklauf
bzw. dem folgenden gleichwertig
#tempString :='$L$R'
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@holgero: Verstehe ich dich richtig, dass ein $T einem $09 gleichwertig ist? Ist dann folgender Code korrekt?
#tempString := '$0A$0D' //Zeilenvorschub Wagenruecklauf
bzw. dem folgenden gleichwertig
#tempString :='$L$R'

Ich habe es jetzt nicht extra nochmal ausprobiert, aber ich behaupte mal: Ja genau so ist es.
 
Nimm PLCSIM oder eine echte CPU.
Schreibe mit einer Variablentabelle (wie heißt das Ding nun in dem TIA?) B#16#02 oder was Dich interessiert in ein Merkerbyte oder DB-Byte und beobachte das Byte als "Zeichen". Wenn es in TIA für diesen ASCII-Wert einen Steuercode $x gibt, dann wird der Dir angezeigt werden. Das geht schneller als in der TIA -Dokumentation zu finden, falls es denn überhaupt vollständig und korrekt dokumentiert ist.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi xymoro

du kannst jedes Zeichen mittels der durch die IEC61131 definierten Fluchtsymbolic in einen String stopfen.

wir holgero schon schrieb ist
$T .. $09 .. Tabulator
$L .. $0A .. Zeilenvorschub
$P .. $0C .. Seitenvorschub
$R .. $0D .. Wagenrücklauf

ich füge noch hinzu
$$ .. $24 .. das Dollar
$' .. $27 .. der Anführungsstrich

Aber wer Bock hat, der bekommt mit $41 ein A. Starte mal auf deinem Windows das Systemprogramm charmap. Da stehen unten in der Statuszeile die Codierungen der Zeichen drin.

Folgendes mag C Programmierer erstaunen, ist aber nach IEC 61131 korrekt: 'Ja$00das$00geht$21'
In dem String befinden sich zwei NUL zeichen und ein ! !-)

Schwieriger wird es jetzt mit äöü. STRING ist abhängig von der eingestellten CodePage. Das was ein Franzose im DB hinterlassen hat, sieht bei einem Tschechen ganz anders aus. Deswegen auch seit V12 die blöde Warnung.

Ob WSTRING da wirklich ein Abhilfe ist ... erstens sind da die gleiche Texte erst mal dopplet so breit.
Aber der Trick mit dem $ geht auch da. Jetzt müssen allerding 4 Stellen Hex angegeben werden.

$T .. $0009 .. Tabulator
$L .. $000A .. Zeilenvorschub
$P .. $000C .. Seitenvorschub
$R .. $000D .. Wagenrücklauf
$$ .. $0024 .. das Dollar
$' .. $0027 .. der Anführungsstrich
$0000 das NUL
$0041 das A
$00C4 das Ä
$0394 das Delta

Somit ist WSTRING#'Ist$Lja$0000toll$0021' eine zulässige Angabe

'n schön' Tach auch
HB
 
Zurück
Oben