OPC-UA

Aktivieren Sie das OPC-UA Add-in -in

Dieses Dokument zeigt Ihnen, wie Sie RoboDK eine OPC-UA-Verbindung hinzufügen können. Eine OPC UA-Verbindung ermöglicht Ihnen die Interaktion mit SPSen und anderen Geräten, die dieses Protokoll unterstützen. Sie sollten das OPC-UA Add-in in RoboDK aktivieren, um OPC UA Server- und Client-Funktionen zu Ihren Projekten hinzuzufügen.

RoboDK enthält ein OPC-UA Add-in, mit dem Sie Ihre RoboDK Projekte um OPC UA Kompatibilität erweitern können.

Standardmäßig ist das OPC-UA Add-in in RoboDK deaktiviert. Sobald es aktiviert ist, sollte das Add-in jedes Mal angezeigt werden, wenn Sie RoboDK starten.

Sie können das OPC UA Add-in aktivieren, indem Sie die folgenden Schritte ausführen:

1.Wählen Sie Tools-Add-ins.

2.Doppelklicken Sie auf OPC-UA.

Sie sollten eine zusätzliche Symbolleiste mit den OPC-UA Funktionen sehen.

Hinweis: Weitere Informationen über das OPC UA Add-in finden Sie auf dem RoboDK Marktplatz unter: https://robodk.com/addin/com.robodk.plugin.opc-ua.

OPC UA - Bild 1    OPC UA - Bild 2

Sie sollten die Schaltfläche OPC-UA in der Symbolleiste sehen und auch den Eintrag OPC-UA im Menü.

OPC UA - Bild 3

OPC UA Server Beispiel

In diesem Beispiel erfahren Sie, wie Sie das OPC UA Add-in aktivieren und RoboDK in einen OPC UA Server umwandeln. Wir werden einige Einstellungen mit Hilfe der UaExpert Software und der Beckhoff TwinCAT3 TF6100 durchsuchen.

OPC UA - Bild 4

Konfigurieren Sie Ihren OPC UA Server

Mit dem OPC UA Add-in können Sie einige Einstellungen wie den Server-Port konfigurieren. Sie können auch wählen, ob Sie den Server aktivieren, deaktivieren oder automatisch mit RoboDK starten möchten.

Wenn das OPC UA Add-in aktiviert ist, wählen Sie OPC UA-OPC-UA Einstellungen, um Ihre OPC UA Einstellungen zu konfigurieren.

Der Bildschirm OPC UA Einstellungen wird auf der linken Seite angezeigt, wie in der folgenden Abbildung zu sehen ist.

OPC UA - Bild 5

OPC UA - Bild 6

Wenn Sie eine Meldung wie "RoboDKs OPC UA Server läuft auf Port 4840" sehen, bedeutet dies, dass der OPC UA Server in RoboDK gestartet wurde.

Hinweis: Vergewissern Sie sich, dass der im vorigen Abschnitt konfigurierte OPC UA-Port in der Windows-Firewall, im Antivirenprogramm oder in anderen für Ihr System erforderlichen Sicherheitseinstellungen aktiviert ist.

Erstellen Sie Ihre eigene Station

Sie können die OPC UA Konnektivität mit jeder RoboDK Station testen, die einen oder mehrere Roboter hat.

OPC UA - Bild 7

Implementierung mit UaExpert

Sie können die UaExpert Software verwenden, um die Konnektivität mit dem RoboDK OPC UA Server zu testen.

Sie können die kostenlose Version der UaExpert Software von der Unified Automation Website herunterladen: https://www.unified-automation.com/downloads/opc-ua-clients.html.

OPC UA - Bild 8

UaExpert Server hinzufügen

Starten Sie den UaExpert und klicken Sie auf die Schaltfläche "+", um den RoboDK OPC UA Server hinzuzufügen.

OPC UA - Bild 9

Erweitern Sie die benutzerdefinierte Suche und wählen Sie die Option <Doppelklick auf Server hinzufügen.>, um den RoboDK OPC UA Server hinzuzufügen.

OPC UA - Bild 10

Geben Sie die URL des OPC UA Servers ein, opc.tcp://127.0.0.1:48440, den Sie im vorherigen Schritt konfiguriert haben.

OPC UA - Bild 11

Verbinden Sie den OPC UA Server mit "Keine" Sicherheit.

OPC UA - Bild 12

Server ist konfiguriert.

OPC UA - Bild 13

Verbinden Sie sich mit dem Server

Jetzt können Sie sich von UaExpert aus mit dem RoboDK OPC UA Server verbinden.

OPC UA - Bild 14

Sie können die Knoten und Methoden sehen, wenn die Verbindung hergestellt ist.

OPC UA - Bild 15

Server-Knoten

Innerhalb des RoboDK OPC UA Servers gibt es einige Knotenpunkte, über die Sie einige grundlegende Informationen über Ihre Station austauschen können.

RoboDK

RoboDK Knoten ist ein Knoten, der die aktuelle Version Ihrer RoboDK Software bereitstellt.

OPC UA - Bild 16

In diesem Beispiel wurde die Version RoboDK 64 Bit v5.5.3.23031 verwendet.

OPC UA - Bild 17

SimulationGeschwindigkeit

Simulationsgeschwindigkeit ist ein Knoten, der die aktuelle Simulationsgeschwindigkeit anzeigt und es dem Benutzer ermöglicht, die aktuelle Simulationsgeschwindigkeit zu überschreiben.

OPC UA - Bild 18

Der Knotenwert bezieht sich auf den Schieberegler der Simulationsgeschwindigkeit.

Die aktuelle Simulation kann von diesem Knoten aus gelesen werden und kann die Simulationsgeschwindigkeit überschreiben.

OPC UA - Bild 19

Station

Station Node ist ein Knoten, der es dem Benutzer ermöglicht, den aktuellen Namen der Station in RoboDK abzurufen.

OPC UA - Bild 20

Wie Sie unten sehen, bezieht sich der Knoten Station auf Ihren "Stationsnamen" in RoboDK.

OPC UA - Bild 21

Stationsparameter/Stationswert

StationParameter und StationWert sind ein Knotenpaar, das es dem Benutzer ermöglicht, beliebige Parameter innerhalb Ihrer Station abzurufen oder einzustellen. Der RoboDK OPC UA Server überwacht kontinuierlich den aktuellen Wert von "StationParameter" und gibt den Wert dieses "StationParameters" vom Station Value Node zurück.

Hinweis: Ein leerer String wird zurückgegeben, wenn der Stationsparameter nicht existiert.

OPC UA - Bild 22

Sie können Ihre Stationsparameter einsehen, indem Sie mit der rechten Maustaste auf Ihre RoboDK Station>Stationsparameter klicken.

OPC UA - Bild 23

Im Feld Konstante Parameter sehen Sie die Standardparameter des Senders und deren Wert.

OPC UA - Bild 24

Der Stationsparameter bezieht sich auf das Feld "Parameter" und der Stationswert auf das Feld "Wert".

OPC UA - Bild 25

Und wir können unsere eigenen Parameter erstellen, indem wir auf die Schaltfläche "Hinzufügen" klicken.

OPC UA - Bild 26

Ein neuer Stationsparameter wurde hinzugefügt.

OPC UA - Bild 27

Geben Sie Ihren Parameternamen und den Parameterwert ein und drücken Sie dann auf Übernehmen, um ihn zu speichern.

OPC UA - Bild 28

Sie können auch Ihre eigenen Senderparameter erhalten.

OPC UA - Bild 29

Zeit

Der Knoten Zeit ist ein Knoten, über den Sie die aktuelle Zeit der RoboDK Station abrufen können.

OPC UA - Bild 30

Es wird ein Wert im DataTime-Format zurückgegeben.

OPC UA - Bild 31

Und dieser Knotenpunkt wird ständig aktualisiert.

OPC UA - Bild 32

Methoden

RoboDK OPC UA Server verfügt auch über einige Methoden, mit denen der Benutzer dynamisch auf die Daten der RoboDK Station zugreifen kann.

Wir können einfach mit der rechten Maustaste auf die Methode>Aufrufen klicken, um die Methode auszuführen.

OPC UA - Bild 33

getItem

getItem ist eine Methode, die es dem Benutzer ermöglicht, den Zeiger Ihres Elements zu erhalten.

OPC UA - Bild 34

Für die InputArgumente ist der Gerätename erforderlich. Sie können sich vorstellen, dass der Gerätename Ihr Stationsname, Robotername usw. ist. Und Item ID ist das OutputArgument, das den Zeiger des Geräts zurückgibt.

OPC UA - Bild 35

In diesem Beispiel habe ich die Element-ID (Pointer) meines ABB-Roboters mit dem Namen "ABB_RB1" erhalten.

OPC UA - Bild 36

0 wird zurückgegeben, wenn der Objektname ungültig ist oder in Ihrer Station nicht existiert.

OPC UA - Bild 37

getJoints

getJonits ist eine Methode, mit der der Benutzer den Gelenkwert des Roboters von der Station abrufen kann, basierend auf der Item ID.

OPC UA - Bild 38

Die Item ID ist der Zeigerwert Ihres Items, den Sie über die Methode getItem() abrufen können.

OPC UA - Bild 39

Wir erhalten die Objekt-ID mit dem Objektnamen "ABB_RB1", und es wird ein UInt64-Wert zurückgegeben.

OPC UA - Bild 40

Der Wert von Joints wird zurückgegeben, wenn Sie die Item ID in der Methode übergeben, die wir im vorherigen Abschnitt erhalten haben.

OPC UA - Bild 41

getJointsStr

getJointsStr ist eine Methode, die es dem Benutzer ermöglicht, den Wert Joints auf der Grundlage eines String-Wertes zu erhalten.

OPC UA - Bild 42

Wir können den Roboternamen (String) in dieser Methode übergeben.

OPC UA - Bild 43

In Meine Station ist ABB_RB1 der Name meines Roboters.

OPC UA - Bild 44

Wir können einfach "ABB_RB1" im Parameter Robotername übergeben und die Methode aufrufen - der gemeinsame Wert im String-Format wird zurückgegeben.

OPC UA - Bild 45

setJointsStr

setJointsStr ist eine Methode, mit der der Benutzer den Joints-Wert des Roboters auf der Grundlage eines String-Wertes festlegen kann.

OPC UA - Bild 46

Im Roboternamen wird ABB_RB1 übergeben, und im Parameter Joints können wir einfach eine Zeichenkette mit dem Gelenkwert übergeben.

For example:-0.000000,0.000000,-0.000000,-0.000000,-0.0,-0.000000

OPC UA - Bild 47

Implementierung mit Beckhoff TwinCAT 3

Sie können die Beckhoff TwinCAT 3 Software verwenden, um die Konnektivität mit dem RoboDK OPC UA Server zu testen.

TwinCAT3 Server hinzufügen

Sie können damit beginnen, den OPC UA Client zu erstellen, indem Sie E/A>Geräte>Neues Element hinzufügen wählen.

OPC UA - Bild 48

Wählen Sie Virtuelles OPC UA-Gerät aus OPC >OK.

OPC UA - Bild 49

OPC UA Virtual wird eingefügt.

OPC UA - Bild 50

Wir müssen einen OPC UA Client hinzufügen, um auf den RoboDK OPC UA Server zuzugreifen.

Wählen Sie Gerät 1 >Rechtsklick >Neues Element hinzufügen.

OPC UA - Bild 51

Wählen Sie "OPC UA Client(Modul)" und Ok.

OPC UA - Bild 52

OPC UA Client wird eingefügt.

OPC UA - Bild 53

Konfigurieren Sie den Server

Öffnen Sie den OPC UA Client > gehen Sie auf die Registerkarte "Einstellungen" > klicken Sie auf "Endpunkt auswählen", um den OPC UA Server Endpunkt zu konfigurieren, auf den Sie zugreifen möchten.

OPC UA - Bild 54

Geben Sie die RoboDK OPC UA Server URL ein und aktualisieren Sie sie.

OPC UA - Bild 55

RoboDK Server Methode

Klicken Sie auf "Knoten hinzufügen", um den Knoten zu suchen, der sich im OPC UA Server befindet.

OPC UA - Bild 56

Wenn die Verbindung zwischen TwinCAT und dem OPC UA Server hergestellt ist, können Sie die Details des OPC UA Servers durchsuchen.

OPC UA - Bild 57

Wählen Sie alle Methoden und Ok.

OPC UA - Bild 58

Methoden werden in Ihre Konfiguration eingefügt.

OPC UA - Bild 59

RoboDK-Methode automatisch generieren

Konfigurieren Sie Ihr Namenspräfix in diesem Feld.

OPC UA - Bild 60

Klicken Sie auf "Create Plc Code", um den SPS-Code aus TwinCAT zu erstellen.

OPC UA - Bild 61

In Ihrem Projekt wird ein OpcUaClient-Ordner erstellt, und alle RoboDK-Methoden werden im IEC61131-3 Funktionsblockformat erstellt.

OPC UA - Bild 62

PLC Programm Beispiel

Dieser Abschnitt zeigt ein Beispielprogramm für eine Beckhoff TwinCAT SPS, die mit dem RoboDK OPC UA Server kommuniziert.

PROGRAMM HAUPT

VAR

   bConnected      :BOOL;

   StationPointer  :DINT;

   iStep           :INT;

   bStart          :BOOL;;

   i               :INT;

   TON             :TON;

   bReset          :BOOL;

   bWrite          :BOOL;

   TON2            :TON;

   bShow           :BOOL:=TRUE;

   bVis            :BOOL:=True;

END_VAR

 

VAR

   Roboter_name          :STRING(80):='ABB_RB1';

   Artikel_ID      :ULINT;

   arrJoints       :ARRAY[0..11]OF LREAL;

   strJoints       :STRING(80):='';

   arrJointsFromStr:ARRAY[1..11]OF LREAL;

   sTrennzeichen   :STRING(1) := ',';

   arrJointsCommand:ARRAY[1..11]OF LREAL;

   strJointsCommand:STRING(80);

END_VAR

 

VAR KONSTANTE

   cStepWaitCmd          :INT:=0;

   cStepInit             :INT:=5;

   cStepGetItem          :INT:=10;

   cStepGetItemReset     :INT:=20;

   cStepGetItemError     :INT:=990;

  

   cStepGetJoints        :INT:=30;

   cStepGetJointsReset   :INT:=40;

   cStepGetJointsError   :INT:=991;

  

   cStepGetJointsStr     :INT:=50;

   cStepGetJointsStrReset:INT:=60;

   cStepGetJointsStrError:INT:=992;

  

   cStepSetJointStrDelay :INT:=69;

   cStepSetJointsStr     :INT:=70;

   cStepSetJointsStrReset:INT:=80;

   cStepSetJointsStrError:INT:=993;

  

   cStepEnd              :INT:=300;

   cStepWaitReset        :INT:=999;

END_VAR

 

 

VAR

  aSplit :ARRAY[1..11] OF STRING(80);

  bResultSplit :BOOL;

    debuggen        :BOOL;

     URL              :STRING:='http://192.168.3.42:8091';

END_VAR

bConnected:=OPCUA_VirtualClient_RoboDK_Station.bConnected;

 

CASE iStep OF

  

 

   cStepWaitCmd:

    IF bStart THEN

          iStep:=cStepInit;

          bStart:=FALSE;

    END_IF

  

   cStepInit:

 

    StationPointer:=0;

    FOR i :=1 TO 11 DO

          arrJoints[i]:=0.0;

          arrJointsFromStr[i]:=0.0;

          aSplit[i]:='';

    END_FOR

    IF NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bBusy

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJoints.bBusy

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJoints.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bBusy

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.setJoints.bBusy

          AND NOT OPCUA_VirtualClient_RoboDK_Station.setJoints.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bBusy

          AND NOT OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bError

          DANN

          iStep:=cStepGetItem;

    END_IF

    iStep:=cStepGetItem;

  

   cStepGetItem:

 

    IF OPCUA_VirtualClient_RoboDK_Station.getItem.bDone THEN

          iStep:=cStepGetItemReset;

    Item_ID:=OPCUA_VirtualClient_RoboDK_Station.getItem.Item_ID;

    ELSIF OPCUA_VirtualClient_RoboDK_Station.getItem.bError THEN

          iStep:=cStepGetItemError;

    END_IF

   

   cStepGetItemReset:

 

    IF NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bBusy

          DANN

          iStep:=cStepGetJoints;

    END_IF

   cStepGetJoints:

 

    IF OPCUA_VirtualClient_RoboDK_Station.getJoints.bDone

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJoints.bBusy

          DANN

          iStep:=cStepGetJointsReset;

    ELSIF OPCUA_VirtualClient_RoboDK_Station.getJoints.bError THEN

          iStep:=991;

    END_IF

   

   cStepGetJointsReset:

 

    IF NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getItem.bBusy

   

          DANN

          iStep:=cStepGetJointsStr;

    END_IF;

   

   cStepGetJointsStr:

 

    IF OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bDone

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bBusy

          DANN

          iStep:=cStepGetJointsStrReset;

    ELSIF OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bError THEN

          iStep:=cStepGetJointsStrError;

    END_IF         

 

   cStepGetJointsStrReset:

 

    IF NOT OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.getJointsStr.bBusy

          DANN

               iStep:=cStepSetJointStrDelay;

    END_IF;

   

   cStepSetJointStrDelay:

    strJointsCommand:=''; strJointsCommand:=CONCAT(LREAL_TO_STRING(arrJointsCommand[1]),strJointsCommand);

      strJointsCommand:=CONCAT(strJointsCommand,',');

   strJointsCommand:=CONCAT(strJointsCommand,LREAL_TO_STRING(arrJointsCommand[2]));

      strJointsCommand:=CONCAT(strJointsCommand,',');

   strJointsCommand:=CONCAT(strJointsCommand,LREAL_TO_STRING(arrJointsCommand[3]));

      strJointsCommand:=CONCAT(strJointsCommand,',');

   strJointsCommand:=CONCAT(strJointsCommand,LREAL_TO_STRING(arrJointsCommand[4]));

      strJointsCommand:=CONCAT(strJointsCommand,',');

   strJointsCommand:=CONCAT(strJointsCommand,LREAL_TO_STRING(arrJointsCommand[5]));

      strJointsCommand:=CONCAT(strJointsCommand,',');

   strJointsCommand:=CONCAT(strJointsCommand,LREAL_TO_STRING(arrJointsCommand[6]));

    TON2(IN:=TRUE,PT:=T#0.2S);

    IF TON2.Q THEN

          TON2(IN:=FALSE);

          iStep:=cStepSetJointsStr;

    END_IF

  

   cStepSetJointsStr:

 

   

    WENN (

        OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bDone

          UND NICHT   

        OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bBusy

         )

          OR NOT bWrite

          DANN

          iStep:=cStepSetJointsStrReset;

    ELSIF OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bError           

          DANN

          iStep:=cStepSetJointsStrError;

    END_IF    

         

   cStepSetJointsStrReset:

    bWrite:=FALSE;

     OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bExecute:=FALSE;

    IF NOT OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bError

          AND NOT OPCUA_VirtualClient_RoboDK_Station.setJointsStr.bBusy

          DANN

          iStep:=cStepEnd;

    END_IF;

   

   cStepEnd:

    TON(IN:=TRUE,PT:=T#0.1S);

    IF TON.Q THEN

          TON(IN:=FALSE);

          IF NOT debug THEN

               iSchritt:=10;

          ELSE

               iStep:=cStepSetJointStrDelay;

          END_IF;

    END_IF

   

   cStepGetItemError:

    Artikel_ID:=0;

    iStep:=cStepWaitReset;

  

   cStepGetJointsError:

    FOR i :=0 TO 11 DO

          arrJoints[i]:=-99999.99;

    END_FOR

    iStep:=cStepWaitReset;

   

   cStepGetJointsStrError:

    strJoints:='';

    iStep:=cStepWaitReset;

   

   cStepWaitReset:

    IF bReset THEN

          iStep:=cStepInit;

          bReset:=FALSE;

    END_IF;   

END_CASE

 

aSplit[1] := strJoints;

 

FOR i:=1 TO 7 DO

bResultSplit := FindAndSplit(

   pTrennzeichen := ADR(sTrennzeichen)

   ,pSrcString := ADR(aSplit[i])

   ,pLeftString:= ADR(aSplit[i])

   ,nLinksGröße := SIZEOF(aSplit[i])

   ,pRightString:= ADR(aSplit[i+1])

   ,nRightSize := SIZEOF(aSplit[i+1])

   ,bSearchFromRight := FALSE );

IF NOT bResultSplit THEN

    EXIT;

END_IF

END_FOR

 

FOR i :=1 BIS 6 DO

   arrJointsFromStr[i]:=STRING_TO_LREAL(aSplit[i]);

END_FOR;

 

//

OPCUA_VirtualClient_RoboDK_Station.getItem(

bAusführen:=iStep=cStepGetItem

Artikel_Name:=Roboter_name

);

 

 

OPCUA_VirtualClient_RoboDK_Station.getJoints(

bAusführen:=iStep=cStepGetJoints

,Item_ID:=Item_ID,Joints=>arrJoints

);

 

 

OPCUA_VirtualClient_RoboDK_Station.getJointsStr(

bAusführen:=iStep=cStepGetJointsStr

,Roboter_name:=Roboter_name,Verbindungen=>strJoints

);

 

IF bSchreiben THEN

OPCUA_VirtualClient_RoboDK_Station.setJointsStr(

   bAusführen:=TRUE

,Roboter_name:=Roboter_name,Joints:=strJointsCommand);

END_IF;

OPC UA Client Beispiel

Dieses Beispiel zeigt Ihnen, wie Sie RoboDK eine OPC-UA Client-Konnektivität hinzufügen können. RoboDK enthält ein OPC-UA Add-in, mit dem Sie Ihre RoboDK Projekte um OPC UA Kompatibilität erweitern können.

In diesem Beispiel erfahren Sie, wie Sie die Daten von der RoboDK Station über den OPC UA Client abrufen können.

Hinweis: Sie können die Stationsparameter löschen, indem Sie mit der rechten Maustaste auf das Stammverzeichnis der Station klicken und Stationsparameter wählen.

OPC UA - Bild 63

Der Bildschirm mit den Stationsparametern wird angezeigt. Drücken Sie "Alle löschen", um alle Stationsparameter zu löschen.

OPC UA - Bild 64

Implementierung mit Schnittstelle

Wir können ein weiteres RoboDK Projekt erstellen, in dem der OPC UA Server konfiguriert und gestartet ist.

OPC UA - Bild 65

Add-in Client

Dieser Abschnitt zeigt, wie Sie einen OPC UA Client hinzufügen.

Geben Sie die Endpunkt-URL ein, zum Beispiel: opc.tcp://127.0.0.1:48441.

Sie müssen die IP-Adresse und die Port-Konfiguration an Ihren Ziel-OPC-UA-Server anpassen.

OPC UA - Bild 66

Drücken Sie "Verbinden", um die Verbindung herzustellen.

wenn die Meldung" Servervariablen abgerufen. Klicken Sie mit der rechten Maustaste auf das Stationsobjekt und wählen Sie 'Stationsparameter', um die Variablen zu sehen.", ist die Verbindung hergestellt.

OPC UA - Bild 67

Klicken Sie mit der rechten Maustaste auf Ihre Station und wählen Sie "Stationsparameter".

OPC UA - Bild 68

Client-Knoten

Sie können die Details jedes Knotens im Bereich Knoten überprüfen.

OPC UA - Bild 69

Implementierung mit der RoboDK API

Nachdem Sie die Daten der Knoten vom OPC UA Server über den OPC UA Client in RoboDK erhalten haben, können Sie diese Daten auch über die RoboDK-Python-API abrufen.

Installation

Sie können diesen Link verwenden, um die RoboDK Python-API zu installieren.

https://robodk.com/doc/en/PythonAPI/intro.html#how-to-install

Oder installieren Sie das Paket robodk für Python manuell:

pip install robodk

Skript

Dieses Beispielskript zeigt, wie Sie die Stationsparameter über die Python-API von RoboDK abrufen können.

from robodk import robolink # RoboDK API

 

RDK = robolink.Robolink()

 

from robodk import * # RoboDK API

from robolink import * # Roboter-Werkzeugkasten

Artikelliste = RDK.Artikelliste()

if itemlist:

# Alle Stationsparameter abrufen

print('Vaild Paramaters sind in Ihrer Station konfiguriert...')

StationParameter=RDK.getParams()

für StationParameter in StationParameter:

    print("Station Parameter %s : %s"%(StationParameter[0],str((StationParameter[1]))))

sonst:

print('Keine Parameterliste..')

Hier sehen Sie das Ergebnis des Beispielskripts:

Vaild Paramaters werden in Ihrer Station konfiguriert...

Stationsparameter RoboDK : RoboDK 64 bit v5.5.3.23031

Station Parameter Zeit : 02/14/2023 03:58:29.191.000.000

Station Parameter SimulationGeschwindigkeit : 13.8551

Stationsparameter Station : MyTestStation