OPC UA mehrere Endpoints

MagicMalte

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein CODESYS OPC UA-Server stellt Endpunkte sowohl über den Hostnamen als auch über die IP-Adresse bereit.

Die Verbindung über die IP-Adresse funktioniert einwandfrei, die Verbindung über den Hostnamen jedoch nicht.

Die Endpunktliste zeigt sowohl opc.tcp://<hostname>:4840 als auch opc.tcp://<ip>:4840.

Bei Verwendung des Hostnamens kann der OPC UA-Client (UA Expert) keine Verbindung herstellen.
Die Verwendung der IP-Adresse funktioniert ohne Probleme.

Das Hauptziel ist die Verbindung über Python, aber opcua-asyncio scheint den Hostnamen zu bevorzugen.

Wie kann ich CODESYS oder mein System so konfigurieren, dass die OPC UA-Verbindung über den Hostnamen ebenfalls ordnungsgemäß funktioniert, oder wie kann ich sie vollständig deaktivieren?

---
Codesys for PFC200 sl 4.18.0.0
 
Damit Hostnamen funktionieren, muss der DNS-Server die Hosts auflösen. Im privaten Netzwerk hinter einem Router vergibt der Router die IP-Adressen und registriert den Hostnamen des Hosts. Der DNS-Server des Routers löst dann die Hosts in IP-Adressen auf. Wie gut das mit Codesys und DHCP funktioniert, weiß ich aber nicht. Es besteht aber auch die Möglichkeit, im Router statische Hosts zu vergeben. Dann muss man DHCP nicht nutzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, das hatte ich schon vermutet und macht auch sinn.
Die IP der SPS ist auf der Seite der SPS bereits statisch gesetzt, daher sollte dein Vorschlag mit der Anlegung einer custom Auflösung auf einem DNS möglich sein. Ich würde aber wenn möglich gerne vermeiden einen separaten DNS server anzulegen und benötige auch nicht den zugriff über den Hostname.

Ziel wäre es also den Hostname Endpoint zu deaktivieren und Garnichts erst bereitzustellen.

Spannender Zusatz hierzu:
Mit der Codesys for PFC200 sl 4.18.0.0 bietet die SPS auch im WBM noch mal die option ein OPC UA server zu aktivieren, dieser wird dann nicht unter OPCUAServer@PFC200-xxx (also der Codesys OPC) sondern unter WagoOPCUA...@WagoOPCUA... (oder so ähnlich) geführt und nimmt die in Codesys definierten OPC Variablen nicht an. Dieser Server hat aber nur die IP Endpoints nicht die Hostname Endpoints.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, top danke das werde ich heute Abend mal testen ob das funktioniert und rückmelden.

Dennoch bleibt die frage warum Codesys das überhaupt macht mit der Doppel Bereitstellung 🤔


Also um das entsprechende Update zu geben:
In UaExpert kann ich jetzt den endpoint nutzen (hier war aber ja als alternative die IP problemlos möglich).

Python script weigert sich weiterhin korekt mit dem server zu komunizieren.
(Der dns wird korekt aufgelöst und das ausführen von await client.connect_and_get_server_endpoints() funktioniert)

Eine weitere Verbindung ist nicht möglich.
Eigentlich sind die passenden Certifikate erstellt (und in Codesys Trusted) und mit opcua-asyncio sollten auch alle fehler der standart opcua python bibliotek ausgeräumt sein.
 
Zurück
Oben