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 Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem Zeitpunkt veröffentlichte Dokumentation zu verwenden.

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.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
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®, EtherCAT G®, EtherCAT G10®, EtherCAT P®, Safety over EtherCAT®, TwinSAFE®, XFC®, XTS® und XPlanar® 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, EP1456722, EP2137893, DE102015105702
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.

EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizenziert durch die Beckhoff Automation GmbH, Deutschland.

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.


Übersicht

Die SPS-Software im Rahmen der Beckhoff TwinCAT-Software kann, da es sich um eine reine Software-SPS handelt, als virtuelles Feldgerät (Automation Device) beschrieben werden. Sie stellt daher für andere Kommunikationspartner (z.B. andere virtuelle Feldgeräte oder Windows-Programme) eine Beckhoff-ADS (Automation Device Specification) -Schnittstelle zur Verfügung, über die sie parametriert oder abgefragt werden kann. Die Verwendung des ADS standardisiert den Zugriff auf die SPS und reiht sie in die Gruppe der verfügbaren virtuellen Feldgeräte ein.

Die READ und WRITE Operationen auf der SPS-Schnittstelle erfolgen, wie durch ADS festegelegt, über zwei Zahlen: dem Index-Group und dem Index-Offset.

Auf den nächsten Seiten wird die ADS-Schnittstelle der SPS hinsichtlich der Gruppen- und Offsetindizes genauer beschrieben.

Spezifikationen "Index-Group" der SPS

Die vier globalen Bereiche eines ADS-Gerätes werden für die SPS als vier Abschnitte in den Index-Groups wie folgt abgebildet:

Index-Group (0x = hex) | Index Group Beschreibung
0x00000000 0x00000FFF | Reserviert
0x00001000 | SPS-ADS Parameterbereich
0x00002000 | SPS-ADS Zustandsbereich
0x00003000 | SPS-ADS Gerätefunktionenbereich
0x00004000 | Allgemeine SPS-ADS-Dienste (enthalten Dienste für den Zugriff auf den SPS-Prozessdatenbereich der Merker)
0x00006000 0x0000EFFF | Reserviert für SPS-ADS Erweiterung
0x0000F000 0x0000FFFF | Allgemeine TwinCAT ADS-Systemdienste (enthalten Dienste für den Zugriff auf den SPS-Prozessdatenberech der Ein- und Ausgänge)


"Index-Group/Offset" Spezifikation für allgemeine SPS-ADS-Dienste

In dieser Gruppe befinden sich auch Dienste für den Zugriff auf den SPS-Prozessdatenbereich der Merker.

Index Group | Index Offset | Zugriff | Datentyp | Phys. Einheit | Def.- Bereich | Beschreibung | Anmerkung
0x00004020 | 0x00000000- 0x0000FFFF | R/W | UINT8[n] |  |  | READ_M - WRITE_M SPS-Memory-Bereich( %M-Feld ). Offset ist Byteoffset |
0x00004021 | 0x00000000- 0xFFFFFFFF | R/W | UINT8 |  |  | READ_MX - WRITE_MX SPS-Memory-Bereich( %MX-Feld ). Das Low-Word des Index-Offsets ist der Byteoffset. Der Index-Offset enthält die Bitadresse, die sich aus Bytenummer*8+Bitnummer errechnet. |
0x00004025 | 0x00000000 | R | ULONG |  |  | PLCADS_IGR_RMSIZE Bytelänge des SPS-Prozessabbildes des Memory-Bereiches |
0x00004030 | 0x00000000- 0xFFFFFFFF | R/W | UINT8 |  |  | PLCADS_IGR_RWRB Retain-Datenbereich. Offset ist Byteoffset |
0x00004035 | 0x00000000 | R | ULONG |  |  | PLCADS_IGR_RRSIZE Bytelänge des Retain-Bereiches |
0x00004040 | 0x00000000- 0xFFFFFFFF | R/W | UINT8 |  |  | PLCADS_IGR_RWDB Daten-Bereich. Offset ist Byteoffset |
0x00004045 | 0x00000000 | R | ULONG |  |  | PLCADS_IGR_RDSIZE Bytelänge des Daten-Bereiches |


"Index-Offset" Spezifikation für TwinCAT ADS-Systemdienste

TwinCAT ADS Device PLC

"Index-Group/Offset" Spezifikation für TwinCAT ADS-Systemdienste

Dieser Abschnitt umfasst diejenigen ADS-Dienste, die bei jedem TwinCAT-ADS-Gerät identische Bedeutung und Wirkung haben. In dieser Gruppe befinden sich auch Dienste für den Zugriff auf die SPS-Prozessdaten der Ein- und Ausgänge.

Index
Group 		Index
Offset 		Zugriff Datentyp Beschreibung Anmerkung
0x0000F003 0x00000000 R&W W: UINT8[n]

R: UINT32

GET_SYMHANDLE_BYNAME

Dem in den Write-Daten enthaltene Namen wird ein Handle (Kennwert) zugewiesen und dem Aufrufer als Ergebnis in den Read-Daten zurückgereicht.

0x0000F004 0x00000000 Reserviert
0x0000F005

0x00000000-

0xFFFFFFFF

=symHandle

R/W UINT8[n] READ_/WRITE_SYMVAL_BYHANDLE

Den Wert, der durch 'symHdl' identifizierten Variable, lesen oder der Variablen einen Wert zuweisen. Der ‚symHdl' muss vorher durch den GET_SYMHANDLE_BYNAME-Dienst ermittelt worden sein.

0x0000F006 0x00000000 W UINT32 RELEASE_SYMHANDLE

Die in den Write-Daten enthaltene Kennzahl (Handle) für eine abzufragende benannte SPS-Variable wird freigegeben.

0x0000F020

0x00000000-

0xFFFFFFFF

R/W UINT8[n] READ_I - WRITE_I

SPS-Prozessabbild der physikalischen Eingänge( %I-Feld ). Offset ist Byteoffset.

0x0000F021

0x00000000-

0xFFFFFFFF

R/W UINT8 READ_IX - WRITE_IX

SPS-Prozessabbild der physikalischen Eingänge( %IX-Feld ). Der Index-Offset enthält die Bitadresse, die sich aus Bytenummer*8+Bitnummer errechnet.

0x0000F025

0x00000000 R ULONG ADSIGRP_IOIMAGE_RISIZE

Bytelänge des SPS-Prozessabbildes der physikalischen Eingänge.

0x0000F030

0x00000000-

0xFFFFFFFF

R/W UINT8[n] READ_Q - WRITE_Q

SPS-Prozessabbild der physikalischen Ausgänge( %Q-Feld ). Offset ist Byteoffset.

0x0000F031

0x00000000-

0xFFFFFFFF

R/W UINT8 READ_QX - WRITE_QX

SPS-Prozessabbild der physikalischen Ausgänge( %QX-Feld ). Der Index-Offset enthält die Bitadresse, die sich aus Bytenummer*8+Bitnummer errechnet.

0x0000F035

0x00000000 R ULONG ADSIGRP_IOIMAGE_ROSIZE

Bytelänge des SPS-Prozessabbildes der physikalischen Ausgänge.

0x0000F080

0x00000000-

0xFFFFFFFF

= n (Anzahl der internen (Sub-)Befehle)

R&W

W:
(n * ULONG[3]) :=
IG1, IO1, Len1,
IG2, IO2, Len2,
...,
IG(n), IO(n), Len(n)

R:
(n * ULONG)
+ UINT8[Len1]
+ UINT8[Len2]
+ ...,
+ UINT8[Len(n)] :=
Result1, Result2, ..., Result(n),
Data1, Data2,..., Data(n)

ADSIGRP_SUMUP_READ

Die Write-Daten enthalten eine Liste von mehreren, separaten AdsReadReq(IG, IO, Len, Data) quasi als "Sammel-Lesebefehl".

Dem Aufrufer wird in den Read-Daten das Ergebnis der Sammelanfrage zurückgereicht. Dabei werden zuerst alle Rückgabewerte aufgelistet, anschließend folgen die angefragten Daten.

SPS / IO ab TwinCAT v2.10 Build >= 1324
0x0000F081

0x00000000 -

0xFFFFFFFF

= n (Anzahl der internen (Sub-)Befehle)

R&W
W:
(n * ULONG[3])
+ UINT8[Len1]
+ UINT8[Len2]
+ ...,
+ UINT8[Len(n)] :=
IG1, IO1, Len1,
IG2, IO2, Len2,
...,
IG(n), IO(n), Len(n),
Data1, Data2, ..., Data(n)

R:
ULONG[n] :=
Result1, Result2, ..., Result(n)

ADSIGRP_SUMUP_WRITE

Die Write-Daten enthalten eine Liste von mehreren, separaten AdsWriteReq(IG, IO, Len, Data) quasi als "Sammel-Schreibbefehl".

Dem Aufrufer wird in den Read-Daten das Ergebnis der Sammelanfrage (die Rückgabewerte) zurückgereicht.

SPS / IO ab TwinCAT v2.11 Build >= 1550
0x0000F082

0x00000000 -

0xFFFFFFFF

= n (Anzahl der internen (Sub-)Befehle)

R&W
W:
(n * ULONG[4])
+ UINT8[WriteLen1]
+ UINT8[WriteLen2]
+ ...,
+ UINT8[WriteLen(n)] :=
IG1, IO1, ReadLen1, WriteLen1,
IG2, IO2, ReadLen2, WriteLen2,
...,
IG(n), IO(n), ReadLen(n), WriteLen(n),
WriteData1, WriteData2, ..., WriteData(n)

R:
(n * ULONG[2])
+ UINT8[ReturnLen1],
+ UINT8[ReturnLen2]
+ ...,
+ UINT8[ReturnLen(n)] :=
Result1, ReturnLen1,
Result2, ReturnLen2,
...,
Result(n), ReturnLen(n),
Read Data1, ReadData2, ..., ReadData(n)

ADSIGRP_SUMUP_READWRITE

Die Write-Daten enthalten eine Liste von mehreren, separaten AdsReadWriteReq(IG, IO, readLen, writeLen, writeData) quasi als "Sammel-Schreib/Lesebefehl".

Dem Aufrufer wird in den Read-Daten das Ergebnis der Sammelanfrage zurückgereicht. Dabei werden zuerst alle Rückgabewerte und Return-Längen aufgelistet, anschließend folgen die angefragten Daten.

SPS / IO ab TwinCAT v2.11 Build >= 1550