CONTINUE bei Programmende sinnvoll?

  • Hallo zusammen,


    ich habe es schon öfters bei unseren extern programmierten Programmen gesehen, dass ein CONTINUE am Ende vom Programm steht (also vor dem END). Jetzt wollte ich wissen, ob sich das überhaupt was bringt, da eigentlich kein VL Stopp durch das Programmende entstehen sollte, oder?

    Ich wäre euch für ein wenig Aufklärung sehr dankbar.

    LG

  • Schritt für Schritt zum Roboterprofi!
  • Brauchst du nicht. Programmwechsel verhält sich identisch wie wenn die gleich Abfolge an Kommandos in einem Programm stehen würden. Ist glaube ich meistens eine Verzweiflungstat weil viele Leute nicht wissen, dass im INI Fold Vorlaufstoppende Anweisungen stehen. Meistens kann also in solchen Fällen geholfen werden, wenn der INI-Fold rausgenommen wird oder über ein IF im relevanten Fall übersprungen wird.


    Fubini

  • Hi

    Ich habe am Ende von lokalen unterprogrammen vor END ein continue stehen.

    Da ich mit unterprogramm Technik arbeite ist es bei mir Standard.


    Das dient nur für die programmstruktur wenn im Nachhinein Anweisungen stehen die für den Vorlauf bestimmt sind oder nicht.

  • Hallo,


    danke für eure Antworten.


    Hi

    Ich habe am Ende von lokalen unterprogrammen vor END ein continue stehen.

    Da ich mit unterprogramm Technik arbeite ist es bei mir Standard.


    Das dient nur für die programmstruktur wenn im Nachhinein Anweisungen stehen die für den Vorlauf bestimmt sind oder nicht.

    Ich arbeite auch mit Unterprogrammen, aber ich sehe den Sinn dahinter noch immer nicht ganz. Überhaupt wenn es so wie bei uns ist, dass die continues bei zufälligen Unterprogrammen vorhanden sind und bei anderen nicht.

  • ich hab mit $Pro_IP so einige gefunden die eigentlich nicht sein dürften und hab auch unter anderem die Zeile vorm end schon mehrfach aufgefallen. continue hat auch in dem Fall geholfen.


    also ich kann bestätigen

    ja es kommt vor das ein VL stop am end ist

    ja es macht kein sinn

    ja ein continue hat schon geholfen auch wenn es keinen Sinn macht

  • CONTINUE wirkt sich nur auf die nächste Zeile aus.


    VL-Stop am Ende wird erwartet, weil das Programm beendet ist und es sowieso nichts weiter zu tun gibt.


    Falls END Teil eines Unterprogramms ist und nach dessen Erreichen mehr Code verarbeitet werden muss, wird der VL-Stop nicht durch END verursacht/beeinflusst, sondern ist das Ergebnis des folgenden Codes. Normalerweise wird das durch INI-Falten im nächsten Programm verursacht.

  • ini folds gibts bei mir nicht. ist alles abgefangen und nur bei direkter anwahl ausgeführt.


    ich hab schon END mit $PRO_IP Zeilen genau als VL stop identifiziert und auch mit Continue vor genau dieser weg bekommen. und ich weiß das es keinen sinn macht aber ich habs halt gefunden an der stelle.


    ich bin extrem akribisch was die suche nach VL stop angeht und wollte es nicht glauben das es geholfen hat wenn ich es nicht selber schon gefunden hätte


    und mir ist auch klar das continue nur auf die nächste zeile wirkt (ausser in verbindung mit ON_ERROR_PROCEED natürlich)


    und es war nicht das ende von programm. rücksprung ins hauptprogramm mit dem nächsten programm direkt im anschluß (kein VL stop in diesem)


    es war das END obwohl es keinen Sinn gemacht hat

  • Ich weiß was du meinst…..

    Auf ner kss 8.5 kann ich dieses Phänomen bestätigen!


    Meine programmstruktur ist auch wegen diesem Verhalten entstanden….


    Bei ner V5.4 bis 8.3 ist sowas nicht.

    Bei allen Softwareständen sind meine Programme identisch aufgebaut….nur bei der kss 8.5 kommt es an dieser Stelle ohne continue zum ruckeln.

  • Ein Beispiel were hilfreich...


    Ich nutze KSS8.5, 8.6 und 8.7 aber so was habe is nicht gesehen.

    Ich habe es gerade ausprobiert mit KSS8.5.8 und - kein Problem... kein CONTINUE notwending:



    P1.SRC


    P2.SRC

    Code
    DEF P2( )
    
    IF $MOVE_BCO THEN
       BAS(#INITMOV,0)
    ENDIF
    
    PTP {A6 -60} C_PTP
    
    END


    P3.SRC

    Code
    DEF P3( )
    
    IF $MOVE_BCO THEN
       BAS(#INITMOV,0)
    ENDIF
    
    PTP {A6 +60} C_PTP
    
    END
  • Seltsam….


    Ich kann gerade nix testen und habe kein code ….bin im Urlaub 🤪😅

    Falls das Thema sich nicht erledigt hat…kann ich auch gerne noch mal Feedback geben .

  • ich hab mal bei kuka expert geschaut.


    Da wirds erwähnt im zusammenhang von lokal deklarierten interrupts und programm wechsel


    "If a local interrupt loses its validity due to a subprogram call, approximate positioning is not normally carried out.


    Approximate positioning can be forced in this case by programming a CONTINUE statement directly before the END of the program concerned."


    Hab aber ein gefühl das es auch bei mir wan anders passiert ist

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