Herunterladen Diese Seite drucken

B&R X20 System Anwenderhandbuch Seite 243

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

Werbung

12.10.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
Sendearray anlegen, das den Konventionen des Flatstreams entspricht. Auf diese Weise kann der Flatstream
sehr effizient gestaltet werden, ohne wichtige Ressourcen zu blockieren.
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
Controlbytes gebildet. Die Daten werden zu einem Datenstrom zusammengefügt, das heißt, je ein Control-
byte 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 ko-
piert 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 Se-
quenceCounter. 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äh-
rend der Übertragung muss die Empfangsstation die ankommenden Controlbytes erkennen und auswer-
ten. Für jede Nachricht sollte ein separates Empfangsarray angelegt werden. Auf diese Weise kann der Emp-
fänger vollständig übertragene Nachrichten sofort weiterverarbeiten.
X20 System Anwenderhandbuch 4.30
SPS/Bus Controller
OutputMTU
Typ: USINT
TxBytes
Wenn OutputMTU
freigegeben wird:
Steuerung 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 41: 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
an OutputMTU
Modul fügt den Sendepuffer
angepasst
zum internen Array hinzu
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
243

Werbung

loading