Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Results 1 to 7 of 7

Thread: OPC UA Node ID

  1. #1
    Join Date
    30.08.2018
    Posts
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Zusammen,

    ich bin gerade dabei über ein Python Skript auf den OPC UA Server einer CPU 1511 zu zugreifen. Die Verbindung zum Server funktioniert einwandfrei und ich kann auch diverse Daten / Information abrufen aber sobald ich über mein Python Skript auf eine Datenbaustein Variable zugreifen will bekomme ich folgende Fehlermeldung :

    "BadNodeIdUnknown: The node id refers to a node that does not exist in the server address space.(BadNodeIdUnknown)"

    Wenn ich über OPC UA Expert auf die Variable zugreife, sehe ich die aktualisierte Variable mit der dementsprechenden Node ID (siehe Bild)

    OPC.JPG


    Sobald ich über mein Python Skript zugreifen will, erkennt das Skript die Node ID nicht.

    Code:
    import time
    from opcua import Client
    
    url = "opc.tcp://192.168.100.164:4840"
    client = Client(url)
    
    client.connect()
    print("Client Connected")
    while True:
         
        Temp = client.get_node("ns=3;s=:Daten.real_01")
        Temperature = Temp.get_value()
        print(Temperature)
        
        time.sleep(1)
    Wäre sehr dankbar wenn mir jemand einen Tipp geben könnte wo sich hier der Fehlerteufel eingeschlichen hat...

    PS: Gibt es hier im Forum Gleichgesinnte welche sich auch mit dem Thema OPC UA und Python bzw. OPC UA und Cloud Synchronisation beschäftigen....?

    ROB
    Reply With Quote Reply With Quote OPC UA Node ID  

  2. #2
    Join Date
    27.10.2009
    Posts
    332
    Danke
    0
    Erhielt 66 Danke für 56 Beiträge

    Default

    Hallo ROB,

    Die Gänsefüßchen (siehe Bild vom UaExpert) gehören dazu. Deshalb ist deine NodeID falsch und der (Siemens)-UA-Server lehnt sie mit "BadUnknown" ab.

  3. #3
    TheBird is offline Neuer Benutzer
    Themenstarter
    Join Date
    30.08.2018
    Posts
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Dr. OPC,

    danke für deine Antwort, sobald ich die Gänsefüßchen hinzufüge ("ns=3;s="Daten"."real_01"") bekomme ich von Python einen Syntax Fehler angezeigt.

  4. #4
    Join Date
    18.09.2004
    Location
    Münsterland/NRW
    Posts
    4,766
    Danke
    758
    Erhielt 1,184 Danke für 993 Beiträge

    Default

    Probiere mal
    Code:
    ('ns=3;s="Daten"."real_01"')
    Also die äusseren "durch ' ersetzen

  5. Folgender Benutzer sagt Danke zu marlob für den nützlichen Beitrag:

    TheBird (11.04.2019)

  6. #5
    TheBird is offline Neuer Benutzer
    Themenstarter
    Join Date
    30.08.2018
    Posts
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default

    Hallo Marlob,

    danke für den Tipp, das war die Lösung....funktioniert jetzt einwandfrei

    Sag mal, gibt es eigentlich eine Art "Suchfunktion" wenn ich nur die Adresse vom OPC UA Server habe, welche Daten der Server zur Verfügung stellt....? wenn ja wie kann man diese Anwenden..?

  7. #6
    Join Date
    27.10.2009
    Posts
    332
    Danke
    0
    Erhielt 66 Danke für 56 Beiträge

    Default

    Für diese Frage müsstest du eigentlich einen neuen Thread starten, aber in kurz:
    1) ja gibt es, die erste Funktion heisst FindServers bzw. FindServersOnNetwork, und wird immer zum Port 4840 gerufen
    2) Voraussetzung ist, dass dort ein LDS (Local Discovery Server) läuft, bei dem sich alle anderen Server registriert haben (oder dort läuft der einzige Server den es gibt, z.B. S7-1500).
    3) wenn Du dann die "Kontaktdaten" von deinem Servergefunden hast (EndpointURL)
    4) verbindest du dich und kannst diesen "Browsen" (mit dem BrowseService kannst du allen Referenzen folgen, wenn du den hierarchischen Referenzen folgst, kannst du durch den Addressraum "navigieren").
    5) die NodeIDs, die dich interessieren, kannst du dann "beobachten" oder "schreiben", (oder "lesen"). Aber Beobachten ist immer dem Lesen vorzuziehen, da es für den Server weniger anstrengend ist).
    6) zum "Beobachten", musst du CreateSubscription aufrufen und mit CreateMonitoredItems die items hinzufügen, die du lesen willst.

    Das oben gezeigte Beispiel (eine einzelne Variable in einer WhileSchleife zyklisch Lesen mit einem Sleep) ist mit Abstand das Schlechteste (für den Server) was man tun kann. Ich bin nicht sicher ob die Entwickler der Phyton-Bibliothek, alle schönen OPC UA Funktionen bereits anbieten. Diese "Vereinfachung" des Read jedenfalls ist nicht optimal.

    Es gibt noch eine weitere Phyton-Bibliothek auf GIT (die heisst: UAF) und diese ist ein Wrapper für die kommerzielle C++Bibliothek von Unified Automation. Das kostet dann zwar Geld, aber man kann auch alle OPC UA Features sinnvoll nutzen von Phyton aus.
    Last edited by Dr. OPC; 11.04.2019 at 10:18.

  8. Folgender Benutzer sagt Danke zu Dr. OPC für den nützlichen Beitrag:

    Blockmove (14.04.2019)

  9. #7
    TheBird is offline Neuer Benutzer
    Themenstarter
    Join Date
    30.08.2018
    Posts
    7
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten morgen,

    vielen Dank für die Erklärung und die Tipps.... da ich mich in Materie OPC UA und Python erst einarbeiten muss sind solche Hinweise sehr hilfreich.

Similar Threads

  1. Node Red und MS SQL Autentifizierung
    By Deep Blue in forum Hochsprachen - OPC
    Replies: 0
    Last Post: 05.04.2019, 11:48
  2. Node-Red Kommunikation mit S7-300
    By DeltaMikeAir in forum PC- und Netzwerktechnik
    Replies: 12
    Last Post: 30.11.2018, 19:18
  3. Replies: 0
    Last Post: 09.10.2018, 07:55
  4. Node Red OPC UA
    By Hendrik in forum CODESYS und IEC61131
    Replies: 4
    Last Post: 18.07.2018, 14:00
  5. TC3.1 OPC-UA Methoden Node
    By kiwi84 in forum CODESYS und IEC61131
    Replies: 6
    Last Post: 13.10.2016, 16:15

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •