Herunterladen Diese Seite drucken

B&R X20 System Anwenderhandbuch Seite 250

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

Werbung

Zusätzliche Informationen
12.10.4.4.1 Senden von Daten an ein Modul (Output)
Beim Senden muss das Sendearray im Programmablauf generiert werden. Danach wird es Sequenz für Se-
quenz über den Flatstream übertragen und vom Modul empfangen.
Information:
Obwohl alle B&R Module mit Flatstream-Kommunikation stets die kompakteste Übertra-
gung in Output-Richtung unterstützen wird empfohlen die Übertragungsarrays für beide
Kommunikationsrichtungen gleichermaßen zu gestalten.
Sendearray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
Nachricht kleiner als OutputMTU
Die Länge der Nachricht sei zunächst kleiner als die OutputMTU. In diesem Fall würde eine Sequenz ausrei-
chen, um die gesamte Nachricht und ein benötigtes Controlbyte zu übertragen.
Algorithmus
Zyklische Statusabfrage:
- Modul überwacht OutputSequenceCounter
0) Zyklische Prüfungen:
- Steuerung muss OutputSyncAck prüfen
→ falls OutputSyncAck = 0; OutputSyncBit zurücksetzen und Kanal resynchronisieren
- Steuerung muss Freigabe der OutputMTU prüfen
→ falls OutputSequenceCounter > InputSequenceAck; MTU nicht freigegeben, weil letzte Sequenz noch nicht bestätigt
1) Vorbereitung (Sendearray anlegen):
- Steuerung muss Nachricht auf zulässige Segmente aufteilen und entsprechende Controlbytes bilden
- Steuerung muss Segmente und Controlbytes zu Sendearray zusammenfügen
2) Senden:
- Steuerung überträgt das aktuelle Element des Sendearrays in die OutputMTU
→ OutputMTU wird zyklisch in den Sendepuffer des Moduls übertragen, aber noch nicht weiterverarbeitet
- Steuerung muss OutputSequenceCounter erhöhen
Reaktion:
- Modul übernimmt die Bytes des internen Empfangspuffers und fügt sie an das interne Empfangsarray an
- Modul sendet Bestätigung; schreibt Wert des OutputSequenceCounters auf OutputSequenceAck
3) Abschluss:
- Steuerung muss OutputSequenceAck überwachen
→ Eine Sequenz gilt erst dann als erfolgreich übertragen, wenn sie über das OutputSequenceAck bestätigt wurde. Um Übertragungsfehler auch bei
der letzten Sequenz zu erkennen, muss sichergestellt werden, dass der Abschluss lange genug durchlaufen wird.
Hinweis:
Für eine exakte Überwachung der Kommunikationszeiten sollten die Taskzyklen gezählt werden, die seit der letzten Erhöhung des OutputSequence-
Counters vergangen sind. Auf diese Weise kann die Anzahl der Buszyklen abgeschätzt werden, die bislang zur Übertragung benötigt wurden. Über-
steigt der Überwachungszähler eine vorgegebene Schwelle, kann die Sequenz als verloren betrachtet werden.
(Das Verhältnis von Bus- und Taskzyklus kann vom Anwender beeinflusst werden, sodass der Schwellwert individuell zu ermitteln ist.)
- Weitere Sequenzen dürfen erst nach erfolgreicher Abschlussprüfung im nächsten Buszyklus versendet werden.
250
SPS/Bus Controller
OutputMTU
Typ: USINT
TxBytes
Wenn OutputMTU
freigegeben wird:
Steuerung füllt
OutputMTU mit
der nächsten
Sequenz des
Sendearrays
Abbildung 44: Kommunikation per Flatstream (Output)
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
Modul
Modulintern
Empfangsarray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
X20 System Anwenderhandbuch 4.30

Werbung

loading