Strona 1 z 1

podprogramy heidenhain

: 25 lis 2015, 09:55
autor: hyde
Literatura ostrzega przed uzywaniem M02 lub M30 w podprogramach. Skoro (pod)program konczy "END PGM" to czy mozna ujac to w klamry LBL, by nastepnie zakonczyc podprogram odwolaniem do takiej LBL tak, zeby wykonal natychmiastowy skok do programu glownego? Ponizej przyklad:

BEGIN PGM A
...
...
CALL PGM B
...
...
END PGM A

i podprogram:

BEGIN PGM B
...
...
CALL LBL1 <--tutaj chcialbym zakonczyc i wrocic do nast. linii programu A
...
...
LBL2
...
LBL0

LBL1
END PGM B
LBL0


czy taki zapis zadziala, czy powinienem inaczej napisac podprogram?

Z gory dziekuje za pomoc. Pozdrawiam.

: 25 lis 2015, 21:04
autor: Majster70
Zawsze starałem się, żeby podprogram kończył się w miejscu END PGM i w ten sposób wracał do programu głównego. Zresztą chyba plik programu HH musi kończyć się END PGM. Program dobrze jak się kończy M30/M02 bo wtedy masz resetowane wszystkie ustawienia np przesunięcia (Iso G54/G55), odbicia lustrzane itd. Inaczej możesz się zdziwić po wystartowaniu następnego programu.

: 30 lis 2015, 09:49
autor: sektor33
Majster pierwsze słyszę żeby M2 czy M30 resetował odbicie czy przesuniecie punktu zerowego jeśli w programie tego nie odwołał to te przesunięcia mu pozostały i jak uruchomi program jeszcze raz będą niezłe jajca.

: 30 lis 2015, 12:55
autor: Pneumokok
Nieprawda. Nie wiem dokładnie, która komenda: M30 czy END PGM, ale po skończonym programie niwelowane są wszystkie przekształcenia układu współrzędnych.

M2 M30

: 30 lis 2015, 21:14
autor: MAREK POCHRON
Czesc. Majster70 ma racje. Chodzi oto , zeby w glownym programie , wywolywane podprogramy nie zawieraly w sobie M2 M30. Bo program nie pojedzie dalej. Ja najczesciej uzywam M2 do resetowania WSZYSTKIEGO. Glownie w , przy nie dojechanych programach . Zwlaszcza jak sie cos testuje. Wazne jest tez jak Q-parametry sa przeliczane czasem pare razy. Co pozostaje w pamieci. Przy starszych sterowaniach najlepiej M2 jest odpalic w wykonaniu programu AUTO. Do skoku na dany blok w Q-parametrach sluza funkcje FN 9 10 11 12. Na miejsce co jest dany "LBL" .

: 01 gru 2015, 10:07
autor: sektor33
Faktycznie zwracam honor ;) zawsze jednak resetowałem wcześniej dlatego nie zwróciłem uwagi na to:)

: 01 gru 2015, 17:07
autor: hyde
Bardzo Panom dziekuje za zainteresowanie.
Porady wykorzystalem i moj program wyglada aktualnie tak:

BEGIN PGM lfdnr

FN0: Q6 = 0
FN0: Q7 = 0
CALL LBL 2

END PGM lfdnr


LBL2
(...)
CALL LBL4
(...)
LBL0


LBL4
(...)
LBL0

itd.


zadbalem o strukture programu tak, zeby kolejne LBL po wykonaniu wracaly w gore, az do bloku 'CALL LBL2'.

Jestem poczatkujacym programista CNC, z pewnym doswiadczeniem w programowaniu komputerow (BASIC, PASCAL, odrobina assemblera) i musze przyznac, ze ilosc dialektow oraz, nawe to, jezykow programowania dla obrabiarek nieco mnie zaskoczyla. Pozostaje sie uczyc, uczyc i jeszcze raz uczyc, jak to w zyciu.

Jeszcze raz wielkie dzieki.

Klaniam sie.


PS. prosze wybaczyc brak polskich krzaczkow - pisze ze sluzbowej, niemieckiej klawiatury.

Re: podprogramy heidenhain

: 09 paź 2024, 09:08
autor: aavil
Szukałem odpowiedzi na ten sam problem i z pomocą przyszedł manuał Heidenhaina.

W podprogramie wykonuję funkcję 9 która jest prawdą np 0 equ 0 goto lbl x

Label x (albo dowolna nazwa) jest pusty i na końcu podprogramu. W głównym programie po wywołaniu podprogramu mam linie odjazdu stołu. Bez błędu i z zieloną lampką pracy maszyny, co było problemem aby szukać rozwiązanie :lol: