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:
- 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 Server Port. Die einzelnen Symbolserver werden dann unter diesem ADS Server Port einsortiert. Der folgende Screenshot zeigt ein Beispiel für eine solche Konfiguration - zwei S7-Steckverbinder mit jeweils einem eigenen Symbolserver-Objekt. Der TwinCAT Target Browser verbindet sich mit dem ADS Server Port und zeigt den Namensraum des Symbolservers an. |
In der folgenden Tabelle sind alle derzeit verfügbaren ADS-Befehle auf der Symbolserver Schnittstelle aufgeführt.
Kommando | Beschreibung |
---|---|
AdsGetHandle | Erfassen eines ADS-Handles über den Symbolnamen der Variablen. |
AdsReleaseHandle | ADS-Handle freigeben. |
AdsReadByHandle | Leseoperationen auf dem erfassten Handle. Unterstützt auch Summenkommandos. |
AdsWriteByHandle | Schreiboperationen auf dem erfassten 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 derzeit nicht vom Symbolserver unterstützt werden.
Beispiel: Verbindung zum Symbolserver mit TwinCAT OPC UA Server
Im vorigen Kapitel haben Sie gesehen, wie Sie die Symbolserver Schnittstelle auf einem S7 Connector-Gerät aktivieren und mit dem TwinCAT Target Browser durch dessen Namensraum browsen können. 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 Texteditor Ihrer Wahl 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 Servers verwendet. |
AdsPort | ADS Server Port 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 Beispiel Repository auf GitHub enthält ein .NET Core Projekt, das die verschiedenen Möglichkeiten eines ADS Clients für den Zugriff auf den Symbolserver demonstriert.