Aufrufsrekursion:INIT->PLC_PRG->INIT ???

Manuel82
2009-03-07
2009-03-07
  • Manuel82 - 2009-03-07

    Hallo,

    ich fange gerade an mit der SPS Programierung und versuche ein kleines Program für eine Tankanlage in ST zu schreiben.

    Wenn die Steuerung startet wird die Variable startup TRUE. In der PLC_PRG schreibe ich dann

    IF startup=TRUE THEN

    INIT();

    END_IF

    .

    In dem Baustein INIT wird die komplette Anlage auf ausgangsstellung gefahren, fallls ein Stromausfall war und Ventile noch geöffnet sind.

    Ebenfalls wird startup wieder False, damit der Baustein INIT nur beim Start aufgerufen wird.

    v1:=FALSE;
    
    v2:=FALSE;
    
    v3:=FALSE;
    
    
    
    p1:=FALSE;
    

    startup:=FALSE;

    IF v1=false THEN

    PLC_PRG();

    END_IF

    Danach will ich zurück in die PLC_PRG.

    beim Ãœbersetzen kommt dann allerdings die Fehlermeldung

    Aufrufsrekursion:INIT->PLC_PRG->INIT.

    Wo liegt da der Fehler? Eigentlich kann der Baustein INIT nicht mehr augerufen werden, da startup nun FALSE ist.

    mfg Manuel

     
  • gravieren - 2009-03-07

    Hi

    Zitat:
    IF v1=false THEN
    PLC_PRG();
    END_IF

    Entferne "PLC_PRG" das ist es gut.

    Zitat:
    Danach will ich zurück in die PLC_PRG.

    Du bist doch bereits "drinnen".

    Nach dem "ende" deiner Programmsequenz beginnt "PLC_PROG" von neuem.

    (Neuer Zyklus)

    Die musst von dem Programmiergedanken eines PCs wegkommen.

    Also entferne "PLC_PRG" in teste weiter.

    (Z.b. mit einer Zählschleife" in der du siehst, dass PLC_PROG erneut aufgerufen wird.)

     
  • nopoha - 2009-03-07

    Hallo,

    einfach mal den Aufruf von PLC_PRG() im Baustein Init löschen.

    Der ist sinnlos,da nach Abarbeitung von Init() sowieso in den aufrufenden Baustein, also PLC_PRG zurückgesprungen wird.

    Norbert

    tja, da war ich wohl zu langsam

     
  • gravieren - 2009-03-07

    Hi

    Zitat:
    tja, da war ich wohl zu langsam

    Nö, ich zu schnell

    Der Gedanke/Wille zählt.

     
  • Manuel82 - 2009-03-07

    Vielen Dank. Funktioniert.

     

Log in to post a comment.