Gruppenausgang bei Programmstop sichern.

  • Servus,

    im Fall eines Programmstops, Motoren aus oder auch Hauptschalter aus, möchte ich mir den Wert eines Gruppenausgangs sichern.

    Habe darüber nachgedacht in diesen Fällen ein File auf die Festplatte des Rechners zu schreiben. Allerding finde ich nicht das passende Event und da steht das Programm bereits.

    Hat jemand hier vielleicht eine Idee dies ohne SPS oder sonstiges Equipment zu lösen???


    Danke!

    Chris

  • Du musst doch nur den Guppenausgang so definieren, dass der gespeichert wird, also auf Yes setzen.

  • Oder in der Eio.cfg den Eintrag um

    -SafeLevel "SetLastValue"

    ergänzen


    Code
    1. -Name "goTypNummer" -SignalType "GO" -Device "PB_Internal_Anybus"\
    2. -Label "Gruppenausgang fuer Typnummer (Spiegelung an SPS)"\
    3. -DeviceMap "64-71" -Access "All" -SafeLevel "SetLastValue"

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

  • Files wegschreiben auf "PowerOff"-Event ist suboptimal. Kann zuviel schief gehen, um die Ereignisroutine sauber zu Ende zu bringen. Die beiden anderen Events wären "Stop" und "QuickStop" (oder so). Als PERS speichern muss aber gehen, bevor das System sich selbst wegsichert.


    Mag sein, dass die Systeme sich mittlerweile besser kontrollieren, aber ich hatte schon 'n paarmal den Umstand, dass eine Ereignisroutine sich nicht beenden konnte, und das System dann selbst nach Aus-und Einschalten wieder dort hineinstartete. Damit war der ABB faktisch lahmgelegt.


    Grüße,

    Michael

  • Der Gruppenausgang wird doch sicher mit dem Wert einer Variablen beschrieben. Wenn du diese Variable als PERS deklarierst, hast du den Wert des Gruppenausgangs in der Variablen stehen.

    Mit der Variablen kann man dann nach erneutem Start weiterarbeiten.

  • Der Gruppenausgang wird doch sicher mit dem Wert einer Variablen beschrieben.

    Dazu brauch es zwei Programmzeilen. Eine zum setzen des Gruppenausgangs, eine zum beschreiben der Variablen.
    Man könnte alternativ hingehen, und eine eigene Prozedur mit Parameteraufrum schreiben, die das erledigt und somit hat man im Programm nur eine Programmzeile.

    Vielleicht so?


    MODULE GOValue(SYSMODULE)

    PERS dnum dGOValue;

    PROC SendGO(var signalgo GOName, num value)

    SetGO GOName,value;

    dGOValue:=GOutputDnum(GOName);

    ENDPROC

    ENDMODULE


    MODULE TestGO

    PROC Programmablauf()

    !

    SendGO goSelValue, 15;

    !

    ENDPROC

    ENDMODULE


    Jepp, funktioniert. Gruppenausgang wird auf 15 gesetzt und dann in der Variablen gespeichert.

  • Danke für die zahlreichen Vorschläge!

    Habe mir einen eigenen Save Level (Set last Value) angelegt und mit dem Gruppenausgang verbunden.

    Somit hat der GO auch nach dem Ausschalten seinen letzten Wert behalten.

    Funktioniert!