NC-Start per RPC auslösen

MMM

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,

ich habe hier gerade eine SINUMERIK 840D Steuerung mit PCU-50, HMI Advanced und installiertem MCIS RPC 2.0, für die ich eine Fernsteuerungssoftware entwickle.

Die Datenübertragung, Abfrage und Setzen von Parametern, Anwählen von NCs, etc, habe ich so weit im Griff, aber es fehlt mir noch ein wichtiger Punkt, um die Steuerung zu vervollständigen:

Wie starte ich eine NC-Datei?

Folgendes habe ich bereits versucht:
- NC-Datei per OCX laden + aktivieren per C_ORDER_M()
- NC-Datei per OCX von extern abarbeiten lassen (aus F:\dh\WKS.DIR\Unterordner; ebenfalls C_ORDER_M() mit anderen Parametern)
- NC-Datei per DDE über "PI_START(/NC,201,/_N_WKS_DIR/_N_UNTERORDNER,_N_SELECT)" starten.

Bei allen dreien sehe ich im ShopMill, dass die Datei (ggf. geladen und) angewählt wird, die Maschine springt in die Betriebsart "AUTO" und bleibt mit Status "Reset" stehen.

Ich muss dann noch ans Bedienpult gehen und den "Zyklusstart"-Knopf betätigen.

Kann mir jemand sagen, wie ich diesen per RPC auslösen kann? Oder ist evtl. mein Ansatz hier falsch? (habe noch nicht so tief den Einblick in die CNC-Welt, ich komme mehr aus der klassischen Anwendungs-Entwicklung)

Danke schonmal,
Manuel
 
du musst noch den NC-Start per Bit-Setzen auslösen

ich glaube DB21.DBX7.0 oder DBX7.1

findest du in der DocOnWeb-Dokumentation LIS2.pfd
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo miteinander,

Kann mir jemand sagen, wie ich diesen per RPC auslösen kann? Oder ist evtl. mein Ansatz hier falsch? (habe noch nicht so tief den Einblick in die CNC-Welt, ich komme mehr aus der klassischen Anwendungs-Entwicklung)

Danke schonmal,
Manuel


Es gibt keinen PI Dienst zum auslösen eines NC Starts
es geht nur der weg über die PLC wie LLMAHN feststellte
es ist der DB21.dbx7.1

ist es aus Sicherheitstechnischen überlegungen ratsam eine NC Start
über die Fernwartung aus zu lösen ?
 
Hallo,

danke, die Hinweise auf LIS2 und besagten Datenblock haben schonmal viel weitergeholfen.

Ich kann den aktuellen Zustand jetzt über DB21, 7.1 auslesen, nur das Beschreiben klappt noch nicht. Werde mich da noch ein bisschen weiter durchkauen bevor ich mit weiteren Fragen zurückkomme (könne jetzt z.B. noch ein Problem mit der Berechtigungsstufe sein, das will ich erst abklären / ausprobieren.)

Sicherheitstechnische Fragen hierbei sind (glücklicherweise) nicht mein Problem, ich setze nur von Anderen festgelegte Anforderungen um. :)

Grüße,
Manuel
 
Hallo MMM,
ich habe das gleiche Problem wie du...
bei mir klappt es mit dem auslesen auch jedoch das schreiben klappt nicht..
hast du eine lösung gefunden???

Gruß Sybkal
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sybkal,

sorry, ich weiss leider nicht mehr genau was das Problem war. Wenn ich in den Code reinschau, mach ich einfach nur das offensichtliche - den DB21.dbx7.1 beschreiben.

Wichtig zu wissen ist imho: Man kann dort keine "0" reinschreiben, um es zu stoppen. Dazu gibt's stattdessen ein anderes Bit im gleichen Byte, das auf "1" zu setzen ist. Auch hab ich eine Verzögerung eingebaut, da die Sinu hier ein bisschen Reaktionszeit hat.

Ganz dunkel glaube ich mich zu erinnern, dass das Problem bei mir damals ganz wo anders lag, nämlich dass der Wert erst gar nicht geschrieben wurde.

Ich kann daher nur den Tipp geben, das mit dem RPCTest-Programm alles erst händisch zu probieren, bevor man selbst Code schreibt. Die Programmierung der RPC-Schnittstelle per C++ ist ein ziemlicher Krampf, wenn Du mich fragst ;-)

Grüße,
M.
 
Sorry, wenn ich diesen Thread wieder ausbuddle - aber ich möchte das gleiche machen.

Hat vielleicht jemand nen Codeschnipsel für mich (am besten mit der Programmauswahl :))?

Gruß Basti
 
Sorry, wenn ich diesen Thread wieder ausbuddle - aber ich möchte das gleiche machen.

Hat vielleicht jemand nen Codeschnipsel für mich (am besten mit der Programmauswahl :))?

Gruß Basti

Also ich weiß nicht was du willst.
Und daher ist das Beste du zeigts uns was du schon gemacht hast und wir erklären dir, wenn es nicht funktioniert, was und wo dein Fehler ist.

Es ist nach meiner Meinung sehr wohl bedenklich, wenn ein NC Start von außerhalb ausgelöst werden kann.
Was macht du, wenn ein Bediner an der NC gerade an R-Paramtern oder Werkzueg etwas ändert und die Maschine wird gestartet?


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bis jetzt hab ich leider noch nichts gescheites. Habe bislang versucht mit RPCTest nen Programm auszuwählen und dann zu starten.
Wenn ich den Maschinenstatus ausgelesen habe, hatte sich aber nie was geändert.

Das ganze ist für eine gekapselte Automation einer Wasserstrahlmaschine, deshalb ist die Gefahr eines Eingriffs nicht vorhanden, vor allem da es auch über die Sicherheits-SPS abgefangen wird. Ansonsten hättest Du natürlich vollkommen recht.

Ich bin erst Montag wieder im Büro, dann könnte ich das ganze mal ober die Ocx-Schnittstelle probieren und dann hier posten. Wollte halt erst mal den manuellen Weg probieren, bevor ich weitere potentielle Fehlerquellen kreiere.

Gruß Sebastian
 
Eine alternative ist noch die NC-Erweiterung von Deltalogics AGLink mit dem SPS Teil kann man leicht die Variablen schreiben/lesen und mit den NC-Funktionen NCK_PI_SELECT und NCK_CopyFileToNC die Dateien transferieren - auch NC-Variablen lesen geht damit ganz einfach

Beispiel aus dem API-Guide Programm

Code:
Int32 result = 0;
 String program = "/_N_MPF0";
 Int32 channel = 0;
    
 result = AGL4.NCK_PI_SELECT(connnr, channel, program, timeout);
 if(result != AGL4.AGL40_SUCCESS)
 {
     // Fehler aufgetreten
    String errormsg = "";
    AGL4.GetErrorMsg(result, out errormsg);
 }

oder

Code:
Int32 result = 0;
    String ncfile = "_N_SPF_DIR/_N_TEST_SPF";
    String pcfile = "C:\\Temp\\_N_TEST_SPF";
    
    result = AGL4.NCK_CopyFileToNC(connnr, ncfile, pcfile, timeout);
    if(result != AGL4.AGL40_SUCCESS)
    {
        // Fehler aufgetreten
        String errormsg = "";
        AGL4.GetErrorMsg(result, out errormsg);
    }
    return result;
 
Wenn du es über die PLC machen willst ist es über einen PI Dienst direkt ohne Zustazsoftware zu machen.


bike
 
Zuletzt bearbeitet:
Was ist nicht möglich?
Ein Programm anwählen?
Schreibe den Namen über RPC in einen DB und starte PI Dienst mit einem Signal.
Dann wird das Programm angewählt und du kannst die NC starten.


bike
 
Ok - das hört sich doch nach ner Alternative an, sollte ich es mit der Schnittstelle nicht hinbekommen.
Würde es aber lieber mit der Schnittstelle machen, da es auf der einen Seite komfortabler ist und vor allem da sie Events unterstützt und ich nicht die SPS pollen muss.

Aber danke für die Hinweise.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
.. und ich nicht die SPS pollen muss.

Du musst doch so und so prüfen, ob die NC aktiv, wenn du ein Programm anwählen und laden willst.
Ob du nun die NC prüfst oder die PLC ist mach meiner Meinung unerheblich.
Und wenn du die NC starten willst geht es ohne PLC eh nicht.


bike
 
Zurück
Oben