OPC UA mit CODESYS verbinden
| Produkt | CODESYS |
|---|---|
| Kategorie | PLC |
| OPC-UA-Rolle | Server |
CODESYS stellt einen OPC-UA-Server als Teil seiner Laufzeitumgebung bereit, und da CODESYS die Engine in vielen kleinen und mittleren SPS-Marken ist, begegnet er Ihnen oft, ohne dass es am Schaltschrank steht. Symbole werden über das Objekt Symbolkonfiguration veröffentlicht, und der Server benötigt typischerweise eine Runtime-Lizenz.
Bevor Sie starten
- Eine Runtime, die die OPC-UA-Serverkomponente enthält, und die Lizenz, die sie aktiviert. Lizenziert wird je Runtime, und das liegt normalerweise in der Verantwortung des Geräteherstellers und nicht direkt bei CODESYS: genau deshalb wird es übersehen.
- Das CODESYS Development System in einer Version, die zur Laufzeitumgebung auf dem Gerät passt.
- Ein Symbol-Configuration-Objekt in der Applikation. Ohne eines gibt es nichts zu veröffentlichen, und eines hinzuzufügen ist eine Codeänderung, die einen Download erfordert.
- Zugriff auf Dateisystem oder Konfiguration der Laufzeitumgebung für die Zertifikatsbehandlung, und das Wissen, wo genau dieser Gerätehersteller das PKI-Verzeichnis abgelegt hat.
Die Einrichtung
- Stellen Sie fest, was Sie tatsächlich betreibenErmitteln Sie den Gerätehersteller, die CODESYS-Laufzeitversion und ob die OPC-UA-Server-Komponente installiert und lizenziert ist. Bei einer OEM-gelabelten Steuerung kostet das einen Telefonanruf, und diesen Anruf zuerst zu führen spart einen Tag. Die Bezeichnung des Herstellers für diese Option deckt sich nicht mit der CODESYS-Dokumentation.
- Fügen Sie eine Symbolkonfiguration hinzu und wählen Sie Symbole ausFügen Sie der Applikation das Objekt Symbolkonfiguration hinzu, übersetzen Sie, und haken Sie dann die Variablen, Programminstanzen oder globalen Variablenlisten an, die Sie veröffentlichen wollen, mit Lese- oder Lese-/Schreibzugriff je Eintrag. Eine ganze GVL auszuwählen ist die übliche pragmatische Entscheidung; alles auszuwählen ist der Weg zu einem nicht browsbaren Adressraum auf einer kleinen Steuerung.
- Prüfen, ob die Symbolkonfiguration für die OPC-UA-Veröffentlichung eingerichtet istDie Symbolkonfiguration hat Einstellungen, die steuern, wie Symbole bereitgestellt werden und ob der OPC-UA-Server sie veröffentlicht. Prüfen Sie diese, statt anzunehmen, dass das Anhaken einer Variablen genügt, denn dasselbe Objekt bedient auch andere Clients.
- Übersetzen und laden, dann bei Bedarf die Laufzeitumgebung neu startenSymboländerungen werden mit dem Download der Applikation wirksam; manche Laufzeitumgebungen brauchen einen Neustart, bevor der Server seinen Adressraum neu aufbaut. Prüfen Sie es durch Browsen und nicht durch einen Blick ins Projekt.
- Browsen und die Namespace-URI notierenVerbinden Sie einen Client, lesen Sie das NamespaceArray und notieren Sie die URI des Namespace der Applikation. Hinterlegen Sie URI plus Identifier in Ihrer Konfiguration; der Index wird sich verschieben.
- Vertrauensaustausch abschließenVerbinden Sie sich einmal auf einem gesicherten Endpunkt, lassen Sie es scheitern, verschieben Sie dann das Zertifikat Ihres Clients in den Trusted-Store der Laufzeit und vertrauen Sie dem Serverzertifikat im Client. Wenn der Gerätehersteller die Zertifikatsverwaltung über eine Weboberfläche oder ein Gerätetool statt über das Dateisystem anbietet, nutzen Sie diesen Weg.
- Prüfen Sie die Grenzen der Runtime und setzen Sie die Intervalle entsprechendKleine CODESYS-Zielsysteme sind häufig die knappsten Server, denen Sie bei Sessions, Subscriptions und MonitoredItems begegnen. Legen Sie die Subscription an, die Sie im Produktivbetrieb fahren wollen, lesen Sie die revidierten Sampling- und Publishing-Intervalle zurück und planen Sie mit diesen.
Wie der Adressraum aussieht
Der veröffentlichte Adressraum folgt der Applikationsstruktur: ein Namespace für die Applikation, dann Knoten für Programme und globale Variablenlisten, dann die von Ihnen ausgewählten Symbole, mit darunter verschachtelten Struktur- und Array-Elementen. Identifier sind Strings, die aus dem Symbolpfad abgeleitet sind, sie lesen sich also wie der Code und ändern sich, wenn der Code umbenannt wird. Es gibt keine Inhalte aus Companion Specifications, sofern der Gerätehersteller nicht ein Informationsmodell obendrauf gesetzt hat, was einige tun und die meisten nicht. Da dieselbe Symbolkonfiguration auch andere CODESYS-Kommunikationswege bedient, ist die OPC-UA-Sicht nicht immer das vollständige Bild dessen, was die Runtime freigibt, und der Browse-Baum ist die einzige verlässliche Aussage darüber, was ein Client sehen kann.
Die Fallen
- Die Lizenz gilt je Laufzeit und der Gerätehersteller kontrolliert sie. Eine Steuerung, die sich auf dem Prüftisch problemlos browsen lässt und im Feld verweigert, weil die Lizenz nie eingespielt wurde, ist ein häufiger und vollständig vermeidbarer Terminverlust. Klären Sie die Lizenzlage mit dem Gerätehersteller, nicht anhand allgemeiner CODESYS-Unterlagen.
- Weil CODESYS eine OEM-Engine ist, ist die Dokumentationsdrift erheblich: Das Handbuch des Herstellers, das CODESYS-Handbuch und das tatsächliche Verhalten der Runtime können sich über Optionsnamen und den Ort der Zertifikate widersprechen. Vertrauen Sie dem Gerät, das vor Ihnen steht.
- Eine Variable umzubenennen oder die Applikation umzustrukturieren ändert String-Identifier und bricht Clients mit BadNodeIdUnknown. Die Symbolauswahl ist eine veröffentlichte Schnittstelle; versionieren Sie sie.
- Namespace-Indizes verschieben sich nach Applikations-Downloads. Lösen Sie sie bei jedem Verbinden aus dem NamespaceArray auf.
- Zertifikatsvertrauen ist die größte Hürde bei der Inbetriebnahme, und auf OEM-Hardware ist der Mechanismus zum Ablegen eines vertrauenswürdigen Zertifikats genau der Teil, den niemand dokumentiert. Finden Sie an einem Gerät heraus, wie er funktioniert, bevor Sie auf fünfzig ausrollen.
- Nur lesend veröffentlichte Symbole nehmen ein Write an und liefern einen Bad-Status. Lesen Sie zurück und prüfen Sie den StatusCode.
- Die Obergrenzen für Sessions und MonitoredItems sind auf kleinen Zielsystemen niedrig. Ein Historian, ein HMI und ein Ingenieur mit offenem Browser können sie gleichzeitig erschöpfen, und der Fehler kommt als Verbindungsproblem an und nicht als Kapazitätsmeldung.
OEE-Daten daraus gewinnen
Was Sie bekommen können, hängt vollständig davon ab, was die Applikation berechnet, und bei einer CODESYS-basierten Maschine heißt das in der Regel, den Maschinenbauer um die Veröffentlichung von vier Dingen zu bitten: eine Zustands- oder Betriebsartenvariable mit dokumentierter Enumeration, einen Gutteilzähler, einen Ausschusszähler und einen Fehler- oder Ursachencode. Zähler müssen in der Applikation geführt werden; erkennen Sie keine Flanken eines Lauf-Bits über eine Subscription, deren Sampling-Intervall die Runtime möglicherweise vergrößert hat. Da diese Zielsysteme bei Subscriptions eng begrenzt sind, arbeiten Sie mit einer Session, einem Publishing-Intervall, einem Totband auf Analogwerten und einem Heartbeat, damit eine stille Verbindung von einer stehenden Maschine unterscheidbar ist. Verfügbarkeit und Stückzahlen sind erreichbar, Ursachen sind erreichbar, wenn die Fehlertabelle dokumentiert ist. Geplante Produktionszeit, Schichtkalender, Auftragskontext und Standard-Taktzeiten liegen nicht in der Steuerung.
Zuletzt geprüft am 7. September 2026 gegen OPC UA 1.05.07. OPC UA Connect ist ein unabhängiges Bildungsangebot und steht in keiner Verbindung zur OPC Foundation.