Utiliser une variable qui sert de compteur aura l'avantage de permettre de relancer le programme en conservant le nombre de pièces déjà faites.
avec le M98 L50 , si je relance, je repart pour 50 Op10 ..
NB: Au passage, attention, les #100 et #500 sont souvent utilisés par des programmes genres mesureurs outils Renishaw ou Blim, des progs de palpeurs pièces Renishaw ou Blum, des programmes constructeurs, etc..
Vérifie dans tes tableaux lesquels sont vides, ce qui;à 95%; doit être le cas pour les #800
Exple de structure :
O1000 (** Master Programme de Prod ** )
( * Regler manuellement les valeurs de #800/#801/#802 en début de Prod **)
( ** #800 : Nombre de Pièces à Produire ** )
(- ** #801 : Compteur de Cycles : 0 en début de Prod ** )
( ************************* )
()
N100
IF[#801LE#800] GOTO 1100 (** Goto Sous-Prog Op10 **)
IF[#801LE[2*#800]] GOTO 1200 (** Goto Sous-Prog Op20 **)
GOTO 999
()
N1100
M98 P100 (** Sous-Prog Op10 **)
#801=#801+1
GOTO 100
()
N1200
M98 P200 (** Sous-Prog Op20 **)
#801=#801+1
GOTO 100
()
N999 (** Fin de Prod **)
G91G28 Z0.
G91G28 X0. Y0.
G90
M5
M9
M30
()
Avec cette structure, si je met 50 dans #800 en lancant la prod :
50 premiers cycles = Sous-Prog 100 <> Op10
50 suivants > sous-Prog 200 <> Op20
Après 100 <> Fin de Prog <> M30
A tout moment, je peux faire Reset / Relancer avec Cycle Start :
Je repars au cycle correspondant à mon compteur, y compris fin de prod