OPC Node ID

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TheBird

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)
Bild

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

Code: Alles auswählen

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)
Wenn ich nun bei client.get_node("ns3;s="Daten"."real_00"") eingebe bekomme ich vom Python Interpreter einen Syntax Fehler.

Bedanke mich schon im Voraus für die Hilfe, schönen Tag
ROB
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Hey,

in dem Screenshot steht die NodeId:

Code: Alles auswählen

ns=3;s="Daten"."real_00"
in deinem Code steht die NodeId:

Code: Alles auswählen

ns=3;s=:Daten.real_01
und in deinem Text darunter steht die NodeId:

Code: Alles auswählen

ns3;s="Daten"."real_00
Vielleicht könnte es daran liegen.
TheBird

die Lösung ist wie folgt man muss die äußeren " durch ' ersetzen

client.get_node('ns=3; s="Daten"."real_01"')

Ist es Möglich wenn man nur die Adresse vom OPC UA Server kennt mit Python den Server zu durchsuchen um zu sehen welche Daten / Variablen dieser anbietet...? hat hier eventuell jemand einen Beispiel Code auf welchen man aufbauen kann...?

Danke
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Bibliothek die du benuzt hat solchen Code als Beispiel, zb https://github.com/FreeOpcUa/python-opc ... example.py
TheBird

Danke, werde mich dieses WE mal durch die Beispiele arbeiten, da ich mir zur Zeit noch unsicher bin welches Python Modul das "Beste" für mich und meine Anwendungen ist bin ich auf der Suche nach weiteren Möglichkeiten auf folgende Bibliothek / Modul gestoßen. https://github.com/uaf/uaf ich habe versucht laut Anleitung alles zu Installieren um UAF in Python verwenden zu können, leider ohne Erfolg. Ich bekomme immer folgende Fehlermeldung wenn ich den cmake Befehl ausführe.
Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.17134.
The C compiler identification is MSVC 19.20.27508.1
The CXX compiler identification is MSVC 19.20.27508.1
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.20.27508/bin/Hostx64/x64/cl.exe
Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.20.27508/bin/Hostx64/x64/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.20.27508/bin/Hostx64/x64/cl.exe
Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Preview/VC/Tools/MSVC/14.20.27508/bin/Hostx64/x64/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
######################### Creating Makefile of uasdk ###############################################
CMake Error at cmake/SetThirdPartyPaths.cmake:83 (message):
The used Visual Studio version was not recognized. If matching third-party
libraries can be provided, please adapt 'C:/Program
Files/UnifiedAutomation/UaSdkCppBundleEval/cmake/SetThirdPartyPaths.cmake'
accordingly for finding and using them.
Call Stack (most recent call first):
cmake/FindUaOpenSSL.cmake:69 (include)
examples/CMakeLists.txt:12 (find_package)


Configuring incomplete, errors occurred!
See also "F:/uaf/build/CMakeFiles/CMakeOutput.log".

Hat hierzu jemand eine Idee bzw. ist es eventuell möglich das UAF Modul auf andere Weise für Python zu beziehen / installieren. :?: :?:

DANKE,
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na die Fehlermeldung ist doch recht klar - falsch Visual Studio Version. Du wirst die nehmen müssen, mit der auch dein Python übersetzt wurde.

Wenn ich aber sehe, welche Probleme du hier noch hast, denke ich ist die Zeit besser investiert Python zu lernen. Denn eine wirklich Bewertungsgrundlage hast du ohne zu verstehen wie man programmiert doch gar nicht.
Antworten