Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Werkzeugdaten Sinumerik 840d über OPC UA

Beitrag 23.01.2025, 13:25 Uhr
OPC_Tester
Level 1 = Community-Lehrling
*
Hallo zusammen,

ich habe mehrere Werkzeugmaschinen, in denen jeweils eine Sinumerik 840d verbaut ist. Diese Maschinen sollen nun automatisiert werden. Dazu prüfe ich gerade, ob die OPC UA Schnittstelle geeignet dafür ist. Soweit ich die Information der Dokumentation entnehmen kann, scheint es möglich zu sein sämtliche Werkzeugdaten über OPC UA abzugreifen.

Jetzt habe ich angefangen ein Test-Porgramm zu schreiben, um die Werkzeugdaten zu auszulesen und gegebenenfalls zu manipulieren. Mein Problem ist nun, dass ich mit der Notation der OPC UA Variablen nicht klar komme. Hier einige Beispiele:

"ns=2;s=/Tool/Catalogue/numTools" - Ergibt die Anzahl von Werkzeugen in der Maschine bspw. 39
"ns=2;s=/Tool/Catalogue/toolIdent[#39]" - Gibt eine Liste der Länge 39 wieder mit den Werkzeug Bezeichnung
"ns=2;s=/Tool/Catalogue/toolNo[#39]" - Gibt die Liste der T-Nummern zurück
"ns=2;s=/Tool/Catalogue/toolInPlace[#39]" - Gibt die Platznummer zurück, wo sich das aktuelle Werkzeug befindet
"ns=2;s=/Tool/Catalogue/toolInMag[#39]" - Gibt die Magazinnummer zurück, in der sich das Werkzeug aufhält

Nun gibt es aber auch 2 dimensionale Arrays, bei denen ich mich schwer tue, diese über OPC UA auszulesen:

"ns=2;s=/Tool/Compensation/edgeData" - Korrekturwertparameter und Schneidenliste mit D-Nummern zu einem Werkzeug

Bei dieser Variable gibt es 35 Parameter bspw. Geometrie -- Schneidenlage ($TC_DP2), Geometrie -- Länge 1 ($TC_DP3), ...
Sozusagen die gesamten TC_DP1 - TC_DP25 Werte + 10 reservierte Stellen.

Ich habe lange herumprobiert, ich schaffe es aber nur die Daten eines Werkzeugs auszulesen. $TC_DPx[y,z] x = ParamNo y = ToolNo z = EdgeNo
"ns=2;s=/Tool/Compensation/edgeData[1,21147,#35]" - {900,5,50,0,0,5,,,,,,}
"ns=2;s=/Tool/Compensation/edgeData[1,1,#35]" - {900,5,50,0,0,5,,,,,,}
"ns=2;s=/Tool/Compensation/edgeData[1,20806,#35]" - {900,5,50,0,0,5,,,,,,}
Was mache ich dort falsch?


"ns=2;s=/Tool/Supervision/data" - Überwachungsdaten je Werkzeugschneide (TC_MOP1, TC_MOP2, ...)
hier bekomme ich nur arrays mit 0 -> {0,0,0,0,0,0,0,0,0,0} obwohl die Standzeitüberwachung aktiv ist ($TC_TP9=1) und an dem HMI der Maschine auch Standzeiten angezeigt werden.

Schema: $TC_MOPx[y,z] x=ParamNo,y=T-Number,z=Edge
"ns=2;s=/Tool/Supervision/data[1,20806,#9]" --> {0,0,0,0,0,0,0,0,0}


Ich beziehe mich auf folgendes Dokument: Dokumentation

https://support.industry.siemens.com/cs/att..._1218_de-DE.pdf

Vielen Dank und viele Grüße

Der Beitrag wurde von OPC_Tester bearbeitet: 23.01.2025, 13:32 Uhr
   
Beitrag 13.02.2025, 12:30 Uhr
OPC_Tester
Level 1 = Community-Lehrling
*
Die Lösung ist, dass bei den mehrdimensionalen Abfrage u für die rows und c für die colomns hinzugefügt werden muss.

ns=2;s=/Tool/Compensation/edgeData[u1,c1,#35]

Ohne U & C funktioniert die Abfrage in machen Fällen, manchmal funktioniert es nicht oder manchmal funktioniert es nicht wie erwartet.
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: