Belegung der Leertasten am KCP

  • Hallo KUKA Profis,


    habe mal wieder zwei Probleme, erst einmal wollte ich einen Ausgang setzen, das war ja kein Problem, aber beim setzen des Ausganges sollte auch ein Eingang kommen.


    IF $out[200]==TRUE THEN
    $in[200]=true
    ELSE
    $in[200]=FALSE


    Fehlermeldung Variable ist Schreibgeschützt. Wie bekomme ich aus dem Eingang den Schreibschutz raus?? :hilfe:



    Problem Nr. 2
    In der Untenstehenden Programmierung soll als vierte Taste noch ein Programm mit
    "ABBRUCH" angezeigt werden Bsp. "Weiter| | |Abbruch | | |GRUNDST. "
    Das Programm wird im Cell aufgerufen und soll den Bediener die Auswahlmöglichkeiten geben.


    Mein Problem, ich kriege die Programmierung nicht hin, das auch alle drei Tasten belegt sind. So sah mein Versuch aus.


    IF ANTWORT==7 THEN
    SO_FREIGABE_FT=TRUE
    HOMEFAHRT()


    ELSE


    IF ANTWORT==4 THEN
    SO_FREIGABE_FT=TRUE
    ABBRUCH()


    ELSE


    IF ANTWORT==1 THEN
    SO_FREIGABE_FT=TRUE
    WEITERFAHRT()
    ENDIF
    ENDIF



    Die Programmierung die hier unten steht Funktioniert tadellos, nur leider ohne Abbruch :nocheck:


    &ACCESS RO
    &REL 32
    &COMMENT Check_Home
    DEF check_home( )
    INT ANTWORT
    DECL MSG_T LEER_MSG
    $MSG_T.RELEASE=TRUE


    WAIT SEC 0.2


    GR2AUF=1 ; Variablen fuer Greifer zurücksetzten
    GR2ZU=1 ; Variablen fuer Greifer zurücksetzten
    KGR2ZU=1 ; Variablen fuer Greifer zurücksetzten
    KGR2AUF=1 ; Variablen fuer Greifer zurücksetzten


    LEER_MSG={MSG_T: VALID FALSE,RELEASE FALSE,TYP #DIALOG,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}


    LEER_MSG.KEY[]="Programm zuruecksetzen ( und in Home fahren) oder weiterfahren"
    LEER_MSG.DLG_FORMAT[]="Weiter| | | | | |GRUNDST. "


    $MSG_T=LEER_MSG
    $MSG_T.VALID=TRUE


    REPEAT


    ANTWORT=$MSG_T.ANSWER


    UNTIL (ANTWORT>0) AND (ANTWORT<=7)


    IF ANTWORT==7 THEN
    SO_FREIGABE_FT=TRUE
    HOMEFAHRT()


    ELSE


    IF ANTWORT==1 THEN
    SO_FREIGABE_FT=TRUE
    WEITERFAHRT()
    ENDIF
    ENDIF


    Danke für eure Hilfe

  • Schritt für Schritt zum Roboterprofi!
  • Betrifft


    IF ANTWORT==7 THEN
    SO_FREIGABE_FT=TRUE
    HOMEFAHRT()


    ELSE


    IF ANTWORT==4 THEN
    SO_FREIGABE_FT=TRUE
    ABBRUCH()


    ELSE


    IF ANTWORT==1 THEN
    SO_FREIGABE_FT=TRUE
    WEITERFAHRT()
    ENDIF
    ENDIF


    Ich würde das in etwa wie folgt lösen


    Switch Antwort
    Case 1
    .........
    Weiterfahrt()
    Case 4
    .........
    Abbruch()
    Case 7
    ...........
    Homefahrt()
    Default
    ...........
    Endswitch


    Servus Roland

    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.<br />Albert Einstein

  • Hallo
    Warum soll den der Eingang kommen???
    Das mit dem Schreibschutz geht


    $IOSIM_OPT Simulieren von Eingängen. Die Simulation ist damit zwar grundsätzlich eingeschaltet, es müssen aber noch die betroffenen Ein-- bzw. Ausgänge gesetzt werden. Hierzu dienen die Variablen “$INSIM_TBL[x]” und “$OUTSIM_TBL[x]”.
    Jedem der Ein-- bzw. Ausgänge kann einer der folgenden Zustände zugewiesen werden:
    G #NONE Der Ein-- bzw. Ausgang wird nicht simuliert und bleibt damit unverändert;
    G #SIM_TRUE Der Ein--/Ausgang wird gesetzt, was in der Anzeige der Digitalen
    Ein--/Ausgänge abgelesen werden kann;
    G #SIM_FALSE


    Mit freundlichen Grüßen Michel

  • Den Eingang benötige ich für das Abbruchprogramm; damit Flaschen und Kisten entlerrt und enfternt werden können.


    Aber wo und wie kann man den Schreibschutz rausnehmen. Ich nehme mal an das in der E/A Konfig die Einstellung vorgenommen wird. Aber keine Ahnung wie.

  • Hallo


    Eingänge ($IN) sind nun mal in der Regel für Signale von der Peripherie reserviert.
    z. Bsp. SPS Sensorik etc.
    Wird nun ein Eingang gesetzt, dann weis Dein Programm -- Aha da tut sich was.


    Soll zu Testzwecken der Eingang simuliert werden -
    bitte nochmal die Antwort von Michel lesen.


    Servus Roland


    PS. Wenn Du nur den Zustand in Deinem Program ändern oder kontrollieren willst, dann nimm
    halt ne Boolsche Variable dazu her.

    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.<br />Albert Einstein

  • Simulation von Eingängen kann auch mal in die Hose gehen.
    Wird $IOSIM_OPT nicht wider expliziet oder durch einen Abbruch des Programms rückgesetzt, reagiert der Eingang nicht mehr auf einen Signalwechsel durch den Bus. :down:

  • So ist es.
    Darum habe ich auch ausdrücklich "zu Testzwecken" geschrieben.

    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.<br />Albert Einstein

  • Die IO_Simulation wurde aus Sicherheitsgründen aus allen neuen Softwarereleases entfernt ! Sie ist nur noch im "Office Mode" verwendbar.


    OUT84 hat schon recht
    - Eingänge sind nur von der Peripherie beschreibbar. Sonst wäre es logischerweise
    kein Eingang.
    - nimm doch einen boolschen Merker als Ersatz

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

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