Beiträge von Paule1256

    Ok Versteh jetzt was du meinst.

    Ich probiere das mal an einem nackten Robi, wenn ich einen in die Finger bekomme.

    Ich wollte das ja auch nicht einfach hier in die Robi´s einpflegen, sondern ich wollte nur wissen ob das grundsätzlich mit CWRITE möglich ist. Wir haben ja auch manchmal kleinere Projekte wo es keinen Standard gibt und da kann man sich dann so richtig schön auslassen.:) Kunden lieben doch one Button Solutions.

    Bringt halt nix, wenn an zwei verschiedenen Stellen die Programmanwahl erfolgt.

    Wenn der Robi in EXT steht dann kann der Anwahlbutton nicht in Automatik funktionieren, weil höchste Betriebsart T1 ist. Das sollte doch ausreichen um eine doppelte Anwahl zu verhindern?

    Der Robi steht bei Daimler und Produziert auch schon. Alles Gut.


    Ich versuche die Frage noch einmal ganz einfach zu fassen.


    Ich möchte im T1 Betrieb ein beliebiges UP Anwählen und zwar über eine Eingabemaske, welche ich mir selbst erstellt habe(CustomView). In dieser Eingabemaske gibt es einen Button der heist von mir aus ANWAHL UP1. Wenn ich auf diesen Knopf drücke wird das UP angewählt..


    Jetzt kommt die Frage!!! Es ist auch vollkommen egal wo der Robi steht. Es ist eine Allgemeine Frage.


    Was muss ich tun, damit der Knopf, wenn ich ihn drücke, das UP Anwählt.

    Wie CustomView verwendet wird gehört nicht zur Frage.



    Grüße

    Hallo Woodys,


    danke für die Info. Aber jetzt halt dich fest.


    Das HP wird auch aufgerufen, wenn ich zb. in T1 in irgendeinem UP stehe und den Schlüsselschalter betätige und auf ext schalte und wieder zurück auf T1 gehe. Dann bin ich im HP. Egal wo ich vorher war.

    Und um dem ganzen noch eins drauf zu setzen.


    IF $MODE_OP==#EX  THEN

    CWRITE($CMD,STAT,MODE,"RUN /R1/Program/UP_xxx_yyy_1111()")

    ENDIF


    egal welches UP ich da eintrage, ich komme immer wieder nur ins HP.


    Und das das nicht in der LOOP steht macht die Sache nur Mysteriöser. =O8|:D


    Grüße

    Hallo


    Das ist jetzt mal die ganze SPS.SUB.


    Wenn ich den Schlüsselschalter umlege und auf EXT schalte startet mein HP.

    Dann wieder auf T1 und gut ist.


    Grüße



    &ACCESS RVO


    &REL 13


    &COMMENT PLC on control


    DEF  SPS ( )


       ;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



          ;ENDFOLD (USER DECL)


       ;ENDFOLD (DECLARATIONS)


       ;FOLD INI


          ;FOLD AUTOEXT INIT


             INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()


             INTERRUPT ON 91


             INTERRUPT DECL 92 WHEN $PRO_MOVE==TRUE DO RESET_LINESEL()


             INTERRUPT ON 92


    $LOOP_MSG[]=" "


    MODE=#SYNC


    $H_POS=$H_POS


             ;Automatik extern


             ;REMOVED AUTOGENERATED -- DO NOT CHANGE -- DAI_POWERTRAIN_V86_S7-1500 sps SpsSub_Block_Del.add InsertSpsSubInit


          ;ENDFOLD (AUTOEXT INIT)


          ;FOLD BACKUPMANAGER PLC INIT


    BM_ENABLED = FALSE


    BM_OUTPUTVALUE = 0


          ;ENDFOLD (BACKUPMANAGER PLC INIT)


          ;START AUTOGENERATED -- DO NOT CHANGE -- DAI_POWERTRAIN_V86_S7-1500 sps SpsSub_Block_Init.add InsertSpsSubInit


          ;FOLD DAI_SPS_INI



             ;Automatik extern


             IF $MODE_OP==#EX THEN


             CWRITE($CMD,STAT,MODE,"RUN /R1/Program/HP_OP098_R01()")


             ENDIF



          ;ENDFOLD (DAI_SPS_INI)


          ;END AUTOGENERATED -- DO NOT CHANGE -- (DAI_POWERTRAIN_V86_S7-1500 sps SpsSub_Block_Init.add InsertSpsSubInit)


          ;FOLD USER INIT


             ;START AUTOGENERATED -- DO NOT CHANGE -- DAI_TRMD sps TRMD_sps.sub.add InsertDAI_TRMD


             ;FOLD INIT Fuer_Transfermodul_PT


                dai_sps_init( )


             ;ENDFOLD INIT Fuer_Transfermodul_PT


             ;END AUTOGENERATED -- DO NOT CHANGE -- (DAI_TRMD sps TRMD_sps.sub.add InsertDAI_TRMD)


             ; Please insert user defined initialization commands



          ;ENDFOLD (USER INIT)


       ;ENDFOLD (INI)



       LOOP


          WAIT FOR NOT($POWER_FAIL)


          ;FOLD BACKUPMANAGER PLC


             IF BM_ENABLED THEN


    BM_OUTPUTSIGNAL = BM_OUTPUTVALUE


             ENDIF


          ;ENDFOLD (BACKUPMANAGER PLC)


          ;START AUTOGENERATED -- DO NOT CHANGE -- GripperSpotTech sps SpsSub.add InsertGripperTechGlobals


          ;FOLD GRIPPERTECH LOOP


             GRPg_ChkSetStatePLC()


          ;ENDFOLD (GRIPPERTECH LOOP)


          ;END AUTOGENERATED -- DO NOT CHANGE -- (GripperSpotTech sps SpsSub.add InsertGripperTechGlobals)


          ;START AUTOGENERATED -- DO NOT CHANGE -- DAI_POWERTRAIN_V86_S7-1500 sps SpsSub_Block_Loop.add InsertSpsSubLoop


          ;FOLD DAI_SPS_LOOP



             dai_system_sps()


             dai_user_sps()



          ;ENDFOLD (DAI_SPS_LOOP)


          ;END AUTOGENERATED -- DO NOT CHANGE -- (DAI_POWERTRAIN_V86_S7-1500 sps SpsSub_Block_Loop.add InsertSpsSubLoop)


          ;START AUTOGENERATED -- DO NOT CHANGE -- DAI_CollDetect Sps spssub.add InsertSPSFold


          ;FOLD DAI_CollDetect


             DAI_CollDetect()


          ;ENDFOLD (DAI_CollDetect)


          ;END AUTOGENERATED -- DO NOT CHANGE -- (DAI_CollDetect Sps spssub.add InsertSPSFold)


          ;FOLD USER PLC


             ;Make your modifications here



             IF NOT diKollisionsschutz_545 AND $T2 THEN


    $OV_PRO=0


             ENDIF



    doKollSchutzIO_258 = diKollisionsschutz_545


          ;ENDFOLD (USER PLC)


       ENDLOOP


    END



    ;ENDFOLD



    DEF  RESET_OUT ( )


       INT N


       MsgLoop(" ")


       IF REFLECT_PROG_NR == 1 THEN


          FOR N = 0 TO PGNO_LENGTH - 1


    $OUT[PGNO_FBIT_REFL + N] = FALSE


          ENDFOR


       ENDIF


       IF (PGNO_REQ>0) THEN


    $OUT[PGNO_REQ]=FALSE


       ELSE


          IF (PGNO_REQ<0) THEN


    $OUT[-PGNO_REQ]=TRUE


          ENDIF


       ENDIF


    END



    DEF RESET_LINESEL()


    $LINE_SEL_OK=FALSE


    END



    ;FOLD USER SUBROUTINE


       ; Integrate your user defined subroutines



    ;ENDFOLD (USER SUBROUTINE)


    ;ENDFOLD

    Nein tut nicht.


    Wenn ich versuche ein anders UP aufzurufen wird immer nur das Hauptprogramm aufgerufen.



    IF $MODE_OP==#EX THEN

    CWRITE($CMD,STAT,MODE,"RUN /R1/Program/Unterprogramme/XXX_XXX1()")

    ENDIF


    Komisch vielleicht fällt jemanden noch was dazu ein.


    Danke Hermann für deine Antwort


    Grüße

    Hallo Zusammen,


    folgendes steht in meiner SPS.SUB


    IF $MODE_OP==#EX THEN


                   CWRITE($CMD,STAT,MODE,"RUN /R1/Program/HP_OP098_R01()")


    ENDIF


    diese 3 Zeilen bewirken, das wenn ich in EXT schalte mein HPxxxxxR01() angewählt wird. Funktioniert.


    Aber....


    IF $FLAG[10]==TRUE THEN

    CWRITE($CMD,STAT,MODE,"RUN /R1/Program/HP_OP098_R01()")

    ENDIF


    funktioniert nicht.


    Ich möchte mir ein Graphisches Interface (CustomView) bauen, um Programme anzuwählen. Dafür möchte ich Variablen oder Flags benutzen die dann, wenn man den Button drückt, auf TRUE

    gehen und in der SPS.SUB das CWRITE abfeuern.


    Hat da irgendwer ne Ahnung warum das eine geht und das andere nicht. Oder ob das überhaupt möglich ist?



    Grüße