beppo Inserito: 6 febbraio 2014 Segnala Share Inserito: 6 febbraio 2014 Ciao a tutti. Vorrei porvi una domanda un pò particolare. Ho una macchina con Plc S7300 315 2DP e abbinata una Scheda assi FM357-2. Questa macchina ha una tavola rotante e alcune teste che effettuano delle lavorazioni sul pezzo in tavola. Una di queste teste fa l'avanzamento con un motore brushless controllato dalla FM357-2. Ho notato che la testa attende un pò prima di cominciare l'avanzamento dopo che la tavola è in posizione, ho controllato il programma Plc convinto che fosse un ritardo dovuto al ciclo della macchina, ma guardando il Db d'interfaccia con la scheda il bit di start (CH(1).CTR.START bit 108.1) va a 1 e l'asse comincia l'avanzamento dopo circa 1 secondo, questo lo vedo perchè controllo il bit 126.3 All axes stationary che va a 0 quado l'asse si muove. Io dovrei eliminare quel ritardo, solo che non so a cosa sia dovuto. Ho dato un'occhiata al manuale della FM (848 pagine) ma non ho trovato risposta. Ho monitorato gli altri bit più significativi del DB d'interfaccia ma nessuno sembra variare durante questa attesa. Ho guardato anche il part program della testa, che sono poche righe di istuzioni, ma non ci sono tempi impostati. Qualcuno di voi mi saprebbe dire dove andare a vedere. Lo so che è una cosa un pò complicata, ma provo a chiedervelo lo stesso. Grazie mille. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 7 febbraio 2014 Segnala Share Inserita: 7 febbraio 2014 Bisogna capire intanto quale è il modo di funzionamento che hai selezionato (automatico, MDI ecc.) Inoltre bisogna verificare i dati macchina dell'asse che vuoi velocizzare, tipo le rampe. Se si tratta di part program devi controllare le condizioni di svolgimento del programma (se per esempio c'è l'istruzione G04 se non erro è un tempo di ritardo) Se trovi solamente dei G01 e G02 allora prova a controllare la finestra di posizionamento che secondo me è troppo stretta per abilitare il blocco successivo. Altro trucchetto è quello di mettere in testa del part program un bel G641 ADIS=0.5 che è il raccordo continuo a mezzo millimetro (è un esempio). pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 7 febbraio 2014 Autore Segnala Share Inserita: 7 febbraio 2014 Ciao pigroplc, grazie per la risposta. Il modo di funzionamento è automatico. Non è un problema di rampe, perchè come dicevo prima vado a controllare il bit di risposta dell'FM che mi dice asse fermo, questo va a 0 dopo quasi 1 secondo che dò il comando start. Sul part program non ci soto ritardi con G4. Non credo sia neanche problema di finestra di posizionamento, in quanto l'asse è fermo a riposo che aspetta il fine giro tavola per poter fare l'avanzamento. Visto che te ne intendi ti chiedo su che DB trovo i segnali di scambio $A_IN[1] $A_IN[2]...ecc ,sul Sinumerik so che è il DB 10 ma qui non saprei. Ancora grazie. Ciao Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 8 febbraio 2014 Segnala Share Inserita: 8 febbraio 2014 Beppo, intanto grazie per il "me ne intendo", quanto alla DB di interfaccia dovresti averla dichiarata come parametro del richiamo della FC22 esempio: CALL FC 22 // Basic functions and operating modes of FM 357-2 IN0:=30 // data block number for FM357-2 signals Se il programmatore ha rinominato la FC dovrebbe chiamarsi BFCT della famiglia FM357-2. Li trovi TUTTI i segnali di scambio con il PLC. Quanto ai segnali di scambio li dovresti trovare dal byte 509 al byte 537. Prova a postare il part program e dimmi dove ritieni che resti in attesa. Comunque se vai on line (test\start up) con la scheda puoi vedere lo svolgimento del programma in tempo reale se non è stato messo a disposizione dell' HMI in fase di sviluppo. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 9 febbraio 2014 Autore Segnala Share Inserita: 9 febbraio 2014 (modificato) Grazie. Il DB è lo stesso con cui do i comandi di start e tutto il resto......e bello che l'avevo cercata lì l'area di scambio dei vari bit, solo che non ero arrivato ai 500. Appena posso ti posto il part program.=(parte del programma) Per quanto riguarda (test\start up) provo a vedere. Sarebbe molto utile come funzione. Per ora grazie. Modificato: 9 febbraio 2014 da Giuseppe Signorella Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 14 febbraio 2014 Autore Segnala Share Inserita: 14 febbraio 2014 Rieccomi. Ho allegato il part program Dunque, IN(8) è sempre a 1, IN(1) è sempre a 0 e IN(9) è sempre a 0 Io sono arrivato alla conclusione che il ritardo di circa 7-8 decimi sia dovuto al normale svolgimento del part program. Non conosco la velocita di elaborazione della scheda, però non vedo altre spiegazioni. Tu cosa ne dici? Purtroppo dal menù Test non ho la voce start up. Questo è dentro la cartella main programs ;ST08_MAIN ;$A_IN[1] MAN_MODE active ;$A_IN[2] ;$A_IN[3] ;$A_IN[4] ;$A_IN[5] ;$A_IN[6] ;$A_IN[7] ;$A_IN[8] CNC REF OK ST08 ;$A_IN[9] Program OFF CH01 ;$A_IN[10] Program OFF CH02 ;$A_IN[11] Program OFF CH03 ;$A_IN[12] Program OFF CH04 N000 R99 = $A_DBW[0] ;Posage number in ST01! N010 IF $A_IN[8]==FALSE GOTOF REF ;Call REF program N020 IF $A_IN[9]==TRUE GOTOF END_PART ;CN in station is OFF N030 GOTOF PART_01 ;Call Part program 01 N090 GOTOF END N200 REF: ;REF program N201 ST08_REF N202 GOTOF END N300 PART_01: N310 IF $A_IN[1] == FALSE GOTOF NO_REF1 N320 ST08_REF N330 NO_REF1: N340 ST08_PART_A N350 IF $A_IN[1] == FALSE GOTOF END_PART N360 ST08_REF N370 GOTOF END_PART N900 END_PART: N910 M54 ;Part program executed N950 END: N999 M30 Questi 2 dentro la cartella Subprograms ;ST08_PART_A ;R16 Feedrate 1 ;R17 Feedrate 2 ;R18 Feedrate 3 ;R20 interasse fori ;R23 larghezza 1 ;R24 larghezza 2 ;R25 larghezza 3 ;R26 larghezza 4 ;R30 Toollength 1 ;R31 Toollength 2 ;R35 Extra corsa pezzo ;R40 TEST Counter ;R41 Safety distance fixture "Centre part to back of fixture" ;R80 Counter N001 DEF REAL STROKE_1 N002 DEF REAL STROKE_2 N003 DEF REAL ESTRK N004 DEF REAL ENDWORK N005 ESTRK = R35 N006 STROKE_1 = R23/2 + ESTRK N007 STROKE_2 = R23/2 + ESTRK N008 ENDWORK = STROKE_1 + 50 N200 T1 G54 G0 G90 Z8= STROKE_1 N210 G1 G90 Z8= -STROKE_2 -1 F=R16 N220 G1 G90 G64 Z8= STROKE_1 F=R18 N225 G0 G90 G64 Z8= ENDWORK N230 T0 G0 G500 N990 M53 N999 RET ;End Program -------------------------------------------- ;ST08_REF ;LUD definitions DEF REAL REF_POS_Z DEF REAL OFFS_Z ;G54 DEF REAL CORR_Z ;Station correction ;Const values REF_POS_Z = $AA_SOFTENDP[Z8]-0.5 ;G54 parameter OFFS_Z = R5 ;Axe correction CORR_Z = R8 ;SET tool data $TC_DP3[1,1] = R30 ;T1/D1 tool length 1 $TC_DP12[1,1] = 0 ;T1/D1 tool length 1 Verschleiss ;SET G54 $P_UIFR[1]=CTRANS(Z8, OFFS_Z+CORR_Z) ;REF program N020 T0 N030 G500 G01 G90 Z8=REF_POS_Z F5000 N100 M50 ;End Reference program N120 M52 ;Free N130 M53 ;Free N999 RET ;End sub program Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 15 febbraio 2014 Segnala Share Inserita: 15 febbraio 2014 Io non vedo alcun ritardo possibile e l'esecuzione del codice di sicuro non occupa tutto quel tempo. devi vedere nella pagina di test del programma dove si ferma. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 15 febbraio 2014 Autore Segnala Share Inserita: 15 febbraio 2014 Quindi tu dici che non sia l'esecuzione del codice la causa del ritardo, allora non saprei dove altro andare a guardare. Purtroppo come ti dicevo, sul menù Test non ho la voce Start up. Un'altra cosa che ho potuto vedere è che come dò il comando si Start da Plc la scheda mi risponde con il bit Program Running. Vabbè, mi sa che dovrò gettare la spugna..... Se per caso ti viene in mente qualcos'altro dove poter guardare fammi sapere. Grazie mille. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 15 febbraio 2014 Segnala Share Inserita: 15 febbraio 2014 Senti, io non sono abituato a gettare la spugna tanto facilmente ..... Non è possibile che tu non abbia il pannello di test della scheda. Parti dalla configurazione hardware del PLC, entra nella parametrizzazione della scheda stessa e se sei online DEVI avere la funzione. Ti ho allegato l'immagine. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 16 febbraio 2014 Autore Segnala Share Inserita: 16 febbraio 2014 Ciao pigroplc. Sul fatto di non arrendersi mi trovi daccorto, solo che il tempo non è molto, comunque visto che ho il tuo aiuto vado avanti. Ok, ho visto l'immagine. Non trovavo la voce perchè ho il menù in italiano e quindi io ho "Messa in servizio" con in senno di poi era anche facile capire che sono la stessa cosa. Scusa. Del menù Test è l'unica finestra che non ho aperto online, perchè temevo si potesse fermare la macchina. Cosa che non potevo fare. Martedì mi ricollego online ed entro sul menù. Controllo il part program ciclare e ti faccio sapere. Per ora grazie ancora. Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 18 febbraio 2014 Autore Segnala Share Inserita: 18 febbraio 2014 Eccomi qua. Dunque, sono andato online su messa in servizio. Ho gurdato il part program, solo che il collegamento MPI non è cosìveloce da farmi vedere scorrere le istruzioni in tempo reale, quindi non capisco se è fermo fermo da qualche parte oppure no. Diciamo che passo da vedere il puntatore prima di ST08_main all'istruzione N007 o N200 del sottoprogramma St08_Part a. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 19 febbraio 2014 Segnala Share Inserita: 19 febbraio 2014 Quanto dici tu riguarda in gran parte delle definizioni di variabili e calcoli che costano zero tempo. Io inizierei a verificare la gestione dei flag M53 e M54 che compaiono nel programma. La funzione M50 la vedo al termine dell'homing, quindi non ci guarderei se non per vedere come è stato fatto. Al fronte di salita della funzione M deve corrispondere il flag di tacitazione, trovi tutto nella mappatura della DB di interfaccia. La funzione M è in genere utilizzata per interrompere l'esecuzione del programma e attendere il consenso delle operazioni fatte dal PLC. Secondo me il ritardo sta li. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 20 febbraio 2014 Autore Segnala Share Inserita: 20 febbraio 2014 Ciao pigroplc. Niente da fare, la M53 si autoresetta da sola, la M54 mi da il consenso alla rotazione della tavola e subito dopo viene resetta. E comunque vanno a 1 a lavorazione ultimata. non capisco, qualcosa mi sfugge ma non so cosa. Il ritardo tra lo start all'Fm e la risposta asse in movimento è di 650-750 ms. Ho monitorato tutti i bit del Db di interfaccia usati nel programma (che non sono poi tanti) ma nessuno varia di stato quando ho la risposta asse in movimento. Altre abilitazioni non mi sembra ci siano. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 22 febbraio 2014 Segnala Share Inserita: 22 febbraio 2014 1) quando la macchina non ha lo start programma se guardi la riga di esecuzione nella famosa pagina di messa in servizio cosa leggi? Mi sembra di capire che il programma si interrompa. In tal caso sarebbe interessante lasciare che il programma resti in esecuzione continua e appena prima del movimento desiderato mettere una funzione M, per esempio la M52 che ad oggi è inutilizzata, quindi fai partire la successiva riga di programma con la sua tacitazione. 2) proverei a forzare il funzionamento in automatico passo passo in modo da vedere realmente sempre nella famosa pagina di servizio come si comporta. Su questo però non ho esperienza in quanto ho sempre utilizzato funzioni M per bloccare l'esecuzione del programma. Ma per curiosità: questo famoso ritardo lo fa da sempre, ultimamente oppure te ne siete accorto solo da poco tempo? pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 22 febbraio 2014 Autore Segnala Share Inserita: 22 febbraio 2014 Quando la macchina non ha lo start programma la riga di esecuzione è sopra il richiamo del programma main ST08_MAIN, praticamente all'inizio. Il ritardo è così da sempre, solo che mi è stato chiesto se potevo rendere la macchina un pò più veloce. Per le prove che dici tu, valuterò, perchè è una macchina strategica nell'azienda e non vorrei rischiare di lasciarla ferma. Nel caso, ti tengo informato. Per ora grazie per il tempo che mi hai dedicato. A presto. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 23 febbraio 2014 Segnala Share Inserita: 23 febbraio 2014 Allora ritengo che si tratti di un tempo dedicato alla partenza del part program e all'inizializzazione di tutte le variabili. Sinceramente non ho mai adottato questa tecnica, ho sempre preferito lasciare l'esecuzione del programma sempre attiva con un semplice GOTO e bloccare la prima riga di movimentazione con una funzione M. Col senno di poi la tattica da me utilizzata (a suo tempo consigliata da mamma Siemens) potrebbe essere dovuta proprio a consentire partenze veloci nella esecuzione delle movimentazioni. Lo svantaggio che ne deriva è la mancanza di lettura di eventuali modifiche alle variabili R in caso di cambiamento dei valori, ma questo è da valutare applicazione per applicazione. Senza andare a stravolgere completamente il codice io consiglierei di anticipare lo start ed aggiungere quindi una riga con la funzione M52. A livello di PLC quindi procedi a tacitare la funzione M nel momento dello start gestito in precedenza. Quanto alla posizione strategica della macchina non ho dubbi, nessuno si cura di ottimizzare una macchina che non si utilizza... Fammi sapere se hai bisogno di una mano. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 23 febbraio 2014 Autore Segnala Share Inserita: 23 febbraio 2014 Ciao. La tua soluzione sembra ottima. Ti faccio qualche domanda a cui non so rispondere: La start program all'FM lo posso sempre lasciare a 1 oppure la scheda si aspetta un fronte di salita? Come funziona lo svolgimento del part program, nel senso, se il ciclo della macchina si interrrompe durante l'avanzamento dell'asse, il ciclo del part program come si interrompe? Con un comando da Plc? Non ho il programma Plc sotto mano, però mi sembrava di aver visto altri comandi sul DB d'interfaccia con la FM, tipo pausa o stop. Un'altra domanda, mettiamo sempre che il ciclo macchina si interrompa durante l'avanzamento dell'asse, come avviene il ritorno a riposo? Con il sottoprogramma ST08_REF? Se si, vuol dire che il part program riparte dall'inizio. Scusa tuute ste domande. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 25 febbraio 2014 Segnala Share Inserita: 25 febbraio 2014 U DB30.DBX 120.0 // ACTIVE MODE AUTOMATIC U DB30.DBX 126.5 // CHANNEL FM-READY U DB30.DBX 126.2 // ALL AXES REFERENCED UN DB30.DBX 108.7 // RESET UN DB30.DBX 126.6 // CHANNEL ERROR UN DB30.DBX 108.3 // Nicht aktiv die Stop achsen = DB30.DBX 108.1 // START AUTOMATIC Nel mio codice (oramai molto datato) prima mettevo a 1 il flag di richiesta automatico DBX100.0 per esempio per il primo canale. Sulla conferma di modo automatico (DBX 120.0) ricevuto abilitavo lo start esecuzione. Sopra trovi il codice per lo start automatico copiato pari pari. Quanto al riposizionamento, dipende dallo stato dell input 8 come si evince dalla riga N010 IF $A_IN[8]==FALSE GOTOF REF ;Call REF program Io non conosco la macchina, ma ritengo che se è stato fatto così ci sia un motivo..... pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 25 febbraio 2014 Autore Segnala Share Inserita: 25 febbraio 2014 Ciao. Ho visto il tuo codice, quindi lo Start può sempre rimanare a 1, io lo gestico come te. L'altra cosa che ti chiedevo era come funziona lo svolgimento del programma, ma nel manuale dovrei aver trovato la spiegazione, con il comando Stop dbx108.3 arresto lo svolgimento del programma e con il Reset dbx108.7 annullo lo svogimento e ritorno all'inizio del programma, ho capito bene? Un'altra cosa che ti chiedo è la tacitazione della funzione M, io metto la funzione M52 alla riga N190, nel programma plc al posto del comando Start metto la tacitazione delle funzioni M e qui se non ho capito male per tacitare devo mandare a 1 la dbx 109.0. Ti riporto qui sotto la parte di gestione delle funzioni M sul mio programma per qualche chiarimento: DB42 è la DB della FM UN DB42.DBX 109.0 //Acknowledge aux. function SPB RM01 L 0 T DB172.DBD 768 //Reset M function FM01.CH01 T DB172.DBD 772 //Reset ACK_M function FM01.CH01 T DB172.DBD 776 T DB172.DBD 780 T DB172.DBD 784 T DB172.DBD 788 T DB172.DBD 792 SET R DB172.DBX 936.0 R DB42.DBX 109.0 RM01: NOP 0 MCRA U DB42.DBX 127.0 //New M or T code from FM UN DB172.DBX 936.0 MCR( S DB172.DBX 936.0 U DB42.DBX 140.2 //M02 (M Auto reset) S DB172.DBX 768.2 U DB42.DBX 143.6 //M30 (M Auto reset) S DB172.DBX 771.6 U DB42.DBX 146.2 //M50 (M NO Auto reset) S DB172.DBX 774.2 S DB172.DBX 802.2 U DB42.DBX 146.3 //M51 (M NO Auto reset) S DB172.DBX 774.3 S DB172.DBX 802.3 U DB42.DBX 146.4 //M52 (M Auto reset) S DB172.DBX 774.4 S DB172.DBX 802.4 U DB42.DBX 146.5 //M54 (M Auto reset) S DB172.DBX 774.5 S DB172.DBX 802.5 //ST08 U DB42.DBX 146.6 //M54 (M Auto reset) O DB42.DBX 503.1 //ON-OFF S DB172.DBX 774.6 S DB172.DBX 802.6 //ST08 U DB42.DBX 146.7 //M55 (M Auto reset) S DB172.DBX 774.7 S DB172.DBX 802.7 //ST08 U DB42.DBX 147.4 //M60 (M Auto reset) S DB172.DBX 775.4 U DB42.DBX 147.5 //M61 (M Auto reset) S DB172.DBX 775.5 U DB42.DBX 148.1 //M65 ( M Auto reset) S DB172.DBX 776.1 U DB42.DBX 148.2 //M66 ( M Auto reset) S DB172.DBX 776.2 U DB42.DBX 155.0 //(T code Auto reset) S DB172.DBX 777.0 )MCR MCRD //Condition for AUTO RESET U DB172.DBX 768.2 //SPF program end (AUTO reset) O DB172.DBX 771.6 //MPF program end (AUTO reset) O DB172.DBX 774.2 //Program end REF_POINT (AUTO reset) O DB172.DBX 774.3 //Program end CUT_POINT (AUTO reset) O DB172.DBX 774.4 //Program end REF_POINT (AUTO reset) O DB172.DBX 774.5 //M52 (AUTO reset) O DB172.DBX 774.6 //M54 (AUTO reset) O DB172.DBX 774.7 //M55 (Auto reset) O DB172.DBX 776.1 //M65 (Auto reset) O DB172.DBX 776.2 //M66 (Auto reset) O DB172.DBX 777.0 //(T code Auto reset) O( U DB172.DBX 775.4 //Nota: Must be confirmed with ACK_M U DB172.DBX 789.4 ) O( U DB172.DBX 775.5 //Nota: Must be confirmed with ACK_M U DB172.DBX 789.5 ) U DB172.DBX 936.0 O( UN DB42.DBX 125.0 U M 216.5 //Tasto Reset ) S DB42.DBX 109. I bit delle funzioni M stanno a 1 solo per un tempo ciclo? Nel mio programma le funzioni M si resettano tutte dopo un ciclo Plc, come mi consiglieresti di inserire la tacitazione dell'M52. Grazie mille per il tuo prezioso Aiuto. Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 27 febbraio 2014 Segnala Share Inserita: 27 febbraio 2014 O DB30.DBX 146.0 // M Funktion 48 O DB30.DBX 146.1 // M Funktion 49 O DB30.DBX 146.2 // M Funktion 50 O DB30.DBX 146.3 // M Funktion 51 O DB30.DBX 146.5 // M Funktion 53 O DB30.DBX 146.6 // M Funktion 54 O DB30.DBX 146.7 // M Funktion 55 O DB30.DBX 147.0 // M Funktion 56 O DB30.DBX 147.1 // M Funktion 57 O DB30.DBX 147.2 // M Funktion 58 O DB30.DBX 147.3 // M Funktion 59 O DB30.DBX 147.5 // M Funktion 61 O DB30.DBX 147.7 // M Funktion 63 O DB30.DBX 143.6 // FUNCTION M30 S DB30.DBX 107.1 // Programmhalt S DB30.DBX 509.2 // INPUT FM 19 O DB30.DBX 127.0 // Strobe EIN O DB30.DBX 143.6 // FUNCTION M30 = DB30.DBX 109.0 // Reset M Funktion U DB30.DBX 107.1 // Programmhalt U M 150.1 // One shot quittung UN DB30.DBX 109.0 // Reset M Funktion R DB30.DBX 107.1 // Programmhalt U M 102.3 UN M 150.0 S M 150.0 = M 150.1 // One shot quittung UN M 102.3 R M 150.0 L DB30.DBW 146 // M Funktionen Aktiv L MW 110 OW T MW 110 L DB30.DBB 148 // M Funktionen Aktiv L MB 112 OW T MB 112 U M 112.1 UN DB30.DBX 107.1 // Programmhalt O #MANU_POS_FLANKE O #AUTO_POS_FLANKE O M 150.1 // One shot quittung SPB REST SPA CICL REST: L 0 T MW 110 T MB 112 CICL: NOP 0 Io la gestione delle funzioni M la faccio così: sul segnale = 1 della funzione M (DB30.DBX 127.0 comune a tutte le funzioni M) alzo la tacitazione (DB30.DBX 109.0) e lo stop programma sul fronte (DB30.DBX 107.1). Tramite il fronte di salita di un flag (M 150.1) vado a togliere lo stop programma, quindi esegue la riga successiva. Tu puoi utilizzare la tua logica leggermente diversa dalla mia basta che copi la condizione della funzione M53 pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 27 febbraio 2014 Autore Segnala Share Inserita: 27 febbraio 2014 Ciao Pigroplc. Io pensavo di gestire l'asse così: Inserisco la funzione M52 qui: N008 ENDWORK = STROKE_1 + 50 N190 M52 ;Start Avanzamento N200 T1 G54 G0 G90 Z8= STROKE_1 N210 G1 G90 Z8= -STROKE_2 -1 F=R16 N220 G1 G90 G64 Z8= STROKE_1 F=R18 N225 G0 G90 G64 Z8= ENDWORK N230 T0 G0 G500 Lo start FM DB42.DBX108.1 lo metto a 1 con il tuo metodo. Per tacitare la M52 pensavo di fare così: Al posto dello Start FM metto a 1 la M100.0 // Consenso Avanzamento Asse, nel blocco postato sopra farei così: //Condition for AUTO RESET U DB172.DBX 768.2 //SPF program end (AUTO reset) O DB172.DBX 771.6 //MPF program end (AUTO reset) O DB172.DBX 774.2 //Program end REF_POINT (AUTO reset) O DB172.DBX 774.3 //Program end CUT_POINT (AUTO reset) O DB172.DBX 774.4 //Program end REF_POINT (AUTO reset) O( U DB172.DBX 774.5 //M52U M100.0 // Consenso Avanzamento Asse ) O DB172.DBX 774.6 //M54 (AUTO reset) O DB172.DBX 774.7 //M55 (Auto reset) O DB172.DBX 776.1 //M65 (Auto reset) O DB172.DBX 776.2 //M66 (Auto reset) O DB172.DBX 777.0 //(T code Auto reset) O( U DB172.DBX 775.4 //Nota: Must be confirmed with ACK_M U DB172.DBX 789.4 ) O( U DB172.DBX 775.5 //Nota: Must be confirmed with ACK_M U DB172.DBX 789.5 ) U DB172.DBX 936.0 O( UN DB42.DBX 125.0 U M 216.5 //Tasto Reset ) S DB42.DBX 109. Cosa ne dici? Ti sembra corretto? Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 28 febbraio 2014 Segnala Share Inserita: 28 febbraio 2014 Secondo me potrebbe funzionare, anche se sinceramente non ho esperienza nel modo in cui nel tuo programma sono gestite le funzioni M. L'ultima istruzione si riferisce a DB30.DBX 109.0 // Reset M Funktion ? pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 28 febbraio 2014 Autore Segnala Share Inserita: 28 febbraio 2014 Sì, ho dimenticato il. 0,E che il pezzo di programma che ho postato è relativamente comprensibile. Ci sono blocchi da mettersi le mani sui capelli, oltre ai commenti che per 3/4 sono in tedesco. Comunque appena mi lasciano fermare la macchina provo a caricare le modifiche e ti aggiorno. C'è qualche precauzione da prendere nel caricare il part program? Inviato dall'app. Mobile di PLC Forum da LG-P970 Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 28 febbraio 2014 Segnala Share Inserita: 28 febbraio 2014 Il part program lo cambi quando la macchina è in manuale. pigroplc Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 8 marzo 2014 Autore Segnala Share Inserita: 8 marzo 2014 Ciao pigroplc. Finalmente sono riuscito a caricare la modifica. Dunque, con lo Start sempre a 1 non ne vuole sapere di andare, nel senso che la testa non fà l'avanzamento, e se vado in test vedo che il programma è fermo sull'istruzione M52, quella che ho aggiunto. La colpa deve essere nel programma Plc in quanto la dbx108.1 è interrogata più volte e probabilmente non mi permette il reset dell'M52. Per ovviare al problema dò lo Start con il comando della rotazione tavola. Questo avviene circa 1 secondo prima dello start avanzamento testa e da il tempo al part program di caricare le variabili e posizionarsi sull'M52. Quindi la modifica è andata a buon fine, il tempo tra la tacitazione dell'M52 e il movimento dell'asse è sceso a 180ms, circa mezzo secondo di meno. Se riesco ad avere un pò di tempo provo ad aprofondire il motivo per cui non funziona con start sempre a 1, anche se come ti dicevo sopra il programma è da paura. Io ti ringrazio moltissimo per il tuo prezioso aiuto. Alla prossima. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora