Der Funktionscode (FC) im Telegrammkopf kennzeichnet den Telegrammtyp, wie Aufruf- (Request- oder Send/Request-) und Quittungs- oder Antwort-Telegramm (Acknowledgement-, Response-Frame). Zusätzlich enthält der Funktionscode die eigentliche Übertragungsfunktion (Function) und Steuerinformationen, die den Nachrichten-Verlust und die -Vervielfältigung verhindern, oder den Teilnehmertype (Station-Type) mit dem FDL-Zustand.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
FC: Function Code Request |
|
1 |
|
|
|
|
|
|
Request Telegramm |
|
|
|
X |
|
|
|
|
FCV = Alternierendes Bit eingeschaltet |
|
|
X |
|
|
|
|
|
FCB = Alternierendes Bit (ab Folgeaufruf) |
1 |
|
|
|
0 (0x0) |
CV = Clock Value (Clock-Synchronisation) |
|||
1 |
|
|
|
andere |
Reserviert |
|||
0 |
|
|
|
0 (0x0) |
TE = Time Event (Clock-Synchronisation) |
|||
0 |
|
|
|
3 (0x3) |
SDA_LOW = Send Data Acknowledged - low priority |
|||
0 |
|
|
|
4 (0x4) |
SDN_LOW = Send Data Not acknowledged - low priority |
|||
0 |
|
|
|
5 (0x5) |
SDA_HIGH = Send Data Acknowledged - high priority |
|||
0 |
|
|
|
6 (0x6) |
SDN_HIGH = Send Data Not acknowledged |
|||
0 |
|
|
|
7 (0x7) |
MSRD = Send Request Data with Multicast Reply |
|||
0 |
|
|
|
9 (0x9) |
Request FDL Status |
|||
0 |
|
|
|
12(0xC) |
SRD low = Send and Request Data |
|||
0 |
|
|
|
13(0xD) |
SRD high = Send and Request Data |
|||
0 |
|
|
|
14(0xE) |
Request Ident with reply |
|||
0 |
|
|
|
15 (0xF) |
Request LSAP Status with reply 1) |
|||
0 |
|
|
|
andere |
Reserviert |
1) dieser Wert ist in der neusten Ausgabe der Normen nicht mehr definiert sondern nur reserviert
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
FC : Function Code Response |
0 |
|
|
|
|
Reserviert |
|||
|
0 |
|
|
|
Response Telegramm |
|||
|
|
0 |
0 |
|
Slave |
|||
|
|
0 |
1 |
|
Master nicht bereit |
|||
|
|
1 |
0 |
|
Master bereit, ohne Token |
|||
|
|
1 |
1 |
|
Master bereit, im Token-Ring |
|||
|
|
|
|
0 (0x0) |
OK |
|||
|
|
|
|
1 (0x1) |
UE = User Error |
|||
|
|
|
|
2 (0x2) |
RR = Keine Resourcen |
|||
|
|
|
|
3 (0x3) |
RS = SAP nicht aktiviert |
|||
|
|
|
|
8 (0x8) |
DL = Data Low (Normalfall bei DP) |
|||
|
|
|
|
9 (0x9) |
NR = Keine Antwortdaten bereit |
|||
|
|
|
|
10(0xA) |
DH = Data High (DP Diagnose anstehend) |
|||
|
|
|
|
12(0xC) |
RDL = Daten nicht empfangen und Data Low |
|||
|
|
|
|
13(0xD) |
RDH = Daten nicht empfangen und Data High |
|||
|
|
|
|
andere |
Reserviert |
Aufruffolgebit (Frame Count Bit)
Mit dem Aufruffolgebit FCB (b5) wird eine Nachrichten-Duplizierung beim quittierenden oder antwortenden Teilnehmer (Responder) und ein Verlust beim aufrufenden Teilnehmer (Initiator) verhindert. Davon ausgenommen sind die Aufrufe ohne Quittung (SDN) und die Aufrufe FDL-Status, Ident und LSAP-Status.
Für die Sicherungssequenz muss der Initiator für jeden Responder ein FCB führen. Wenn erstmals ein Aufruf-Telegramm (Request oder Send/Request) an einen Responder oder erneut an einen momentan nicht funktionsfähig markierten Responder gesendet wird, muss bei diesem das FCB definiert gesetzt werden. Der Initiator bewirkt dies in einem Aufruf-Telegramm mit FCV=0 und FCB=1.Der Responder muss ein ein derartiges Telegramm als ersten Nachrichtenzyklus werten und das FCB=1 gemeinsam mit der Adresse (SA) des Initiators abspeichern (siehe nachfolgende Tabelle). Dieser Nachrichtenzyklus wird vom Initiator nicht wiederholt.
In den folgenden Aufruf - Telegrammen an denselben Responder muss der Initiator das FCV=1 setzen und mit jedem neuen Aufruf - Telegramm das FCB wechseln. Der Responder muss beim Empfang eines an ihn adressierten Aufruf - Telegramms mit FCV=1 das FCB auswerten. Ein geändertes FCB gegenüber dem unmittelbaren vorherigen Aufruf - Telegramm desselben Initiators (gleiche SA) gilt als Bestätigung für den ordnungsmässigen Abschluss des letzten Nachrichtenzyklus. Stammt das Aufruf-Telegramm von einem anderen Initiators (geänderte SA), dann entfällt die Auswertung des FCB. Der Responder muss in beiden Fällen das FCB mit der Quelladresse SA bis zum Empfang eines neuen an ihn adressierten Telegramms speichern.
Im Falle eines fehlenden oder gestörten Quittungs- oder Antwort - Telegramm darf das FCB in der Aufruf-Wiederholung vom Initiator nicht geändert werden; dies weist auf den fehlerhaften vorhergehenden Nachrichtenzyklus hin. Empfängt der Responder ein Aufruf - Telegramm mit FCV=1 und gleiches FCB wie unmittelbar vorherigen Aufruf-Telegramm desselben Initiators (gleiche SA), dann handelt es sich um eine Aufrufwiederholung. Der Responder muss daraufhin nochmals das bereitgehaltene Quittungs- oder Antwort-Telegramm übertragen.
Bis zur oben genannten Bestätigung oder bis zum Empfang eines Telegramms mit geänderter Adresse (SA oder DA), das nicht quittiert wird (Send Data with No Acknowledge, SDN) muss der Responder das letzte Quittungs- oder Antwort-Telegramm gegebenfalls für eine Aufruf-Wiederholung bereithalten.
Bei Aufruf-Telegrammen, die nicht quittiert werden, und bei Request-FDL-Status, -Ident, -LSAP-Status ist FCV=0 und FCB=0; eine Auswertung beim Responder entfällt.
b5 |
b4 |
Bitposition |
||
---|---|---|---|---|
FCB |
FCV |
Bedingung |
Bedeutung |
Aktion |
0 |
0 |
DA = TS/127 |
Aufruf ohne Quittung Aufruf FDL-Status/ Ident/ LSAP-Status |
letzte Quittung löschen |
0/1 |
0/1 |
DA # TS |
Aufruf an anderen Responder |
letzte Quittung / Antwort löschen |
1 |
0 |
DA = TS |
Erstaufruf |
FCBM := 1 SAM := SA letzte Quittung / Antwort löschen |
0/1 |
1 |
DA = TS SA = SAM FCB # FCBM |
Neuer Aufruf |
letzte Quittung / Antwort löschen FCBM := FCB Quittung / Antwort bereithalten für Wiederholung |
0/1 |
1 |
DA = TS SA = SAM FCB = FCBM |
Aufruf-Wiederholung |
FCBM := FCB Quittung / Antwort wieder- holen und weiterhin bereit halten |
0/1 |
1 |
DA = TS SA # SAM |
Neuer Initiator |
FCBM := FCB SAM := SA Quittung / Antwort bereithalten für Wiederholung |
FCBM gespeichertes FCB / SAM gespeicherte SA