Beckhoff ADS

Beckhoff TwinCAT-Steuerungen über ADS/AMS anbinden - die AMS-Route, der Port der Laufzeit, Symbolpfade und Leselängen.

Als Markdown ansehen

Der Treiber Beckhoff ADS spricht mit Beckhoff TwinCAT-Steuerungen über ADS, das Automatisierungsprotokoll von TwinCAT, getragen von AMS-Routen. Sie adressieren Werte über ihren Symbolpfad im Programm der Steuerung, was Sie tippen, ist also das, was das TwinCAT-Projekt erklärt. Legen Sie im Connector ein Gerät unter dem Treiber Beckhoff ADS an; der Bereich zeigt nur die Felder, die dieses Protokoll verwendet.

Verbindung

Feld Bedeutung Standard
Host IP-Adresse der Steuerung. Ihre AMS Net Id wird aus dieser Adresse als {ip}.1.1 abgeleitet. leer
Port Der AMS-Port der Ziellaufzeit. 0 verwendet 851, die erste Laufzeit der Steuerung unter TwinCAT 3; weitere Laufzeiten von TwinCAT 3 zählen von dort aufwärts (852, 853, …). 0
Lokale IP (AMS) Die eigene IP-Adresse dieser Station, aus der ihre AMS Net Id als {ip}.1.1 abgeleitet wird. Sie muss zu der AMS-Route passen, die an der Steuerung eingerichtet ist. Bleibt sie leer, wird der Wert von Host wiederverwendet, was nur funktioniert, wenn beide Enden dieselbe Adresse haben, füllen Sie sie in der Praxis also aus. leer
Abfrageintervall (ms) Lesetakt für das ganze Gerät, für Tags, die ihn nicht selbst festlegen. 1.000

Die Kopfzeile des Geräts zeigt den zusammengesetzten Endpunkt, zum Beispiel ads://192.168.0.1:192.168.0.50:851 (lokale IP, IP der Steuerung, AMS-Port). Jeder Tag darf sein eigenes Abfrageintervall (ms) setzen; der Wert 0 an einem Tag fällt auf das Intervall des Geräts zurück.

ADS antwortet nur Stationen, die die Steuerung kennt: Richten Sie an der Steuerung eine feste AMS-Route ein (TwinCAT Engineering, SYSTEM → Routes, oder das Symbol von TwinCAT im Infobereich), deren Adresse die IP dieser Station ist und deren AMS Net Id diese IP gefolgt von .1.1 ist, passend zu dem, was der Treiber aus Lokale IP (AMS) ableitet. Ohne die Route schlägt die Verbindung fehl, obwohl der Weg durch das Netz in Ordnung ist.

Adressierung

Ein Beckhoff-Tag wird über zwei Felder auf der Karte Quelle des Tags adressiert:

Feld Bedeutung Angenommene Werte Standard
Symbol Der Symbolpfad der Variablen im Programm der Steuerung. Pflichtfeld. Freitext, z. B. MAIN.fValue leer
Leselänge (Bytes, leer = automatisch) Wie viele Bytes je Lesevorgang übertragen werden. Leer bemisst den Lesevorgang nach dem Datentyp. 1 und aufwärts, leer leer

Der Symbolpfad ist genau das, was TwinCAT zeigt: Variablen eines Programms als MAIN.fValue, globale Variablenlisten als GVL.MachineSpeed oder GVL_Settings.rSetpoint. Der Treiber löst das Symbol über seinen Namen an der Steuerung auf und liest seine rohen Bytes. Die automatischen Leselängen sind:

Datentyp Automatische Leselänge
Boolean 1 Byte
Int32 4 Bytes
Float 4 Bytes
String 16 Bytes

Für einen String, der länger als 16 Zeichen ist, setzen Sie Leselänge so, dass sie die erklärte Größe abdeckt (ein TwinCAT-STRING(80) braucht 80 Bytes Text). Die Zeile Quelladresse (Bus) auf der Karte Quelle, die nur gelesen wird, zeigt die zusammengesetzte Adresse, während Sie tippen.

Datentypen

Die Auswahl Datentyp bietet die vier Typen an, die der Treiber überträgt:

Datentyp Gegenstück in der Steuerung Hinweise
Boolean BOOL 1 Byte, ungleich null ist wahr
Int32 DINT Little-Endian, wie in der Steuerung
Float REAL Little-Endian, wie in der Steuerung
String STRING Text bis zum ersten NUL des Lesepuffers

Die Byte-Reihenfolge ist das Little-Endian der Steuerung selbst und wird automatisch behandelt; eine Wahl der Byte-Reihenfolge gibt es nicht. Ein Lesevorgang auf String entschlüsselt den zurückgegebenen Puffer bis zum ersten NUL-Zeichen, die Auffüllung hinter einem kurzen Text gelangt also nie in den Wert. Andere Breiten von TwinCAT (INT, LREAL, WORD, …) werden nicht angeboten: Legen Sie eine solche Variable im Programm der Steuerung als einen der vier Typen oben offen, um sie hier zu lesen.

Schreiben

Tags, deren Zugriff Lesen und schreiben oder Nur schreiben ist, lassen sich schreiben. Ein Schreibvorgang löst dasselbe Symbol auf und schreibt die Bytes des Werts: 1 Byte bei Boolean, 4 Bytes bei Int32 und Float. Ein Schreibvorgang auf String legt die ganze Leselänge des Tags ab: vorn die UTF-8-Bytes des Textes und dahinter Nullen, ein kürzerer Text über einem längeren ersetzt also den ganzen Wert, und vom alten überlebt nichts. Ein Text, der nicht in die erklärte Länge passt, wird abgelehnt, mit der Länge benannt im Journal, und nie auf Maß gekürzt. Ein neuer Tag beginnt als Nur lesen.

Gerätesuche

ADS kennt in diesem Treiber keine Suche über Rundruf, der Connector zeigt also keine Schaltfläche Suchen. Legen Sie das Gerät und seine Symbole von Hand an.

Gut zu wissen

  • Die AMS-Route ist der übliche Grund, aus dem eine erste Verbindung fehlschlägt: Die AMS Net Id der Route an der Steuerung muss genau die IP der Station plus .1.1 sein.
  • Symbole werden bei jedem Lesevorgang über ihren Namen aufgelöst, ein Programmdownload, der ein Symbol umbenennt oder entfernt, macht seinen Tag also von schlechter Qualität, bis die Namen wieder passen.
  • Eine nicht erreichbare Steuerung kostet beim Start nichts: Das Gerät versucht es im Hintergrund weiter, und seine Tags lesen schlechte Qualität, bis die Verbindung steht.