Herunterladen Inhalt Inhalt Diese Seite drucken

Zusätzliche Informationen; Prinzip Des Flatstreams; Vorgehensweise - B&R X20 System Anwenderhandbuch

Vorschau ausblenden Andere Handbücher für X20 System:
Inhaltsverzeichnis

12.8.3 Prinzip des Flatstreams

Voraussetzung
Bevor der Flatstream genutzt werden kann, muss die jeweilige Kommunikationsrichtung synchronisiert sein, das
heißt, beide Kommunikationspartner fragen zyklisch den SequenceCounter der Gegenstelle ab. Damit prüfen sie,
ob neue Daten vorliegen, die übernommen werden müssen.
Kommunikation
Wenn ein Kommunikationspartner eine Nachricht an seine Gegenstelle senden will, sollte er zunächst ein Sen-
dearray anlegen, das den Konventionen des Flatstreams entspricht. Auf diese Weise kann der Flatstream sehr
effizient gestaltet werden, ohne wichtige Ressourcen zu blockieren.
SPS/Bus Controller
Sendearray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
Empfangsarray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx

Vorgehensweise

Als erstes wird die Nachricht in zulässige Segmente mit max. 63 Bytes aufgeteilt und die entsprechenden Con-
trolbytes gebildet. Die Daten werden zu einem Datenstrom zusammengefügt, das heißt, je ein Controlbyte und
das dazugehörige Segment im Wechsel. Dieser Datenstrom kann in das Sendearray geschrieben werden. Jedes
Arrayelement ist dabei max. so groß, wie die freigegebene MTU, sodass ein Element einer Sequenz entspricht.
Wenn das Array vollständig angelegt ist, prüft der Sender, ob die MTU neu befüllt werden darf. Danach kopiert
er das erste Element des Arrays bzw. die erste Sequenz auf die Tx-Byte-Register. Die MTU wird zyklisch über
den X2X Link zur Empfängerstation transportiert und auf den korrespondierenden Rx-Byte-Registern abgelegt. Als
Signal, dass die Daten vom Empfänger übernommen werden sollen, erhöht der Sender seinen SequenceCounter.
Wenn die Kommunikationsrichtung synchronisiert ist, erkennt die Gegenstelle den inkrementierten Sequence-
Counter. Die aktuelle Sequenz wird an das Empfangsarray angefügt und per SequenceAck bestätigt. Mit dieser
Bestätigung wird dem Sender signalisiert, dass die MTU wieder neu befüllt werden kann.
Bei erfolgreicher Übertragung entsprechen die Daten im Empfangsarray exakt denen im Sendearray. Während
der Übertragung muss die Empfangsstation die ankommenden Controlbytes erkennen und auswerten. Für jede
Nachricht sollte ein separates Empfangsarray angelegt werden. Auf diese Weise kann der Empfänger vollständig
übertragene Nachrichten sofort weiterverarbeiten.
X20 System Anwenderhandbuch 4.00
OutputMTU
Typ: USINT
TxBytes
Wenn OutputMTU
freigegeben wird:
CPU füllt
OutputMTU
mit der nächsten
Sequenz des
Sendearrays
InputMTU
Typ: USINT
RxBytes
Wenn der
InputSequence-
Zähler erhöht wird:
InputMTU muss am
Ende des Empfangsarrays
hinzugefügt werden
(erhöhe InputSequenceAck
um korrekt zu beenden)
Abbildung 37: Kommunikation per Flatstream
Modulintern
Empfangspuffer
Typ: USINT
*RxBytes
zykl.
Der Sendepuffer
Wenn der OutputSequence-
des Moduls wird
Zähler erhöht wird:
zyklisch über X2X
Modul fügt den Sendepuffer
an OutputMTU
zum internen Array hinzu
angepasst
Wenn erfolgreich:
InputSequenceAck wird
an den Sendezähler
angepasst
Modulintern
Sendepuffer
Typ: USINT
*TxBytes
zykl.
InputMTU wird
Wenn erlaubt:
zyklisch über X2X
Modul füllt den internen
an den Empfangs-
Sendepuffer mit der
puffer angepasst
nächsten Sequenz des
Sendearrays
Modul erhöht den
InputSequence-Zähler
Zusätzliche Informationen
Modul
Modulintern
Empfangsarray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
Modulintern
Sendearray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
233

Quicklinks ausblenden:

Inhaltsverzeichnis
loading

Diese Anleitung auch für:

Max20-ger

Inhaltsverzeichnis