pastus Inserito: 8 aprile 2010 Segnala Inserito: 8 aprile 2010 Ciao a tuttiè la prima volta che scrivo e prendo quindi l'occasione per presentarmi (oltre che fare la domanda)Sono un ing. Informatico e da sempre, per passione e per lavoro ho avuto a che fare con il mondo dell'elettronica/elettricoAttualmente per lavoro stò imparando a programmare ed utilizzare plc s7-200 (per poi passare ai mitsubishi e quini B&R)Durante la lettura del manuale siemens "S7-200 programmable controller system manual" mi sono imbattuto nei contatti immediati, ma non sono riuscito a capire a cosa possano servire e in quali situazioni rivelarsi utili. (in ogni caso mi sembra che questo manuale sia fatto molto male... megli i datasheet della microchip... anche se ovviamente sono due cose differenti...)Ovviamente conosco la procedura di scansione ed elaborazione del plc: lettura ingressi, "calcolo" dei valori di uscita, settaggio uscite. (Però devo dire che per uno che è stato sempre abbituato a lavorare in procedurale e pensare il codice come operazioni sequenziali, passare al mondo dei plc si trova un poco smarrito... )Sapete darmi una risposta?Grazie
busanela Inserita: 8 aprile 2010 Segnala Inserita: 8 aprile 2010 Ciao,la definizione di "contatti immediati" mi fa pensare solo ad una grossolana traduzione di ingressi veloci; sono quegli ingressi che sfruttano la task di interrupt del ciclo programma per eseguire il comando attribuito.Per esempio, le uscite in quadratura di un encoder che possono arrivare a frequenze piuttosto elevate (> 5 KHz), potrebbero non essere interpretate nel giusto modo da una cpu con un tempo ciclo di qualche centinaio di millisecondi. Essendo ingegnere, conoscerai bene la modalità operativa e di gestione delle cpu: acquisizione dell'immagine di processo degli ingressi, task di elaborazione del programma, task di interrupts, immagine di processo delle uscite; se in questo tempo non si tenesse conto di ingressi ad elevata frequenza, parte di essi andrebbero persi.
pastus Inserita: 8 aprile 2010 Autore Segnala Inserita: 8 aprile 2010 (modificato) Umh... un errore di traduzione non credo... visto che sul manuale in inglese viene chiamato come "immediate contacts" (o meglio una mia traduzione errata). Nella descrizione (del manuale tradotto) riporta quanto segue:"Contatti direttiI contatti diretti non dipendono dal ciclo di scansionedell’S7--200 per aggiornarsi, ma si aggiornano direttamente.Le operazioni a contatto diretto normalmente aperto (LDI, AIe OI) e normalmente chiuso (LDNI, ANI e ONI) leggono ilvalore dell’ingresso fisico quando vengono eseguite, masenza aggiornare il registro dell’immagine di processo." Pagina 76, Sistema di automazione S7-200, Manuale di sistemaMi confermi quindi quello che mi hai detto? vengono utilizzati per segnali veloci? e se si, mi puoi indicare la frequenza al di sopra della quale deve utilizzarli? (o eventualmente la formula di calcolo in base alla frequenza di cpu etc)Grazie mille Modificato: 8 aprile 2010 da pastus
Livio Orsini Inserita: 8 aprile 2010 Segnala Inserita: 8 aprile 2010 (modificato) Normalmente si scrivono le uscite nei registri immagine e si leggono gli ingressi memorizzati nei registri immagine; al termine del ciclo di scansione i registri immagine delle uscite sono copiate sulle uscite fisiche e lo stato degli ingressi fisici viene memorizzato nei registri immagine.Se si usano le istruzioni di scrittura diretta si scrve immediatamente nell'uscita fisica. Identicamente se si usano istruzioni di lettura diretta si leggerà lo stato fisico dell'ingresso corrispondente.Questa tecnica è usata quando ci si vuole sganciare dai tempi di esecuzione del programma.Come esempio esplicativo.Immagina di eseguire un posizionamento con due camme: una abbastanza lunga che comanda il rallentamento, l'altra molto corta, per questioni di precisione, per posizionare.Nel programma MAIN (OB1) richiamo più volte la sub che legge direttamente l'ingresso corrispondente alla camma di rallentamento, se l'ingresso è zero (proximity non impegnato) esco dalla sub e continuo con il programma corrente; nel caso rilevi la cama di rallentaemento, do il comando di rallentamento scrivendo direttamente nella periferia, e ciclo sulla lettura diretta della camma di stop. Riconosciuto lo stop scrivo direttamente l'uscita del comando di stop, poi torno al normale programma.Ovviamente questi ingressi potrebbero essere collegati ad ingressi veloci, legati ad interrupts, ivitando il polling. Modificato: 8 aprile 2010 da Livio Orsini
FattoreDiPotenza Inserita: 9 aprile 2010 Segnala Inserita: 9 aprile 2010 ma non sono riuscito a capire a cosa possano servire e in quali situazioni rivelarsi utili.Il maule mi sembra abbastanza chiaro:Contatti direttiI contatti diretti non dipendono dal ciclo di scansionedell’S7-200 per aggiornarsi, ma si aggiornano direttamente.Le operazioni a contatto diretto normalmente aperto (LDI, AIe OI) e normalmente chiuso (LDNI, ANI e ONI) leggono ilvalore dell’ingresso fisico quando vengono eseguite, masenza aggiornare il registro dell’immagine di processo.Il contatto diretto normalmente aperto è chiuso (on) quandol’ingresso fisico (bit) vale 1; il contatto diretto è chiuso (on)quando l’ingresso fisico (bit) vale 0. Le operazioni dicontatto normalmente aperto caricano, combinano tramiteAND oppure combinano tramite OR direttamente il valoredell’ingresso fisico nel primo valore dello stack; leoperazioni di contatto normalmente chiuso caricano,combinano tramite AND oppure combinano tramite OR ilvalore dell’ingresso fisico negato nel primo valore dellostack. FONTE: Sistema di automazione S7-200 , Manuale di sistema . 6ES7298-8FA24-8EH0E' un mezzo semplificato per eseguire delle operazioni "veloci" senza l'uso di interrupt che richiedono una più specifica impostazione.Oltretutto il processo di interrupt non è applicabile a tutti gli I/O presenti sul PLC , questa variante invece sì , persino ai moduli aggiuntivi di I/O.La spiegazione semplificata di Livio è esatta , l'interrogazione di un "NI" non proviene dall'immagine ingressi ma è dipendente dallo stato fisico dell'ingresso in quel preciso istante.Quindi si tiene in considerazione anche l'evenienza in cui lo stato di quello specifico ingresso possa cambiare appena dopo l'aggiornamento IPI.Questa operazione a differenza di un interrupt non è completamente slegata dall'eleborazione programma in quanto per essere eseguita la scansione deve raggiungere quel punto specifico del programma tenendo conto di tutto ciò che viene scritto prima di esso.Ha anche un costo in risorse , l'uso di un NI comporta un tempo di elaborazione compreso tra 15 e 21 microsecondi/istruzione contro 0,22 micorsecondi di una interrogazione normale.Esistono anche le assegnazioni dirette alle uscite =I , SI , RI , che operano con il medesimo principio delle interrogazioni , andando a scrivere una volta eseguite direttamente il nuovo valore sull'usicta fisica , anche loro con un bel contributo in termini di tempo di esecuzione.Non è una novità , molti PLC permettono la medesima operazione , ma spesso in alcuni casi ci si limita a "forzare" un nuovo aggiornamento IPI completo prima di interrogare un ingresso o più e poi a "forzare" un aggiornamento IPU dopo avere assegnato il valore ad un uscita.Questo metodo ha l'unico pregio di essere semplice.Come tutte le cose ha dei pro e dei contro , anche se i contro sono più dei pro. Se usata alla fine o verso la fine della scansione codice , perde molta della sua utilità.Non è veloce quanto un vero e proprio aggiornamento immagine , e contribuisce ad umentare il tempo totale di esecuzione del programma , a scapito di altre funzionalità.Non sono consentite assegnazioni di peso maggiore al BIT.Và usata con moderazione.L'unico esempio pratico che mi viene in mente è aumentare la precisione e ripetibilità di posizionamento di dispositivi che non usano controlli di tipo continuo.
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