Vai al contenuto
PLC Forum


Esempi Kop Siemens S7-200


PinokkioPLC

Messaggi consigliati

Salve, da principiante ed autodidatta, ho creato un programmino con Step7 Microwin che ho poi simulato con il noto simulatore spagnolo, il programma sembra verificare le mie specifiche ed ho dunque deciso di postarlo sul forum, per eventuali errori commessi o consigli di programmazione, sono tutte orecchie :)

DESCRIZIONE:

Un puntale disposto verticalmente,protetto da una griglia, effettua un foro su una lastra metallica disposta orizzontalmente sotto di esso.

SEGMENTO1:

Alla pressione del pulsante di avvio della macchina, se una lastra metallica è disposta sotto il puntale, la griglia di protezione di abbassa raggiungendo la sua posizione più bassa.

SEGMENTO2:

Se la griglia di protezione è nella sua posizione più bassa, il puntale scende a forare la lastra, raggiungendo la sua posizione più bassa.

SEGMENTO3:
Se il puntale è nella sua posizione più bassa,e quindi ha effettuato un foro nella lastra metallica, esso è fatto risale nella sua posizione più alta, insieme alla griglia.
Ovviamente sensori, motori, pistoni, etc. utilizzati sono ideali, in quanto ho solamente cercato di immaginare il funzionamento.

Link al commento
Condividi su altri siti


Posto gli screenshot dei segmenti che compongono il programmino, in modo da permettere la visualizzazione ad utenti che non hanno il software Step7 microwin:

Modificato: da PinokkioPLC
Link al commento
Condividi su altri siti

Segmento 1:

Appena vengono a mancare anche uno solo dei segnali dai sensori di griglia alta, puntale alto, oppure arriva il segnale di griglia bassa, "DG" torna a zero.

Anche il comando di pausa causa l'azzeramento di "DG".

Segmenti 2 e 3:

I comandi salita/discesa puntale e salita griglia sono sempre comandati solo dallo stato dei sensori, senza tenere minimamente conto delle fasi del ciclo.

Se il comando salita/discesa griglia è fatto con una elettrovalvola bistabile, potrebbe anche funzionare, ma non mi sento di dare la sufficienza ad un ciclo fatto in questo modo.

Proviamo a ricominciare da zero, stabilendo, prima di tutto, come sono comandati i movimenti (elettrovalvole mono o bistabili, motori, ecc.).

Sostituiamo poi il puntale (o punzone) con un mandrino, e pensiamo anche a gestirne la rotazione.

Quando si fa un ciclo, prima che all'attivazione delle uscite si deve pensare a creare le fasi del ciclo.

Poi, a seconda della fase attiva, si comandano gli attuatori.

Per esempio, il ciclo potrebbe essere il seguente:

- Fase 1: discesa griglia di protezione

- Fase 2: start rotazione mandrino

- Fase 3: discesa mandrino

- Fase 4: salita mandrino

- Fase 5: arresto rotazione mandrino

- Fase 6: salita griglia di protezione

- Fine ciclo

Puoi decidere se far avanzare la sequenza mantenendo sempre attive le fasi già completate, oppure resettare di volta in volta la fase attiva e settare quella successiva.

Poi, secondo il metodo che preferisci adottare, tenendo conto delle fasi attive vai a comandare i vari movimenti.

In questo modo potresti anche gestire la pausa, che non deve influenzare la sequenza, ma solo interrompere, per esempio, la discesa del mandrino.

Prova a buttare giù qualcosa, senza dimenticare di prevedere anche un comando per terminare il ciclo prima di aver completato la discesa del mandrino, e un arresto immediato.

Quando sarai risuscito a completare il ciclo correttamente, passeremo alla gestione degli allarmi (per esempio, errore contemporaneità sensori di posizione alta/bassa, time-out fase, protezioni motori, ecc.)

Una volta gestiti gli allarmi, si dovranno inserire nel ciclo in modo da causare la reazione corretta secondo il tipo di anomalia.

A dire il vero, io di solito inizio proprio con la definizione degli allarmi, e li inserisco subito nella sequenza.

Ma, almeno per ora, direi che va benissimo anche se agli allarmi ci pensiamo dopo.

Link al commento
Condividi su altri siti

Salve batta, sono molto contento che un utente esperto, in questo caso tu, mi abbia risposto, elencandomi i tanti errori commessi, in quanto in tal modo ho la possibilità di imparare, non avendo nessuno che mi spieghi le cose :(, quindi ti ringrazio prima di tutto.

Allora cerco di analizzare un pò la risposta elencandoti cosa ho capito e cosa meno:

Segmento 1:

Appena vengono a mancare anche uno solo dei segnali dai sensori di griglia alta, puntale alto, oppure arriva il segnale di griglia bassa, "DG" torna a zero.

Anche il comando di pausa causa l'azzeramento di "DG".

Perfettamente ragione, ho fatto una grande cavolata, in quanto appena la griglia scende ed il suo sensore di posizione si disattiva viene bloccata la discesa del puntale e quindi questo alla fine non raggiunge la lastra metallica.

Ho modificato il segmento che riporto di seguito, mettendo DG in parallelo a tutti i contatti tranne il contatto di pausa, può andare bene in tal modo?

Segmenti 2 e 3:

I comandi salita/discesa puntale e salita griglia sono sempre comandati solo dallo stato dei sensori, senza tenere minimamente conto delle fasi del ciclo.

In effetti questa era la mia idea, appena un sensore di attivava/disattivava mi generava l'azione di salita/discesa griglia o puntale,

Se il comando salita/discesa griglia è fatto con una elettrovalvola bistabile, potrebbe anche funzionare, ma non mi sento di dare la sufficienza ad un ciclo fatto in questo modo.

ma anche solo un 4--, per il mio primo programmino dopo qualche settimana di studio già mi andrebbe bene :), poco prima di natale non sapevo neanche cosa fosse un PLC :), ad ogni modo il mio postare tale esempio era per cercare di creare una discussione su di esso e dunque capire un pò come andavano fatte le cose, non certamente pensavo che tale programma potesse servire a qualcuno o funzionare nella realtà, al massimo qualche principiante come me poteva prendere spunto o inserirsi nella discussione.

Proviamo a ricominciare da zero

Perfetto :)

Quando si fa un ciclo, prima che all'attivazione delle uscite si deve pensare a creare le fasi del ciclo.

Poi, a seconda della fase attiva, si comandano gli attuatori.

Qui mi sono perso un pò.... :(, allora intendi dire che prima di attivare una uscita (quindi ad esempio una bobina a destra) è necessaria la valutazione della condizione logica dei contatti alla sua sinistra (ovvero gli stati logici 1 o 0)? oppure sono proprio fuori strada?

Per esempio, il ciclo potrebbe essere il seguente:

- Fase 1: discesa griglia di protezione

- Fase 2: start rotazione mandrino

- Fase 3: discesa mandrino

- Fase 4: salita mandrino

- Fase 5: arresto rotazione mandrino

- Fase 6: salita griglia di protezione

- Fine ciclo

OK provo a farlo e postarlo.

Puoi decidere se far avanzare la sequenza mantenendo sempre attive le fasi già completate, oppure resettare di volta in volta la fase attiva e settare quella successiva.

Poi, secondo il metodo che preferisci adottare, tenendo conto delle fasi attive vai a comandare i vari movimenti.

In questo modo potresti anche gestire la pausa, che non deve influenzare la sequenza, ma solo interrompere, per esempio, la discesa del mandrino.

Perdonami per la mia ignoranza in merito, ma non ho ben capito, potresti magari farmi un esempio riferito ad un pezzetto di codice.

passeremo alla gestione degli allarmi (per esempio, errore contemporaneità sensori di posizione alta/bassa, time-out fase, protezioni motori, ecc.)

Una volta gestiti gli allarmi, si dovranno inserire nel ciclo in modo da causare la reazione corretta secondo il tipo di anomalia.

OK alla fine vediamo anche tali cose che mi sembrano più avanzate.

Link al commento
Condividi su altri siti

In effetti questa era la mia idea, appena un sensore di attivava/disattivava mi generava l'azione di salita/discesa griglia o puntale,

È un modo rischioso di fare un ciclo. Un segnale errato di un sensore potrebbe causare movimenti indesiderati. Meglio tenere sempre conto, oltre che ai segnali dal campo, anche della fase in corso.

Provo ad inserire un esempio di come potrebbe essere il ciclo.

Imposta in MicroWin la visualizzazione AWL e copia, uno alla volta, il contenuto dei segmenti. Poi visualizza ancora in KOP.

Segmento 1: Start ciclo --> Discesa griglia
LD     PB_Start
A      PX_GrigliaAlta
A      PX_MandrinoAlto
O      F_DiscesaGriglia
A      PX_PresLastra
A      PB_Stop
AN     F_FineCiclo
=      F_DiscesaGriglia

Segmento 2: Griglia bassa --> Start rotazione mandrino
LD     PX_GrigliaBassa
A      F_DiscesaGriglia
=      F_StartRotazione
TON    T_StartRotaz, 5

Segmento 3: Start rotazione mandrino --> Discesa mandrino
LD     T_StartRotaz
=      F_DiscesaMandrino

Segmento 4: Discesa mandrino --> Attesa risalita mandrino 
LD     PX_MandrinoBasso
O      F_AttesaRisalita
A      F_DiscesaMandrino
=      F_AttesaRisalita
TON    T_MandrinoBasso, 5

Segmento 5: Fine attesa risalita --> Salita mandrino 
LD     T_MandrinoBasso
=      F_SalitaMandrino

Segmento 6: Mandrino alto --> Stop rotazione
LD     PX_MandrinoAlto
O      F_StopRotazione
A      F_SalitaMandrino
=      F_StopRotazione
TON    T_MandrinoFermo, 30

Segmento 7: Mandrino fermo --> Salita griglia protezione
LD     T_MandrinoFermo
=      F_SalitaGriglia

Segmento 8: Griglia alta --> Fine ciclo
LD     PX_GrigliaAlta
A      F_SalitaGriglia
=      F_FineCiclo

Segmento 9: Comando discesa griglia
LD     F_DiscesaGriglia
AN     F_SalitaGriglia
AN     EV_SalitaGriglia
=      EV_DiscesaGriglia

Segmento 10: Comando salita griglia
LD     F_SalitaGriglia
AN     EV_DiscesaGriglia
=      EV_SalitaGriglia

Segmento 11: Comando rotazione mandrino
LD     F_StartRotazione
AN     F_StopRotazione
=      KM_RotazMandrino

Segmento 12: Comando discesa mandrino
LD     F_DiscesaMandrino
AN     PB_Pausa
AN     F_AttesaRisalita
AN     PX_MandrinoBasso
AN     KM_SalitaMandrino
=      KM_DiscesaMandrino

Segmento 13: Comando salita mandrino
LD     F_SalitaMandrino
AN     F_StopRotazione
AN     PX_MandrinoAlto
AN     KM_DiscesaMandrino
=      KM_SalitaMandrino

Tabella dei simboli:

PB_Start	        I0.0	Pulsante Start
PB_Stop	                I0.1	Pulsante Stop (contatto N.C.)
PB_Pausa	        I0.2	Pulsante Pausa
PX_GrigliaAlta	        I0.3	Sensore griglia di protezione alta
PX_GrigliaBassa	        I0.4	Sensore griglia di protezione bassa
PX_MandrinoAlto	        I0.5	Sensore mandrino alto
PX_MandrinoBasso	I0.6	Sensore mandrino basso
PX_PresLastra	        I0.7	Sensore presenza lastra
F_DiscesaGriglia	M10.0	Discesa griglia
F_StartRotazione	M10.1	Start rotazione mandrino
F_DiscesaMandrino	M10.2	Discesa mandrino
F_AttesaRisalita	M10.3	Attesa risalita mandrino
F_SalitaMandrino	M10.4	Salita mandrino
F_StopRotazione	        M10.5	Stop rotazione mandrino
F_SalitaGriglia	        M10.6	Salita griglia di protezione
F_FineCiclo	        M10.7	Fine ciclo
T_StartRotaz	        T37	Tempo start rotazione mandrino
T_MandrinoFermo         T38    Tempo arresto rotazione mandrino
T_MandrinoBasso	        T39	Tempo mandrino basso
EV_DiscesaGriglia	Q0.0	Elettrovalvola discesa griglia
EV_SalitaGriglia	Q0.1	Elettrovalvola salita griglia
KM_RotazMandrino	Q0.2	Teleruttore rotazione mandrino
KM_SalitaMandrino	Q0.3	Teleruttore salita mandrino
KM_DiscesaMandrino	Q0.4	Teleruttore salita mandrino

Tieni presente che questo è solo un esempio di come potrebbe essere il ciclo. Andrebbe poi integrato con la gestione degli allarmi e con altri controlli.

Per dire, il ciclo in questione parte solo se la griglia e il mandrino sono già alti.

Si potrebbe far iniziare il ciclo con il sollevamento della griglia e del mandrino (se sono già alti le fasi relative vengono subito impostate come già fatte), in modo da poter partire da una condizione qualsiasi.

E tieni presente anche che l'ho buttato giù di corsa senza pensarci tanto. Non escludo ci possano essere errori.

Una volta digerito questo modo di fare un ciclo, potresti cercare di gestire lo stesso ciclo con una sola fase attiva alla volta (nel passaggio da una fase all'altra, resetti la fase attiva e setti quella successiva).

Oltre al modo di passare da una fase all'altra, cambia anche il modo di comandare le uscite (dovrai mettere in OR tutte le fasi nelle quali una uscita deve rimanere attiva).

Link al commento
Condividi su altri siti

Prima di tutto, grazie per avermi riportato addirittura tutto il programma, sarà la traccia base per il mio futuro studio :).

Allora ho appena riportato il programma in KOP e poi simulato con il simulatore, espongo un pò i miei dubbi:

1) Non riesco a capire il perchè dell'utilizzo di merker nella prima parte del programma e poi solo alla fine l'attivazione delle uscite, non potevo utilizzare direttamente le uscite ed evitare i merker?

In un precedente messaggio mi dicevi:

Quando si fa un ciclo, prima che all'attivazione delle uscite si deve pensare a creare le fasi del ciclo.

Poi, a seconda della fase attiva, si comandano gli attuatori.

Per esempio, il ciclo potrebbe essere il seguente:

- Fase 1: discesa griglia di protezione

- Fase 2: start rotazione mandrino

- Fase 3: discesa mandrino

- Fase 4: salita mandrino

- Fase 5: arresto rotazione mandrino

- Fase 6: salita griglia di protezione

- Fine ciclo

la questione delle fasi l'ho capito ovvero devo dividere in passi il programma, però non posso far si che ogni passo mi generi semplicemente una azione, senza passare per tali merker?

2) Ho notato, durante la simulazione del programma, che l'elettrovalvola di discesa resta attiva fino a che la griglia è bassa, ammetto di non conoscere il funzionamento di tale componente, però vorrei capire nella realtà questa deve restare attiva?

Link al commento
Condividi su altri siti

Piccolo aggiornamento :)

Da uno dei vari libri che sto leggendo, in particolare "Manuale di programmazione dei PLC" nella parte finale del libro ho letto proprio adesso un qualcosa chiamato tecnica "BATCH" e qui si utilizzano passi e merker di attivazione di tali passi, con poi l'attivazione delle uscite in opportuni sottoprogrammi.

Il modo di procedere descritto da batta è questa tecnica "BATCH"?

Altra cosa che vorrei chiedervi, nella parte iniziale del libro non si utilizza tale modo di procedere (non sapevo neanche che esistesse, siccome sono ancora ai primi capitoli) ma si utilizzano direttamente le uscite senza passare per i merker (per tale motivo mi sn sentito spiazzato dal programma corretto), ora il mio dubbio è questo posso fare un programma senza utilizzare i merker e quindi tale tecnica BATCH?

Link al commento
Condividi su altri siti

1) Non riesco a capire il perchè dell'utilizzo di merker nella prima parte del programma e poi solo alla fine l'attivazione delle uscite, non potevo utilizzare direttamente le uscite ed evitare i merker?

Come avrai notato, non c'è corrispondenza diretta tra fase ciclo e uscita.

Alcune uscite saranno attive solo per una fase, mentre altre possono essere attive per più fasi.

Devi poi pensare anche a cicli più complessi, dove una fase può attivare molte uscite.

Questo modo di procedere ti semplifica la vita, perché ti permette di risolvere un problema alla volta: prima pensi alle fasi del ciclo, e solo dopo ti occupi di come comandare gli attuatori.

Inoltre, se guardi come ho usato il pulsante di pausa, vedi che non influisce sulle fasi ma blocca solo il movimento di discesa.

L'elenco dei motivi peri quali è preferibile tenere separata la logica del ciclo dal comando delle uscite, è ancora lungo.

2) Ho notato, durante la simulazione del programma, che l'elettrovalvola di discesa resta attiva fino a che la griglia è bassa, ammetto di non conoscere il funzionamento di tale componente, però vorrei capire nella realtà questa deve restare attiva?

Se la salita/discesa della griglia è ottenuta con elettrovalvola bistabile, potresti attivare il comando solo nella fase di discesa.

Nell'esempio ho ritenuto preferibile mantenere il comando di discesa sempre attivo.

Altra cosa che vorrei chiedervi, nella parte iniziale del libro non si utilizza tale modo di procedere (non sapevo neanche che esistesse, siccome sono ancora ai primi capitoli) ma si utilizzano direttamente le uscite senza passare per i merker

Nella parte iniziale del libro penso sia giusto fare esempi che devono essere il più semplice possibile, e di immediata applicazione.

Generalmente sono esempi per apprendere i concetti base, come l'utilizzo di timer, counter, set/reset. Esempi fini a sé stessi.

Quando poi si deve pensare ad un programma completo, il discorso cambia.

Link al commento
Condividi su altri siti

Ho iniziato a leggere il capitolo riguardante tale modo di procedere, però avendo iniziato da pochissimo e da autodidatta, alcuni concetti mi risulta ancora difficile apprenderli, quindi vorrei prima cercare di riuscire in piccoli programmini didattici per poi dopo iniziare a pensare al modo migliore di programmare.

Oggi ho modificato un pò il mio programma iniziale, evitando di lasciare l'attivazione delle uscite solo in mano ai sensori, però ancora utilizzando solo uscite e non merker, voglio prima rivederlo un pò e poi lo posto, cosi mi dici se in linea almeno teorica può andare bene.

Grazie per i vari consigli, che mi hanno riconfermato che tra i libri e la realtà ci sono oceani e non il solo mare :)

Link al commento
Condividi su altri siti

Ciao, provo a risponderti in modo meno professionale di Batta, visto che anch'io come te faticavo a comprendere l'utilità delle fasi ciclo.

È normale che quando uno comincia lo faccia da programmi molto semplici, che comprendono pochi attuatori e ,soprattutto, pochi movimenti. È altrettanto normale che si pensi ad una soluzione diretta del problema: Se premo start, il cilindro deve scendere,punto.

Immagina peró ora di avere a che fare con qualcosa di piu complesso(neanche tanto , in realtà) come un pick'n'place pneumatico( classico asse x-z con pinza montata sull'asse z. A riposo,l asse z è in attesa in alto. Alla pressione di start, l'asse z scende, prende l'oggetto, risale, ora si estende l'asse x, riscende lo z, lascia il pezzo, risale z e torna a riposo x.

Per quanto possa sembrare banale ti assicuro che da risolvere senza l'aiuto dei merker è un bel grattacapo. Come noterai l'asse z a differenza di x e pinza di presa compie due volte lo stesso movimento... E non è semplice discriminare quando compiere uno e quando l'altro.

Prova a buttar giu una soluzione

Link al commento
Condividi su altri siti

............

............

L'elenco dei motivi peri quali è preferibile tenere separata la logica del ciclo dal comando delle uscite, è ancora lungo.

... puoi anche interrompere un ciclo in caso di anomalia e riprenderlo dallo stesso punto dopo che hai ripristinato ed eliminato le condizioni di allarme.

... vai 1000 volte meglio ad effettuare modifiche; aggiungere o spostare un movimento in un altra fase del ciclo non sconvolge lo svolgimento del ciclo che è sempre controllato dai merker di fase e non dallo stato delle uscite

Su macchine complesse però i preferisco usare dei merker per così dire di "macro-fase", che non si prestano bene all'esempio riportato perchè troppo semplice .

Se alla foratrice aggiungessimo 2 bracci, uno che preleva il pezzo e uno che scarica io, per gestire il ciclo, userei questi merker di fase:

1. condizioni inizio ciclo

2. ciclo

3. pausa

4. fine ciclo

5. prelievo pezzo

6. prelievo effettuato

7. posizionamento pezzo

8. posizionamento effettuato

9. sequenza foratura

10. foratura effettuata

11. scarico pezzo

12. scarico effettuato

La fase 9 attiva in sequenza tutti i movimenti riportati da Batta al #3, tra la 9 e la 10 ci possono ovviamente essere ulteriori merker e temporizzatori (griglia chiusa, motore avviato ecc.), ma in genere non mi piace legare ogni fase a un singolo movimento...

Link al commento
Condividi su altri siti

Buongiorno a tutti, vi ringrazio per aiuti e consigli espressi, però devo essere sincero nell'ammettere che l'utilità di fasi e merker non mi ancora è chiara, non perchè io l'abbia studiata e non sia riuscita a capirla, ma perchè io a tale livello/argomento ancora non ci sono proprio arrivato....volendo paragonare la mia preparazione al libro bergamaschi, per adesso sono al capitolo 5 e tali argomenti sono al capitolo 20, dunque ci sono 15 capitoli in mezzo e oltre 50 esempi proposti per arrivare pian piano ad effettuare un programma con fasi e merker di attivazioni di tali fasi, purtroppo ho iniziato solo da poche settimane.

C'è da dire che, anche se non sono riuscito a capire tutto quello che avete detto, una cosa l'ho capita, ovvero la realtà è tutta un'altra cosa rispetto a quello che si studia, si legge e ti pseudoinsegnano (colleghi di università non sanno neanche cosa sia Step7 microwin e credono che possono programmare con trilogi....), ad ogni modo, nessuno è nato imparato :)

PS: Volendo restare nell'ambito di esempi basilari, i quali adesso ho capito che nella realtà non potrebbero mai funzionare o funzionare bene, dopo vi posto l'esercizio modificato, cosi mi dite se possa andare bene, riferito ad un livello base di apprendimento.

Link al commento
Condividi su altri siti

ovvero la realtà è tutta un'altra cosa rispetto a quello che si studia, si legge e ti pseudoinsegnano (colleghi di università non sanno neanche cosa sia Step7 microwin e credono che possono programmare con trilogi....)

Non è che la realtà sia diversa. Solo che prima bisogna farsi le basi. Se un libro partisse già da come fare un ciclo, senza prima averti insegnato l'uso delle singole funzioni, non servirebbe a nulla.

Ecco che è giusto quindi partire da come si accende una lampadina con un interruttore, per poi passare ad un marcia/arresto con autoritenuta, fare poi una teleinversione con interblocco e ritardo all'inversione di marcia, e via di seguito.

Per fare quanto sopra basta comandare direttamente le uscite, senza tirare in ballo fasi od altro. Ed è giusto che gli esempi sui libri siano fatti così.

Quando poi si passa dalla creazione di semplici blocchi, ognuno fine a sé stesso, a dover legare insieme molti di questi blocchi, ecco che risulta indispensabile saper strutturare un programma.

Ma a questo passo ci si deve arrivare, ripeto, solo dopo aver acquisito piena padronanza di tutto quello che viene prima.

Non dimenticare poi che la scuola non ti potrà mai dare una formazione completa, anche perché, sempre restando nel campo dell'automazione industriale, ogni settore ha problemi diversi. La scuola ti deve dare le basi, e ti deve insegnare ad imparare.

Considera che per diventare bravi programmatori di PLC non è sufficiente conoscere la programmazione, ma sono indispensabili buone conoscenze di elettrotecnica e, perché no, anche di meccanica.

E, anche con tutte queste basi, all'inizio ci si potrà considerare solo degli "apprendisti programmatori". Per uscire dalla fase di apprendistato sono necessari alcuni anni di esperienza, trovandosi a risolvere i problemi più disparati, magari con l'aiuto di PLC Forum ;)

Link al commento
Condividi su altri siti

magari con l'aiuto di PLC Forum ;)

Vi ringrazio, siete tutti molto gentili e con tanta pazienza, perchè con ignorantoni come me ce ne vuole tanta...... :)

Detto ciò, adesso vi spiego l'idea di tale esercizio da dove è venuta fuori....allora sul libro Bergamaschi al capitolo 4 c'è un esercizio su un trapano industriale:

dopo aver letto l'esempio, mi è venuta la brillante idea di modificarlo, e le specifiche che mi ero posto erano le seguente:

1) Premo start -> si abbassa la griglia

2) Quando la griglia è bassa -> si abbassa il puntale

3) Quando il puntale è basso ed ha bucato la piastra -> risale il puntale

4) Quando il puntale è risalito -> risale la griglia

rifacendo l'esercizio, rispetto al primo postato, adesso dove mi sono bloccato è sui punti 2-3, perchè non vorrei utilizzare temporizzatori e merker, che nell'esempio non ci sono e sono argomenti dei capitoli successivi, ma in questo modo:

ho il problema che non riesco a disattivare la discesa del puntale ed attivare la sua salita, cioè come ho fatto io resta l'elettrovalvola della discesa attiva anche quando è poi attiva l'elettrovalvola della salita e dunque non va bene...... ci sto ragionando su da qualche ora, però per adesso ancora non ci sono riuscito a trovare la soluzione :(

Link al commento
Condividi su altri siti

Ragazzi ho modificato il programma, ho inserito 2 merker, però non ho utilizzato temporizzatori (ancora non li conosco), dunque la fase di salita puntale segue subito la fase di discesa puntale, ovvero questo scende buca e sale, riporto i segmenti, ditemi un pò cosa ne pensate, se è migliorato rispetto a prima:

Fatemi sapere se almeno mi avvicino ad una possibile giusta soluzione (ovvero quella postata da batta) oppure anche qui ci sono grossi problemi e/o errori.

Link al commento
Condividi su altri siti

Così a prima vista direi che dovrebbe funzionare.

Questo è il metodo che si usava con i primi PLC, quando con la logica programmabile si andava a sostituire un circuito elettromeccanico (non a caso il ladder è molto simile ad uno schema elettrico).

Ora dai PLC si pretende molto di più.

Per esempio, se da un circuito elettromeccanico ci si accontenta, in caso di anomalia, di accendere una spia, con un PLC ci si aspetta di sapere esattamente dove è fermo il ciclo e qual è la causa.

Per diventare un programma completo quindi andrebbero implementati i comandi manuali e la diagnostica.

Comunque, direi che per il momento può andare bene.

Io ti consiglierei però, prima di dedicarti alla programmazione di cicli, di imparare a conoscere tutte le istruzioni: timer, counter, operazioni matematiche, registri a scorrimento, comparazioni, ecc.

Come esercizio (che implica l'utilizzo di timer) ti potrei consigliare l'automazione di un cancello scorrevole.

Hai a disposizione quanto segue:

--- Ingressi ---

- Finecorsa con contatto N.C. di cancello aperto

- Finecorsa con contatto N.C. di cancello chiuso

- Fotocellula con contatto N.C. per rilevare area libera

- Pulsante "Apre"

- Pulsante "Chiude"

- Pulsante "Stop" con contatto N.C.

--- Uscite ---

- Comando teleruttore "Apre"

- Comando teleruttore "Chiude"

- Lampeggiante

--- Funzionamento ---

- Se il cancello non è chiuso si deve richiudere automaticamente dopo 1 minuto

- Se viene impegnata la fotocellula mentre il cancello è in chiusura, si deve comandare l'apertura

- Se il cancello si sta chiudendo e si preme il pulsante "Apre", si deve comandare l'apertura

- Se il cancello si sta aprendo e si preme il pulsante "Chiude", si deve comandare la chiusura

- Il pulsante "Stop" arresta qualsiasi movimento

- Creare interblocco movimento apre/chiude

- L'inversione di movimento deve essere ritardata di 1 secondo

- Prima di iniziare qualsiasi movimento, si deve attivare il lampeggiante per 5 secondi.

- Il lampeggiante deve essere sempre attivo con manovre in corso, e si spegne con 3 secondi di ritardo

Per questo esercizio dovrai per forza imparare ad utilizzare i timer TON e TOF, e ad usare merker di appoggio. Se i timer sono più avanti nel libro che stai studiando, procedi con ordine nello studio e dedicati all'esercizio solo dopo che avrai esaurito l'argomento Timer.

Ti do un piccolo aiuto relativo ai merker di appoggio: quando comandi l'apertura non puoi attivare subito l'uscita, ma devi prima attivare il lampeggiante. Solo quando il lampeggiante è in funzione da 5 secondi potrai comandare l'apertura.

Il comando di apertura dovrà quindi attivare un merker che metterà in funzione il lampeggiante con effetto immediato, e l'apertura del cancello in ritardo.

Lo stesso discorso vale per la chiusura.

Vedrai che un'automazione semplice come quella in oggetto, in realtà, per chi è alle prime armi, così semplice non è.

Se non ti basta, quando avrai completato questo esercizio potrai passare all'automazione di un cancello a due battenti, tenendo presente quanto segue:

- un battente deve sempre iniziare l'apertura in ritardo rispetto all'altro, mentre in fase di chiusura si invertono le parti

- non ci sono finecorsa di cancello aperto/chiuso. Apertura e chiusura terminano a tempo

- le fotocellule sono due: una in linea con il cancello chiuso (che deve comandare l'apertura se viene impegnata con chiusura in corso) ed una fuori ingombro con ante aperte (che deve bloccare sia l'apertura che la chiusura)

Link al commento
Condividi su altri siti

Buongiorno batta.

Comunque, direi che per il momento può andare bene.

Sono contento, man mano miglioro un pochino.... :)

Io ti consiglierei però, prima di dedicarti alla programmazione di cicli, di imparare a conoscere tutte le istruzioni: timer, counter, operazioni matematiche, registri a scorrimento, comparazioni, ecc.

Si infatti, la migliore cosa è procedere con calma, adesso sto provando a fare gli esercizi a fine capitolo 4, non dovrebbero prevedere l'uso di cicli ed istruzioni che ancora non ho studiato e quindi dovrebbero essere alla mia portata, poi ho capito che inventarsi delle tracce porta sempre a problemi, in quanto si vanno a prevedere specifiche la cui risoluzione può portare a programmi complessi per le proprie capacità, dunque è meglio attenersi alle tracce di esercizi presenti sul libro.

Come esercizio (che implica l'utilizzo di timer) ti potrei consigliare l'automazione di un cancello scorrevole.

Nelle prossime settimane, inizierò a studiare i Timer (purtroppo ho anche esami a breve e posso dedicarmici solo nel tempo libero ai PLC) e sicuramente proverò a svolgere tale esercizio, postando poi una bozza di soluzione di seguito, ad ogni modo grazie per consigli/correzioni e pazienza avuta.

Link al commento
Condividi su altri siti

I miei complimenti per lo studio e la dedizione che stai dimostrando.

Oltre a ció, dimostri anche una serietà ed una umiltá nell'affrontare i problemi davvero lodevole. Spesso ci si imbatte molte volte in 'piccoli geni del plc' che snobbano le cose piu elementari reputandole superflue e superate. Ma avere le basi solide ed i piedi per terra significa aver maggiori probabilità di successo.

Continua cosi, studia per bene il libro( che peraltro sto leggendo pure io) e intervallalo sempre con esercizi pratici come stai facendo.

Con un atteggiamento come il tuo vedrai che qui troverai sempre aiuto

Link al commento
Condividi su altri siti

Ti ringrazio step-80, umiltà e voglia di imparare penso siano la base per potersi approcciare a nuove cose.

Spesso ci si imbatte molte volte in 'piccoli geni del plc' che snobbano le cose piu elementari reputandole superflue e superate. Ma avere le basi solide ed i piedi per terra significa aver maggiori probabilità di successo.

Ho dovuto constatare tra colleghi di università ed un pò in tutto l'ambiente, non capendone però il motivo, che la programmazione dei PLC sia quasi ritenuta una questione di serie B oppure troppo facile per un ingegnere :blink:, colleghi che si atteggiavano con "Reti di petri" che però non sanno mettere in serie due contatti, oppure che mi hanno snobbato quando gli ho detto che volevo imparare a programmare i PLC, perchè era interessante però non facilissimo, dicendo che loro non dovevano programmare ma progettare :blink: , ed io in mente mi chiedevo.... ma che vuoi progettare uscito da qui, se non sai neanche cos'è un contattore e non hai mai visto un PLC..... già è tanto se troviamo qualcuno che ci si prende a lavorare anzi penso sia più opportuno dire ci insegni qualcosa di concreto..... però purtroppo ognuno ha le sue convinzioni ed illusioni....

l libro( che peraltro sto leggendo pure io) e intervallalo sempre con esercizi pratici come stai facendo.

Ho acquistato tanti libri, ma quello del bergamaschi finora lo trovo uno dei migliori, quindi ho deciso di iniziare da quello e da qualche settimana sto studiando e provando a fare esercizi, anche se faccio tanti ORRORI incredibili.......

vedrai che qui troverai sempre aiuto

In poche settimane ho potuto constatare che il forum è pieno di persone competenti e molto pazienti......

Link al commento
Condividi su altri siti

Ho dovuto constatare tra colleghi di università ed un pò in tutto l'ambiente, non capendone però il motivo, che la programmazione dei PLC sia quasi ritenuta una questione di serie B oppure troppo facile per un ingegnere :blink:, colleghi che si atteggiavano con "Reti di petri" che però non sanno mettere in serie due contatti, oppure che mi hanno snobbato quando gli ho detto che volevo imparare a programmare i PLC, perchè era interessante però non facilissimo, dicendo che loro non dovevano programmare ma progettare :blink: , ed io in mente mi chiedevo.... ma che vuoi progettare uscito da qui, se non sai neanche cos'è un contattore e non hai mai visto un PLC..... già è tanto se troviamo qualcuno che ci si prende a lavorare anzi penso sia più opportuno dire ci insegni qualcosa di concreto..... però purtroppo ognuno ha le sue convinzioni ed illusioni....

Quanto affermi, purtroppo, è l'esatta immagine della situazione.

La programmazione di PLC è considerata roba da bassa manovalanza, soprattutto da chi ha studiato linguaggi più evoluti.

Peccato che questi signori non si rendano conto che la difficoltà non sta tanto nell'imparare il linguaggio di programmazione, ma nell'acquisire le conoscenze necessarie per creare un programma che funzioni.

Per programmare un PLC si deve seguire un approccio completamente diverso da quello per fare un qualsiasi programma con linguaggi dotnet e simili.

Infatti gli ingegneri che si mettono a programmare PLC, salvo rare eccezioni, almeno all'inizio combinano dei pasticci incredibili. Come tu dici, tirano fuori le "Reti di Petri" per far andare avanti e indietro un motore...

Senza contare che, troppo spesso, si trovano "Ingenieri" (l'errore è voluto) che non sanno nemmeno come si collega un sensore ad un ingresso del PLC.

Poi, per fortuna, ci sono anche ingegneri degni di questo titolo, ma molto difficilmente hanno meno di 35-40 anni, perché per fare esperienza serve tempo.

Io mi occupo sia di PLC che di supervisione, e posso garantire che, salvo rarissime eccezioni, la parte più difficile è la programmazione del PLC, e non lo SCADA.

Link al commento
Condividi su altri siti

Senza contare che, troppo spesso, si trovano "Ingenieri" (l'errore è voluto) che non sanno nemmeno come si collega un sensore ad un ingresso del PLC.

Poi, per fortuna, ci sono anche ingegneri degni di questo titolo, ma molto difficilmente hanno meno di 35-40 anni, perché per fare esperienza serve tempo.

Quante volte, ahimè, l'ho dovuto constatare di persona. Ragazzotti appena usciti dall'università (ed ai miei tempi ingegneria era solo quinquennale) che snobbavano tutto e tutti perchè loro credevano di avere "una cultura da sistemista", quando a malapena sapevano dare una definizione approssimativa di sistema.

Ed in genere tracotanza e arroganza sono inversamente proporzionali alla conoscenza ed anche all'intelligenza.

Poi ho conosciuto anche parecchi neolaureati che, consci della loro ignoranza, affrontavano il mondo del lavore con umiltà e buona volontà. Ovviamente la buona preparazione di base che accquisisci in un politecnico, unita alla buona volontà, ti portano ad individuare presto i problemi, a capire come affrontarli ed a superarli.

Per il vero problema della programmazione di un PLC è che o viene affrontato "alla spera in DIo", oppure si tenta di approcciarlo come si farebbe con un sistema di supervisione di "office autamation".

Io, provenendo dalla programmazione di microcalcolatori indistriali, ho sempre applicato i metodi della programamzione strutturata anche ai PLC.

Attenzione, la programamzione strutturata non è una mera questione di linguaggio, ma di organizzazione del programma.

Puoi fare programmi strutturati anche in AWL e, con un po' di impegno, anche in KOP.

L'importante è, come scrive Batta, capire cosa deve fare la macchina ed aver ben presente come lavora il PLC, poi le istruzioni si scrivono quasi in automatico.

Poi bisogna sempre tenere presente che più le cose sono semplici e più facilmente funzioneranno bene e più difficilmente avranno errori difficili da riconoscere. E' per questo che io non ho mai amato molto il mondo Sw Siemens, specialmente le loro librerie. Ma questo è tutto un altro argomento. ;)

Sembra che tu abbia capito quale sia il miglior approccio generale su come studiare. Continua senza scoraggiarti; qui un aiuto lo troverai sempre, anche perchè nel cercare di aiutare il prossimo spesso si incrementano anche le proprie conoscenze.

Modificato: da Livio Orsini
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...