STRING Variable über EL6731-0010

schnitzel444

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

ich möchte über eine Beckhoff EL6731-0010 (TC2) von einer Siemens S7 eine String Variable mit 40 Zeichen empfangen.
Welches Modul muss ich hier bei der EL6731 einfügen? Nach meinem Wissen entsprechen 40 Zeichen 20 Worde, ich füg mir also ein Modul mit 20 Worden ein, ist dies Korrekt?
Dann gibt es ja noch das Problem mit dem Motorola und Intel Format, wie muss ich dies in der SPS drehen?

Lg
Ralf
 
Ich würde nur mit (mehreren) Modulen die jeweil Byte-Orientiert sind arbeiten. Dann muss man nichts drehen.
Ich weiss jetzt aber nicht auswendig wie viele Bytes max in einem Modul sind... Musst du halt mal konfigurieren (egal auf welcher Seite). Im Zweifel hast du halt 1-2 Byte zu viel übertragen.
Denk daran dass wenn du 40 Chars in einem String-Speicherbereich hast im 41 Byte auch wirklich eine 0 steht. Sonst wirds mistig (da ein String immer mit 0 terminiert wird in der IEC 6-1131).

Guga

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Könnte es sein, daß Du nicht einen S7-String sondern ein Char-Array empfangen willst?
Ist die Zeichenfolge immer genau 40 Zeichen lang? Falls die Zeichenfolge auch mal kürzer sein kann, wie wird die dann gültige Länge bzw. das Ende der Zeichenfolge gekennzeichnet?

Damit die Byte-Reihenfolge (endianness) keine Rolle spielt und nirgends gedreht werden muß, müsstest Du ein oder mehrere Byte-Module wählen.

Harald
 
Die S7 Programmierung führe ich selbst nicht durch, dies wird durch einen externen Programmierer durchgeführt. Ich mache nur die Beckhoff Seite. Da muss ich den Kollegen mal fragen welchen Typ er hier definiert hat. Nein die Zeichenfolge ist nicht immer 40 Zeichen lang. Es soll hier ein Rezeptname übertragen werden, dieser kann unterschiedlich lang sein, aber max. 40 Zeichen.
Dann werde ich es mal Byte Orientiert testen wenn hier nichts gedreht werden muss.

Danke für die Infos
Ralf
 
Bei Codesys ist der String normalerweise auch nullterminiert, der S7-String hat dagegen vorne die beiden Bytes für max-Länge und aktuelle Länge. Die einfacher Variante ist, auf der Codesys-Seite aus dem Codesys-String einen S7-String zu bauen und auch dort aus dem S7-String wieder einen Codesys String zu bauen.

Der S7-String mit 40 Zeichen hat 42 Bytes, der Codesys-String mit 40 Zeichen hat 41 Bytes.
 
Zurück
Oben