Hinweise zur Dokumentation

Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.

Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.

Disclaimer

Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Deshalb ist die Dokumentation nicht in jedem Fall vollständig auf die Übereinstimmung mit den beschriebenen Leistungsdaten, Normen oder sonstigen Merkmalen geprüft.
Falls sie technische oder redaktionelle Fehler enthält, behalten wir uns das Recht vor, Änderungen jederzeit und ohne Ankündigung vorzunehmen.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.

Marken

Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC® und XTS® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.

Patente

Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

Copyright

© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Ams Serial Specifation: Overview

TwinCAT AMS über RS232 Spezifikation

Übersicht

Die folgende Beschreibung legt die Spezifikation für das AMS-Protokoll über RS232 offen. Hierdurch bietet sich die Möglichkeit an, eigene Implementierungen von AMS über RS232 zu realisieren. Z.B. für andere Betriebssysteme als Windows.

Die Kommunikation erfolgt hierbei über RS232. Der prinzipielle Ablauf der Kommunikation wird in der Dokumentation TwinCAT ADS unter 'Einführung ADS' beschrieben. Die Spezifikation des ADS/AMS-Protokoll ist in der Dokumentation unter 'TwinCAT ADS/AMS - Specification' zu finden.


AMS Serial Specification: Serial AMS packet

TwinCAT AMS über RS232 Spezifikation

Aufbau des seriellen AMS Frames

Datenfeld | Größe in Bytes | Wertebereich/Default | Beschreibung
Magic Cookie | 2 | 0xA501/0xA501 | Id zur Erkennung eines seriellen AMS Frames
Adresse Sender | 1 | 0..255 / 0 | Adresse des sendenden Teilnehmers. Für eine RS232 Kommunikation kann dieser Wert immer auf 0 gesetzt werden, da es sich um eine 1 zu 1 Verbindung handelt und die Teilnehmer dadurch eindeutig sind.
Adresse Empfänger | 1 | 0..255 / 0..255 | Adresse des Empfängers. Für eine RS232 Kommunikation kann dieser Wert immer auf 0 gesetzt werden, da es sich um eine 1 zu 1 Verbindung handelt und die Teilnehmer dadurch eindeutig sind.
Fragment Nummer | 1 | 0..255 / 0 | Nummer des gesendeten Frames. Wenn die Nummer 255 gesendet worden ist, wird wieder mit der Nummer 0 begonnen. Der Empfänger überprüft diese Nummer mit einem internen Zähler.
Nutzdatenlänge | 1 | 0..255 / 0..255 | Die maximale Länge des zu sendenden AMS Pakets beträgt 255. Wenn größere AMS Pakete verschickt werden sollen müssen diese fragmentiert werden (zur Zeit nicht offen gelegt).
Nutzdaten | n |  | Das zu sendende AMS Paket.
CRC | 2 | 0..65535 | Checksum des Frames

Mit Hilfe des seriellen AMS-Frames kann ein AMS-Paket über RS232 übertragen werden. Das eigentliche AMS-Paket befindet sich im Feld Nutzdaten des Frames. Die maximale Länge des AMS-Paketes ist auf 255 Bytes beschränkt. Damit beträgt die maximale Größe eines seriellen AMS Frames 263 Bytes. Die Fragment-Nummer wird vom Empfänger mit einem internen Zähler verglichen. Beim Empfangen des ersten AMS-Frames oder bei Überschreitung eines Timeouts wird die Frame-Nummer einfach übernommen und nicht überprüft. Zur Berechnung der Checksum wird der CRC16 Algorithmus verwendet.

Aufbau des seriellen AMS Acknowledge Frames

Wenn ein serielles AMS-Frame empfangen worden ist und der Frame OK ist (Magic Cookie OK, CRC OK, richtige Fragment-Nummer etc.), muss der Empfänger ein Ackknowlede-Frame schicken, um dem Sender mitzuteilen, dass der Frame angekommen ist.

Datenfeld | Größe in Bytes | Wertebereich/Default | Beschreibung
Magic Cookie | 2 | 0x5A01/0x5A01 | Id zur Erkennung eines seriellen AMS Acknowledge Frames.
Adresse Sender | 1 | 0..255 / 0 | Eigene Adresse.
Adresse Empfänger | 1 | 0..255 / 0..255 | Adresse des Teilnehmers, der den ursprünglichen Frame geschickt hat.
Fragment Nummer | 1 | 0..255 / 0 | Entspricht der Fragment Nummer, die der Sender geschickt hat.
Nutzdatenlänge | 1 | 0/ 0 | Ist immer 0, da keine Nutzdaten verschickt werden.
CRC | 2 | 0..65535 | Checksum des Frames

Aufbau des seriellen AMS Reset Frames

Falls der Sender nach mehrmaligem Senden kein gültiges Acknowledge erhält, wird ein Reset-Frame verschickt. Dadurch wird dem Empfänger mitgeteilt, dass eine neue Kommunikation aufgesetzt wird, und der Empfänger übernimmt dann beim nächsten AMS-Frame die Fragment-Nummer, ohne eine Überprüfung vorzunehmen.

Datenfeld | Größe in Bytes | Wertebereich/Default | Beschreibung
Magic Cookie | 2 | 0xA503 / 0xA503 | Id zur Erkennung eines seriellen AMS Reset Frames.
Adresse Sender | 1 | 0..255 / 0 | Adresse des Senders.
Adresse Empfänger | 1 | 0..255 / 0..255 | Adresse des Empfängers.
Fragment Nummer | 1 | 0/0 | Ist immer 0.
Nutzdatenlänge | 1 | 0/ 0 | Ist immer 0, da keine Nutzdaten verschickt werden.
CRC | 2 | 0..65535 | Checksum des Frames


AMS Serial Specification: Serial Communication

TwinCAT AMS über RS232 Spezifikation

Ablauf der seriellen Kommunikation

Der Sender führt folgende Schritte aus:

  • Applikation verschickt AMS Kommando
  • Wenn das AMS Kommando größer als 255 Bytes ist, wird ein Fehler an die Applikation geschickt.
  • Ein serieller AMS Frame wird allokiert und das AMS Kommando wird in das Feld Nutzdaten kopiert. Das Feld Nutzdatenlänge wird auf die Größe des AMS-Kommandos gesetzt.
  • Der Frame wird über die serielle Schnittstelle verschickt und es wird auf ein Acknowledge gewartet.
  • Falls der Sender nach mehrmaligem Senden kein gültiges Acknowledge erhält, wird ein Reset Frame verschickt.

Der Empfänger führt folgende Schritte aus:

  • die serielle Schnittstelle wird ausgelesen
  • falls Daten empfangen werden:
    • Überprüfen des Magic Cookies
    • Überpüfen der CRC
    • Überprüfen ob die Fragment Nummer mit dem internen Zähler übereinstimmt. Wenn dies der erste empfangene Frame ist, oder nach einer bestimmten Zeit kein Frame mehr empfangen wurde, wird die Frame-Nummer einfach übernommen und nicht überprüft.
    • Wenn ein gülitger Frame empfangen worden ist:
      • ein Acknowledge an den Sender schicken
      • Nutzdaten( AMS-Telegramm) an die Applikation weiterleiten

Da ADS nur ein überlagertes Protokoll von AMS ist, gilt dasselbe auch für das Verschicken von ADS-Kommandos. Das ADS Kommando befindet sich im Datenbereich des AMS-Kommandos, dass dann über die serielle Schnittstelle verschickt werden kann.


AMS Serial Specification: Serial AMS packet

TwinCAT AMS über RS232 Spezifikation

Beispiel

Terminal --> SPS : Anforderung von 2 Byte Daten

Magic Cookie 01h/A5h
Sender 00h
Empfaenger 00h
Fragmentnummer 06h
Datenlaenge 2Ch
NetID Empfaenger C0h/A8h/64h/AEh/01h/01h
Port Nummer 21h/03h
NetID Sender C0h/A8h/64h/9Ch/01h/01h
Portnummer 01h/80h
Kommando lesen 02h/00h
Status 04h/00h
Anzahl Datenbyte 0Ch/00h/00h/00h/
Fehlercode 00h/00h/00h/00h
InvokeID 07h/00h/00h/00h
Index Gruppe 05h/F0h/00h/00h
Index Offset 04h/00h/00h/9Dh
Anzahl Byte 02h/00h/00h/00h
Checksumme xxh/xxh/

SPS --> Terminal : Acknowledge:

Magic Cookie 01h/5Ah
Sender 00h
Empfaenger 00h
Fragmentnummer 06h
Datenlaenge 00h
Checksumme 67h/5Ah

SPS sendet die Daten :

Magic Cookie 01h/A5h
Sender 00h
Empfaenger 00h
Fragmentnummer ECh
Anzahl Daten 2Ah
NetID Empfaenger C0h/A8h/64h/9Ch/01h/01h
Portnummer 01h/80h
NetID Sender C0h/A8h/64h/AEh/01h/01h
Portnummer 21h/03h
Response Lesen 02h/00h
Status 05h/00h
Anzahl Daten 0Ah/00h/00h/00h
Fehlercode 00h/00h/00h/00h
InvokeID 07h/00h/00h/00h
Ergebnis 00h/00h/00h/00h
Anzahl Daten 02h/00h/00h/00h
Daten AFh/27h
Checksumme 04h/A9h/

Terminal --> SPS : Acknowledge: