8 lut 2021

Wierszowanie pogłębień stożkowych

  Trochę minęło od ostatniego wpisu...

złożyło się na to wiele rzeczy: sprawy prywatne, zawodowe, inne projekty, "męczenie talentu", oraz... cóż, wstyd się przyznać, ale dość długo nie mogłem znaleźć błędu w listingu zaprezentowanym poniżej.
    Przechodząc do konkretów, jest to uniwersalny podprogram/"cykl" służący do wykonywania pogłębień stożkowych o dowolnym kącie, zarówno z góry do dołu, jak i z dołu do góry.

0  BEGIN PGM POGLEBIENIE-STOZKOWE MM 
1  ;Q200 - WYSOKOSC BEZPIECZNA     ;Q202 - GLEBOKOSC DOSUWU
2  ;Q203 - WSPOLRZEDNE POWIERZCHNI ;Q204 - 2-GA BEZPIECZNA
3  ;Q206 - POSUW ZAGLEBIANIA       ;Q207 - POSUW ROBOCZY
4  ;Q222 - SREDNICA MAKSYMALNA     ;Q223 - SREDNICA MINIMALNA
5  ;Q351 - KIERUNEK FREZOWANIA     ;Q469 - KAT ROZWARCIA
6  FN 18: SYSREAD QL20 = ID200 NR1 IDX3 ; KOREKCJA PROMIENIA Z UWZGLEDNIENIEM DR Z TABLICY NARZEDZI I TOOL CALL
7  FN 18: SYSREAD QL21 = ID270 NR1 IDX1 ; AKTUALNA POZYCJA X
8  FN 18: SYSREAD QL22 = ID270 NR1 IDX2 ; AKTUALNA POZYCJA Y
9  FN 9: IF +Q351 EQU +1 GOTO LBL 10
10 FN 9: IF +Q351 EQU +0 GOTO LBL 10
11 FN 9: IF +Q351 EQU -1 GOTO LBL 10
12 FN 9: IF +0 EQU +0 GOTO LBL 4
13 LBL 10
14 FN 9: IF +Q200 EQU +0 GOTO LBL 4
15 FN 12: IF +Q200 LT +0 GOTO LBL 5
16 FN 9: IF +Q202 EQU +0 GOTO LBL 4
17 FN 12: IF +Q202 LT +0 GOTO LBL 5
18 FN 9: IF +Q204 EQU +0 GOTO LBL 4
19 FN 12: IF +Q204 LT +0 GOTO LBL 5
20 FN 9: IF +Q206 EQU +0 GOTO LBL 4
21 FN 12: IF +Q206 LT +0 GOTO LBL 5
22 FN 9: IF +Q207 EQU +0 GOTO LBL 4
23 FN 12: IF +Q207 LT +0 GOTO LBL 5
24 FN 9: IF +Q222 EQU +0 GOTO LBL 4
25 FN 12: IF +Q222 LT +0 GOTO LBL 5
26 FN 9: IF +Q223 EQU +0 GOTO LBL 4
27 FN 12: IF +Q223 LT +0 GOTO LBL 5
28 FN 9: IF +Q222 EQU +Q223 GOTO LBL 6
29 FN 12: IF +Q222 LT +Q223 GOTO LBL 6
30 FN 9: IF +Q469 EQU +0 GOTO LBL 4
31 FN 12: IF +Q469 LT +0 GOTO LBL 5
32 FN 11: IF +Q469 GT +179 GOTO LBL 4
33 QL1 = Q203 + Q200 ;BEZPIECZNA
34 QL2 = Q203 ;POWIERZCHNIA
35 QL3 = Q222 / 2 ;R MAX
36 QL4 = Q223 / 2 ;R MIN
37 QL5 = Q469 / 2 ;KAT
38 QL6 = Q202 * TAN QL5 ;DELTA R
39 QL7 = QL4 - 0.2
40 FN 11: IF +QL20 GT +QL7 GOTO LBL 7
41 QL8 = QL7 - QL20
42 QL9 = Q203 + Q204 ;2-GA BEZPIECZNA
43 QL13 = QL2 - ( QL3 - QL4 ) * TAN ( 90 - QL5 )
44 L  Z+QL1 R0 FMAX
45 FN 9: IF +Q351 EQU -1 GOTO LBL 2
46 LBL 1 ;Z GORY DO DOLU
47 FN 9: IF +QL3 EQU +QL4 GOTO LBL 3
48 QL2 = QL2 - Q202
49 QL3 = QL3 - QL6
50 QL10 = QL3 - QL8
51 QL11 = QL3 + QL20
52 QL12 = QL11 / 2
53 L  X+QL21  Y+QL22 R0 FMAX
54 L  Z+QL2 R0 FQ206
55 L IX-QL20 RL FQ207
56 CR IX+QL11 IY+0 R+QL12 DR+
57 CR IX-QL3 IY+QL3 R+QL3 DR+
58 CR IX-QL3 IY-QL3 R+QL3 DR+
59 CR IX+QL3 IY-QL3 R+QL3 DR+
60 CR IX+QL3 IY+QL3 R+QL3 DR+
61 CR IX-QL11 IY+0 R+QL12 DR+
62 L  X+QL21  Y+QL22 R0 FMAX
63 FN 11: IF +QL3 GT +QL4 GOTO LBL 1
64 FN 9: IF +0 EQU +0 GOTO LBL 3
65 LBL 2 ;Z DOLU DO GORY
66 FN 9: IF +QL4 EQU +QL3 GOTO LBL 3
67 QL10 = QL4 - QL8
68 QL11 = QL4 + QL20
69 QL12 = QL11 / 2
70 L  X+QL21  Y+QL22 R0 FMAX
71 L  Z+QL13 R0 FQ206
72 L IX-QL20 RL FQ207
73 CR IX+QL11 IY+0 R+QL12 DR+
74 CR IX-QL4 IY+QL4 R+QL4 DR+
75 CR IX-QL4 IY-QL4 R+QL4 DR+
76 CR IX+QL4 IY-QL4 R+QL4 DR+
77 CR IX+QL4 IY+QL4 R+QL4 DR+
78 CR IX-QL11 IY+0 R+QL12 DR+
79 L  X+QL21  Y+QL22 R0 FMAX
80 QL13 = QL13 + Q202
81 QL4 = QL4 + QL6
82 FN 11: IF +QL3 GT +QL4 GOTO LBL 2
83 LBL 3
84 L  Z+QL9 R0 FMAX
85 FN 9: IF +0 EQU +0 GOTO LBL 8
86 LBL 4
87 FN 14: ERROR= 1011 ;BLEDNA WARTOSC
88 LBL 5
89 FN 14: ERROR= 1012 ;ZNAK LICZBY
90 LBL 6
91 FN 14: ERROR= 1036 ;Q222 MA BYC WIEKSZE OD Q223
92 LBL 7
93 FN 14: ERROR= 1003 ;NARZEDZIE ZA DUZE
94 LBL 8 ;KONIEC
95 END PGM POGLEBIENIE-STOZKOWE MM 

    Należy zwrócić uwagę na kilka kwestii, po pierwsze nie wszystkie wersje HH obsługują parametry QL (parametry lokalne w ramach danego podprogramu), są różnice w FN 18 - wywołanie to może się różnić listą parametrów formalnych, podobny problem dotyczy też FN 14. Parametry QL można zastąpić zwykłymi Q, pamiętając o konieczności sprawdzenia czy nie kolidują z zarezerwowanymi, oraz "zarezerwować" je sobie (zanotować gdzieś w widocznym miejscu), żeby nie zastosować ich do innych celów w ramach programu wywołującego tak zdefiniowany podprogram. Obłożenie zarezerwowanych Q-parametrów, oraz opis funkcji FN 14 i FN 18 należy sprawdzić w instrukcji przeznaczonej dla konkretnej wersji sterownia.
    Do wywołania powyższego podprogramu służy poniższy zestaw instrukcji:

0  Q200 = 2 ;WYSOKOSC BEZPIECZNA
1  Q202 = 0.1 ;GLEBOKOSC DOSUWU
2  Q203 = 0 ;WSPOLRZEDNE POWIERZCHNI
3  Q204 = 50 ;2-GA BEZPIECZNA
4  Q206 = 9999 ;POSUW ZAGLEBIANIA
5  Q207 = 400 ;POSUW ROBOCZY
6  Q222 = 8.5 ;SREDNICA MAKSYMALNA
7  Q223 = 5 ;SREDNICA MINIMALNA
8  Q351 = 1 ;KIERUNEK FREZOWANIA
9  Q469 = 90 ;KAT ROZWARCIA
11 CYCL DEF 12.0 PGM CALL
12 CYCL DEF 12.1 PGM TNC:\[ścieżka_do_katalogu_z_podprogramem]\POGLEBIENIE-STOZKOWE.H

    Tak zdefiniowany "cykl" można wywołać poprzez CYCL CALL lub M99.
   
    Jest jeszcze jedna rzecz do wyjaśnienia. Ktoś mógł się już zorientować, że używam zarezerwowanych parametrów, podczas gdy nieustannie przestrzegam przed ich wykorzystywaniem. Cóż, nigdy nie twierdziłem, że nie wolno... owszem można (a nawet trzeba), tak jak powyżej, zgodnie z ich przeznaczeniem, np. Q203, zarówno u mnie, jak i w każdym cyklu zdefiniowanym przez producenta oznacza współrzędne powierzchni... może się wydawać to mało istotne, ale w przyszłości pozwoli w łatwy sposób modyfikować "w locie" wcześniej zdefiniowane cykle.

2 komentarze:

  1. Ciekawy cykl na stożki,mam na dzieje że pan nadal będzie rozwijał ten blog.

    OdpowiedzUsuń
  2. Panie Jacku, że ta głowa Panu nie wybuchnie od tej wiedzy. Jestem pełen podziwu, że pomimo wieku ma Pan tak ogromną wiedzę i jeszcze chęć dzielenia się nią z innymi. Szapo ba. Ogrom, ogrom i jeszcze raz ogrom wiedzy na temat HH i pewnie nie tylko. Pozdrawiam i czekam na dalszy rozwój bloga. Sukcesów życzę.

    OdpowiedzUsuń

Do "Januszy biznesu". Wszelkie komentarze noszące znamiona reklamy (link do strony firmowej, nazwa użytkownika będąca nazwą bądź adresem firmy itp.) będą niezwłocznie usuwane.