Advertisement
Helmi

macro

Jan 4th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.60 KB | None | 0 0
  1. ;***************************************************************************************
  2. ;SOROTEC
  3. ;Withig 12
  4. ;77836 Rheinm�nster
  5. ;Germany
  6. ;***************************************************************************************
  7. ;* MACRO CNC V1.0e Ohne Auto-WZW
  8. ;***************************************************************************************
  9.  
  10. ;***************************************************************************************
  11. ;DOKU
  12. ;***************************************************************************************
  13. ;Versionshistorie
  14. ;V1.0e : Bei Wechslertyp 0 und 2 wird jetzt vor Z-Nullpunktermittlung nciht mehr gepr�ft ob Werkezug vermessen
  15.  
  16. ;Verwendete Variablen
  17. ; #3500 INIT
  18. ; #3501 Merker ( Wurde Werkzeug bereits Vermessen? 1=JA)
  19. ; #3502 Merker Wird nur f�r eine Berechnung ben�tigt
  20. ; #3503 Merker Ja / Nein in Dialogabfragen
  21. ; #4500 FREI
  22. ; #4501 Aktuelle Werkzeugl�nge
  23. ; #4502 Alte Werkzeugl�nge
  24. ; #4503 Maximale Werkzeugl�nge (WZL-Vermessung)
  25. ; #4504 Antastgeschwindigkeit zum Taster "suchen" (mm/min) (WZL-Vermessung)
  26. ; #4505 Tastgeschwindigkeit zum Messen(mm/min) (WZL-Vermessung)
  27. ; #4506 ;Sicherheitsh�he als Maschinenkoordinate (WZL-Vermessung)
  28. ; #4507 ;Positionsangabe der X Achse (WZL-Vermessung)
  29. ; #4508 ;Positionsangabe der Y Achse (WZL-Vermessung)
  30. ; #4509 Abstand Spindelnase zu L�ngensensor von Z0 aus (WZL-Vermessung)
  31. ; #4510 Tasterh�he (ZNP-Vermessung)
  32. ; #4511 Freifahrh�he (ZNP-Vermessung)
  33. ; #4512 Antastgeschwindigkeit zum Taster "suchen" (ZNP-Vermessung)
  34. ; #4513 Tastgeschwindigkeit zum Messen (ZNP-Vermessung)
  35. ; #4514 Zwischenspeicher f�r X Pos
  36. ; #4515 Zwischenspeicher f�r Y Pos
  37. ; #4516 Zwischenspeicher f�r Z Pos
  38. ; #4517 Merker (Es wurde kein Werkzeug ausgew�hlt)
  39. ; #4518 Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
  40. ; #4519 Was tun nach Werkzeugvermessung: 0= vordefinierten Punkt anfahren 1= Werkst�cknullpunkt fahren 2= Werkzeugwechselpos anfahren 3= Maschinennullpunkt anfahren 4= Stehen bleiben
  41. ; #4524 Position X nach L�ngenmessung
  42. ; #4525 Position Y nach L�ngenmessung
  43. ; #4526 Position Z nach L�ngenmessung
  44. ; #4520 Werkzeugwechseltyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
  45. ; #4521 (TYP 0) Werkzeugwechselpos X
  46. ; #4522 (TYP 0) Werkzeugwechselpos Y
  47. ; #4523 (TYP 0) Werkzeugwechselpos Z
  48. ; #4524 Position X nach L�ngenmessung
  49. ; #4525 Position Y nach L�ngenmessung
  50. ; #4526 Position Z nach L�ngenmessung
  51. ; #4527 Abstand Taster zum Spindelkopf bei Z0 G53 negativer Wert
  52.  
  53.  
  54. ;***************************************************************************************
  55. IF [#3500 == 0] then ; INIT
  56. #3500 = 1
  57. IF [#4504 == 0] THEN
  58. #4504 =50 ;Antastgeschwindigkeit zum Taster "suchen" (mm/min)
  59. ENDIF
  60. IF [#4505 == 0] THEN
  61. #4505 =10 ;Tastgeschwindigkeit zum Messen(mm/min)
  62. ENDIF
  63. IF [#4511 == 0] THEN
  64. #4511 =10 ;Freifahrh�he
  65. ENDIF
  66. IF [#4512 == 0] THEN
  67. #4512 = 50 ;Antastgeschwindigkeit zum Taster "suchen"
  68. ENDIF
  69. IF [#4513 == 0] THEN
  70. #4513 =20 ;Tastgeschwindigkeit zum Messen
  71. ENDIF
  72. ENDIF
  73. ;***************************************************************************************
  74. ;---------------------------------------------------------------------------------------
  75. Sub user_1 ;Z-Nullpunktermittlung
  76. ;---------------------------------------------------------------------------------------
  77. IF [[#3501 == 1] or [#4520 < 2]]then ;( Wurde Werkzeug bereits Vermessen? 1=JA oder ist l�ngensensor inaktiv geschaltet)
  78. #4518 = 0 ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt) Sicherheitshalber r�cksetzen
  79. DlgMsg "Soll Z-Nullpunkt ermittelt werden?"
  80. if [#5398 == 1] ;OK
  81. M5 ; Spindel ausschalten
  82. msg "Taster wird angefahren"
  83. G38.2 G91 z-50 F[#4512] ; Schnelles anfahren auf Taster bis Schaltsignal�nderung
  84. IF [#5067 == 1] ; Wenn Sensor gefunden wurde
  85. G38.2 G91 z20 F[#4513] ; Langsam von Taster runterfahren zur exakten Z-Ermittlung
  86. G90
  87. IF [#5067 == 1] ; Wenn Sensor gefunden wurde
  88. G0 Z#5063 ; Schaltpunkt anfahren
  89. G92 Z[#4510] ; Z-Nullpunkt �bernehmen
  90. G0 Z[#4510 + 5] ; Taster 2mm Freifahren
  91. msg"Z-Nullpunktermittlung fertig"
  92. ELSE
  93. G90
  94. errmsg "FEHLER: Sensor hat nicht geschaltet"
  95.  
  96. ENDIF
  97. ELSE ;CANCEL
  98. G90
  99. DlgMsg "WARNUNG: Kein Sensor gefunden! Erneut Versuchen?"
  100. if [#5398 == 1] ;OK
  101. GoSub user_1
  102. ELSE
  103. errmsg "Messung wurde abgebrochen!"
  104. ENDIF
  105. ENDIF
  106. ENDIF
  107. ELSE
  108. DlgMsg "WARNUNG: Werkzeug wurde noch nicht vermessen!"
  109. if [#5398 == 1] ;OK
  110. #4514 = #5071 ; Zwischenspeicher f�r X Pos
  111. #4515 = #5072 ; Zwischenspeicher f�r Y Pos
  112. #4516 = #5073 ; Zwischenspeicher f�r Z Pos
  113. #4518 = 1 ; Merker setzen das zur�ckpositioniert wird
  114. GoSub user_2
  115. ENDIF
  116. ENDIF
  117. Endsub
  118. ;***************************************************************************************
  119. Sub user_2 ;Werkzeugl�ngenmessung
  120. ;---------------------------------------------------------------------------------------
  121. #5016 = [#5011] ; Neue Werkzeugnummer
  122. #4527 = [#4509] ; Abstand Taster zum Spindelkopf bei Z0 (G53)(negativer Wert)
  123. #5017 = [#4503] ; Maximale Werkzeugl�nge
  124. #5019 = [#4507] ; Werkzeugl�ngensensorposition X-Achse
  125. #5020 = [#4508] ; Werkzeugl�ngensensorposition Y-Achse
  126. #5021 = 0 ; Gemessene Werkzeugl�nge wird hier eingetragen
  127. msg "Werkzeug wird vermessen"
  128. dlgmsg "Soll Werkzeug Vermessen werden?" "Werkzeugl�nge ca:" 5017
  129. if [#5398 == 1] ;OK
  130. IF [[#5017] < 0] THEN ; Testen ob Werkzeugl�nge negativ
  131. DlgMsg "!!! WARNUNG: Werkzeugl�nge darf nicht negativ sein !!!"
  132. if [#5398 == 1] ;OK
  133. GoSub user_2
  134. ELSE
  135. GoSub user_2
  136. ENDIF
  137. ENDIF
  138. IF [[#4527 + #5017 + 10] > [#4506]] THEN ; Testen ob errechneter Wert h�her wie sicherheitsh�he ist
  139. DlgMsg "!!! WARNUNG: Werkzeug zu lang !!!"
  140. if [#5398 == 1] ;OK
  141. GoSub user_2
  142. ELSE
  143. GoSub user_2
  144. ENDIF
  145. ENDIF
  146. M5
  147. G53 G0 z[#4506] ; Sicherheitsh�he
  148. G53 G0 x[#5019] y[#5020]
  149. G53 G0 z[#4527 + #5017 + 10]
  150. G53 G38.2 Z[#4527] F[#4504]
  151. IF [#5067 == 1] ; Wenn Sensor gefunden wurde
  152. G91 G38.2 Z20 F[#4505]
  153. G90
  154. IF [#5067 == 1] ; Wenn Sensor gefunden wurde, wird Tastpunkt in #5053 gespeichert
  155. G00 g53 z#4506
  156. #5021 = [#5053 - #4527] ; Berechnung Werkzeugl�nge = Tastpunkt - chuck height
  157. msg "Werkzeugl�nge = " #5021
  158. IF [#3501 == 1] ; (Wurde Werkzeug bereits Vermessen? 1=JA)
  159. #4502 = [#4501] ; Alte Werkzeugl�nge speichern
  160. #4501 = [#5021] ; Aktuelle Werkzeugl�nge eintragen
  161. #3502 = [#4501 - #4502] ; Werkzeugl�ngenunterschied ausrechnen
  162. G92 Z[#5003 - #3502] ; Z-Nullpunkt ermitteln
  163. ;Werkzeuglaenge und Werkzeugdurchmesser in Tabelle speichern
  164. ;#[5400 + #5016] = [#5053 - #4527] ;Berechnete Werkzeugl�nge in Tabelle speichern
  165. ;#[5500 + #5016] = #5018 ;Werkzeugdurchmesser in Tabelle speichern
  166. ;msg "Gemessene Werkzeuglaenge="#[5400 + #5016]" gespeichert in Werkzeugnr. "#5016
  167.  
  168. ELSE
  169. #4501 = [#5021] ; Aktuelle Werkzeugl�nge eintragen
  170. ENDIF
  171. IF [#4518 == 1] then ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
  172. G0 G53 Z#4506 ; Repositionieren
  173. G0 G53 X#4514 Y#4515 ; Repositionieren
  174. #4518 = 0 ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
  175. #3501 = 1 ; Merker (Wurde Werkzeug bereits Vermessen? 1=JA)
  176.  
  177. ELSE
  178. IF [#4519 == 0] then ; Was tun nach Werkzeugvermessung 0= vordefinierten Punkt anfahren
  179. G0 G53 Z#4506 ; Sicher Z
  180. G0 G53 X#4524 Y#4525 ; Vordefinierten Punkt anfahren
  181. ENDIF
  182.  
  183. IF [#4519 == 1] then ; Was tun nach Werkzeugvermessung 1= Werkst�cknullpunkt fahren
  184. G0 G53 Z#4506 ; Sicher Z
  185. G0 X0 Y0 ; Werkst�cknullpunkt anfahren
  186. ENDIF
  187.  
  188. IF [#4519 == 2] then ; Was tun nach Werkzeugvermessung 2= Werkzeugwechselpos anfahren
  189. G0 G53 Z#4523 ; Werkzeugwechselpunkt anfahren
  190. G0 G53 X#4521 Y#4522; Werkzeugwechselpunkt anfahren
  191. ENDIF
  192.  
  193. IF [#4519 == 3] then ; Was tun nach Werkzeugvermessung 3= Maschinennullpunkt anfahren
  194. G0 G53 Z#4506 ;
  195. G0 G53 X0 Y0 ; Maschinennullpunkt anfahren
  196. ENDIF
  197.  
  198. IF [#4519 == 4] then ; Was tun nach Werkzeugvermessung 4= Stehen bleiben
  199.  
  200. ENDIF
  201.  
  202. Endif
  203. #4518 = 0 ; Merker (Achse zur�ckfahren auf Z Vermessungspunkt)
  204. #3501 = 1 ; Merker (Wurde Werkzeug bereits Vermessen? 1=JA)
  205. ELSE
  206. errmsg "FEHLER: Kein Sensor gefunden - RESET BET�TIGEN"
  207. ENDIF
  208. ELSE
  209. errmsg "FEHLER: Kein Sensor gefunden - Messung abgebrochen"
  210. ENDIF
  211. ENDIF
  212.  
  213. Endsub
  214. ;***************************************************************************************
  215. Sub user_3;
  216. ;---------------------------------------------------------------------------------------
  217. msg "sub user_3"
  218. Endsub
  219. ;***************************************************************************************
  220. Sub user_4
  221. ;---------------------------------------------------------------------------------------
  222. msg "sub user_4"
  223. Endsub
  224. ;***************************************************************************************
  225. Sub user_5
  226. ;---------------------------------------------------------------------------------------
  227. msg "sub user_5"
  228. Endsub
  229. ;***************************************************************************************
  230. Sub user_6
  231. ;---------------------------------------------------------------------------------------
  232. msg "sub user_6"
  233. Endsub
  234. ;***************************************************************************************
  235. Sub user_7
  236. ;---------------------------------------------------------------------------------------
  237. msg "sub user_7"
  238. Endsub
  239. ;***************************************************************************************
  240. Sub user_8
  241. ;---------------------------------------------------------------------------------------
  242. Msg "sub user_8"
  243. Endsub
  244. ;***************************************************************************************
  245. Sub user_9
  246. ;---------------------------------------------------------------------------------------
  247. Msg "sub user_8"
  248. Endsub
  249.  
  250. ;***************************************************************************************
  251. Sub user_10
  252. ;---------------------------------------------------------------------------------------
  253. DlgMsg "Soll Maschinennullpunkt angefahren werden?"
  254. if [#5398 == 1] ;OK
  255. G53 G0 Z0
  256. G53 X0 Y0
  257. ENDIF
  258. Endsub
  259. ;***************************************************************************************
  260. Sub user_11 ; Nicht mehr vorhanden)
  261. ;---------------------------------------------------------------------------------------
  262. Msg "sub user_11"
  263. Endsub
  264. ;***************************************************************************************
  265. Sub home_z ;Homing per axis
  266. ;---------------------------------------------------------------------------------------
  267. msg "Referenziere Achse Z"
  268. M80
  269. g4p0.2
  270. home z
  271. Endsub
  272. ;***************************************************************************************
  273. Sub home_x
  274. msg "Referenziere Achse X"
  275. M80
  276. g4p0.2
  277. home x
  278. ;homeTandem X
  279. Endsub
  280. ;***************************************************************************************
  281. Sub home_y
  282. msg "Referenziere Achse Y"
  283. M80
  284. g4p0.2
  285. home y
  286. ;homeTandem Y
  287. Endsub
  288. ;***************************************************************************************
  289. Sub home_a
  290. msg "Referenziere Achse A"
  291. M80
  292. g4p0.2
  293. home a
  294. Endsub
  295. ;***************************************************************************************
  296. Sub home_b
  297. msg "Referenziere Achse B"
  298. M80
  299. g4p0.2
  300. home b
  301. Endsub
  302. ;***************************************************************************************
  303. Sub home_c
  304. msg "Referenziere Achse C"
  305. M80
  306. g4p0.2
  307. home c
  308. Endsub
  309. ;***************************************************************************************
  310. ;Home all axes
  311. sub home_all
  312. gosub home_z
  313. gosub home_y
  314. gosub home_x
  315. gosub home_a
  316. gosub home_b
  317. gosub home_c
  318. G53 G01 X0 Y0 Z0 F1000; Achse X, Y und Z auf 0 Fahren
  319. msg"Referenzierung fertig"
  320. ;homeIsEstop on ;diese Zeile Einkommentieren wenn Refschalter = Endschalter
  321. m30
  322. endsub
  323.  
  324. ;***************************************************************************************
  325. Sub zero_set_rotation
  326. ;---------------------------------------------------------------------------------------
  327. msg "Ersten Punkt antasten und mit STRG + G fortfahren"
  328. m0
  329. #5020 = #5071 ;x1
  330. #5021 = #5072 ;y1
  331. msg "Zweiten Punkt antasten und mit STRG + G fortfahren"
  332. m0
  333. #5022 = #5071 ;x2
  334. #5023 = #5072 ;y2
  335. #5024 = ATAN[#5023 - #5021]/[#5022 - #5020]
  336. if [#5024 > 45]
  337. #5024 = [#5024 - 90] ;Punkte in Y Achse
  338. endif
  339. g68 R#5024
  340. msg "Koordinatensystem mit G68 R"#5024" gedreht"
  341. msg " Bitte STRG + G dr�cken zum abschliessen"
  342. Endsub
  343.  
  344. ;***************************************************************************************
  345. sub change_tool
  346. ;---------------------------------------------------------------------------------------
  347. #5015 = 0 ; Merker: Wurde werkzeug erfolgreich gewechselt 1=Ja
  348. M5
  349. M9
  350. ;---------------------------------------------------------------------------------------
  351. ; 0 = Wechsel ignorieren
  352. ;---------------------------------------------------------------------------------------
  353. IF [[#4520] == 0] ; Werkzeugwechslertyp 0= Wechsel ignorieren 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
  354. #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
  355. ENDIF
  356.  
  357. ;---------------------------------------------------------------------------------------
  358. ; 1 = Nur WPos Anfahren
  359. ;---------------------------------------------------------------------------------------
  360. IF [[#4520] == 1] ; Werkzeugwechslertyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
  361. #3503 = 1 ; Werkzeugnummer bereits eingelegt 1=Ja
  362. IF [[#5011] == [#5008]] THEN
  363. Dlgmsg "Werkzeug bereits eingelegt. Trotzdem wechseln?"
  364. if [#5398 == 1] ;OK
  365. #3503 = 1
  366. ELSE
  367. #3503 = 0
  368. ENDIF
  369. ENDIF
  370.  
  371. IF [#3503 == 1] THEN
  372. G53 G0 Z[#4523] ; Sicherheitsh�he
  373. G53 G0 X[#4521] Y[#4522] ; Werkzeugwechselpos X Y
  374. Dlgmsg "Bitte Werkzeug einwechseln" "Alte Werkzeugnr.:" 5008" Neue Werkzeugnr.:" 5011
  375. if [#5398 == 1] ;OK
  376. IF [#5011 > 99] THEN
  377. Dlgmsg "Werkzeugnr Ung�ltig: Bitte Werkzeugnummer 1..99 Ausw�hlen"
  378. if [#5398 == 1] ;OK
  379. gosub change_tool
  380. ELSE
  381. errmsg"Werkzeugwechsel abgebrochen"
  382. ENDIF
  383.  
  384. ELSE
  385. #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
  386. ENDIF
  387. ELSE
  388. errmsg"Werkzeugwechsel abgebrochen"
  389. ENDIF
  390.  
  391. ENDIF
  392. ENDIF
  393.  
  394. ;---------------------------------------------------------------------------------------
  395. ; 2= WPos anfahren + Vermessen
  396. ;---------------------------------------------------------------------------------------
  397.  
  398. IF [[#4520] == 2] ; Werkzeugwechslertyp 0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
  399. #3503 = 1 ; Werkzeugnummer bereits eingelegt 1=Ja
  400. IF [[#5011] == [#5008]] THEN
  401. Dlgmsg "Werkzeug bereits eingelegt. Trotzdem wechseln?"
  402. if [#5398 == 1] ;OK
  403. #3503 = 1
  404. ELSE
  405. #3503 = 0
  406. ENDIF
  407. ENDIF
  408.  
  409. IF [#3503 == 1] THEN
  410. G53 G0 Z[#4523] ; Sicherheitsh�he
  411. G53 G0 X[#4521] Y[#4522] ; Werkzeugwechselpos X Y
  412. Dlgmsg "Bitte Werkzeug einwechseln" "Alte Werkzeugnr.:" 5008" Neue Werkzeugnr.:" 5011
  413. if [#5398 == 1] ;OK
  414. IF [#5011 > 99] THEN
  415. Dlgmsg "Werkzeugnr Ung�ltig: Bitte Werkzeugnummer 1..99 Ausw�hlen"
  416. if [#5398 == 1] ;OK
  417. gosub change_tool
  418. ELSE
  419. gosub change_tool
  420. ENDIF
  421.  
  422. ELSE
  423. #5015 = 1; Wurde werkzeug erfolgreich gewechselt 1=Ja
  424. gosub user_2
  425. ENDIF
  426. ELSE
  427. errmsg"Werkzeugwechsel abgebrochen"
  428. ENDIF
  429.  
  430. ENDIF
  431. ENDIF
  432. ;---------------------------------------------------------------------------------------
  433.  
  434. IF [[#5015] == 1] THEN
  435. msg "Werkzeugnr.: " #5008" mit Werkzeugnr.: " #5011 " gewechselt"
  436. m6t[#5011]
  437. #5015 = 0; Wurde werkzeug erfolgreich gewechselt 1=Ja
  438. ENDIF
  439. ;G01
  440. endsub
  441. ;***************************************************************************************
  442. sub config
  443. ;---------------------------------------------------------------------------------------
  444. GoSub wzwp
  445. GoSub znpp
  446. GoSub wlmp
  447. endsub
  448.  
  449. ;***************************************************************************************
  450. sub WZWP
  451. ;---------------------------------------------------------------------------------------
  452. ;0= Mache garnix 1 = Nur WPos Anfahren 2= WPos anfahren + Vermessen
  453. Dlgmsg "Bitte Werkzeugwechslertyp eingeben" "TYP" 4520
  454. if [#5398 == 1] ;OK
  455. IF [#4520 > 0 ] THEN
  456. Dlgmsg "Bitte Werkzeugwechselposition eingeben" "Position X-Achse" 4521 "Position Y-Achse" 4522 "Position Z-Achse" 4523
  457.  
  458. ENDIF
  459.  
  460. ENDIF
  461. endsub
  462. ;***************************************************************************************
  463. sub ZNPP
  464. ;---------------------------------------------------------------------------------------
  465. Dlgmsg "Bitte Z-Nullpunktsensordaten eingeben" "H�he Sensor" 4510 "Anfahrvorschub:" 4512 "Tastvorschub:" 4513
  466.  
  467. endsub
  468.  
  469. ;***************************************************************************************
  470. sub WLMP
  471. ;---------------------------------------------------------------------------------------
  472. Dlgmsg "Bitte Werkzeugl�ngensensordaten eingeben" "Position X-Achse" 4507 "Position Y-Achse" 4508 "Sicherheitsh�he Z" 4506 "SP. ohne Werkzeug" 4509 "Max. Werkzeugl�nge" 4503 "Anfahrvorschub:" 4504 "Tastvorschub:" 4505
  473. Dlgmsg "Position nach Messung anfahren" "Funktion:" 4519 "Position X-Achse" 4524 "Position Y-Achse" 4525
  474.  
  475. ;#4519 Was tun nach Werkzeugvermessung:
  476. ;0= vordefinierten Punkt anfahren
  477. ;1= Werkst�cknullpunkt fahren
  478. ;2= Werkzeugwechselpos anfahren
  479. ;3= Maschinennullpunkt anfahren
  480. ;4= Stehen bleiben
  481. ;#4524 Position X nach L�ngenmessung
  482. ;#4525 Position Y nach L�ngenmessung
  483. ;#4526 Position Z nach L�ngenmessung
  484.  
  485.  
  486. endsub
  487. ;***************************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement