Symbolserver Schnittstelle
Seit der Produktversion 1.1.4 enthält die Implementierung des S7-Protokoll-Treibers eine ADS-Symbolserver-Schnittstelle, die ADS den Lese-/Schreibzugriff auf konfigurierte S7-Variablen ermöglicht. Es gibt viele verschiedene Anwendungsfälle für diese Art des Zugriffs. Solche Anwendungsfälle sind möglich, jedoch nicht beschränkt auf folgende:
- Bereitstellung des Lese-/Schreibzugriffs auf S7-Variablen für die TwinCAT HMI
- Bereitstellung des Lese-/Schreibzugriffs auf S7-Variablen für den TwinCAT OPC UA Server
- Bereitstellung des Lese-/Schreibzugriffs auf S7-Variablen für kundenspezifische ADS-Client-Anwendungen
- Durchsuchen der konfigurierten S7-Variablen mit Tools wie dem TwinCAT Target Browser
- ...

Der Symbolserver ist als separates TcCOM-Objekt verfügbar, das zu einem S7-Connector-Gerät hinzugefügt wird.


Das Symbolserver-Objekt definiert kein Prozessabbild. Stattdessen werden alle S7-Variablen im Fenster Symbolvariablen konfiguriert. In diesem Fenster finden Sie den Server Port des ADS-Symbolservers in der oberen rechten Ecke.

![]() | Mehrere Symbolserver Bitte beachten Sie, dass Sie mehr als einen Symbolserver konfigurieren können, z. B., wenn Sie auf mehrere S7-Steuerungen zugreifen wollen. In diesem Fall teilen sich alle Symbolserver denselben ADS-Serverport. Die einzelnen Symbolserver werden dann unter diesem ADS-Serverport einsortiert. Der folgende Screenshot zeigt ein Beispiel für eine solche Konfiguration – zwei S7-Connectors mit jeweils einem eigenen Symbolserver-Objekt. Der TwinCAT Target Browser verbindet sich mit dem ADS-Serverport und zeigt den Namensraum des Symbolservers an. |

In der folgenden Tabelle sind alle derzeit an der Symbolserver-Schnittstelle verfügbaren ADS-Befehle aufgeführt.
Befehl | Beschreibung |
---|---|
AdsGetHandle | Beziehen eines ADS-Handles über den Symbolnamen der Variablen. |
AdsReleaseHandle | Freigeben des ADS-Handles. |
AdsReadByHandle | Leseoperationen auf dem bezogenen Handle. Unterstützt auch Summenkommandos. |
AdsWriteByHandle | Schreiboperationen auf dem bezogenen Handle. Unterstützt auch Summenkommandos. |
AdsRead | Leseoperationen über direkte Kommunikation mit IndexGroup/IndexOffset. Unterstützt auch Summenkommandos. |
AdsWrite | Schreiboperationen über direkte Kommunikation mit IndexGroup/IndexOffset. Unterstützt auch Summenkommandos. |
Bitte beachten Sie, dass ADS Notifications vom Symbolserver derzeit nicht unterstützt werden.
Beispiel: Verbindung zum Symbolserver mit TwinCAT OPC UA Server
Im vorigen Kapitel wurde das Aktivieren der Symbolserver-Schnittstelle auf einem S7-Connector-Gerät und das Browsen mit dem TwinCAT Target Browser durch dessen Namensraum erläutert. Als weiteres Beispiel wollen wir nun den TwinCAT OPC UA Server so konfigurieren, dass er auf die Symbolserver-Schnittstelle zugreift und die konfigurierten S7-Variablen über seinen OPC-UA-Server-Adressraum zur Verfügung stellt.
Nachdem der TwinCAT OPC UA Server installiert wurde, öffnen Sie seine Data-Access-Konfiguration (TcUaDaConfig.xml), um die Verbindungsdetails des Symbolservers zu konfigurieren. Sie können die Data-Access-Konfiguration entweder mit dem TwinCAT OPC UA Configurator oder mit einem beliebigen Texteditor bearbeiten.
Fügen Sie ein neues Datenzugriffgerät mit den folgenden erforderlichen Parametern hinzu:
Parameter | Beschreibung |
---|---|
Name | Eindeutiger Name für das Gerät. Wird als Einstiegspunkt in den Adressraum des OPC UA Server verwendet. |
AdsPort | ADS-Serverport des Symbolservers, z. B. 20100. |
AdsNetId | NetID des Systems, auf dem das Produkt TwinCAT S7 Communication läuft. |
AutoCfg | Wert 5: Schaltet den TwinCAT OPC UA Server in den Modus „Symbol Server Access“. |
Der folgende Auszug aus TcUaDaConfig.xml zeigt ein Beispiel für eine solche Konfiguration.
<UaNodeManager>
<Name>S7</Name>
<AdsPort>20100</AdsPort>
<AdsNetId>127.0.0.1.1.1</AdsNetId>
<AdsTimeout>2000</AdsTimeout>
<AdsTimeSuspend>20000</AdsTimeSuspend>
<AutoCfg>5</AutoCfg>
<AutoCfgSymFile></AutoCfgSymFile>
<IoMode>1</IoMode>
<MaxGetHandle>100</MaxGetHandle>
<ReleaseAdsVarHandles>1</ReleaseAdsVarHandles>
<Disabled>0</Disabled>
</UaNodeManager>
Sobald diese Konfiguration aktiviert ist, verbindet sich der TwinCAT OPC UA Server mit dem Symbolserver und importiert dessen Namensraum. Ein OPC UA Client kann sich dann mit dem Server verbinden und auf die Variablen zugreifen.

Beispiel: Verbindung zum Symbolserver mit benutzerdefiniertem ADS-Client
Unser Repository mit Beispielen auf GitHub enthält ein .NET Core Projekt, das die verschiedenen Möglichkeiten für den Zugriff des ADS-Clients auf den Symbolserver zeigt.