Empfangen von Daten aus einem Modul (Input)
Beim Empfangen von Daten wird das Sendearray vom Modul generiert, über den Flatstream übertragen und muss
auf dem Empfangsarray abgebildet werden. Die Struktur des ankommenden Datenstroms kann über das Modus-
register eingestellt werden. Der Algorithmus zum Empfangen bleibt dabei aber unverändert.
SPS/Bus Controller
Empfangsarray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
Algorithmus
0) Zyklische Statusabfrage:
- CPU muss InputSequenceCounter überwachen
Zyklische Prüfungen:
- Modul prüft InputSyncAck
- Modul prüft InputSequenceAck
Vorbereitung:
- Modul bildet Segmente bzw. Controlbytes und legt Sendearray an
Aktion:
- Modul überträgt das aktuelle Element des internen Sendearrays in den internen Sendepuffer
- Modul erhöht InputSequenceCounter
1) Empfangen (sobald InputSequenceCounter erhöht):
- CPU muss Daten aus InputMTU übernehmen und an das Ende des Empfangsarrays anfügen
- CPU muss InputSequenceAck an InputSequenceCounter der aktuell verarbeiteten Sequenz angleichen
Abschluss:
- Modul überwacht InputSequenceAck
→ Eine Sequenz gilt erst dann als erfolgreich übertragen, wenn sie über das InputSequenceAck bestätigt wurde.
- Weitere Sequenzen werden erst nach erfolgreicher Abschlussprüfung im nächsten Buszyklus versendet.
X90 mobile System Anwenderhandbuch V 1.40
X90 mobile Module • Condition Monitoring • X90CM480.04-00
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 55: Kommunikation per Flatstream (Input)
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
Modul
Modulintern
Sendearray
Typ: USINT
_data_01
_data_02
_data_03
_data_04
_data_05
. . .
_data_xx
353