SPS möchte mir PZ-Main senden

  • Hallo Ihr Profis,


    ich habe folgendes Problem. Der SPS Programmierer möchte von mir wenn ich in einem WaitDI stehe und auf sein Signal warte, nach 3 Minuten eine Meldung an die SPS haben und mich wenn er das möchte über ein Signal was er mir gibt in die PZ-Main zurück zu setzen damit er das Programm Grundstellung mir schicken kann.

    Wie kann ich das am besten Realisieren ohne das Rad neu zu erfinden.


    Ich danke euch jetzt schon mal.


    Gruß Nico

  • ANZEIGE
  • Guten Morgen N.Rose,

    bei WaitDi kannst du den Zusatzparameter "\MaxTime" nutzen.

    [\MaxTime]

    Maximum Time

    Datentyp: num

    Die maximal zulässige Wartezeit in Sekunden. Wenn diese Zeit abläuft, bevor die Bedingung erfüllt ist, und das Argument TimeFlag oder das Argument ErrorNumber nicht verwendet wird, kann die Fehlerbehandlung über den Fehlercode ERR_WAIT_MAXTIME aufgerufen werden. Wenn keine Fehlerbehandlung vorhanden ist, wird die Abarbeitung gestoppt.


    Dort kannst du dann deine gewünschte Zeit angeben und in der Fehlerbehandlung dein Signal an die SPS setzen.


    PzMain kannst du dann über den Systemeingang realisieren.


    Grüße

  • Also Könnte ich das so Machen?


    WaitDI di_GoAbwurfPosition, 1 \MaxTime := 6 \TimeFlag := timeout;

    IF timeout THEN

    SetDO do_Prg_ausgefuehrt_Fehler, 1;

    Break;

    RESET do_Prg_ausgefuehrt_Fehler;

    IF di_Main,1 THEN

    Main();

    ENDIF

    ENDIF

  • Hab mein Fehler selbst gefunden ich depp

    Mit dem Main-Aufruf klappt das so ned. Du würdest ja aus dem Unterprogramm des Mains das Main nochmals aufrufen.


    Schau dir mal in der Doku die "System Inputs" an, da kannst du ein Signal der SPS auf die Funktion legen, dass die positiver Flanke des Signal das Main abbricht und wieder von vorne Startet.

    Dies findest du unter Systemeinstellungen->Systemparameter konfigurieren->System inputs.

    Dort gibst du dann dein Signal ein und bei ACTION hinterlegst PZ to Main.


    Grüße

  • Von der Programmierung her würde das funktionieren. Allerdings solltest du dir im Klaren sein wie sich dieses Programm verhält.

    Das "Break" aus meinem Beispiel mach hier z.B. keinen Sinn mehr da es das Programm abbricht. Außerdem solltest du daran denken was passiert wenn er das Signal "di_SchraubeAbgeworfen" nicht bekommt. In deinem Fall würde er das Programm nämlich einfach weiter abarbeiten als ob er das Signal "di_GoAbwurfPosition" bekommen hätte.

    Wie immer führen viele Wege nach Rom, aber man sollte immer an "was ist wenn" denken.

  • Du meinst hier



    Da ist aber nur ein PP to Main oder ist das, dass gleiche?

  • Du musst einen Eingang mit der Systeminput Funktion StartMain verknüpfen.


    wenn die SPS das Signal sendet wird der PZ hart auf Main zurückgesetzt (dabei passiert auch einiges mit deinen Variablen)

    Du musst im Roboter da gar nichts machen, egal wo du stehst, der PP wird vom Roboter selbst gelöscht und zurück auf Main gesetzt. kein Rücksprung mehr irgendwohin, kein waitmaxTime, keine Error Handler kein Nix mehr...


    ob es PPtoMain und/oder Start at Main gibt hängt von der RW ab.

    bei PPtoMain musst du halt zusätzlich noch ein Startsignal senden

  • dann also so?


Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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