# NC CODE (Zeile) aus 840d auslesen



## Sybkal (1 September 2010)

Hallo Forum 
wie viele bin ich grad an meiner abschlussarbeit und soll eine 840d pl mit einem rechner verbinden. also ich habe keine erfahrungen mit steuerungen etc. sondern bin grade beim einlesen in die ganze thematik.
Vielleicht kann mir ja jemand helfen und zwar hab ich folgendes Problem:
wenn ich es richtig verstehe lade ich ein archiv und ein nc code auf die 840d oder ncu. wenn ich jeztz diesen code abarbeiten lasse kann ich irgendwie auf die aktuelle programmzeile zugreifen und am pc weiterverarbeiten. die 840d ist doch über profibus an die msst und hmi angeschlossen. die hmi ist doch an ethernet angesclossen. kann ich jetzt irgendwo die aktueele zeile oder auch nur zeilennummer abgreifen???

Danke Gruß Sybkal


----------



## niox (2 September 2010)

Bin ja jetzt nicht so der Spezialist auf dem Gebiet. Aber zur Kommunikation zwischen PLC und NCU gibt es Standard DB die kannst du über den Umweg S7 erfassen. Es ist auch möglich individuelle Daten mit Hilfe von NCUVAR Selekt auszuwählen und in einen DB zu kopieren. Ob es eine Möglichkeit gibt die Satznummer auszulesen müsstest du mal die Hilfe von NC-Var Selekt durchgehen oder die MD Liste von der 840D. Beides gibt es auf der Siemens Webseite.
 Aber man kann alles mögliche erfassen.


 Erkläre doch mal näher was du machen willst.


 Sg niox


----------



## gravieren (3 September 2010)

Hi


Bin nicht sicher ob es geht.
Einziger Gedanke wäre mit BE1 der mir einfällt.




Schau dir mal BE1 an.   (Bedienoberfläche ergänzen)


Lesen des Satzes mit BE1.
Übertragen der Infos von BE1 an die PLC.
Z.b. Mit DBs


----------



## niox (3 September 2010)

also ich wuerde mal die Listenbuecher durch gehen.
"p2616[0...n] EPOS Verfahrsatz Satznummer"
oder
"lastBlockNoStr"
Um nur dem Programm zu folgen kannst auch nur VNC verwenden


----------



## Sybkal (4 September 2010)

danke für eure antworten. wie gesagt bin ich grad beim einlesen in doconweb und hab noch gar keine erfahrungen mit dem kram. muss ich denn überhaupt über die s7 300 gehen oder kann ich direkt aus der verbindung von nck und hmi die zeilennummer vom mpi bus lesen.

@niox hab mal danach geschaut aber ist es denn bei 840d pl genauso wie bei 840d sl


----------



## niox (4 September 2010)

Im Prinzip schon es gibt einige Unterschiede grundsätzliches hat sich nicht verändert. 
Ist nur schon einige Zeit vergangen wo ich was bei der pl gemacht habe. Theoretisch kannst du es wie in BE1 beschrieben machen. Meiner Erfahrung nach ist der einfachere Weg über libnodave oder sonstiges auf die PLC zuzugreifen als selbst ein Programm zum Auslesen zu schreiben.
Eigentlich sind ja im Forum einige erfahrene Programmierer unterwegs die da Erfahrungen haben.

Was willst du eigentlich genau machen. Beschreibe es doch mal näher?

niox


----------



## bike (5 September 2010)

Sybkal schrieb:


> wenn ich jeztz diesen code abarbeiten lasse kann ich  irgendwie auf die aktuelle programmzeile zugreifen und am pc  weiterverarbeiten.






niox schrieb:


> Was willst du eigentlich genau machen. Beschreibe es doch mal näher?
> 
> niox



So geht es mir auch.
Was willst du am PC bearbeiten?
Die NC bearbeitet die Sätze sequenziell, wie ein Intepreter, außer "look haed" ist aktiviert, da werden Sätze  vorausgelesen. Die NC ist mit den Berechnungen weiter als die Satznummer die angezeigt wird,und kann auch nicht leicht gestoppt werden. 

Ein laufendes Programm am PC ändern und bei einem Stopre zu ändern, das ist nicht ganz einfach. Wenn du so etwas machen willst, dann ist ein Remotezugriff mit VNC oder so die bessere Lösung.


bike


----------



## Sybkal (6 September 2010)

Also was ich will ist das ich quasi die maschine laufen lassen will, und nebenbei am pc nachsimulieren lassen. Hierzu brauch ich die aktuell bearbeitete Zeile, oder auch die nächste Zeile um im voraus zu simulieren.
Gerne würd ich dann auch vom PC aus die bearbeitung stoppen oder starten können, aber das erst im zweiten schritt!!

Die Zeile muss doch an das HMI über MPI gesendet werden, da doch die Zeile am HMI angezeigt wird oder?
Wird die Zeile auch an die S7 300 gesendet? Über Profibus?
Kann ich nicht einfach per MPI an den NCK und dann mit ner MPI-Karte an den PC?

Kann mir jemand nochmal sagen was BE1, libnodave und VNC genau ist?

Hab auch in der DOConWEB geschaut oder bin noch dabei, kann mir jemand vielleicht sagen welches Dokument dafür am sinnvollsten ist, da dort ja endlos viele sind?

Sorry für die vielen Fragen aber ich hab echt noch keine Ahnung!!!


----------



## Martin L. (6 September 2010)

Hallo sybkal,

schaue für die Sinumerik 840 D in der DoconWeb in den Listen2 nach,
den DB21 DBB32 kannst du per PLC auslesen, da stehen schon aufbereitet 
Satzinformationen drin.


----------



## Rainer Hönle (6 September 2010)

Nach VNC googeln und nach libnodave hier im Forum suchen ...


----------



## bike (6 September 2010)

Sybkal schrieb:


> Also was ich will ist das ich quasi die maschine laufen lassen will, und nebenbei am pc nachsimulieren lassen. Hierzu brauch ich die aktuell bearbeitete Zeile, oder auch die nächste Zeile um im voraus zu simulieren.
> Gerne würd ich dann auch vom PC aus die bearbeitung stoppen oder starten können, aber das erst im zweiten schritt!!


Die Kommunikation ist nie so schnell, dass du die aktuelle Zeile angezeigt bekommen wirst und dann mit deinem PC irgendwelche Berechnungen anstellen kannst.

Was willst du wie simulieren? Das NC Programm so wie dies mit der HMI oder den JobShop Programmen möglich ist?

Wenn die NC fährt, dann ist es schwer diese bei einem Fehler im Programm von extern zu stoppen.
Du kannst natürlich über die Nahtstelle ein Vorschub Halt oder auch ein Stopre oder NC Start und Stop oder....

Eine NC auf einem zu simulieren ist schon eine hartes Stück Arbeit doch  das quasi in Echtzeit zur NC? 

Doch kann dir nur geholfen werden, wenn du erklärst was dein Ziel ist und nicht, wenn du einen Weg beschreibst der nicht begehbar ist. 

bike


----------



## Sybkal (6 September 2010)

Also das Ziel ist die Satznummer die bearbeitet wird oder werden soll in quasi Echtzeit aus dem NCK auf einen PC zu bekommen. (Die weiterverarbeitung ist dann ein anderes Thema)
Es ist ja so wenn zB ein Verfahrbefehl ausgeführt wird kann man ja in der Zeit in dem der Weg gefahren wird, etwas mit der Satznummer machen.

Ich habe jetzt schon einiges gelesen und die Satznummer wird doch am HMI angezeigt und liegt doch auf dem MPI BUS. Kann ich nicht einfach mit einer MPI BUSKarte aus dem PC an den BUS und die Daten abfangen.

Noch eine weitere Frage: In der DOConWEB im Buch Listen2 stehen ja endlos viele Befehle. UNter anderem auch:
actLineNumber und lastBlockNoStr. 
Meine Frage: Wo wird das denn eingegeben? Im HMI?
Kann man damit nicht was machen?



bike schrieb:


> Du kannst natürlich über die Nahtstelle ein Vorschub Halt oder auch ein Stopre oder NC Start und Stop oder....
> bike


 Ich habe viel über NAhtstellen gelesen. Wie kann das mit dem NC Start und Stop realisiert werden


Ich danke für die vielen Antworten!!!!


----------



## bike (6 September 2010)

Sybkal schrieb:


> Also das Ziel ist die Satznummer die bearbeitet wird oder werden soll in quasi Echtzeit aus dem NCK auf einen PC zu bekommen. (Die weiterverarbeitung ist dann ein anderes Thema)
> Es ist ja so wenn zB ein Verfahrbefehl ausgeführt wird kann man ja in der Zeit in dem der Weg gefahren wird, etwas mit der Satznummer machen.
> 
> Ich habe jetzt schon einiges gelesen und die Satznummer wird doch am HMI angezeigt und liegt doch auf dem MPI BUS. Kann ich nicht einfach mit einer MPI BUSKarte aus dem PC an den BUS und die Daten abfangen.
> ...



Die Kommunikation ist dafür zu langsam.
Hast du einmal an einer PCU angeschaut wie schnell die Sätz da vorbei huschen?
Und dann dies über Lesebefehle in PLC und dann an eine anderen Rechner zu übertragen?
Ein Lesebefehl aus der NC ist nicht immer  in einem Zyklus vorbei, bei einer Zykluszeit von ca 40ms der PLC, kannst du dir ausrechnen wie viele Satznummern du lesen kannst wenn die NC mit ca 1ms pro Instruktion/Zeile benötigt.

Start/Stop und ähnliches kannst du über die Manipulation der Nahtstelle zur MSST am einfachsten machen. 

Ist dies ein reales Projekt oder eine Diplomarbeit oder ähnliches?
Jemand der dei 840d kennt wird solch ein Unterfangen nicht wirklich in der Praxis haben wollen bzw er weiß, dass es nicht möglich ist.


bike


----------



## Sybkal (7 September 2010)

Es ist schon ein reales Projekt. Und ich schreibe meine Abschlussarbeit an diesem Projekt.

Wenn ich das dann richtig verstanden habe ist die PLC also viel zu langsam Befehle aus dem NC zu lesen.

Aber die NC Befehle müssen doch auch ausgeführt werden. In dieser Zeit könnte man doch den nächsten Befehl lesen??

Muss ich für die Satznummer denn unbedingt über die PLC gehen?? Kann ich nicht direkt an die NCU oder HMI?

Wenn ich jetzt auf dem Rechner das gleiche NC Programm hätte und im vorlauf bearbeite, und einfach ein paar Satznummern vorarbeite würde es doch vielleicht funktionieren???

Hauptsache ist das ich erstmal alle Satznummern auslesen kann. Wenn es eine kleine Zeitverzögerung gibt ist das erstmal in Ordnung. Man könnte dann ja über Start/ Stop das NC Programm halten/ starten.

Muss ich für Start und STop über die PLC gehen???
Kann ich nicht bei der ganzen Geschichte die PLC ganz außen vor lassen???

Puh!!! So viele Fragen!!! Vielleicht findet ja jemand die Zeit!!!


----------



## niox (7 September 2010)

Also bezüglich libnodav http://www.sps-forum.de/showthread.php?t=24391 usw ist im Forum gut beschrieben. 
Das was du machen willst geht warscheinlich nur über den NCDDE Server 

Mal in dem Handbuch Rechnerkopplung RPC suchen

https://www.automation.siemens.com/...pdf?p=245#page=245&view=FitBH,0&pagemode=none

niox


----------



## bike (7 September 2010)

Sybkal schrieb:


> Aber die NC Befehle müssen doch auch ausgeführt werden. In dieser Zeit könnte man doch den nächsten Befehl lesen??


Nicht so ganz. 
Die NC schreibt an den Antriebsverbund die Fahrbefehle und wartet dann bis die Antwort da ist.
Wenn in der Zwischenzeit Berechnungen oder ähnliches notwendig sind, dann rechnet die NC weiter.
Ich weiß keinen Weg die Satznummer aus der NC direkt zu lesen, es gibt da so wie ich es weiß keinen direkten Zugriff.



Sybkal schrieb:


> Hauptsache ist das ich erstmal alle Satznummern auslesen kann. Wenn es eine kleine Zeitverzögerung gibt ist das erstmal in Ordnung. Man könnte dann ja über Start/ Stop das NC Programm halten/ starten.
> 
> Muss ich für Start und STop über die PLC gehen???
> Kann ich nicht bei der ganzen Geschichte die PLC ganz außen vor lassen???
> ...


Du kannst über die Eingänge der MSST die NC starten und stoppen. Z.B. im OB 1 die Eingänge der MSST mit den Signalen von deinem PC überschreiben.

Das kommt echt gut die NC ständig zu stoppen und zu starten. Das Produkt, das da rauskommt kannst du in der Tonne einer Heimat geben.


bike

P.S: ich weiß immer noch nicht was du erreichen willst bzw musst. Eine Abschlussarbeit hat auch eine Aufgabenstellung denn so wie du es beschreibst ist es nicht möglich.


----------



## Sybkal (8 September 2010)

@bike

Die Aufgabe lautet das an der Realen maschine laufende NC Programm zeitgleich oder 2-3 NC-Sätze im vorlauf auf einem Rechner nachzusimulieren


----------



## bike (8 September 2010)

Sybkal schrieb:


> @bike
> 
> Die Aufgabe lautet das an der Realen maschine laufende NC Programm zeitgleich oder 2-3 NC-Sätze im vorlauf auf einem Rechner nachzusimulieren



Das kann nicht funktionieren. Wer fragt nach so etwas?
Du kannst z.B. mit JobMill oder JobTurn auf einem PC  simulieren, doch du kannst nicht zeitgleich bzw im voraus die Sätze auf einem anderen Rechner ablaufen lassen, da dir die Zeit/Wege Zeiten fehlen.
Was gehen könnte! ist, dass du eine gut Simulationssoftware auf einem PC hast.
Diese Software muss in der Lage sein von extern gestartet und gestoppt zu werden. Dann kannst du dir aus der Nahtstelle die aktive Satznummer holen und dann in der Simulation an diese Stelle springen. Schwer wird es zusätzlich bei Satzsuchlauf oder ähnlichem. 


bike

P.S: 
Also wir können bisher noch nicht und die Firma in der ich arbeite macht seit 50 Jahren nix anderes al CNC Maschinen. Ich möchte jetzt nicht mit dir tauschen.


----------



## Sybkal (8 September 2010)

das mit der Nahtstelle und der aktiven satznummer hört sich ja gut an. wie geh ich denn da vor. kannst du mir mal paar tipps geben, wie ich an die informationen komme.

noch etwas: wo werden die befehle aus der datei DOConWEB Listen2 eingegeben. da kann man auch nach der aktuellen satznummer fragen


----------



## bike (9 September 2010)

Sybkal schrieb:


> das mit der Nahtstelle und der aktiven satznummer hört sich ja gut an. wie geh ich denn da vor. kannst du mir mal paar tipps geben, wie ich an die informationen komme.
> 
> noch etwas: wo werden die befehle aus der datei DOConWEB Listen2 eingegeben. da kann man auch nach der aktuellen satznummer fragen


Also da hilft NCvar Selector und PI Dienst, dann hast du die Nummer in der PLC.

Such mal nach PI Dienst und VarSelector beim Big S.


bike


----------



## Sybkal (10 September 2010)

ok danke für die antwort.
von varselektor hab ich schonmal was gehört
aber was ist big S ???


----------



## Rainer Hönle (10 September 2010)

Sybkal schrieb:


> ok danke für die antwort.
> von varselektor hab ich schonmal was gehört
> aber was ist big S ???


Das sind die, zu denen man nach langer Zeit auch schon mal "Du mens" sagen darf (und nicht mehr "Sie mens") ;-)


----------



## LowLevelMahn (10 September 2010)

*noch meinen Senf dazu*

die Möglichkeiten der Kommunikation:

OPC:
über den SOPCMaschineSwitch - liegt auf der PCU unter f:\mmc2\opc\datacess
über den kannst du alle Variablen egal ob PLC- oder NC-Spezifisch lesen/schreiben - leider wird Browsing nicht unterstütz d.h. du musst die Variablennamen kennen -> dafür das Listenhandbuch 2 unter DocOnWeb

DDE:
ansonsten dessen Unterbau der sog. NCDDE-Server -> darauf baut die HMI Kommunikation auf -> mittels ddetest.exe aus dem f:\mmc2\ kannst du die gleichen Variablen lese/schreiben, aber hier auch PI-Dienste Ausführen und NC-Code übertragen

des weiteren kannst du auch mittels Libnodave einige PLC-erreichbare Bits/Bytes (siehe wieder Listenhandbuch 2) benutzten

zu der "Idee" die NC-Ausführung mittels der BlockInfo oder sonst. NC-Variablen zu verfolgen ist zu sagen - du schaust nur zu d.h. es ist nicht garantiert das du alle Sätze bekommst und die Ausgabe läuft dem Maschinenzustand hinterher, blockieren kannst du die Ausführung nicht - und häppchenweise zu stoppen hilft dir nicht falls du der Interpolation zuschauen möchtest

was sinnvoll sein könnte wäre die sog. VNCK das ist eine simulierte NCK in die man sich mittels COM reinhängen kann - hab da leider kaum Erfahrung mit und ist auch soweit ich weiss sehr teuer


----------



## Sybkal (14 September 2010)

ok danke für die hilfe....
werd jetzt mal über das MCIS RPC mein glück versuchen..
ich hoffe dass das klappt


----------

