RK512

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Das RK512-Protokoll dient zum Zugriff auf interne Speicherbereiche einer Siemens-SPS der Reihe S5.

Im OSI-Modell ist RK512 auf Schicht 4, der Transportschicht anzusiedeln (da einzelne Bereiche des Zielsystems adressiert werden). Unter RK512 läuft zumeist das 3964R-Protokoll (auf Schicht 2). Die Vermittlungsschicht (Layer 3) entfällt dabei, da es sich um eine Punkt-zu-Punkt-Kommunikation handelt und somit kein Zielsystem adressiert werden muss.

Protokollablauf

[Bearbeiten | Quelltext bearbeiten]

Eine RK512-Transaktion besteht aus einem Befehlstelegramm und einem Reaktionstelegramm. Der Initiator der Transaktion steuert dabei die Datenübertragung zum oder vom Partnersystem. Dabei wird zwischen zwei Auftragsarten unterschieden: SEND (Datenübertragung zum Partnersystem) und FETCH (Anfrage an Partner und Datenübertragung zum Initiator).

Telegrammaufbau

[Bearbeiten | Quelltext bearbeiten]

Ein SEND-Befehl und eine FETCH-Reaktion bestehen aus einem Telegrammkopf und folgenden Daten, während SEND-Reaktionen und FETCH-Befehle nur einen Telegrammkopf (ohne Daten) besitzen. Dabei unterscheidet sich der Telegrammkopf zwischen Befehl und Reaktion.

Befehls-Telegrammkopf

[Bearbeiten | Quelltext bearbeiten]

Der Telegrammkopf eines Befehlstelegramms besteht aus 10 Bytes:

Byte Bedeutung
1–2 Telegrammkennung
3 Auftragsart
4 Datenbereich
5–6 Datenziel bzw. -quelle
7–8 Länge der Daten
9 Koordinierungsmerker
10 Koordinierungsmerkerbit (Bit 0–3) und CPU-Nummer (Bits 4–7)
(11-?) (Daten beim SEND-Auftrag)

Dabei bedeuten:

  • Telegrammkennung
    • 0x00 0x00: Starttelegramm
    • 0xFF 0x00: (hex) Folgetelegramm, wenn mehr als 128 Bytes Daten übertragen werden
  • Auftragsart
    • 'A': SEND-Auftrag in Datenbaustein als Ziel
    • 'O': SEND-Auftrag in erweiterten Datenbaustein als Ziel
    • 'E': FETCH-Auftrag
  • Datenbereich
    • 'D': Datenbaustein
    • 'X': erweiterter Datenbaustein
    • 'E': Eingangsbytes
    • 'A': Ausgangsbytes
    • 'M': Merkerbytes
    • 'P': Peripheriebytes
    • 'Z': Zähler
    • 'T': Timer
    • 'S': Absolute Speicheradressen
    • 'B': (Betriebs-)Systemadressen
  • Datenziel/-quelle
    • Bausteinnummer (Byte 5) und Offset (Byte 6)
    • Byte-, Zähler- oder Timernummer
    • Speicheradresse (in Big-Endian-Byte-Reihenfolge)
  • Datenlänge
    • Anzahl zu übertragender Bytes (Eingänge, Ausgänge, Merker, Peripherie) oder Worte
    • in Big-Endian-Byte-Reihenfolge
  • Koordinierungsmerker
    • zeigt erfolgreiche Abarbeitung des Befehls an
    • Angabe als Merkerbyte (Byte 9) und Bit in diesem Byte (Byte 10, Bits 0–3)
    • Kein Koordinierungsmerker wird als Merker 255, Bit 15 dargestellt
  • CPU-Nummer
    • Nummer der CPU, auf die Zugegriffen wird
    • Keine Angabe (Alle CPUs) wird dargestellt als 0 (wenn Koordinierungsmerker vorhanden) oder 0xF (ohne Koordinierungsmerker)

Reaktions-Telegrammkopf

[Bearbeiten | Quelltext bearbeiten]

Der Telegrammkopf eines Reaktionstelegramms besteht aus 4 Bytes:

Byte Bedeutung
1–2 Telegrammkennung
3 Auftragsart
4 Status
(5-?) (Daten beim FETCH-Auftrag)

Dabei bedeuten:

  • Telegrammkennung (Analog zum Befehl)
    • 0x00 0x00: Starttelegramm
    • 0xFF 0x00: (hex) Folgetelegramm, wenn mehr als 128 Bytes Daten übertragen werden
  • Auftragsart
    • 0x00: Antworttelegramm
  • Status
    • 0x00: Bearbeitung erfolgreich
    • > 0x00: Fehlernummer