← Torna alla Home

Portale Operatore CNC

Sottoprogrammi • Esempio base

Verifica necessaria prima dell’uso: nel codice O8901 le cifre vengono scritte nelle variabili #506–#511, mentre l’esempio del programma principale richiama #537–#542. La corrispondenza deve essere controllata sulla versione reale presente in macchina prima di eseguire il programma.

Sottoprogramma O8901

		O8901; (Numero sottoprogramma)
		#503=#3; (Scrive nella #500 il numero di cifre di cui è composto il numero)
		#505=#504; (Copia il numero di cifre da scomporre)
		IF [[#505EQ#0]OR[#505EQ0]] THEN#3000=1 (COMPILA LA #504); (Verifica se la #505 è vuota)
		IF [#503LT1] THEN #3000=2 (NUMERO CIFRE TROPPO BASSO); (Verifica il limite delle cifre)
		IF [#503GT6] THEN #3000=3 (NUMERO CIFRE TROPPO ALTO); (Verifica il limite delle cifre)
		IF [#503GE6] THEN #506=FIX[#505/100000]; (Scompone le centinaia di migliaia)
		IF [#503GE5] THEN #507=FIX[[#505MOD100000]/10000]; (Scompone le decine di migliaia)
		IF [#503GE4] THEN #508=FIX[[#505MOD10000]/1000]; (Scompone le migliaia)
		IF [#503GE3] THEN #509=FIX[[#505MOD1000]/100]; (Scompone le centinaia)
		IF [#503GE2] THEN #510=FIX[[#505MOD100]/10]; (Scompone le decine)
		IF [#503GE1] THEN #511=#505MOD10; (Scompone le unità)
		IF [#503GE6] THEN #506=#506+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		IF [#503GE6] THEN #507=#507+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		IF [#503GE6] THEN #508=#508+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		IF [#503GE6] THEN #509=#509+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		IF [#503GE6] THEN #510=#510+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		IF [#503GE6] THEN #511=#511+10000; (Aggiunge diecimila per il sottoprogramma di incisione)
		#504=#504+1; (Aggiunge +1 al serial number)
		M99; (Ritorna al programma principale)
        

Programma principale di richiamo

		T1M6; (Richiamo utensile)
		G0G90G54S7000M3; (Richiamo origine + rotazione mandrino in senso orario)
		G0X_Y_C_F_; (posizionamento della macchina in X, Y, e C. Avanzamento di lavoro)
		G43H3D3Z30M8; (Posizionamento in Z e accensione acqua)
		G65P8901C_; (Richiamo sottoprogramma)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-17.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#537; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-18.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#538; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-19.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#539; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-20.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#540; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-21.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#541; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G52X-22.5Y0Z0; (Imposta sistema di coordinate di lavoro)
		M98Q#542; (Richiamo sottoprogramma della cifra)
		G52X0Y0Z0; (Imposta sistema di coordinate di lavoro)
		G53Z0; (Svincolo)
        

Dati da verificare prima del richiamo

Note operative