TIA TCP/IP "NUL" senden

blimaa

Level-2
Beiträge
964
Reaktionspunkte
105
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

Ich muss per TCP/IP (T_SEND_C) das ASCII Zeichen "00" (NUL) senden. Wie geben ich das ein????
Hintergrund: ich muss ein Schrauber ansprechen und dieser will ein "NUL" am Schluss der Message.

"00200001003 NUL"

S7-1516, TIA V13.1 Upd4

Gruss blimaa
 
Im Step7 Classic konnte man mit $ gefolgt vom einem Code das Char erzeugen.
Also in einem Feld vom Datentyp String z.B. 'Hallo $00'

Ich weiß leider nicht, ob das im TIA noch funktioniert, da ich es bis jetzt noch nicht benötigt habe.

Edit: Such in der Hilfe nach Steuerzeichen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Da die Kommunikation nicht läuft, melde ich mich nochmals.

Ich steuere ebenfalls ein Zebra Drucker via TCP/IP an. Dieser druckt mir allerdings nur die Vorlage aus. Also druckte ich den Sendebefehlstring direckt am Drucker aus. Jetzt kam heraus, dass die SPS nach jedem Ascii Zeichen ein Ascii Zeichen "00" (NUL) reinschreibt. Dies geht ja gar nicht!

Wiso macht die SPS das und wie kamm man den scheiss abschalten?????
 
Hi,

schau mal in die HW-Config, ich meine da konnte man einstellen, was am Ende gesendet wird.
 
Zuletzt bearbeitet:
Hi

Hmm konnte nichts finden in der Gerätekonfiguration. Geschaut habe ich bei der SPS.
Wo müsste ich den nachschauen?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Also ich konnte jetzt mein Leerzeichen Problem lösen.
Für Intressierte die Antwort vom Support:

Code:
Ich vermute, dass Sie bei dem Datenbaustein, den Sie an den Drucker senden, den optimierten Bausteinzugriff aktiv haben. Wenn Sie den rausmachen, sollte es richtig funktionieren. Machen Sie dazu einen Rechtsklick auf den entsprechenden DB, öffnen die Eigenschaften und entfernen bei den Attributen den optimierten Bausteinzugriff.
 
Bei dem optimierten Bausteinzugriff wird jedes Char auf ein komplettes Wort im Speicher abgelegt, damit die CPU schneller darauf zugreifen kann. Am LAN wird dann aber auch das komplette Wort gesendet, also immer ein Füllbyte plus der Char. Wenn der nicht-optimierte Bausteinzugriff gemacht wird, belegt jeder Char nur ein Byte, die CPU greift dann zwar langsamer zu, dafür wird es am LAN korrekt gesendet und das Telegramm ist kürzer und schneller am LAN.

Finde ich noch recht intressant!!
Allerdings das Problem konnte ich erst lösen, als ich mein Sendestring änderte auf das Format "String". Vorher war er das Format "WSTRING"!


Gruss blimaa
 
Sehr Intressant. Woher weiss man den das? :cool:
Hat man eine Chance als Normalsterblicher dies in Erfahrung zu bringen? (ausser hier im Forum natürlich);)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sehr Intressant. Woher weiss man den das? :cool:
Hat man eine Chance als Normalsterblicher dies in Erfahrung zu bringen? (ausser hier im Forum natürlich);)
Das soll doch hoffentlich nicht heißen, dass du etwas programmierst von dem du keine Ahnung hast was das bedeutet? 8)
Der Datentyp Wstring wird nicht per Zauberei dort hingekommen sein.

Was ein Wstring ist, und dass ein WORD pro Zeichen im Speicher belegt wird, steht (sogar) in der Hilfe vom TIA-Portal.
Unicode sollte einem Programmierer auch kein Fremdwort sein.
 
Das soll doch hoffentlich nicht heißen, dass du etwas programmierst von dem du keine Ahnung hast was das bedeutet? 8)

Natürlich heisst es das, ich setzte ja schliesslich TIA und S7-1500er ein :rolleyes::ROFLMAO:

Unicode ist mir ein Begriff :)
Und der Wstring habe ich in einem kleinen Büchlein von Siemens entdeckt. Da ich für mein Label zuerst mehr als die 254 Zeichen brauchte, dachte ich hey kommt wie gerufen der lange String. :rolleyes:

Besten Dank

Gruss blimaa
 
Hallo zusammen,

ich hatte gerade eben ein ähnliches Problem, wie kann ich einem Drucker via TSEND_C in TIA Portal mehr als 254 Zeichen im String Format senden.
Als String frisst der Drucker meine Befehle und alles passt, die selben Daten in einem Array of Char mag er nicht, bzw druckt nur das leere Label ohne Daten???

Der Drucker ist von TSC, das Label ist auf dem Drucker hinterlegt und ich muss Ihm nur folgende Information senden:

Format1 (Label das aufgerufen werden soll)
Variable1 (Inhalt der Variable1 etc)
Variable2
Variable3
Variable4
.
.
.



Jede Zeile trenne ich mit $R$L

Ich hoffe mir kann jemand weiterhelfen...

Gruß BAVARO
 
Zurück
Oben