Step 7 840D sl NCU Variablen und Antriebsparameter lesen/schreiben

Zuviel Werbung?
-> Hier kostenlos registrieren
Es muss eine Variable(Array) geben wo die logischen Achsen-Namen ihren logischen Nummern und ihren Verbindungs-Nummer(das was dir fehlt) zugeordnet werden - vielleicht findet sich was im Listenhandbuch 2

also in der Art:
AX1 -> 1 => 2
AX2 -> 2 => 3
AX3 -> 3 => 5
AX5 -> 5 => 8
AX7 -> 7 => 9
AX8 -> 8 => 1
AX12 -> 12 => 6
AX23 -> 23 => 4
AX25 -> 25 => 7

es gibt ja auch eine Variable mit der man ausgehend von der logischen Achsennummer den Namen bekommt - warum dann nicht auch von logische Nummer auf physikalische Nummer - wäre nette

vielleicht findest du ja irgendwo im HMI bei der logischen Achse die physikalische Nummer als Anzeige
 
Zuletzt bearbeitet:
Allgemeines Maschinendatum N13050[0-30] $MN_DRIVE_LOGIC_ADDRESS[0] (logische Antriebsadressen)

Dabei entspricht der Index der Achsnummer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
d.h. ? - kommt man so von der logischen Achsen-Nummer auf diese komische Unit-Nr?

N13050[1] => 2
N13050[2] => 3
N13050[3] => 5
N13050[5] => 8
N13050[7] => 9
N13050[8] => 1
N13050[12] => 6
N13050[23] => 4
N13050[25] => 7
 
Ist ein bisschen komplizierter. (wie bei Siemens üblich ;-))

Über dieses Maschinendatum wird der NC-Achse die Adresse des Achsmoduls mitgeteilt.

Der Wert 8000 bedeutet, dass die Achse nicht vorhanden ist.

Nimmt man nun alle Indexe die != 8000 sind und ordnet sie nach der Adresse, bekommt man die Reihenfolge der Unit.

Sprich:
MN_DRIVE_LOGIC_ADDRESS[7] = 4100 -> AX8 = Unit 1
MN_DRIVE_LOGIC_ADDRESS[0] = 4140 -> AX1 = Unit 2
...

MN_DRIVE_LOGIC_ADDRESS.png
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok - und woher bekommt man die Anzahl der logischen Achsen?
maximale Achsanzahl = 31;
Anzahl der NC-Achsen = 31 - alle Indexe, bei denen MN_DRIVE_LOGIC_ADDRESS[x]=8000

btw: was baust du dir den feines mit den ganzen Informationen?
Möglichkeit des einfachen Zugriffs auf die Maschine, ohne an ihr selbst Änderungen vorzunehmen.

Sprich:
Mit dem Laptop an die Maschine und Daten aufzeichnen, ohne PLC oder sonstige Änderung.
 
Ist ein bisschen komplizierter. (wie bei Siemens üblich ;-))

Über dieses Maschinendatum wird der NC-Achse die Adresse des Achsmoduls mitgeteilt.

Der Wert 8000 bedeutet, dass die Achse nicht vorhanden ist.

Nimmt man nun alle Indexe die != 8000 sind und ordnet sie nach der Adresse, bekommt man die Reihenfolge der Unit.

Sprich:
MN_DRIVE_LOGIC_ADDRESS[7] = 4100 -> AX8 = Unit 1
MN_DRIVE_LOGIC_ADDRESS[0] = 4140 -> AX1 = Unit 2
...

Das kann aber nach hinten losgehen , die E/A Adresse 4100 fürs Protokoll 136 kann man durch aus in der Hardwarekonfig verändern.


Es gibt Maschinenhersteller die machen die Achszuordnung wie du,
Andere drehen in der Hardwarekonfig
Dann kann man auch über den p0978 in de CU / NX drehen .

und um es richtig einfach zu machen kann man die 3 weg auch mischen .


ps Die Anzahl der Aktiven Achsen liefert der DB7 Da gibt es ein Array aktive Achsen
 
@Peter Gedöns

nur zu sagen "so geht es nicht!" reicht hier leider nicht :)

Ich sach ja gar nicht geht nicht, ich wollte nur zu bedenken geben das es nicht so einfach ist.

Es geht schon hier los
Allgemeines Maschinendatum N13050[0-30] $MN_DRIVE_LOGIC_ADDRESS[0] (logische Antriebsadressen)
Diese MD sind erstmal mit den Standard Adressen belegt. Die 8000 wird nur eingetragen wenn du die Achs –> Drive Zuordnung in der HMI machst.
Das geht auch nur ab NC- Softwarestand 4.7.( bin nicht sicher ob das in 4.5 eingebaut wurde).
Da man aber an x Stellen die Achs –> Drive Zuordnung machen kann ist eine universale Lösung nicht drin oder du musst alles an Achs – Allgemein – Drive Daten lesen und auswerten.
 
Es geht schon hier los
Allgemeines Maschinendatum N13050[0-30] $MN_DRIVE_LOGIC_ADDRESS[0] (logische Antriebsadressen)
Diese MD sind erstmal mit den Standard Adressen belegt. Die 8000 wird nur eingetragen wenn du die Achs –> Drive Zuordnung in der HMI machst.
Das geht auch nur ab NC- Softwarestand 4.7.( bin nicht sicher ob das in 4.5 eingebaut wurde).

Das MD13050 gibt es bereits in der NC- Version 2.6. Ältere Versionen hab ich nicht, um nachzusehen.
 
@st_rupp:
Wie weit bist du mit deiner Master-Arbeit?
Hast du bereits eine Zusammenfassung deiner Untersuchungen bezüglich der Einschränkungen und der Datenbereiche?

Sprich:
- kurze Zusammenfassung/Auflistung der Datenbereiche
- Welche Datenbereiche können zusammen gelesen werden
- Maximale länge eines Paketes
- Welche Datenbereiche sind Endian-Verdreht (nur 0x80 bis 0x85?)
- Zusammenhang NC-Achse <-> Unit


Währe schön, wenn du dies hier zur Verfügung stellen kannst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das MD13050 gibt es bereits in der NC- Version 2.6. Ältere Versionen hab ich nicht, um nachzusehen.


Es geht nicht darum ob es das MD gibt oder nicht , sondern um die Daten darin !
Suchst Du dir ein NC Archiv von 2.6 wirst du sehen das dort nirgends 8000 drin steht .
 
Ich bin mit meinem praktischen Teil eigentlich durch, schreibe jetzt gerade...
Zu den Achsen: Ich habe herausgefunden, dass man über den Bereich FeedDrive sowohl aus Block M wie auch aus Block 0x82 die Antriebsdaten lesen kann.
In diesen beiden Blöcken befinden sich die gleichen Daten, jedoch ist die Unit-zu-Achsen-Zuordnung unterschiedlich. Im Block M entspricht die Unit des Antriebs den Achs-MD (AreaAxis / BlockM), d.h. wenn bei den Achs-MD Unit 3 die Z-Achse ist, ist bei den Antriebs-MD (im Block M) Unit 3 der Antrieb der Z-Achse.
Im Block 0x82 sind die Achsen wie ihr ja bereits geschrieben hattet nach der Topologie im Antriebsstrang sortiert.. wie genau habe ich noch nicht herausgefunden.
Bislang hab ich auch keinen Weg gefunden das "automatisiert" auszulesen, sondern hab Werte gelesen und die dann manuell mit dem HMI verglichen um die Zuordnung rauszubekommen... Ich verwende für die Antriebe jetzt einfach BlockM, da ist es klar.

Soweit ich es verstanden habe sind die Limitierungen wie folgt:
  • Die Bereiche FeedDrive und MainDrive dürfen jeweils immer nur einzeln, nicht in Kombination mit anderen Bereichen gelesen werden. Bei anderen Bereichen ist das egal
  • Das gleichzeitige Lesen von Variablen aus mehreren Units in einem Auftrag ist NIE erlaubt, egal aus welchem Bereich
  • In den Bereichen FeedDrive und MainDrive dürfen max. 19 Variablen auf einmal gelesen werden, egal welcher Datentyp
  • Die Endian-Verdrehung betrifft (glaube ich) alles in den Bereichen MainDrive und FeedDrive, nicht nur die 0x8Y Blöcke, es gibt eine gepatchte AGLink Version, die die Werte richtig interpretiert.

Hoffe das hilft dir schonmal, ansonsten kann ich später gerne nochmal ausführlicher dazu schreiben. Jetz bin ich grad im Stress... ;)
 
der Wireshark wird es dir sicher liefern, aber mit einem ich sach ma riesigen Aufwand.
wenn es nicht sofort sein muss kann ich mal was zusammen schreiben.

@Hans54216

könntest du mal in deinem HMI schauen ob du irgendwo den Zusammenhang NC-Achse <-> Unit, unabhaengig MN_DRIVE_LOGIC_ADDRESS, finden kannst
dann könnte wir davon ein Wireshark-Log analysieren
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es geht nicht darum ob es das MD gibt oder nicht , sondern um die Daten darin !
Suchst Du dir ein NC Archiv von 2.6 wirst du sehen das dort nirgends 8000 drin steht .

SINUMERIK_840D_sl_-_730-31A10C____________________
Systemsoftware_NCU________________________________V02.06_+_SP_01_+_HF_07
__SINUMERIK_CNC-SW_31-5___________________________
__Version:________________________________________V02.06_+_SP_01_+_HF_07
__InternalVersion:________________________________02.06.01.07.001
__PLC_____________________________________________02.07.00.14 02.07.00.14
__CYCLES__________________________________________02.06.62.00 02.06.62.00
__NCK_____________________________________________78.06.05 78.06.05
__SNCK____________________________________________02.06.00.00 02.06.00.00
__CP______________________________________________01.40.03 01.40.03
__MCP_CLIENT______________________________________01.04.35 01.04.35
__NCU-Link_Config_________________________________01.00.00 01.00.00
__SNC_____________________________________________01.03.00.00 01.03.00.00
__NCKFSDRV________________________________________02.06.01.00 02.06.01.00
__PROFINET________________________________________04.01.33.10 04.01.33.10
__Sinamics________________________________________02.60.52.00 02.60.52.00
__LinuxBase_(NCU)_________________________________02.70.27.00 02.70.27.00
__SINUMERIK_Operate_______________________________02.06.01.09 02.06.01.09
__Compile_Cycles__________________________________@NCKOPI=001.003@Interfaces=007.050@TChain=002.001@INCOA_OPI=001.004


N13050 $MN_DRIVE_LOGIC_ADDRESS[0]=4180
N13050 $MN_DRIVE_LOGIC_ADDRESS[1]=4140
N13050 $MN_DRIVE_LOGIC_ADDRESS[2]=4220
N13050 $MN_DRIVE_LOGIC_ADDRESS[3]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[4]=4380
N13050 $MN_DRIVE_LOGIC_ADDRESS[5]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[6]=4340
N13050 $MN_DRIVE_LOGIC_ADDRESS[7]=4100
N13050 $MN_DRIVE_LOGIC_ADDRESS[8]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[9]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[10]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[11]=4420
N13050 $MN_DRIVE_LOGIC_ADDRESS[12]=4580
N13050 $MN_DRIVE_LOGIC_ADDRESS[13]=4660
N13050 $MN_DRIVE_LOGIC_ADDRESS[14]=4700
N13050 $MN_DRIVE_LOGIC_ADDRESS[15]=4740
N13050 $MN_DRIVE_LOGIC_ADDRESS[16]=4620
N13050 $MN_DRIVE_LOGIC_ADDRESS[17]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[18]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[19]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[20]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[21]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[22]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[23]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[24]=4460
N13050 $MN_DRIVE_LOGIC_ADDRESS[25]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[26]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[27]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[28]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[29]=8000
N13050 $MN_DRIVE_LOGIC_ADDRESS[30]=8000


Und glaubst du es nun???
 
Die Achs Zuordnung wurde hier mit dem externen HMI IBN Tool gemacht oder es hat einer mit der Hand eingetragen.
Die Achs Zuordnung wurde erst mit 4.7 in Operate eingebaut .
Wenn man es nicht mit dem Tool macht stehen in dem MD die Standard Adressen drin.
Ich wollte dich nur auf mögliche Fehler aufmerksam machen.
 
Zurück
Oben