Probleme mit $exec() auf CS9

  • Hallo liebe Stäubli Experten,


    habe folgendes Problem mit dem $exec() Befehl aus dem expansion- addon:


    Ich baue mir eine Stringvariable und will diese dann ausführen lassen.

    Werder $compile(), noch $exec() gibt einen Fehler zurück, und das Programm an sich läuft weiter, jedoch wird mein Unterprogramm nicht aufgerufen.


    hier noch ein Auszug aus dem Code:


    // build string

    l_sRoutineName = "call r" + sPara1 + "_" + sPara2 + "()"


    // test string

    l_sCompileErr = $compile(l_sRoutineName )


    if l_sCompileErr == ""

    //call routine

    l_sCompileErr = $exec(l_sRoutineName )

    endIf


    Zum Roboter:

    Emulierter TS2_80 CS9-s8.9

    Der echte Roboter wurde noch nicht geliefert, und aktuell weiß ich nur, dass es sich um einen TS2_80 handelt.

  • Hallo nemez,


    ich bin mir ziemlich sicher, dass die call Funktion nicht über $exec ausgeführt werden kann. Ich hatte das auch schon mal probiert um dynamisch den Programmnamen der call Funktion zu ändern. Mir wurde dann gesagt ich soll die switch Struktur verwenden.


    Vielleicht weiss jemand anders mehr dazu..

    Der Unterschied zwischen Theorie und Praxis ist in der Praxis weit höher als in der Theorie.

  • Vom Stäubli- Support habe ich folgende Antowrt bekommen:


    Quote

    nochmals zu dem exec()-Befehl.

    Man kann „call“ nicht über $exec ausführen, da der Kontext (der Task) fehlt.

    In so einem Fall muss man ein taskCreate im $exec() ausführen. Das sollte dann funktionieren.

    Hilft mir in meinem Fall leider nicht wirklich, aber ich habe schon eine andere Lösung (switch).