Beckhoff ADS
Beckhoff TwinCAT-Steuerungen über ADS/AMS anbinden - die AMS-Route, der Port der Laufzeit, Symbolpfade und Leselängen.
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.1sein. - 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.