M97, kald af internt underprogram

Styring

Fanuc
 

Forklaring

Kalder et underprogram gemt sidst i programmet efter M30. Programudførslen fortsætter i linien som er angivet med P-nummeret.
 

Programmering

M97 P_ _ _ _ L_ _

P angiver programnummeret på det kaldte underprogram.
L angiver antallet af gentagelser af underprogrammet.
 

Eksempel

Eksempel 1

N100 M97 P1000 L5

N100 Underprogrammet som starter i linien N1000 i programmet kaldes 5 gange.
 

Eksempel 2

Nedenstående emne kan med fordel programmers ved at placere hullernes positioner i et underprogram, som derefter kaldes for hver bearbejdning af hullerne.

Hovedprogrammet
O11106 (Hovedprogram med borecykler)
G00 G91 G28 Z0.
T2 M06 (12 mm NC-bor)
G90 G54 G00 X37.5 Y-12.5 F175. S1192 M03
G43 H2 Z20. M08
G81 G99 Z-6.5 R2. (G81 borecyklus)
M97 P2000 (Kald af underprogrammet startende i linie 2000)
G80 M09
G00 G91 G28 Z0
T13 M06 (8.5 mm bor)
G90 G54 G00  X37.5 Y-12.5 S1683 F300. M03
G43 H13 Z20. M08
G83 G99 Z-28. Q5. R2.  (G83 borecyklus med udspåning)
M97 P2000 (Kald af underprogrammet startende i linie 2000)
G80 M09
G00 G91 G28 Z0.
T14 M06 (10 mm gevindtap)
G90 G54 G00 X37.5 Y-12.5 F750. S500 (G84 starter spindelen, så M03 behøves ikke)
G43 H14 Z20. M08
G84 G99 Z-30. R2. (G84 gevindcyklus)
M97 P2000 (Kald af underprogrammet startende i linie 2000)
G80 M09
G00 G91 G28 Z0.
G28 Y0.
M30 (Slut på hovedprogram)
N2000 G99 (Start på underprogram)
X12.5 Y-18.5
Y-56.2
G98 X37.5 Y-62.5
G99 X87.5 R-10.
X112.5 Y-56.2
Y-18.8
G98 X87.5 Y-12.5
M99 (Slut på underprogram)
 

Bemærk

Hvis man undlader at anføre et antal gentagelser bliver underprogrammet udført én gang.
Fordelen ved M97 er, at al programkoden sendes samlet i ét program. Med M98 derimod skal hovedprogrammet og underprogrammet sendes hver for sig.
  Men pas på ved renummerering af linierne i CNC-editorer. Det er ikke alle programmer, som ændrer P-nummeret selvom underprogrammets linienumre ændres!
Se også koden M98, som kalder et eksternt underprogram.
 

Anvendelse

Hvis en del af programmet gentages flere gange kan det med fordel laves som et underprogram. Herved spares der programmeringstid og risikoen for programmeringsfejl formindskes.
Et typisk eksempel på anvendelse af underprogram er til forboring, undersænkning, boring og gevindskæring af en række huller. Hvis underprogrammet kun indeholder hullernes X- og Y-koordinater kan dette underprogram bruges ved hver af borecyklerne.