Werkzeugdaten mit Delphi von Sinumerik auslesen

Hallo Burkhard,

Von der erweiterten Version von Libnodave habe ich gelesen. Das ist doch dann auch die Erweiterung auf den NC-Bereich, oder?
Allerdings das es ein Beispiel gibt für die Werkzeugdaten ist mir neu.

Könntest du mir einen Link zukommen lassen wo ich die erweiterte Version runterladen kann?

Aktuell nutze ich die libnodave 0.8.5.

@ Peter
Also heißt das jetzt, das die Werkzeugdaten eigentlich immer an der selben Stelle liegen sollten? Also die gleiche Adresse haben sollten?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, hatte da was verwechselt. Ich hatte von einem Siemens-Kollegen die Info bekommen, dass die DotNetSiemensPlcToolBoxLibrary Libnodave benutzt und es dort ein Beispiel zum Lesen der Werkzeugdaten gibt. Ich hatte allerdings das Beispiel nicht getestet, da ich mich ein wenig davor drücke, CS-Projekte zu Kompilieren und Debugen, weil ich da nicht sattelfest bin. Ich hoffe, ich habe jetzt keinen Blödsinn geschrieben, aber ich denke, dass das Programm auch mit libnodave arbeitet. Vielleicht suchst Du mal im Forum nach "DotNetSiemensPlcToolBoxLibrary" .
Die BTSS Notation gibt an, mit welcher Syntax die einzelnen Parameter adressiert werden können. Lt. Peter scheint es da keine Unterschiede zwischen 840D Power- und Solutionline geben.
 
da ich mich ein wenig davor drücke, CS-Projekte zu Kompilieren und Debugen, weil ich da nicht sattelfest bin.

Ja, das kann ich gerade nachvollziehen.
Ich habe mir DotNetSiemensPlcToolBoxLibrary mal runtergeladen und ein wenig gestöbert. Allerdings bin ich noch nicht fündig geworden. Scheint aber auch sehr umfangreich zu sein.
Schade eigentlich das es nicht für Delphi zur verfügung steht. (Oder doch)

Kurze Info. Meine Testmaschine hängt nun endlich am Netzwerk und ich kann endlich loslegen.
Ein Backup muss ich zwar noch ziehen, aber das sollte weniger das Problem sein. Nach dem Backup kann ich dann endlich in die Vollen gehen.

Erstmal werde ich generell die Verbindung mit Libnodave Testen. Dafür stehen ja schöne Anwendungen von Libnodave selber bereit.

Wenn das passt, dann geht es weiter.

Wie weit bist du jetzt? konntest du alle Daten der Werkzeuge auslesen?
 
Ich weiß nicht in wie weit die Funktionen in der Toolbox eingepflegt wurden die ich im Rahmen eines Threads hier erstellt habe. Ich verwende diese nicht, ich weiß auch nicht was aus den Ordnern in der Toolbox überhaupt aktuell ist.
Ich vermute aber mal, die libnodave_jfkmod.dll oder die 64 Bit Variante sollte ein paar der Funktionen enthalten. Ohne Gewähr.
 
hm. also sollte ich mich hier nochmal auf die Suche begeben und schauen wo ich die erweiterte Version herbekomme. Für Hinweise bin ich dennoch dankbar.

Wo du jetzt gerade 64Bit schreibst... Habe ich jetzt noch garnicht bedacht gehabt. Aber eine 64bit Version wäre schon von Vorteil.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe jetzt also angefangen mit meinen Versuchen mich mit der Maschine zu verbinden mit dem TestTool von Libnodave(testISO_Tcp).
Bisher konnte ich natürlich keine Verbindung aufbauen.
Da kommt man echt von einem Problem zum nächten.
Hier mal meine Vorrausetzungen an der Maschine.
PCU: Sinumerik PCU50.3-C
NCU: NCU720.2 PN

Ist es richtig, dass die NCU und die PCU separat am Firmennetzwerk angeschlossen werden müssen?

Und liege ich damit richtig das ich mich erstmal mit der NCU auf dem Anschluss X130 verbinden muss? Ich will nur nochmal nachfragen, nicht das ich hier jetzt auf dem Holzweg bin.

Nun habe ich ja noch gelesen, dass der X130 noch eingerichtet werden müsste. Als noch die IP des Firmennetzwerkes vergeben (bei uns läuft so weit ich weiß kein DHCP) und die Firewall öffnen mit dem Port 102.

Nun ist die Frage: Wo stelle ich diese Sachen ein? Kann ich das direkt an der Steuerung machen?
Bisher bin ich bis zu dem SNC vorgedrungen, aber dort werden ja die Netzwerkadapter der PCU angezeigt. Und der Reiter Company Network ist ausgegraut.

Hoffe ihr könnt mir dazu gute Tips geben.

Im übrigen... Schönes Wochenende ;-)
 
Die NCU und PCU sind im Firmennetz nur DHCP CLients. Sie müssen als von einem Server ihre Adresse zugewiesen bekommen. Das bezieht sich auf ETH1 und X130.
Du müsstest also eine DHCP-Server im Netz haben.
X120 und ETH2 vergeben selbst IP Adressen im Anlagen-Netz X120 ist auf Adresse 192.168.214.1 und ETH2 ist auf Adresse 192.168.214.241 vorbesetzt.
X127 ist eine Service-Schnittstelle und hat die Adresse 192.168.215.1.
Wenn Du Deinem Laptop eine feste Adresse z.B. 192.168.214.234 vorbelegst, müsstest Du die NCU erreichen können und solltest über Port 102 Verbindung aufbauen können.(Firewall!!)
Wenn Du übers Firmennetz an die NCU und PCU möchtest, könntest Du z.B. eine Fritzbox als DHCP-Server nehmen und ein kleines Mini-Netz aufbauen. Ich würde die ersten Gehversuche mit der NCU X120 machen und mir selbst die Adresse 192.168.214.234 geben.
Ich galube , über die X127 ist eine Verbindung zur PLC auch relativ einfach möglich, Du müsstest nur die Subnetzmaske auf 255.255.0.0 setzen, wenn Du im Segment 192.168.215.xxx bist und auf die PLC unter 192.168.214.1 möchtest.

Im übrigen... Schönes Wochenende zurück:p
 
Zuviel Werbung?
-> Hier kostenlos registrieren
bei der X120 ist kein Firewall Port 102 ist da offen
die X127 kann mit der kann mit Netzmaske für C Netz eingestellt werden das wird in der NCU durchgereicht.
für die X130 kann man natürlich auch eine feste IP vorgeben aber dort ist ein Firewall aktiv.

wie das alles einzustellen ist kann man in den Handbüchern nachlesen,
https://support.industry.siemens.co...n=ps&o=DefaultRankingDesc&pnid=14599&lc=de-AT
 
Hallo Leute,

danke schon mal für eure letzten Antworten. Sobald ich wieder an die Maschine Kann, werde ich weiter Testen. Erstmal bin ich aber Krank. ( Nein kein Corona!!)

In der Zwischenzeit habe ich mich jetzt schon mal noch ein wenig mit LibNoDave befasst.

Es ist zwar gut das die Demo dabei ist, aber ich vermisse dennoch eine Doku! Und irgendwie findet man auch kaum mal ein Beispiel für Delphi. Alle nutzen es irgendwie immer nur im VB.

Naja. irgendwie kämpfe ich mich da schon durch.

Jetzt habe ich aber dennoch eine Frage, wo ich jetzt noch keinen richtigen Ansatztpunkt sehe.
Es geht um die Adressen zum abfragen der Werte.

z.B.: $TC_TP2[] ist ja die Werkzeugbezeichnung. Damit kann ich ja in der Demo von Libnodave nix anfangen.
Gefordert sind ja an der stelle dann Area, DB, Type, Offset und Count
Area wäre ja NCK
DB ??
Typ wäre String[20]
Offset ??
Count ??

In der Literatur von Siemens habe ich jetzt nicht das Passende gefunden. Oder ich habe nach falschen Begriffen gesucht.

Jetzt also meine Frage. Wie Bekomme ich die für mich wichtigen Daten zu Area, DB... her? Oder kann ich doch mit LibNoDave die Werte direkt mit "$TC_TP2[]" abfragen?
Wo kann ich mich dazu belesen?

Achso. Mir ist jetzt schon klar das ich jetzt nicht mit der Demo von LibNoDave auf den NCK zugreifen kann. Dazu müsste ich erstmal noch die libnodave_jfkmod.dll einbinden. Die würde ich dann aus der DotNetSiemensPLCToolBoxLibrary nehmen.


mfg
 
Hallo Leute,
,,,,,,

z.B.: $TC_TP2[] ist ja die Werkzeugbezeichnung. Damit kann ich ja in der Demo von Libnodave nix anfangen.
Gefordert sind ja an der stelle dann Area, DB, Type, Offset und Count
Area wäre ja NCK
DB ??
Typ wäre String[20]
Offset ??
Count ??

Ich weiß nicht ob sich jemand die mühe gemacht hat das aufzuschlüsseln.
aber wenn du dir den NC Var Selector von der Toolbox installierst ,kannst du die Variablen auswählen und in dem DB der daraus generiert wird sind diese geforderten werte enthalten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hm, ok. Von dem NC Var Selector habe ich schon gelesen.

Kann es sein das die ToolBox mit den Maschinenunterlagen mitgeliefert wurde? Ich weiß das bei den Unterlagen CD´s dabei sind. Aber was kann ich gerade nicht genau sagen.

Erstmal recht herzlichen Dank für die Ntwort, das könnte mir sehr weiter helfen.:cool:
 
Neben dem NC_VAR-Selektor git es noch die Möglichkeit, mit dem Softwarepaket ACCON AG-Link von Deltalogic die Variablen zu generieren. Gibt es als Demo auch mit Delphi.
Hier mal die Sequenz für ToolIdent:

sprintf(cItemName, "/Tool/Catalogue/toolIdent[u1,%i]",iNum);
RetVal = AGL_NCK_GetNCKDataRWByNCDDEItem(cItemName, &m_nckDatarwitem, &m_iErrorPos);
RetVal = AGL_NCK_CheckVarSize(tmpConnNr, &m_nckDatarwitem, 1, 1, m_lUserVal);
m_nckDatarwitem.Buff = m_cValue;
RetVal = AGL_NCK_ReadMixEx(tmpConnNr, &m_nckDatarwitem, 1, 1, m_lUserVal);
printf("Werkzeug %i hat den Namen : %s \n\n", m_nckDatarwitem.Row, m_cValue);



Die Variable


typedef struct tagNCKDataRW
{
agl_uint8_t Area; // Area aus der gelesen / in die geschrieben werden soll (0-7)
agl_uint8_t Unit; // Unit aus der gelesen / in die geschrieben werden soll (0-31)
agl_uint8_t Block; // Baustein aus dem gelesen / in den geschrieben wird
agl_uint8_t RowCount; // Anzahl der Variablen die gelesen / geschrieben werden
agl_uint16_t Column; // Spalte die gelesen / geschrieben wird
agl_uint16_t Row; // Zeile die gelesen / geschrieben wird
agl_int32_t Result; // Ergebnis (Fehlercode) der Lese- bzw. Schreiboperation
void* Buff; // Zeiger auf Puffer für bzw. mit den Daten
agl_int32_t BuffLen; // Länge des benötigten Daten und des allokierten Puffers
agl_int32_t DDEVarType; // Typ der Variablen aus nsk-Datei
agl_int32_t MDBVarType; // Typ der Variablen aus mdb- bzw. gud-Datei
} NCKDataRW, *LPNCKDataRW;

hat fast genau die Struktur, die Libnodave braucht.

Bin gerade dabei, das Beispiel der DotnetSiemensPLCToolbox ein wenig zu erweitern, um weitere Werkzeugdaten auszulesen.
Wenn ich damit durch bin, könnte ich Dir die entsprechenden Area...etc Werte nennen, wen Du mir sagtst, was genau Du brauchst.
Ich mach dann ggfs. mal ne Liste der Werte, die ich bisher lesen konnte, wenn Du möchtest.

Gruss
Burkhard
 
Zuletzt bearbeitet:
Hier mal meine bisherigen Erkenntnisse:

Bezeichnung AGLink : (Area/Unit/Block/RowCount/Column/Row)
Bezeichnung LibNoDave : (Area/Unit/Module/LineCount/Column/Line)

Werkzeuganzahl : "/Tool/Catalogue/numTools[u1]" (4/1/38/1/1/1)
Magazinanzahl : "/Nck/Configuration/numMagsMax" (0/1/16/1/28/1)
Akt MagazinNo : "/Tool/MagazineCatalogue/magVNo[u1,%i]" (4/1/43/1/2/1)
WZ in Mag : "/Tool/Magazine/placeData[u1,C%i,%i]" (4/1/38/1/7/1)
WZ-Nummer : "/Tool/Catalogue/toolNo[u1,%i]" (4/1/38/1/3/1)
WZ-Ident : "/Tool/Catalogue/toolIdent[u1,%i]" (4/1/38/1/4/1)
Duplo-Nr : "/Tool/Catalogue/nrDuplo[u1,%i]" (4/1/38/1/5/1)
WZ in Mag : "/Tool/Catalogue/toolInMag[u1,%i]" (4/1/38/1/7/1)
WZ in Platz : "/Tool/Catalogue/toolInPlace[u1,%i]" (4/1/38/1/8/1)
WZ Status : "/Tool/Data/toolState[u1,%i]" (4/1/33/1/8/1)
Anzahl Schneidenparam. : "/Nck/Configuration/numCuttEdgeParams" (0/1/16/1/11/1)
MaxAnz Schneiden pro WZ : "/Nck/Configuration/maxnumCuttEdges_Tool[1]" (0/1/16/1/47/1)
Anz. Anwenderdaten : "/Nck/Configuration/numToolParams_tu" (0/1/16/1/24/1)
WZ Typ : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/1)
WZ Schneidenlage : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/2)
WZ Länge 1 : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/3)
WZ Länge 2 : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/4)
WZ Länge 3 : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/5)
WZ Radius : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/6)
WZ Eckenradius : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/7)
WZ Länge 4 : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/ 8 / 1 )
.
.
.
WZ Freischneidewinkel : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/24)

WZ ShopmillZustand : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/25)
oder
WZ Schnitgeschw. Manual : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/25)

WZ Schneide gültig : "/Tool/Compensation/edgeData[u%i,c%i,%i] (4/1/20/1/1/X+n)

X = numCuttEdgeParams * maxnumCuttEdges_Tool
n = Schneidennummer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Neben dem NC_VAR-Selektor git es noch die Möglichkeit, mit dem Softwarepaket ACCON AG-Link von Deltalogic die Variablen zu generieren. Gibt es als Demo auch mit Delphi.

Burkhard

Ich hatte auch schon mal nach der Demo von AG-Link gesucht, aber soweit ich mich erinnern kann, hatte ich nur eine Normal Anwendung gefunden.
Reden wir jetzt hier also bei der Demo Von den Komponenten für Delphi? Und welche Einschränkungen hat denn die Demo?
Hättest du mal einen Link?


Bin gerade dabei, das Beispiel der DotnetSiemensPLCToolbox ein wenig zu erweitern, um weitere Werkzeugdaten auszulesen.
Wenn ich damit durch bin, könnte ich Dir die entsprechenden Area...etc Werte nennen, wen Du mir sagtst, was genau Du brauchst.
Ich mach dann ggfs. mal ne Liste der Werte, die ich bisher lesen konnte, wenn Du möchtest.

Burkhard

?? Beispiel für DotNetSiemensPLCToolbox? An was arbeitest du denn alles?

Achso, danke für deine Mühe mir soviele daten bereit zu stellen. sobald ich kann werde ich es auch nutzen;-)



Leider kann ich aktuell nicht weiter Testen (lernen).

Ich habe die Backups nach Anleitung unserer Instandhaltung gemacht. Also Sicherungen für PLC NCK und auch HMI.
Das hat alles soweit geklappt. Dann habe ich einen USB-Stick genommen um die Sicherungen extern nochmal zu haben.
Bei dem kopieren von der HMI-Sicherung auf dem Stick, ist die Maschine bei 5% hängen geblieben. (Nach 2h warten waren es immernoch 5%)

Naja, da ich es nicht abbrechen konnte, habe ich dann mit exit die Maschie Runtergefahren. Das war noch möglich.
Als ich heute die Maschie Starten wollte, ist sie nicht mehr hochgefahren( Waiting for HMI).

wenn man nun mal die Softkeyleiste nach rechts drückt, dann kann man ein bisschen mehr sehen.

Da habe ich gesegen, dass der VNC-Server der HMI nicht gefunden wird.


Könnte es sein das der CF-Speicher in der NCU aufgegeben hat?
 
Die Version von der Deltalogik-Seite ist eine Vollversion, die als Demo arbeitet, wenn kein Lizenz-Dongle gefunden wird. Die Einschränkung besteht darin, dass in gewissen Abständen eine Meldung erscheint, die Quittiert werden muss. Wenn ma das Produkt später kauft, muss man nur eine Dll austauschen.
ZuDeinem Problem mit der Oberfläche. Kann es sein, dass mit exit die HMI beendet wird? Bei menen Maschinen mit PCU ist das so, dass die PCU ausgeschaltet wird.
Hast Du die komplette Maschine inkl Schaltschrank mal aus- und wieder eingeschaltet, damit die NCU neu hochfährt? Damit wird dann das interne HMI neu gestartet.
Der VNC schaut auf die 192.168.214.1 (internes HMI) oder 192.168.214.241 (HIM auf PCU). Verrsuch mal die NCU mit Ping zu erreichen.
 
Na klar habe ich die Maschine komplett ausgeschalten.
Der VNC schaut auf die 192.168.214.241.
Deswegen ist ja die Vermutung das die HMI irgendwie komplett Fehlt.
 
Zurück
Oben