1. Dashboard
    1. Dashboard
    2. Suche
  2. Forum
    1. Unresolved Threads
  3. Members
    1. Recent Activities
    2. Users Online
    3. Team
    4. Search Members
  4. Jobs
  5. Articles
  6. Calendar
    1. Upcoming Events
    2. Map
  7. Shop
    1. Orders
    2. Shipping Costs
  • Login or register
  • Search
Roboterprogrammierer finden
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Events
  • Files
  • Products
  • More Options
  1. Roboterforum.de - die Industrieroboter und Cobot Community
  2. Forum
  3. Industrieroboter Support
  4. KUKA Roboter
Your browser does not support videos autonome mobile Roboter von KUKA
besuche unseren Hauptsponsor
Roboterschulung Online
Robot Support Forum
Advertise in Robotics
Der Roboterkanal
Deutscher Robotikverband
Werben in Robotik
Werben für Robotik

Position speichern wenn der Bedienerschutz unterbrochen wird

  • skyflyer
  • November 4, 2010 at 5:15 PM
  • Thread is Resolved
  • skyflyer
    Points
    435
    Posts
    65
    • November 4, 2010 at 5:15 PM
    • #1

    Hallo Leute,

    ich habe das Problem, bzw. das Vorhaben, die aktuelle Position des Roboters zu speichern, und das genau in dem Moment wenn der Bedienerschutz unterbrochen wird. (7,8,25,26 am X11).
    Welche Möglichkeiten habe ich dazu?
    Ich habe schon etwas mit Interrupts rumprobiert, jedoch wird mit dem Bedienerschutz sofort auch das Programm angehalten in dem der Interrupt definiert ist... alles net so einfach...

    Ich bin immer für jeden Tipp dankbar..

    Grüße Skyflyer

  • Schritt für Schritt zum Roboterprofi!
  • zteve
    Points
    1,145
    Posts
    217
    • November 4, 2010 at 6:09 PM
    • #2

    Du könntest die negative Flanke der Systemvariablen für Bedienerschutz im Submit-Interpreter auswerten.
    So beispielweise:

    IF $Flag[1] AND (NOT $User_Saf) THEN
    PosMerker = $PosAct
    $FLAG[1] = FALSE
    ENDIF

    IF (NOT $Flag[1]) AND $User_Saf THEN
    $FLAG[1] = TRUE
    ENDIF

    Gruß Stefan

  • skyflyer
    Points
    435
    Posts
    65
    • November 4, 2010 at 6:26 PM
    • #3

    Hey,

    danke schon mal für die schneller Antwort, jedoch glaube ich das im Submit $pos_act nicht geht, ich hatte da schon mal eine Fehlermeldung "1419 Absender sps.sub XYZABC Tool nicht programmiert". Liegt wahrscheinlich daran das im submit nicht bekannt ist welches Tool und auch base aktiv ist.

  • Robotnik
    Points
    2,920
    Posts
    543
    • November 4, 2010 at 6:53 PM
    • #4

    dann nimm doch $AXIS_ACT

  • IrrerPolterer
    Reactions Received
    18
    Points
    13,523
    Trophies
    65
    Posts
    2,384
    • November 4, 2010 at 7:12 PM
    • #5

    $PRO_ACT geht auch im Submit, wenn vorher ein Programm angewählt und die INI-Zeile durchlaufen wurde. Deshalb erweitere ich mal den Vorschlag von zsteve.

    $Flag[2] wird nach der INI-Zeile und SAK auf True gesetzt, um die Überwachung zu starten.

    Müsste eigentlich so gehen:

    Code
    IF ($PRO_STATE1=#P_FREE) OR ($PRO_STATE1==#P_RESET) THEN
     $FLAG[2]=FALSE
    ENDIF
    
    
    IF  ($FLAG[2]) THEN
      IF $Flag[1] AND (NOT $User_Saf) THEN
         PosMerker = $PosAct
         $FLAG[1] = FALSE
      ENDIF
    
    
      IF (NOT $Flag[1]) AND $User_Saf THEN
         $FLAG[1] = TRUE
      ENDIF
    ENDIF
    Display More

    Aber $AXIS_ACT ist einfacher, wenn's reicht.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.

    Life is a beta version. Full of bugs and no Manual.

    Edited once, last by IrrerPolterer (November 4, 2010 at 7:16 PM).

  • skyflyer
    Points
    435
    Posts
    65
    • November 4, 2010 at 7:47 PM
    • #6

    Hey,

    ich werde die Tipps ausprobieren und berichten was funktioniert hat oder auch nicht.

    Falls ich $axis_act nehme (oder nehmen muss) muss ich irgendwie noch eine Transformation machen, weil ich die Position kartesisch brauche... gibt es das schon was fertiges? oder wird das derbe Mathematik?

    Grüße

    Skyflyer

  • zteve
    Points
    1,145
    Posts
    217
    • November 4, 2010 at 9:12 PM
    • #7
    Quote from skyflyer


    Fehlermeldung "1419 Absender sps.sub XYZABC Tool nicht programmiert". Liegt wahrscheinlich daran das im submit nicht bekannt ist welches Tool und auch base aktiv ist.

    Macht Sinn

    Für die Übersetzung von AXIS in kartesisch gäb's die Funktion Forward ()

    Gruß Stefan

  • Robotnik
    Points
    2,920
    Posts
    543
    • November 4, 2010 at 9:44 PM
    • #8

    Forward() ... das ist das unkomplizierte was es gibt.
    Du aktivierst ein Tool, eine Base, übergibst eine Koordinate in Axis oder E6AXIS und bekommst eine E6POS zurück...

  • Drudge
    Reactions Received
    4
    Points
    1,999
    Posts
    390
    • November 5, 2010 at 10:49 AM
    • #9

    ich würde das Ganze im Submit lösen. Es kommt noch ein wenig darauf an, was du genau mit der gespeicherten Position machen willst. Aber ich würde das in etwa so programmieren:

    savePos.dat

    Code
    DEFDAT savePos PUBLIC
      DECL GLOBAL E6POS POS_Brake = {X 0.0, Y 0.0, Z 0.0, A 0.0, B 0.0, C 0.0, S 0, T 0, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}
      DECL GLOBAL E6AXIS AXIS_Brake = {A1 0.0, A2 0.0, A3 0.0, A4 0.0, A5 0.0, A6 0.0, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}
    
      GLOBAL ENUM ValidPos_T NONE AXIS CARTESIAN
      DECL GLOBAL ValidPos_T PosType
      DECL BOOL bLastState
      DECL GLOBAL INT iTool, iBase
    ENDDAT

    savePos.sub

    Code
    DEF savePos()
      ;Wenn sich der Status des Bedienerschutzes geändert hat
      IF bLastState<>$USER_SAF THEN
        ;Dann übernimm den Status in die Speichervariable
        bLastState = $USER_SAF
        PosType = #NONE
        ;Wenn zusätzlich der Bedienerschutz unterbrochen ist
        IF NOT $USER_SAF THEN
          ;Dann speichere die Position, wo der Roboter gebremst wurde
          ;Wenn Tool und Base gesetzt sind
          IF (VARSTATE("$TOOL")==#INITIALIZED) THEN
            IF (VARSTATE("$BASE")==#INITIALIZED) THEN
              ;Wenn eine programmierte Bahn abgefahren wurde
              IF (VARSTATE("$POS_RET")==#INITIALIZED) THEN            
                POS_Brake = $POS_RET
              ELSE
                POS_Brake = $POS_ACT
              ENDIF
              iTool = $ACT_TOOL
              iBase = $ACT_BASE
              PosType = #CARTESIAN
            ENDIF
          ENDIF
          ;Wenn nicht kartesisch gespeichert werden konnte
          IF PosType<>#CARTESIAN THEN
            AXIS_Brake = $AXIS_ACT
            PosType = #AXIS
          ENDIF      
        ENDIF
      ENDIF
    END
    
    
    GLOBAL DEF savePos_INIT()
      ;Falls sinnvoll BrakePos auf Standardwert setzten
      POS_Brake = {X 0.0, Y 0.0, Z 0.0, A 0.0, B 0.0, C 0.0, S 0, T 0, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}
      AXIS_Brake = {A1 0.0, A2 0.0, A3 0.0, A4 0.0, A5 0.0, A6 0.0, E1 0.0, E2 0.0, E3 0.0, E4 0.0, E5 0.0, E6 0.0}
      PosType = #NONE ;in was für einem Datentyp ist die Position gespeichert
      bLastState = $USER_SAF  ;TRUE = Bedienerschutz geschlossen
    END
    Display More

    lg drudge

  • IrrerPolterer
    Reactions Received
    18
    Points
    13,523
    Trophies
    65
    Posts
    2,384
    • November 5, 2010 at 11:13 AM
    • #10
    Quote from drudge


    IF (VARSTATE("$TOOL")==#INITIALIZED) THEN
    IF (VARSTATE("$BASE")==#INITIALIZED) THEN
    ;Wenn eine programmierte Bahn abgefahren wurde
    IF (VARSTATE("$POS_RET")==#INITIALIZED) THEN

    Sofern ich mich errinnere, bremsen die Varstate-Funktion den Submit fürchtlerlich aus. irgendwo hatten wir diese Diskussion hier auch schon mal.
    Ausserdem weiß der Submit manchmal niocht wirklich was im Interpreter so läuft. Gerade Varstate arbeitet dort nicht immer zuverlässig.
    IMO wird im o.g. Code mit Kanonen auf Spatzen geschossen.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.

    Life is a beta version. Full of bugs and no Manual.

    Edited once, last by IrrerPolterer (November 5, 2010 at 11:24 AM).

  • Drudge
    Reactions Received
    4
    Points
    1,999
    Posts
    390
    • November 5, 2010 at 11:29 AM
    • #11

    Ja das ist so, Varstate bremst den Submit aus. Doch wird das Varstate hier nur einmal kurz durchgeführt, wenn der Bedienerschutz geöffnet oder geschlossen wird. Das ist nach meiner Erfahrung unproblematisch :roll:

  • IrrerPolterer
    Reactions Received
    18
    Points
    13,523
    Trophies
    65
    Posts
    2,384
    • November 5, 2010 at 12:53 PM
    • #12
    Quote from drudge


    :roll:


    Warum?

    Bleibt immer noch das Problem, dass VARSTATE im Submit nicht immer reibungslos funktioniert. Wobei sich das bei neueren Softwareständen evtl. verbessert hat.
    Schön ist natürlich, dass man bei dem Code anschließend alles zur Verfügung hat.
    Die richtige Methode bestimmt die Aufgabe und die geht nicht so ganz aus der Beschreibing des TS vor.

    Jetzt mal ganz blöd gefragt: Wenn ich das ganze im Programm per Interrupt abzufragen, welcher ausgelöst wird, wenn $USER_SAF false wird, kann die Routine nicht abgeschlossen werden, weil das Programm vorher beendet wurde. Würde der Interrupt nach erneutem Programmstart dann ausgelöst werden? :denk: Irgendsowas komisches hatte ich nämlich schon mal...

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.

    Life is a beta version. Full of bugs and no Manual.

  • Werder_KUKA
    Points
    1,330
    Posts
    222
    • November 5, 2010 at 1:32 PM
    • #13
    Quote from IrrerPolterer


    $Flag[2] wird nach der INI-Zeile und SAK auf True gesetzt, um die Überwachung zu starten.

    ich würde es auch so programmieren da es unkomplizierter ist als die anderen Beispiele

    MFG Thomas

    Solange mein Chef so tut als würde er mich richtig bezahlen solange tue ich so als würde ich Arbeiten

    Edited once, last by IrrerPolterer (November 5, 2010 at 1:41 PM).

  • skyflyer
    Points
    435
    Posts
    65
    • November 5, 2010 at 5:55 PM
    • #14

    Hi Leute

    ich habe es mit zteve's Tip probiert und es hat funktioniert.
    Ich möchte die Position nutzen um zu berechnen welche strecke der ROboter noch zurücklegt ab dem zeitpunkt wo der bedienerschutz unterbrochen wurde, bis es zum stillstand gekommen ist. Die zeit dazu nehme ich mit dem Oszi auf mit Trigger auf Fehler...

Tags

  • 1
  • 33
  • 2
  • ABB
  • ABB Roboter
  • ABS
  • base
  • constant
  • CP_PARAMS
  • Dialog
  • EX
  • EXT
  • fanuc
  • Fehler
  • FRAMES
  • INIT
  • INITIALIZED
  • INITMOV
  • IRC5
  • joint
  • KRC2
  • KRC4
  • kuka
  • new
  • NONE
  • notify
  • PATH
  • PGNO_GET
  • profinet
  • PTP_DAT
  • PTP_PARAMS
  • P_ACTIVE
  • P_FREE
  • P_RESET
  • P_STOP
  • Quit
  • Roboter
  • RobotStudio
  • Schweißen
  • Sps
  • Sync
  • T1
  • t2
  • tcp
  • Tool
  • VALUE
  • VAR
  • vel_cp
  • vel_ptp
  • Yaskawa
AD
Your browser does not support videos autonome mobile Roboter von KUKA
Einloggen für weniger Werbung

gesponserte Artikel

  • Gebrauchtroboter kaufen - Was ist zu beachten. Die Checkliste zum kauf von gebrauchten Robotern

    August 11, 2019 at 7:02 PM
  • Was macht ein Roboterprogrammierer genau und was verdient er?

    August 21, 2019 at 8:17 AM
  • Vernetzen, referenzieren, kollaborieren: Das B2B Portal für die Produktionsautomatisierung

    June 2, 2021 at 11:29 AM

Job Offer

  • Sie wollen Ihr Stellenangebot im Roboterforum schalten? Ab 149€

    Werner Hampel June 17, 2021 at 9:52 AM
  • Werde Roboterprogrammierer bei ROBTEC GmbH in Mainburg / Bayern

    Werner Hampel April 5, 2023 at 7:13 PM
Werbung auf Roboterseite
Roboter programmieren lernen
Banner Robotik

Tags

  • INITIALIZED

Wieviele Mitglieder waren heute eingeloggt?

Logge Dich ein, um hier zu lesen wer in den letzten 24h Online war und um weniger Werbung zu sehen.

  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™ 6.0.22
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on Google Play
Roboterforum.de - die Industrieroboter und Cobot Community in the WSC-Connect App on the App Store
Download