Sterowanie Sinumerik 810D.
Co prawda udało mi się to ale czy potrzebne jest tyle linijek kodu ?? i tyle zmiennych?
----------------------------------
Plik:
Sinumerik_810D_3x.gpp
----------------------------------
Kod: Zaznacz cały
@init_post
global string tool_diameter_f r_file_name tool_1 tool_2 tool_3 tool_4 tool_5 tool_6 tool_7 tool_8 tool_9 tool_10 tool_11 tool_12 tool_13 tool_14 tool_15 tool_16 tool_17 tool_18 tool_19 tool_20
global integer save_proc
global logical m_feed_flag first_rapid_move main rot_flag loop_flag cooling_flag
global numeric save_feed save_spin moov_x moov_y moov_z winkel tool_1r tool_2r tool_3r tool_4r tool_5r tool_6r tool_7r tool_8r tool_9r tool_10r tool_11r tool_12r tool_13r tool_14r tool_15r tool_16r tool_17r tool_18r tool_19r tool_20r
Kod: Zaznacz cały
@end_program
{nb,'T="'tool_1,'_',tool_1r,'"'} ;wrzucenie 1 narzędzia na koniec programu
{nb,'M6 ;wymiana narzędzia'} ;wymiana narzędzia
if tylko_kod eq true
{nb, 'M17 ;Koniec Podprogramu'}
{nb, ''}
else
{nb, 'M30 ;Koniec Programu'}
{nb, ''}
endif
Kod: Zaznacz cały
@def_tool
if tylko_kod ne true
if tool_number eq 1
tool_1 = upper(tool_user_type)
tool_1r = (tool_offset*2)
endif
if tool_number eq 2
tool_2 = upper(tool_user_type)
tool_2r = (tool_offset*2)
endif
if tool_number eq 3
tool_3 = upper(tool_user_type)
tool_3r = (tool_offset*2)
endif
if tool_number eq 4
tool_4 = upper(tool_user_type)
tool_4r = (tool_offset*2)
endif
if tool_number eq 5
tool_5 = upper(tool_user_type)
tool_5r = (tool_offset*2)
endif
if tool_number eq 6
tool_6 = upper(tool_user_type)
tool_6r = (tool_offset*2)
endif
if tool_number eq 7
tool_7 = upper(tool_user_type)
tool_7r = (tool_offset*2)
endif
if tool_number eq 8
tool_8 = upper(tool_user_type)
tool_8r = (tool_offset*2)
endif
if tool_number eq 9
tool_9 = upper(tool_user_type)
tool_9r = (tool_offset*2)
endif
if tool_number eq 10
tool_10 = upper(tool_user_type)
tool_10r = (tool_offset*2)
endif
if tool_number eq 11
tool_11 = upper(tool_user_type)
tool_11r = (tool_offset*2)
endif
if tool_number eq 12
tool_12 = upper(tool_user_type)
tool_12r = (tool_offset*2)
endif
if tool_number eq 13
tool_13 = upper(tool_user_type)
tool_13r = (tool_offset*2)
endif
if tool_number eq 14
tool_14 = upper(tool_user_type)
tool_14r = (tool_offset*2)
endif
if tool_number eq 15
tool_15 = upper(tool_user_type)
tool_15r = (tool_offset*2)
endif
if tool_number eq 16
tool_16 = upper(tool_user_type)
tool_16r = (tool_offset*2)
endif
if tool_number eq 17
tool_17 = upper(tool_user_type)
tool_17r = (tool_offset*2)
endif
if tool_number eq 18
tool_18 = upper(tool_user_type)
tool_18r = (tool_offset*2)
endif
if tool_number eq 19
tool_19 = upper(tool_user_type)
tool_19r = (tool_offset*2)
endif
if tool_number eq 20
tool_20 = upper(tool_user_type)
tool_20r = (tool_offset*2)
endif
{nb, '; - T',tool_number' '}
if tool_message eq ''
{upper(tool_user_type), '_' (tool_offset*2)}
if corner_radius ne 0
{'_R'corner_radius}
endif
else
{upper(tool_message)}
endif
endif
endp
----------------------------------
Kod: Zaznacz cały
@change_tool
if tylko_kod ne true
if !first_tool
{nb,'M9'}
cooling_flag = false
{nb,'G0 Z',tool_z_level}
endif
if tool_message ne ''
{nb,'T="'upper(tool_message)'"'}
else
{nb,'T="',upper(tool_user_type), '_'tool_diameter:integer_def_f,'"'}
endif
{nb,'M6'}
if next_tool_number eq 2 ;jeśli następne narzędzie jest drugim z kolei
{nb,'T="'tool_2,'_',tool_2r,'"'} ;to wprowadź jego nazwę i średnicę
endif
if next_tool_number eq 3
{nb,'T="'tool_3,'_',tool_3r,'"'}
endif
if next_tool_number eq 4
{nb,'T="'tool_4,'_',tool_4r,'"'}
endif
if next_tool_number eq 5
{nb,'T="'tool_5,'_',tool_5r,'"'}
endif
if next_tool_number eq 6
{nb,'T="'tool_6,'_',tool_6r,'"'}
endif
if next_tool_number eq 7
{nb,'T="'tool_7,'_',tool_7r,'"'}
endif
if next_tool_number eq 8
{nb,'T="'tool_8,'_',tool_8r,'"'}
endif
if next_tool_number eq 9
{nb,'T="'tool_9,'_',tool_9r,'"'}
endif
if next_tool_number eq 10
{nb,'T="'tool_10,'_',tool_10r,'"'}
endif
if next_tool_number eq 11
{nb,'T="'tool_11,'_',tool_11r,'"'}
endif
if next_tool_number eq 12
{nb,'T="'tool_12,'_',tool_12r,'"'}
endif
if next_tool_number eq 13
{nb,'T="'tool_13,'_',tool_13r,'"'}
endif
if next_tool_number eq 14
{nb,'T="'tool_14,'_',tool_14r,'"'}
endif
if next_tool_number eq 15
{nb,'T="'tool_15,'_',tool_15r,'"'}
endif
if next_tool_number eq 16
{nb,'T="'tool_16,'_',tool_16r,'"'}
endif
if next_tool_number eq 17
{nb,'T="'tool_17,'_',tool_17r,'"'}
endif
if next_tool_number eq 18
{nb,'T="'tool_18,'_',tool_18r,'"'}
endif
if next_tool_number eq 19
{nb,'T="'tool_19,'_',tool_19r,'"'}
endif
if next_tool_number eq 20
{nb,'T="'tool_20,'_',tool_20r,'"'}
endif
if last_tool eq true
{nb,'T="'tool_1,'_',tool_1r,'"'}
endif
save_spin = 0
if first_tool then
{nb,'G0 Z',znext}
endif
endif
endp
Efekt jest taki jak niżej:
PRZED EDYCJĄ:
Kod: Zaznacz cały
T="GLOWICA_50"
M6
...
...
...
T="WIERTŁO_6.8"
M6
...
...
...
T="GWINTOWNIK_8"
M6
...
...
...
M30
PO ZMIANIE:
Kod: Zaznacz cały
T="GLOWICA_50"
M6
T="WIERTŁO_6.8"
...
...
...
T="WIERTŁO_6.8"
M6
T="GWINTOWNIK_8"
...
...
...
T="GWINTOWNIK_8"
M6
T="GLOWICA_50"
...
...
...
T="GLOWICA_50"
M6
M30
Moje pytanie brzmi czy istnieje jakaś zmienna która określała by nazwę "Następnego narzędzia" coś jak tool_user_type która wprowadza nazwę aktualnego ??