NS12 Inserito: 28 ottobre 2014 Segnala Share Inserito: 28 ottobre 2014 (modificato) Salve a tutti, abbiamo un sinumerik control 810D già operativo su una macchina a controllo numerico. La mia esigenza è quella di poter leggere da programma pezzo un input, facciamo un selettore per intenderci 0/1, senza però andare a mettere le mani sul prog plc. Mi pare di ave capito che la cosa dovrebbe essere fattibile ma purtroppo non sono un programmatore di questo tipo, quindi se qualcuno riesce a darmi qualche buon indirizzamento poi me la sbrigo da solo. Per adesso ho trovato solamente la var $A_IN[x] sul manuale siemens, basta davvero collegare un ingresso sul plc fisico nella porta 3.4, ad esempio, e poi richiamare da prog pezzo $A_IN[3.4]?? Grazie a tutti!!! Modificato: 28 ottobre 2014 da Giuseppe Signorella Link al commento Condividi su altri siti More sharing options...
NS12 Inserita: 28 ottobre 2014 Autore Segnala Share Inserita: 28 ottobre 2014 Aggiornamento: ho notato che interrogando da programma pezzo il bit $A_IN[2] si controllo l'uscita di un sensore laser collegato fisicamente all'ingresso E2.1 del mio PLC. Si tratta di un associazione dichiarata in qualche sotto programma o sono associazioni fisse? Link al commento Condividi su altri siti More sharing options...
Werner Inserita: 28 ottobre 2014 Segnala Share Inserita: 28 ottobre 2014 Secondo me non riesci a leggere gli input senza modificare il programma PLC. Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 28 ottobre 2014 Segnala Share Inserita: 28 ottobre 2014 Ciao NS12. Come dice werner, non è possibile fare ciò che dici senza toccare il Plc, nel tuo caso la variabile $A_IN[2] nel Plc è un bit della DB10, esattamente DB10.DBX1.2. Tutti i dati di questo tipo si appoggiano al DB10. Fare ciò che dici non è niente di che, ma bisogna modificare il Plc. Link al commento Condividi su altri siti More sharing options...
NS12 Inserita: 29 ottobre 2014 Autore Segnala Share Inserita: 29 ottobre 2014 Purtroppo ho fonti abbastanza certe che mi assicurano il contrario, ma che non sanno dirmi la sintassi delle istruzioni siemens Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 29 ottobre 2014 Segnala Share Inserita: 29 ottobre 2014 Purtroppo ho fonti abbastanza certe che mi assicurano il contrario, ma che non sanno dirmi la sintassi delle istruzioni siemens Io di CN 810-840 ne ho visti un bel pò, ma non ho mai visto nel part program interrogare direttame un ingresso del Plc. Se ci riesci, facci sapere . Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 29 ottobre 2014 Segnala Share Inserita: 29 ottobre 2014 (modificato) Ciao NS12 . Non sono un esperto in materia ma credo che la variabile NC che hai usato nell'esempio faccia riferimento alla mappatura degli ingressi che sono a bordo del cnc (integrati) che possono essere scambiati (lettura dello stato da part program) tra NC e PLC . Nello specifico prova a dare un occhiata a questo manuale relativo ai Sinumerik . E' un tomo piuttosto corposo ma la sezione che dovrebbe interessarti è la 19-NC/PLC INTERFACE SIGNALS (Z2) . Qui trovi la mappatura degli ingressi che come ti è stato detto risiede nella DB10 . Il numero assoluto degli ingressi scambiati viene definito dal dato macchina MD10350 $MN_FASTIO_DIG_NUM_INPUTS . Se chi ha costruito la macchina utensile ha proceduto con ordine è probabile che uno o più byte di ingressi consecutivi siano stati assegnati per lo scambio tra NC <--> PLC . Il fatto che tu scriva : ho notato che interrogando da programma pezzo il bit $A_IN[2] si controllo l'uscita di un sensore laser collegato fisicamente all'ingresso E2.1 del mio PLC. mi induce a pensare che almeno il byte EB2 sia oggetto di scambio implicito tra NC <--> PLC . Potresti comunque fare un piccolo part program con le istruzioni per il test degli ingressi PLC secondo la sintassi $A_IN[x] dove x è il numero progressivo degli ingressi scambiati per assegnazione in DB10. bigalex Modificato: 29 ottobre 2014 da bigalex Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 29 ottobre 2014 Segnala Share Inserita: 29 ottobre 2014 Ciao, per quanto non creda che il byte 2 sia stato interamente passato al CN, non l'ho mai visto e non ne vedo il senso, ti dò una dritta per fare la prova che dice Bigalex. Vai sul menu principale del CN, vai su Diagnosi "in basso quarto tasto da destra", poi tasto PLC, qui si apre una schermata in cui puoi monitorare tutte le variabili che vuoi del Plc, quindi inserisci i vari bit: DB10.DBX1.0, DB10.DBX1.1, DB10.DBX1.2 e cosi via. A destra di ogni variabile vedi il suo valore. Provi a forzare i vari ingressi e vedi se sono direttamente collegati con le variabili di appoggio PLC-CN. Come ti dicevo non credo che sia cosi, non ha senso passare direttamente gli ingressi al CN, c'è il Plc per queste cose il CN deve fare il CN. Comunque facci sapere. Link al commento Condividi su altri siti More sharing options...
Werner Inserita: 30 ottobre 2014 Segnala Share Inserita: 30 ottobre 2014 Ciao, le tue fonti hanno ragione, sto verificando davanti ad un CN, se non sono gia' impostati devi impostare DM10394=num.byte letti DM10395=indirizzo primo byte letto li leggi con $A_PBB_IN PERO!!!!!!! quando ti va in blocco il PLC per qualche motivo, anche il CN se la prende ben male!!!!!!!!!!!! Link al commento Condividi su altri siti More sharing options...
NS12 Inserita: 30 ottobre 2014 Autore Segnala Share Inserita: 30 ottobre 2014 (modificato) se non sono gia' impostati devi impostare DM10394=num.byte letti DM10395=indirizzo primo byte letto innanzi tutto penso volessi dire MD10394 e MD10395 ma a parte questo, dove devo impostarli? diretto su programma pezzo o in qualche sottoprog? Le istruzione dovrebbero essere: MD10394 $MN_PLCIO_NUM_BYTES_IN (:num bytes letti) MD10395 $MN_PLCIO_LOGIC_ADDRESS_IN (:primo byte letto) Modificato: 30 ottobre 2014 da NS12 Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 30 ottobre 2014 Segnala Share Inserita: 30 ottobre 2014 Ciao Beppo . Quanto dici : Come ti dicevo non credo che sia cosi, non ha senso passare direttamente gli ingressi al CN, c'è il Plc per queste cose il CN deve fare il CN. non è vero in senso assoluto. Può essere necessario da part program interrogare lo stato di ingressi del plc per eseguire in modo condizionale parte magari di una subroutine in G code o eseguire dei movimenti in modo condizionato da eventi esterni al part program che non rientrino nelle istruzioni di G code che già contengono in modo implicito il test di un ingresso veloce (ad esempio ciclo di misura dell'utensile) . bigalex Link al commento Condividi su altri siti More sharing options...
beppo Inserita: 31 ottobre 2014 Segnala Share Inserita: 31 ottobre 2014 Ciao Bigalex. Ok, mi scuso perchè forse mi sono espresso male, non intendevo dire che il CN non deve mai controllare degli Input fisici, capisco che a volte servono. Quello che intendevo dire è che troverei strano che il CN controlli interi Byte di ingresso. Comunque grazie della precisazione e grazie anche a Werner, questa degli ingressi non l'avevo mai saputa. Link al commento Condividi su altri siti More sharing options...
bigalex Inserita: 31 ottobre 2014 Segnala Share Inserita: 31 ottobre 2014 Tranquillo Beppo. Non ti devi assolutamente scusare. E' sempre un piacere il confronto tecnico. bigalex Link al commento Condividi su altri siti More sharing options...
NS12 Inserita: 4 novembre 2014 Autore Segnala Share Inserita: 4 novembre 2014 Qualcuno a parte Werner sa dove e come devo impostare le variabili MD10394 $MN_PLCIO_NUM_BYTES_IN e MD10395 $MN_PLCIO_LOGIC_ADDRESS_IN?? 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