Advertisement
Guest User

Aufgabe_10_11

a guest
Apr 15th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 5.22 KB | None | 0 0
  1. ; Aufgabe 10+11
  2. ; Lager und Dorne Zählen und Am Ende Ausgeben
  3.  
  4. ;;einfuege kopfsr60
  5.  
  6. programm Wagen10
  7.  
  8. ; Ein und Ausgänge definieren
  9. Eingang: 1 = Freigabe, 19 = Dorn, 20 = Lager
  10. Ausgang: 5 = Greifer_Auf, 6 = Greifer_Zu
  11.  
  12. ; Benötigte Punkte definieren
  13. Mk_punkt: @start, @hpos
  14. Punkt: Aufnehmen1, Aufnehmen2, Wagen, Hoch, diff_x, diff_y, diff_x2, diff_y2, Sensor_Dorn, Sensor_Lager, Sensor_Hoch
  15.  
  16. ; Aufgabe 11: zusätzliche Punkte
  17. ; Punkt: Aufnehmen3, Aufnehmen4, Aufnehmen5, Aufnehmen6
  18. ; Ansicht Zwei Paletten mit den zusätzlichen Punkten
  19. ;
  20. ; Palette 1                                 Palette 2
  21. ; ______________________________________________        _________________________________________________
  22. ; | Aufnehmen4  *       *       *       |       | Aufnehmen6    *       *       *       |
  23. ; |   *     *       *       *       |       |   *           *       *       *       |
  24. ; | Aufnehmen1  *       *     Aufnehmen3  |     | Aufnehmen2    *       *     Aufnehmen5  |
  25. ; |_____________________________________________|       |_______________________________________________|
  26.  
  27.  
  28. ; Integer definieren
  29. Ganz: Zaehler_Dorn, Zaehler_Lager
  30.  
  31. ; Hauptprogramm Beginn
  32. Anfang
  33.  
  34. ; Variablen erstmal zu Null
  35. Zaehler_Dorn = 0
  36. Zaehler_Lager = 0
  37.  
  38. ; Aufgabe 10
  39. ; Feste Abstände, sowie Hoch Punkte definieren
  40. diff_x = (75,0,0,0)
  41. diff_y = (0,75,0,0)
  42. diff_x2 = (75,0,0,0)
  43. diff_y2 = (0,75,0,0)
  44. Hoch = (0,0,90,0)
  45. Sensor_Hoch = (0,0,50,0)
  46.  
  47. ; Aufgabe 11
  48. ; Mittels 3 Punkte Triangulation
  49. ; diff_x = (Aufnehmen1 - Aufnehmen3)/3
  50. ; diff_y = (Aufnehmen1 - Aufnehmen4)/2
  51. ; diff_x2 = (Aufnehmen2 - Aufnehmen5)/3
  52. ; diff_y2 = (Aufnehmen2 - Aufnehmen6)/2
  53.  
  54. ; Geschwindigkeit und Sicherheitsposition einstellen
  55. V = 100
  56. v_ptp = 0.2
  57. @hpos = @ipos
  58. @hpos.a_3 = 182
  59. fahre nach @hpos
  60. warte 1
  61.  
  62. ; Roboter referenzieren
  63. REF_PKT(3)
  64. REF_PKT(1,2,4)
  65. warte 1
  66.  
  67. ; Zum Startpunkt fahren und Greifer öffnen
  68. fahre nach @start
  69. warte 1
  70. GRFAUF
  71.  
  72. ; Text das Start Position erreicht wurde
  73. Text_Ausgabe('Startposition erreicht')
  74.  
  75. ; Auf die Freigabe warten
  76. Freigabe_Marke:
  77.         WENN Freigabe = 1
  78.         DANN Anfang         ; Freigabe erteilt
  79.            
  80.             ; Gebe Meldung aus, dass Freigabe erteilt wurde
  81.             Text_Ausgabe('Freigabe erteilt, führe Aufnahme aus...')
  82.            
  83.             ; Aufnahme und Ablage in Wagen aus Palette 1
  84.             Palette_Aufnehmen(Aufnehmen1)
  85.  
  86.             ; Aufnahme und Ablage in wagen aus Palette 2
  87.             Palette_Aufnehmen(Aufnehmen2)
  88.  
  89.             ; Ausgabe der beförderten Lager und Dorne
  90.             Text_Ausgabe('Es wurden [',Zaehler_Dorn,'] Dorne und [',Zaehler_Lager,'] in den Waagen einsortiert.')
  91.         Ende
  92.        
  93.         SONST Anfang        ; Freigabe noch nicht erteilt
  94.    
  95.             ; Gebe Meldung aus, dass Freigabe fehlt
  96.             Text_Ausgabe('Freigabe nicht erteilt, warte...')
  97.            
  98.             ; Springe zur Freigabe Sprung Marke zurück
  99.             SPRUNG Freigabe_Marke
  100.         Ende
  101.  
  102. ; Fahre nach Beendigung wieder zurück
  103. fahre nach @start
  104. warte 1
  105.  
  106. ; Ausgabe das Programm zu Ende
  107. Ausgabe_Text('Programm wurde zu Ende bearbeitet.')
  108.    
  109. ; Hauptprogramm zu Ende
  110. Programm_Ende
  111.  
  112. ; Generisches Unterprogramm zum Aufnehmen
  113. ; Übergabe Variable: Uebergabe -> Von der Palette der Aufnahme Punkt
  114. UP Palette1_Aufnehmen(WERT Punkt: Uebergabe)
  115. GANZ: M, N
  116. Anfang
  117.  
  118.     ; Zaehler zuruecksetzen
  119.     M = 0
  120.     N = 0
  121.  
  122.     WDH 3 Mal           ; Pro Y-Achse 3 Werkstücke
  123.         WDH 4 Mal       ; Pro X-Achse 4 Werkstücke
  124.        
  125.         ; Aufnahme des Werkstücks
  126.         Uebergabe = Uebergabe + M*diff_x + N*diff_y
  127.         fahre nach Uebergabe1 + Hoch
  128.         warte 1
  129.         fahre nach Uebergabe
  130.         GRFZU
  131.         fahre nach Uebergabe + Hoch
  132.         warte 1
  133.         M = M + 1
  134.        
  135.         ; Sensor Abfrage
  136.         ; Schaue was es ist: Lager ?
  137.         fahre nach Sensor_Lager + Sensor_Hoch
  138.         warte 1
  139.         fahre nach Sensor_Lager
  140.         warte 1
  141.         WENN Lager = 1
  142.         DANN Ablage(0)
  143.         SONST Anfang
  144.             fahre nach Sensor_Lager + Sensor_Hoch
  145.             warte 1
  146.        
  147.             ; Schaue was es ist: Dorn ?
  148.             fahre nach Sensor_Dorn + Sensor_Hoch
  149.             warte 1
  150.             fahre nach Sensor_Dorn
  151.             warte 1
  152.             WENN Dorn = 1
  153.             DANN Ablage(1)
  154.             SONST fahre nach Sensor_Dorn + Sensor_Hoch
  155.         Ende
  156.        
  157.         WDH_ENDE
  158.        
  159.         M = 0
  160.         N = N + 1
  161.        
  162.     WDH_ENDE
  163. UP_Ende
  164.  
  165. ; Generisches Programm zur Ablage der Werkstuecke
  166. ; Übergabe Variable: Ablageort -> 1= Ablage Dorne, 0=Ablage Lager
  167. UP Ablage(WERT BINAER: Ablageort)
  168. Anfang
  169.  
  170.     WENN Ablageort = 0
  171.    
  172.     ; Lager ablegen
  173.     DANN Anfang
  174.        
  175.         ; Ablegen
  176.         fahre ueber Sensor_Lager + Sensor_Hoch nach Wagen + Hoch
  177.         warte 1
  178.         fahre nach Wagen
  179.         GRFAUF
  180.         fahre nach Wagen + Hoch
  181.        
  182.         ; Ausgabe einer Information
  183.         Ausgabe_Text('Werkstueck in Wagen: Lager abgelegt!')
  184.        
  185.         ; Zaehler hochzaehlen
  186.         Zaehler_Lager = Zaehler_Dorn + 1
  187.     Ende
  188.    
  189.     ; Dorne Ablegen
  190.     SONST Anfang
  191.    
  192.         ; Ablegen
  193.         fahre ueber Sensor_Dorn + Sensor_Hoch nach Wagen + Hoch
  194.         warte 1
  195.         fahre nach Wagen
  196.         GRFAUF
  197.         fahre nach Wagen + Hoch
  198.        
  199.         ; Ausgabe einer Information
  200.         Ausgabe('Werkstueck in Wagen: Dorn abgelegt!')
  201.        
  202.         ; Zaehler hochzaehlen
  203.         Zaehler_Dorn = Zaehler_Dorn + 1
  204.     Ende
  205. UP_Ende
  206.  
  207. ; Unterprogramm zur Ablage der Dorne in den Wagen_Dorn
  208. UP Ablage_Dorn
  209. Anfangg
  210.  
  211. ; Unterprogramm zum Text Aufrufen
  212. UP Text_Ausgabe(WERT TEXT: Ausgabe)
  213. Anfang
  214.     SCHREIBE PHG, CLS
  215.     WDH 10 Mal
  216.         SCHREIBE PHG, Ausgabe
  217.     WDH_ENDE
  218.     SCHREIBE PHG, CLS
  219. UP_Ende
  220.  
  221.  
  222. ; Unterprogramm Greifer Öffnen
  223. UP GRFAUF
  224. Anfang
  225.     warte 1
  226.     Greifer_Auf = 1
  227.     Greifer_Zu = 0
  228.     warte 1
  229. UP_Ende
  230.  
  231. ; Unteprogramm Greifer Schließen
  232. UP GRFZU
  233. Anfang
  234.     warte 1
  235.     Greifer_Auf = 0
  236.     Greifer_Zu = 1
  237.     warte 1
  238. UP_Ende
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement