0 BEGIN PGM 9050_it MM 1 ;Questo programma combina un contatore con un 2 ;programma di scrittura. 3 ;La funzione di conteggio è realizzata con una 4 ;tabella affinché il valore corrente rimanga 5 ;salvato anche in caso di interruzione di 6 ;tensione. All'avvio del programma è necessario 7 ;inserire il valore 1 nella riga 0 e nella colonna 8 ;Q1 della tabella. Il controllo numerico legge 9 ;questo valore, lo converte in una stringa, lo 10 ;combina con un'altra stringa e incide il testo 11 ;composto sul pezzo. Successivamente il controllo 12 ;numerico confronta il numero di pezzi realizzato 13 ;con il numero definito all'inizio del programma 14 ;delle lavorazioni desiderate. Una volta raggiunto 15 ;questo numero, compare un messaggio sullo schermo 16 ;e il contatore viene resettato. Se il numero non è 17 ;stato ancora raggiunto, il controllo numerico 18 ;incrementa il contatore di uno e salva il nuovo 19 ;valore nella 20 ;tabella. 21 ;!!IMPORTANTE!! Vengono conteggiate anche le esecuzioni 22 ;del programma in modalità di prova e salvate nella 23 ;tabella! 24 ; 25 BLK FORM 0.1 Z X+0 Y+0 Z-10 26 BLK FORM 0.2 X+100 Y+100 Z+0 27 ; 28 ;Immissione delle ripetizioni desiderate del numero da 29 ;produrre Q10 = 10 30 ; 31 ;Apertura della tabella 90502_it 32 FN 26: TABOPEN 90502_it.tab 33 ; 34 ;Lettura del valore della colonna Q1 35 FN 28: TABREAD Q1 =0 /"Q1" 36 ; 37 ;Chiamata utensile per incidere 38 TOOL CALL 200 Z S9000 F300 39 ; 40 L X+20 Y+45 R0 FMAX M3 ;Preposizionamento sulla posizione di partenza del testo 41 ; 42 ;Definizione del testo da incidere 43 ;Definizione della parte di testo come stringa 44 DECLARE STRING QS2 = "Part-No." 45 ;Conversione del valore di Q1 in stringa QS1 = TOCHAR( DAT+Q1 DECIMALS0 ) 46 ;Raggruppamento delle stringhe nel testo da incidere QS3 = QS2 || QS1 47 ; 48 ;Definizione del ciclo di scrittura 49 CYCL DEF 225 INCISIONE ~ QS500= QS3 ;TESTO INCISIONE ~ Q513=+10 ;ALTEZZA CARATTERE ~ Q514=+0 ;FATTORE DISTANZA ~ Q515=+0 ;TIPO FONT ~ Q516=+0 ;DISPOSIZIONE TESTO ~ Q374=+0 ;ANGOLO DI ROTAZIONE ~ Q517=+50 ;RAGGIO CERCHIO ~ Q207=+500 ;AVANZAM. FRESATURA ~ Q201=-0.5 ;PROFONDITA ~ Q206=+150 ;AVANZ. INCREMENTO ~ Q200=+2 ;DISTANZA SICUREZZA ~ Q203=+0 ;COORD. SUPERFICIE ~ Q204=+50 ;2. DIST. SICUREZZA 50 M99 ;Chiamata ciclo 51 ; 52 ; 53 FN 0: Q2 =+Q1 ;Definizione del valore di confronto Q1 = Q1 + 1 ;Aggiornamento del contatore 54 FN 12: IF +Q2 LT +Q10 GOTO LBL 98 ;Salto se il numero non è stato ancora raggiunto 55 STOP 56 ; 57 ;Indicazione sullo schermo che il numero da produrre è stato 58 ;raggiunto 59 FN 16: F-PRINT 90501_it.a / Screen: 60 ;Reset del contatore e scrittura in tabella Q1 = 1 61 FN 27: TABWRITE 0 /"Q1" = Q1 62 ;Salto a fine programma 63 FN 9: IF +0 EQU +0 GOTO LBL 99 64 ; 65 LBL 98 66 ;Scrittura del valore corrente del contatore nella tabella 67 FN 27: TABWRITE 0 /"Q1" = Q1 68 ; 69 ;Fine programma 70 LBL 99 71 M30 72 END PGM 9050_it MM