Problem bein Unterprogrammaufruf im Submit

  • Hallo allerseits,
    ich habe hier ein Problem mit unserem KR5ARC KRC4 8.2.27
    Wir wollen beim Hochfahren der Steuerung einen Stückzähler mit dem Submit aufrufen (aufruf vorm LOOP) Welcher Variablen in eine .csv datei schreibt. Das ganze funktioniert auch, jedoch nur wenn ich den Submit manuell ab- und wieder anwähle. Bei einem neustart der Steuerung wird das Unterprogramm nicht ausgeführt.
    Hat jemand eine Idee an was das liegen könnte?


    Danke Vorab :)

  • Schritt für Schritt zum Roboterprofi!
  • Danke für den Tipp, das wars aber leider nicht. Ich habe mittlerweile mittels eines Zählers festgestellt dass das Unterprogramm durchlaufen wird, jedoch werden die Anweisungen zum Schreiben in die .csv nicht ausgeführt. Sobald ich jedoch einen Kaltstart mit Daten neu einlesen ausführe funktionierts komplett mit Schreiben in die Datei.

  • Hallo Christian,
    so wie du das schilderst tönt dies sehr sehr seltsam.
    Bitte poste mal den Code komplett mit den Deklarationen, wie Du das machst und überprüfst.
    Wir schauen zurzeit in eine Glaskugel.
    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Guten Morgen,
    also folgende .src schreibt die .csv Datei:



    und so sieht der aufruf im sps.sub aus:


    Funktioniert nicht auf der realen Steuerung und auch nicht im OL -.-

  • Hallo Christian,
    was steht für eine Messagenummer im state.msg_no drin im Falle, wenn es nicht funktioniert?
    Wieso prüfst Du nicht state.ret1nach jedem cwrite? Siehe auch Bsp. in Cwrite Doku. Ha hast Du auch eine Tabelle drin mit den Message-codes.


    Vermutlich hast Du ein Timingproblem. Bei V8.x startet RT-System parallel zu Windows.
    Zugriff auf Datei wird noch nicht da sein, wenn Submit startet.
    Zum Debuggen versuche mal anfangs Submit ein wait 60 sec. Wenn es dann geht, müssten wir es über Timer einfach Aufruf verzögern.
    Bei Hibernate-Start gilt aber die Aussage von Hermann.
    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Hallo Christian,
    Mal mit simplen Bsp. Dein Code ergänzt. Diverse andere Sachen Möglich. Code ist nicht getestet.
    Für Fall Kaltstart, Kaltstart mit neu Einlesen und Submitneustart. Nicht für Hibernate-Start!
    ;FOLD DECLARATIONS
    ;FOLD BASISTECH DECL
    ;Automatik extern
    DECL STATE_T STAT
    DECL MODUS_T MODE
    ;ENDFOLD (BASISTECH DECL)
    ;FOLD USER DECL
    ; Please insert user defined declarations
    DECL BOOL SCHREIBE_DATEN ; MERKER ZUM SCHREIBEN DATEN IN EXTERNE DATEI
    ;ENDFOLD (USER DECL)
    ;ENDFOLD (DECLARATIONS)
    ;FOLD INI
    ;FOLD AUTOEXT INIT
    INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
    INTERRUPT ON 91
    $LOOP_MSG[]=" "
    MODE=#SYNC
    $H_POS=$H_POS
    ;Automatik extern
    IF $MODE_OP==#EX THEN
    CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
    ENDIF
    ;ENDFOLD (AUTOEXT INIT)
    ;FOLD TQM_INIT
    TorqueDefinitions()
    ;ENDFOLD (TQM_INIT)
    ;FOLD USER INIT
    ; Please insert user defined initialization commands
    SCHREIBE_DATEN = TRUE
    $TIMER[1] = 0 ;BSP. MIT TIMER 1
    $TIMER_STOP[1] = FALSE ; STARTE TIMER x
    ;ENDFOLD (USER INIT)
    ;ENDFOLD (INI)


    ;SCHREIBEN() ; HIER AUSKOMMENTIEREN ODER ENTFERNEN


    LOOP
    WAIT FOR NOT($POWER_FAIL)
    IF (SCHREIBE_DATEN == TRUE) AND ($TIMER[1] >= 60000) THEN
    SCHREIBEN()
    SCHREIBE_DATEN == FALSE
    $TIMER_STOP[1] = TRUE ; STOPPE TIMER x
    $TIMER[1] = 0
    ENDIF
    TORQUE_MONITORING()


    ;FOLD USER PLC
    ;Make your modifications here



    ;ENDFOLD (USER PLC)
    ENDLOOP


    Gruss SJX

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

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