OPC UA in TwinCAT 3 verwenden

Paddi299

Level-1
Beiträge
21
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

für mein Projekt würde ich gerne eine Schnittstelle zwischen TwinCAT 3 und OPC UA verwenden. Leider besitze ich nur rudimentäre Erfahrungen, was das Programmieren auf der SPS angeht. Deswegen erhoffe ich mir eine Hilftestellung zum Vorankommen.

Ein Teil des Projekts steht soweit. Im nächsten Schritt braucht es aber den Datenaustausch.

Was ich weiß/habe:

UA-Expert mit Server-Liste, in der ich auch eine IP finde, mit deren Server der Austausch stattfinden soll.
Diverse Parameter auf dem OPC UA Server, die für das Auslesen in Frage kommen würden.
TwinCAT 3 Projektmappe, die OPC UA auslesen können soll.
Tc3_PLCopen_OpcUa Bibliothek wurde unter "References" hinzugefügt. Somit sollten die nötigen Bausteine für TwinCAT vorhanden sein/erkannt werden.
Hier habe ich Infos in der Beckhoff Hilfe gefunden.
https://infosys.beckhoff.com/index....3_opcua/537645195.html&id=4541331317538329605
Ein erstes Ziel könnte es zum Bsp. sein, einen Temperatursensor, also eine REAL Variable auszulesen.

Was ich nicht weiß:

Welche Datentypen und Funktionsbausteine aus der Beckhoff Hilfe benötige ich? Wie müssen diese konfiguriert werden?
Was hat es mit UA_Connect, Namespaceindex und Nodehandle auf sich?

Ich nehme an, dass hier noch vieele Einzelschritte zu lösen sind, bis das Problem gelöst ist. Somit sind natürlich auch Hinweise für Teilfortschritte willkommen.
Vielen Dank für alle Anregungen!
 
Also: Für mich zum Verständnis: Du willst aus der TwinCAT-SPS mit einem externen UA Server kommunizieren:

Du brauchst dafür die UA-Lizenz (e.g. Trial-Lizenz) im TwinCAT.
Dann hast du zwei Möglichkeiten:
#1: Du programmierst in der SPS den Client über die Bausteine (UA_Connect....). Letztendlich empfehle ich hier über z.B. UA_Expert (der Testclient von UnifiedAutomation) mich auf den Server zu verbinden und die Parameter zu vergleichen/auszulesen.... Primär aber: RFM

#2: Du konfiguierst im EA-Baum den "virtuellen UA-Knoten" (oder wie auch immer er heißt). Dort kannst du dann die Variablen des Servers automatisiert auslesen, das was du nicht brauchst wegschmeißen und die EAs mit der SPS verknüpfen. Der virtuelle UA-Knoten ist also ein UA-Client der im Hintergrund werkelt.

Guga
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Guga,

da ich nicht weiß, ob eine der beiden Methoden entscheidende Vor- oder Nachteile bietet und ich bisher wohl Weg #1 verfolge, würde ich gerne daran anknüpfen.
Leider weiß ich nicht, was du mit RFM meinst.
Nach dem Einlesen in die FB auf der Beckhoff Seite, habe ich mir dieses Schema für die gegenseitige Beeinflussung der Inputvariablen aufgemalt.
Zeitgleich wollte ich diese Verschachtelung in TwinCAT nachbauen.

1.JPG
2.JPG

Im Input stehen ja einmal Variablen aus anderen Funktionsbausteinen, als auch Structures (die meines Wissens eine Reihe von Variablen beinhalten). Muss ich letztere im Projektmappenexplorer unter DUTs händisch anlegen, oder sind diese Structures auch schon durch die verwendete Bibliothek importierbar.
 
RFM ist schwierig zu interpretieren da ich RTFM (Read The Fucking Manual) meinte.
Ich habe gerade im Infosys gesehen - die Beispiele wurden wohl auf GitHub verschoben (waren früher im INfosys).
Also: Schau mal unter
https://github.com/Beckhoff/TF6100_Samples/tree/master/TF6100_OPCUA_Sample
und dort nach dem Client-Beispiel. Die Idee im Beispiel das du zwei PRojekte hast, das eine ist die Datenquelle auf die der UA-Server zugreif, das zweite Projekt ist der Client der die Werte dann im ersten Projekt ändern kann.
Das Client-Projekt bitte anschauen und verdauen. Es ist in ST geschrieben (war wenigstens früher so). Finde ich nicht schlecht da es eine Zustandmaschine abbildet.
Deine Zeichnung ist schon OK aber man darf erst nach einem Connect dann den nächsten und dann den nächsten Baustein aufrufen..
Und das Connect/Close wird eigentlich nur 1x aufgerufen.
Wenn du das Projekt 1 zu 1 mal bei dir aktivierst und mit Beckhoff-OPC-UA Server durchspielt und parallel mit dem UA Explorer dir die Werte anschaust und mit dem Parametern im PLC-Client anschaust wirst du natürlich überraschenderweise die gleichen Paramter finden (greifst ja dann auch auf den gleichen Server und die gleichen Variablen zu).
Das kann dir dann als Blaupause dienen welche Parameter dann bei deinem Server vorhanden sind (bzw. aus dem ein oder anderen Baustein als Ergebnis ausgegeben werden bzw. als Parameter eingegeben werden.
Gerade bei NodeHandle muss man die Doku vom Server lesen (bzw. schauen wie es der UA Explorer macht). Es gibt manche Server die halten da Überraschungen bereit.

Guga

Ansonsten:
 
Zurück
Oben