Network Timeout

  • Hallo zusammen,


    ich bin an der Programmierung einer AnyFeeder-Anwendung mit einem Viper s650. Das Programm steht nun soweit und hat auch die ganze Zeit funktioniert.


    Seit neustem erhalte ich jedoch beim erstmaligen Starten des Programmes nach kurzer Zeit die Fehlermeldung "Network Timeout". :hilfe:


    Diese tritt nach der Durchführung folgender Befehle auf (Teile und deren Position werden auf AnyFeeder gesucht).


    VRUN $ip, seq_loc[af_nr]
    VWAITI (seq_loc[af_nr]) $ip


    Starte ich das Programm dann nochmals neu funktioniert es. Da ich nun allerdings den Autostart aktivieren möchte muss das Programm beim erstmaligen Starten funktionieren.


    Wie bekomme ich diesen Network Timeout behoben?
    Kann ich irgendwo eine Zeit einstellen oder habe sonst noch irgendwelche Möglichkeiten?


    Im Voraus schonmal vielen Dank für eure Hilfe!


    Gruß Christoph

  • ANZEIGE
  • Hi,


    welche ACE Version hast du Installiert?

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Morgen,


    ich habe ACE-Version 3.1.3.6 installiert.


    Das Problem tritt neuerdings auch teilweise zwischen den beiden folgenden Zeilen auf:


    VPARAMETER (af_idx[af_nr], -1, 6000, -1, -1) $ip = af_init
    VRUN $ip, af_idx[af_nr]


    Um das Problem zu lösen habe ich schon mehrere Dinge leider erfolglos probiert:


    Der Parameter VTIMEOUT beträgt 5 wenn ich Ihn übers Monitorfenster abfrage. Diesen habe ich im Programm höher gesetzt.
    PARAMETER VTIMEOUT = 20


    Ebenfalls habe ich es schon mit einem Wait.Event von mehreren Sekunden nach dem VRUN-Befehl probiert.


    Wie gesagt passiert das Ganze immer nur beim erstmaligen Einschalten nach einem Neustart.

  • Hi


    versuch mal das ganze beim starten der Anlage ein C# script zu starten das den Anyfeeder initialisiert.
    Einfach per Drag and Drop das Anyfeeder-Objekt aus dem Workspace in das C# Program ziehen.
    Beim Ersten mal Starten eifach das V+ Programm ausführen.






    Dateien

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Hi,


    danke für deine Hilfe.
    Leider habe ich hierzu noch einige Fragen, da ich mit C# bisher noch garnichts gemacht habe.


    Ich habe dieses C#-Programm erstellt und den AnyFeeder hineingezogen (die letzte Zeile musste ich von Hand eintippen und bei der zweitletzten Zeile steht logischerweise eine andere Adresse wegen der Ordner und Namensgebung des AnyFeeders drin?!?!). Muss ich die Adresse sonst noch irgendwo berücksichtigen?


    Ebenfalls habe ich das "Init"-Programm erstellt. Ich habe es in Task 0 gestartet und es ist bis zum letzten "Pause"-Befehl gelaufen.


    Ist dies bisher alles richtig so?
    Wenn ich das "Init"-Programm starte, wird dann auch das C#-Programm mit einbezogen? Oder wie starte ich das C#-Programm in Verbindung mit dem "Init"-Programm (vor allem beim Autostart?)


    Für den Autostart müsste ich dann ja nach dem "Init"-Programm das Programm "a.anyfeeder" starten. Da das "Init"-Programm aber im Pause-Befehl stehen bleibt kann ich danach kein call a.anyfeeder benutzen.


    Um beim Autostart das "Init"-Programm zu starten rufe ich dieses am Ende des "Starter"-Programmes (welches vom Auto-Programm gestartet wird) mit dem execute-Befehl auf --> und anschließend sollte dann das a.anyfeeder-Programm gestartet werden.


    Hier ist mir die Reihenfolge wann und wie ich welches Programm starten soll.
    Wie muss ich genau vorgehen?



    Gruß Christoph

  • hi


    im V+ Code ruft


    CALL rm.execute($object, $method, 0, $args[], 10, status)


    dein C# Program auf.


    Nein das Programm sollte komplett durchlaufen. Wenn es in PAUSE läuft wird das C# Program nicht ausgeführt.


    dein $object = "/anyfeeder init" ist der name des C# Progamms. Beim Erstellen hat das Programm den Namen C# Program änders das Objekt mal in anyfeeder init


    Ich habe im letzten Beitrag den Workspace angehängt. Da sieh man wie Alles verknüpft ist.


    Aber es ist schon richtig das Init Programm kannst du auch zu Beginn in deinem a.anyfeeder Programm aufrufen.

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Hi,


    der Fehler bei mir könnte am Namen liegen.
    Ich werde das nächste Woche ausprobieren und mich dann nochmal melden.


    Soweit vielen Dank für deine Hilfe!


    Gruß Christoph

  • Guten Morgen,


    nach der Namensänderung läuft das Programm immer noch nicht komplett durch.
    Im Monitorfenster wird durch den Type-Befehl die Meldung -1000 angezeigt (wenn ich das init-Programm in Task 0 ziehe und starte).
    Irgendwo müsste noch ein kleiner Fehler liegen.


    Ich habe im Anhang 2 Bilder angehängt, das Init-Programm (hier ist auch meine Ordnerstruktur zu sehen) und das anyfeeder init-Programm.


    Sind hier noch irgendwelche Fehler zu erkennen?


    Gruß Christoph

  • läuft den das script wenn du es in ACE startest?
    Oben im C# Editor Zahnrad mit dem Grünen Dreieck klicken.

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Ja wenn ich den Compile and Run Button drücke läuft es. Nachdem der rote Stopp Knopf wieder erloschen ist kann ich es dann ein weiteres Mal starten.
    Der AnyFeeder bewegt sich aber nicht (falls er eine Referenzfahrt oder ähnliches machen sollte).
    Ebenfalls wird unten im Reiter "Error" kein Fehler angezeigt.


    Will ich es über das Init-Programm ansteuern erscheint im Meldfenster unterhalb der Tasks:
    Task 0: init at step 21, stack 0.5kB PAUSED
    Das Fähnchen bei Task0 wird gelb.

  • Kannst du mal den Workspace hochladen dann schau ich mal. Seh in den beiden Bildern keinen Fehler.

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • fehler gefunden


    schau mal in den V+ code


    $objekt = "/Schirmblech/Vision/anyfeeder init"
    $method = "Execute"
    CALL rm.execute($object, $method, 0, $args[], 10, status)

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Guten Morgen,


    das ist ja ärgerlich. Habe das Programm etliche Male durchgeschaut, aber dies ist mir nicht aufgefallen. Vielen Dank!


    Nachdem ich gestern leider nicht dazu kam habe ich heute morgen das Programm getestet. Es läuft nun bei geöffnetem Workspace ohne Probleme.


    Wenn ich jedoch den Autostart-Schalter aktiviere bleibt der Ablauf im V+Code stehen in der Zeile "CALL rm.chk.server(is.alive)" mit der Begründung "undefined Program or variable name". Ich denke er kann dies dann nicht finden. Muss ich dies auch wie das a.anyfeeder- und auto-modul auf dem Controller speichern und dann laden? Wie mache ich das bei dem C#.


    In meinem zuletzt angehängten Workspace ist zu sehen was ich im Programm "Auto" lade. Muss hier noch etwas hinzugefügt werden? Muss ich die ganzen Locator, Sequenzen, Histogramme usw... auch irgendwie laden?


    Da ich dies zum ersten Mal mache, kommen hier leider immer wieder viele Fragen auf. Aber ich denke wenn die Vorgehensweise dann einmal klar ist hat sich das erledigt. Und es hilft bestimmt auch anderen Mitgliedern im Forum.


    Vielen Dank soweit!
    Gruß Christoph

  • Ich habe das Ganze nun noch ohne Autostart probiert, da der Network Timeout auch so immer beim erstmaligen Starten auftrat.


    In den Zeilen
    VPARAMETER (af_idx[af_nr], -1, 6000, -1, -1) $ip = af_init
    VRUN $ip, af_idx[af_nr]
    gibt es nun keine Probleme mehr. Hier scheint die AnyFeeder Initialisierung geholfen zu haben.


    In den Zeilen
    VRUN $ip, seq_loc[af_nr]
    VWAITI (seq_loc[af_nr]) $ip
    tritt der Network Timeout noch auf (siehe angehängtes Bild)
    Zur Info: seq_loc[af_nr] = 11 (Locator Sequenz)
    welche Abhilfe könnte man hier noch schaffen, damit kein Network Timeout auftritt?

  • Also zum Autostart
    Das du die Rückmeldung bekommst CALL rm.chk.server(is.alive)" mit der Begründung "undefined Program or variable name" liegt vermutlich an deinem Autostart.
    Du machst den Autostart über den Controller. Der Contoller ist schneller als ACE und somit steht die Verbindung zum ACE Server noch nicht.


    Du kannst in dem Ordner System Configuration/System Startup die Funktion Controller Connection auswählen und dort dann dein starter dort in Task 6 Ausführen lassen.
    Dann Fährt erst der ACE SERVER hoch wenn dein PC startet und Führt dann deine V+ Modul start aus.



    Für deinen Timeout kannst du 2 Sachen testen.
    Statt


    VWAITI (seq_loc[af_nr]) $ip


    diesen Code einsetzen.


    Code
    DO
                    WAIT
                UNTIL ((VSTATE($ip, seq_loc[af_nr) == 3) OR (VSTATE($ip, seq_loc[af_nr) == 4))
    
    
    If VSTATE($ip, seq_loc[af_nr) == 4 then
    Type "Vision Fehler"
    Pause
    End


    oder dein Init für den Anyfeeder auch erst mal die beiden Sequenzen starten.



    sing Ace.Feeder.Server.AnyFeeder;
    using Ace.Core.Server;
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using Ace.Core.Server.Program;


    namespace Ace.Custom {


    public class Program {


    public AceServer ace;


    public void Main () {

    Trace.WriteLine("Script Starting");


    IAnyFeeder anyFeeder = (IAnyFeeder) ace["/AnyFeeder"];
    anyFeeder.Initialize();





    IAdeptSightSequence HistoSeq = (IAdeptSightSequence) ace["/Schirmblech/Vision/Histogram Sequence"];

    IAdeptSightSequence LocatorSeq = (IAdeptSightSequence) ace["/Schirmblech/Vision/Locator Sequence"];

    HistoSeq.StartExecution();

    Task.Sleep(1000);

    LocatorSeq.StartExecution();

    Task.Sleep(1000);



    }
    }
    }

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Hi,


    also der Autostart funktioniert nun ohne Network Timeout :)
    Habe die "do until wait-Version" genommen und hat sofort funktioniert.
    Allerdings muss ich ACE mit dem Workspace nun erst öffnen, dies ist jedoch auch kein Problem, da ich dies ja auch über den Autostart des PC´s machen kann.


    Vielen Dank für die Hilfe! Ich denke das wird nun in Zukunft funktionieren!
    :danke::merci:


    Allerdings hätte ich nun noch ein weiteres Anliegen:
    Ich würde gerne über den jetzigen Autostart das UserInterface starten und öffnen und von dort dann über einen Button das Programm (z.B. Starter).
    Im UserInterFace habe ich bereits die "Connection" und "Power" vorgesehen. Dies ist in der Hilfe recht gut beschrieben.
    Allerdings ist mir noch nicht klar, wie ich ein Programm vom UserInterface aus Starten und Stoppen kann.
    Gibt es hier von Adept aus vielleicht schon eine Beschreibung o.ä.??


    Ich wünsche ein schönes Wochenende!

  • Guck dir mal die Beispiel.awp an.
    Dort wird im User-Interface durch drücken auf den "Starte C# Program Button" ein C# Script gestartet das dann ein V+ Program ausführt.

    Dateien

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

  • Guten Morgen,


    leider werden, wenn ich die beispiel.zip-Datei lade nicht alle Objekte in meinen Workspace eingefügt. Das C#-Programm, der Greifer usw... fehlen. Deshalb kann ich das Ganze nicht nachvollziehen.
    Wenn ich die zip-Datei extrahiere erhalte ich nur xml-Dateien.


    Könntest du vielleicht das Ganze, wie schon vorher den anyinit workspace, als awp.Datei zippen?


    Danke!


    Gruß Christoph

  • schau mal ob das klappt.


    rechts click auf den Workspace Explorer und dann "Load from File" dann kannste die entzippte AWP in den Workspace mit dazu laden.

    Dateien

    Es ist nicht einfach Ich zu sein aber irgend jemand muss es ja tun.<br /><br /><br />Björn Gentsch <br />Robotics Division<br /><br />NACHI EUROPE GmbH | Bischofstr. 99 |&nbsp; DE-47809 Krefeld, Germany<br />Phone: +49 (0)2151 7843338 |&nbsp; Mobile: +49 (0)172 / 1775455&nbsp; | Fax: +49 (0)2151-7843332<br />E-Mail: gentsch@nachi.de |&nbsp; Internet: http://www.nachi.de

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden