Beiträge von Mammut

    Hallo Robotman,


    mit der ERR_TO_PLC über die P00() kannst Du Ausgänge auf Fehlermeldungen setzen:


    hier die Beschreibung zur ERR_TO_PLC.




    Mittels des P00 Paketes kann eine Fehlernummer an eine überlagerte SPS ausgegeben werden,


    hierfür muss die Datenliste P00.dat angepasst werden.



    Diese Funktion stellt nur das Gerüst für eine Fehlerausgabe dar und muss vom Kunden komplett


    ausgefüllt und parametriert werden.



    Für die Ausgabe der Applikationsfehler des P00 Paketes (Fehler beim Programmnummer Handshake) ist das Feld P[] bereits bis zur Nummer 28 vordefiniert.


    Ebenso ist die Nummer 128 vordefiniert, als Ausgabe der Nummer 1 bei einem NOT-AUS,


    da die Funktion im IR_STOPM.SRC bei einem Standardinterrupt aufgerufen wird.



    Sollen weitere Steuerungsfehler ausgegeben werden, müssen diese manuell ergänzt werden.



    Vorgehen zum Nutzen der Funktion:


    1) Schritt: aktivieren der Funktion mit der Variable


    BOOL PLC_ENABLE=TRUE ; Enable error-code transmission to plc



    2) Schritt: Definieren des Ausgabebereiches (Fehler wird als Binärwert übertragen)


    SIGNAL ERR $OUT[33] TO $OUT[40]



    3) Schritt: Einstellen der maximalen Fehlernummer die später deklariert wird für die eine


    Feldvariable existiert.


    INT MAXERR_C=234 ; maximum messages for $STOPMESS


    => Systemmeldungen werden von 128 - 255 deklariert (Aufruf über IR_STOPM.SRC)



    INT MAXERR_A=20 ; maximum messages for APPLICATION


    => Applikationsmeldungen können bis 127 deklariert werden.



    4) Definieren der Meldungsnummern, die ausgegeben werden sollen.


    Es werden vom System nicht automatisch die Fehlernummer die im Display steht ausgegeben, dies muss über das Feld P[] alles manuell eingestellt werden.



    Es besteht die Möglichkeit sich eigene Fehler zu generieren, hierfür ist das Feld


    DECL PRESET P[255] mit max. 255 einträgen deklariert. (= max. 8Bit Ausgabe auf Ausgänge)



    Beispiel:


    P[1]={OUT 14,PKG[] "XYZ",ERR 88}


    hierbei gilt:



    P[1] = fortlaufende Zahl des Feldes


    OUT 14 = Wert auf den die Ausgangssignal gesetzt wird SPS bekommt eine 1 als Anzeige


    PKG[] "YXZ" = Name des Programms der im Meldungsfenster angezeigt wird, das die Meldung


    sendet. ( muss beim Meldungs senden im Wert MSG_T: MODUL[] = "YXZ"


    angegeben sein)


    ERR 88 = Meldungnummer die vom Programm gesendet wurde bzw. aus dem Meldungsfenster ausgelesen wurde.




    Beispiel 1:


    Der Fehler "Stellgrösse soll mit der Nummer 153 angezeigt werden


    ; CTL:126


    ; STELLGROESSE XXXX


    P[129]={OUT 153,PKG[] "CTL",ERR 126}



    Beispiel 2:


    Eine Applikationsfehler 5 im Programm TEST soll mit 18 angezeigt werden


    P[5]={OUT 18,PKG[] "MEL",ERR 5}



    Der Aufruf der Funktion aus einem anderen Applikationsprogramm dann:


    Im Deklarationsteil muss folgendes deklariert sein:


    DECL CHAR ID[3]




    Setzen der Fehlerausgänge auf den Wert 18 für die Meldung 5


    ID[]="MEL"


    P00 (#EXT_ERR,#PGNO_GET,ID[], 5 )


    HALT



    Zum Löschen der Ausgänge nach Restart:


    P00 (#EXT_ERR,#PGNO_GET,ID[],0 )



    Grüße Mammut

    Hallo Robio,


    prüfe doch mal den Antriebswellensatz, der zur Hand geht, ob hier ein Spiel ist.
    hier fängt der Motor dann zu brummen an, was zu dieser Fehlermeldung führt.