Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Auf lokales Laufwerk schreiben

Beitrag 23.05.2014, 12:30 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo Miteinander,

ich suche nach einer Möglichkeit, mittels EXTOPEN, WRITE und EXTCLOSE auf die lokale Festplatte
des HMI-Advanced zu schreiben, um von dort über das Netzwerk zu lesen.

Es gibt dazu schon einiges zu lesen, allerdings nicht wirklich nur mittels lokalem Laufwerk.
Von Siemens gibt es eine Anleitung, die einen Umweg über ein Netzlaufwert mit Windows-Freigabe benutzt.

Siemens Anleitung

Dies erfordert meines Wissens aber eine Siemens-Option, was ich vermeiden möchte.

Daher meine Frage, wie muss ich mit EXTOPEN arbeiten, um z.B. auf c:\tmp eine Datei zum Schreiben zu öffnen?

Ich habe es mit dem Anlegen eines Lokales Laufwerks als logisches Laufwerk versucht. Es ist dann unter z.B. Programme
per Softkey anwählbar und der Inhalt wird angezeigt. Aber ich bekomme keinen Schreibzugriff bzw. schon das öffnen
einer Datei dort nicht hin.

Das Gerät "LOCAL_DRIVE" scheint laut Doc die Lokale CompactFlash Card zu sein. Wenn diese per Netzwerk
erreichbar wäre, wäre es auch ok.

Optimal wäre eine Lösung, die mit allen Steuerungskonstellationen funktioniert, ob HMI Operate oder Advanced, ob mit Festplatte
oder nicht. Wahrscheinlich bleibt mir dann nur noch das Netzlaufwerk und die Optionskosten :-(

Grüße und Vielen Dank.
   
Beitrag 23.05.2014, 13:42 Uhr
MIXer18
Level 3 = Community-Techniker
***
Hallo,
unter Operate mache ich das so.
Local_drive ist bei mir Lokales Laufwerk.

MfG
Ivan

DEF STRING[250] PFAD1
DEF INT ERROR
;
PFAD1="LOCAL_DRIVE/PROTOKOLLE.WPD/TEST.TXT"
;
EXTOPEN(ERROR,PFAD1)
WRITE (ERROR,PFAD1,"****TEXT*****'H0A'")
EXTCLOSE(ERROR,PFAD1)
M17
   
Beitrag 23.05.2014, 21:24 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo MIXer18,

vielen Dank für deine Antwort.

Scheinbar existiert in deinem Lokalem Laufwerk ein Werkstückverzeichnis Namens PROTOKOLLE, in das du deine Datei schreibst.
Das habe ichbisher noch nicht getestet, habe immer erfolglos direkt in das "LOCAL_DRIVE" zu Schreiben versucht.

Ich werde ein Werkstückverzeichnis (mit dem HMI-Operate) in dem "Lokalem Laufwerk" erstellen und versuchen, dorthin zu schreiben.
Wenn ich dann noch dieses Verzeichnis für das Netzwerk freigeben (und damit den Zugriff aus dem Netzwerk ermöglichen) könnte, wäre ich am Ziel.

Was dabei herausgekommen ist, demnächst in diesem Kino. ;-)

Grüße, Mackiee
   
Beitrag 24.05.2014, 10:09 Uhr
MIXer18
Level 3 = Community-Techniker
***
Hallo mackiee,

falls noch nicht vorhanden, wird die Verzeichnis Protokolle automatisch erstellt. Den Pfad kannst du beliebig umbenennen.

Ich habe es nicht geschafft mit PC Version von Sinumerik das zum Laufen zu bringen, an der Maschine funktioniert das ohne Probleme.
Mit den Befehl EXTCALL kannst du Überprüfen ob du auf das Lokale-Laufwerk zugreifen kannst.
EXTCALL("LOCAL_DRIVE://TESTORDNER.WPD/TESTPROGRAMM.MPF")


Mfg
MIXer18
   
Beitrag 24.05.2014, 21:09 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo MIXer18,

dann ist möglicher weise mein Problem, das mein Operate 4.4 mit VNCK 4.4 auf einem PC läuft, nämlich zusammen mit der Simulationssoftware RealNC.

Ich hätte angenommen, daß das Schreiben auf ein lokales Laufwerk für die PC-Version eigentlich kein Problem sein sollte, warum auch, sie läuft ja von der gleichen Platte.

Dummer weise finde ich die in der Siemens Anleitung erwähnte extdev.ini nicht, um ein Netzlaufwerk samt Datei zu definieren, das in dem Beispiel
verwendet wird.
Ich kann zwar über Inbetriebnahme/hmi/logische Laufwerke ein Netzlaufwerk anlegen, was im HMI auch inkl. Inhalt angezeigt wird, aber wenn ich versuche, eine Datei mit EXTOPEN(ERROR, "/dev/ext1/Test.txt") zu öffnen erhalte ich ERROR = 16: "ungültiger externer Pfad programmiert".

Ich nehme dabei übrigens an, das das erste eingerichtete logische Laufwerk eben mit "/dev/ext1" angesprochen wird, so wäre es ja auch über die extdev.ini gelaufen.

Versuche ich es mit: EXTOPEN(ERROR, "LOCAL_DRIVE/TEST.WPD/Test.txt"), erhalte ich: Assertionsfehler in infilins.cc: 1048 supi!

Leider gibt es mit EXTOPEN(ERROR, "c:\Test.txt") auch Fehler 16, obwohl EXTCALL( "c:\Test.mpf") genau so funktioniert!?!?!
   
Beitrag 25.05.2014, 17:28 Uhr
Guest_guest_*
Themenstarter
QUOTE
Versuche ich es mit: EXTOPEN(ERROR, "LOCAL_DRIVE/TEST.WPD/Test.txt"), erhalte ich: Assertionsfehler in infilins.cc: 1048 supi!


Soweit ich weiß, ist *.txt kein gültiges Suffix für die Behandlung durch die NC. Versuchs doch mal mit *.com oder eben *.mpf oder *.spf. Dann solltest du noch beachten, daß ein WINDOWS XP in der PCU am werkeln ist. Da ist der Pfadtrenner windowslike: "\". Auf einer PCU20 mit Linux geht auch der einfache Slash "/"

QUOTE
Leider gibt es mit EXTOPEN(ERROR, "c:\Test.txt") auch Fehler 16, obwohl EXTCALL( "c:\Test.mpf") genau so funktioniert!?!?!


Wie oben. Wenn EXTCALL( "c:\Test.mpf") funktioniert, versuch doch mal diese Datei mit write zu beschreiben.

Von Extern solltest du eigentlich auf ein freigegebenes Verzeichnis auf der Festplatte zugreifen können.
Ansonsten könntest du einen "Schmalspur-FTP-Server" wie zum Beispiel FileZillaServer auf dem SINUMERIK-PC im Hintergrund laufen lassen. Ich würde mal mit einem portable FTP-Server vom USB-Stick testen, was der IPC der Maschine noch an Performance übrig hat.
   
Beitrag 25.05.2014, 18:09 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo,

Ich habe folgendes getestet: Als Trenner / als auch \, je mit .mpf Extension leider ohne Erfolg,
immer noch Fehler 16 "ungültiger externer Pfad programmiert".

EXTOPEN(ERROR, "c:\Test.mpf"), EXTOPEN(ERROR, "c:/Test.mpf") : Fehler 16

Freigeben des Ordners für "Jeden" brachte auch keine Änderung.

Das ganze läuft bei mir übrigens unter Windows 7 x64.
   
Beitrag 25.05.2014, 18:57 Uhr
Guest_guest_*
Themenstarter
QUOTE (mackiee @ 25.05.2014, 19:09 Uhr) *
Hallo,

Ich habe folgendes getestet: Als Trenner / als auch \, je mit .mpf Extension leider ohne Erfolg,
immer noch Fehler 16 "ungültiger externer Pfad programmiert".

EXTOPEN(ERROR, "c:\Test.mpf"), EXTOPEN(ERROR, "c:/Test.mpf") : Fehler 16

Freigeben des Ordners für "Jeden" brachte auch keine Änderung.

Das ganze läuft bei mir übrigens unter Windows 7 x64.


Wie jetzt? Du hast Win7 auf der PCU50 laufen oder wie?
   
Beitrag 25.05.2014, 19:06 Uhr
Guest_guest_*
Themenstarter
Ein Verzeichnis auf einem externen Rechner kannst du nur über die IP-Adresse ansprechen...
   
Beitrag 25.05.2014, 19:11 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo,

ich nutze das Simulationssystem RealNC auf Windows 7 x64 zusammen mit Operate 4.4 und VNCK 4.4 auf einem einzigen PC, um ein Projekt vorzubereiten.
   
Beitrag 25.05.2014, 19:24 Uhr
Guest_guest_*
Themenstarter
Wenn du das nirgendwo erwähnst, denkt hier jeder du willst auf eine reale Steuerung zugreifen.
Mit deiner Konstellation solltest du aber nicht hier die Leute schalü machen, sondern bei den Softis von RealNC bohren. Die Simulationen arbeiten mit virtuellen Softwareumgebungen, die sich so nicht einfach auf reale Maschinen übertragen lassen. Ob dein Vorhaben überhaupt so realisierbar ist, kannst du eventuell im Forum "Simulationssoftware allgemein" erfahren.
Hier sind jedenfalls die "Realos" unterwegs. wink.gif

Der Beitrag wurde von guest bearbeitet: 25.05.2014, 19:36 Uhr
   
Beitrag 25.05.2014, 22:40 Uhr
mackiee
Level 1 = Community-Lehrling
*
Hallo,

wie es schon deiner Signatur zu entnehmen ist... ;-)

.... ich erwähnte es! (RealNC und Simulation)...

Mein Problem hat nix mit RealNC zu tun, sondern mit dem VNCK/HMI Verbund auf Windows7.

Ausserdem funktioniert, wie ebenfalls bereits erwähnt, das Abarbeiten von NC-Programmen von der lokalen Platte und das Anlegen von logischen Laufwerken, warum sollte dann darauf schreiben nicht möglich sein?
   
Beitrag 26.05.2014, 08:32 Uhr
MIXer18
Level 3 = Community-Techniker
***
Hallo mackiee,

QUOTE
Dummer weise finde ich die in der Siemens Anleitung erwähnte extdev.ini nicht


Ich glaube die Datei gibt es nur bei Linux Version von Sinumerik.


QUOTE
Soweit ich weiß, ist *.txt kein gültiges Suffix für die Behandlung durch die NC


Auf Local_drive funktioniert .txt ohne Probleme.


QUOTE
Wie oben. Wenn EXTCALL( "c:\Test.mpf") funktioniert, versuch doch mal diese Datei mit write zu beschreiben.


Ist zwar Logisch, funktioniert aber nicht.

A
QUOTE
usserdem funktioniert, wie ebenfalls bereits erwähnt, das Abarbeiten von NC-Programmen von der lokalen Platte und das Anlegen von logischen Laufwerken, warum sollte dann darauf schreiben nicht möglich sein?

Ich glaube das ist ein Bug, weil an der Maschine funktioniert alles ohne Probleme.
   
Beitrag 24.02.2015, 14:44 Uhr
mr_baley
Level 1 = Community-Lehrling
*
Hallo Zusammen

das Thema scheint zwar schon ein wenig in die Tage gekommen zu sein, aber da, wie ich von Siemens erfahren habe, auf absehbare Zeit keine Lösung von ihrer Seite zu erwarten ist möchte ich, in der Hoffnung , der Einten oder dem Anderen eventuell etwas Zeit zu sparen, versuchen meinen Workaround zu präsentieren.

QUOTE (MIXer18 @ 26.05.2014, 07:32 Uhr) *
Ich glaube das ist ein Bug, weil an der Maschine funktioniert alles ohne Probleme.


Quote vom Siemens-Support:
QUOTE
Die Funktion ist in den Simulations-Softwaren SNCK und VNCK nicht verfügbar, die Sprachbefehle EXTOPEN, EXTCLOSE, WRITE (für externe Geräte) sowie die entsprechenden ISO-Sprachbefehle wirken dort als NOP (no operation).



Ein möglicher und erfolgreich implementierter Workaround könnte wie folgt aussehen:

Disclaimer:
Obwohl die Lösung getestet ist muss sie nicht von vorne herein auf jedem System genauso funktionieren. Erwartungsgemäss können verschiedene Arten von Fehlern auftreten. Es wird keine wie auch immer geartete Garantie für Richtigkeit oder Vollständigkeit übernommen. Die Anwendung erfolgt auf eigenes Risiko.


Kurzbeschrieb des Ansatzes:
Zwischen Kernel und Simulatorsoftware wird ein Handshaking eingebaut das es ermöglicht, zur gewünschten Zeit die notwendigen Infos zu erhalten um die Aktionen ad hoc aus der Simulator Software heraus nachzubilden.
Das Handshaking basiert auf der Überwachung von GUDs und dem Parsen aktuell ausgeführter Programmzeilen.

Lösungskomponenten:
1. Kernelseitig (ARC/SRAM)
Wrapperzyklen mit einzigartigen Namen für all die Funktionen erstellen die im Simulator nicht oder nur teilweise zur Verfügung stehen - in meinem Fall
WIN_EXTOPEN, WIN_WRITE, WIN_EXTCLOSE.
Beispiele sind angehängt (WIN_EXTOPEN.SPF, WIN_WRITE.SPF, WIN_EXTCLOSE.SPF) und die verwendeten GUDs sind aus der Datei GUD_SIM.DEF ersichtlich (Die .txt-Endungen die für's Hochladen hier vonnöten waren müssen vor der Verwendung entfernt werden).

2. Simulatorsoftware (getestet mit VNCK 4.5 und C#)
Simulatorseitig müssen nun die entsprechenden Events registriert und ausprogrammiert werden damit das Handshaking funktioniert.
Das Beispiel ist in C# geschrieben (csharp_sample.cs), kann jedoch unter C++ fast genauso umgesetzt werden.

Alles was bleibt sind die fehlenden Utility-Funktionen (NcControl.SyncStartWatchVariable, NcControl.SyncStopWatchVariable, NcControl.GetWatchedVarName, VariableWriter) auszuprogrammieren oder das Beispiel so umzuschreiben dass es die erst gar nicht braucht, z.B. indem anstelle der überwachten Variablennamen die beim "Setup" der Überwachung zurückgelieferten Aktions-IDs gespeichert und direkt verglichen werden.

Trotzdem gibt es, bevors' guten Gewissens produktiv eingesetzt werden kann, noch viele Fälle abzufangen, zu beweisen dass keine Glitches, Race Conditions, Deadlocks oder andere Probleme entstehen können und Performance zu evaluieren.
Ich würde mich freuen wenn ich auch nur einem helfen konnte und wenn ggf. Verbesserungen in die Community zurückgeführt werden.
Angehängte Datei(en)
Angehängte Datei  GUD_SIM.DEF.txt ( 283Byte ) Anzahl der Downloads: 57
Angehängte Datei  WIN_EXTOPEN.SPF.txt ( 1.18KB ) Anzahl der Downloads: 62
Angehängte Datei  WIN_WRITE.SPF.txt ( 1.31KB ) Anzahl der Downloads: 52
Angehängte Datei  WIN_EXTCLOSE.SPF.txt ( 1.12KB ) Anzahl der Downloads: 35
Angehängte Datei  csharp_sample.cs.txt ( 5.7KB ) Anzahl der Downloads: 40
 
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: