Vai al contenuto
PLC Forum


Lettura Input Plc Da Cn


NS12

Messaggi consigliati

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: da Giuseppe Signorella
Link al commento
Condividi su altri siti


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

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

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

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 :blink:

Modificato: da bigalex
Link al commento
Condividi su altri siti

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

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

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: da NS12
Link al commento
Condividi su altri siti

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 :blink:

Link al commento
Condividi su altri siti

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

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...