Vai al contenuto
PLC Forum


consigli sul mio programma in ladder per controllo serbatoio


famas

Messaggi consigliati

 

Buongiorno,

sto iniziando a programmare in ladder seguendo i vostri consigli e la sezione didattica.

Ho scritto un programma per gestire una paratia in base al livello del liquido presente nel serbatoio.

Nel pdf allegato oltre al codice ci sono alcuni commenti sul funzionamento.

Mi dite cortesemente se sto procedendo correttamente o se ci sono parti che potrei scrivere meglio?

Esercizio_ladder_controllo serbatoio

Chiedo solo un voto non altro :)

 

Grazie

 

Link al commento
Condividi su altri siti


Ok, forse messa così è un po' troppo generica la richiesta....

Provo ad andare per gradi: gestione anomalie.

Qual'è una buona norma da seguire nel considerare le eventuali anomalie in modo da bloccare l'azionamento in caso di guasti?

Mi spiego meglio: nel mio caso non possono accendersi due contatti dello stesso sensore contemporaneamente per specifica ed ho inserito un allarme nel caso si verifichi questa situazione. Poi però ho pensato che un'altra anomalia potrebbe essere che, per un guasto di un fine corsa ad esempio, potrebbe non attivarsi un fine corsa intermedio tra due posizioni.

Parlando più in generale su n ingressi in genere solo alcune combinazioni sono possibili dipendenti anche dallo stato nel quale mi trovo.

Se considero tutte le possibili combinazioni devo scrivere più codice per considerare tutti i possibili guasti che per l'azionamento vero e proprio.

Devo procedere in questo modo o sono troppo "paranoico" ? 

Chiaramente posso operare al contrario: in base allo stato nel quale mi trovo se mi aspetto un evento e se ne verifica un altro ho un errore.

Poi si pone il problema di come comunicarlo: se ho una text box posso scrivere un messaggio diverso per ogni errore ma se ho solo spie non posso far accendere un spia per ogni tipo di anomalia. 

Qualche suggerimento? 

Link al commento
Condividi su altri siti

non entro nel merito del programma perchè dovrei caricarlo e testarlo, non si può e non avrei il tempo ...

riguardo la gestione degli errori spesso questa rappresenta la parte più corposa del programma,

 

l'elemento più importante è il danno che puoi causare in caso di errore ed agire di conseguenza,

quindi in primis la sicurezza alle persone e poi a seguire tutto il resto ...

 

per esempio in caso di ...attivare delle procedure che riportino il sistema in sicurezza,

oppure bloccare completamente il sistema obbligando qualcuno a verificarlo per poi resettarlo tramite pulsante,

altre volte è il gestore/cliente che ti chiede di implementare allarmi specifici ..

insomma non c'è una regola ma tanto buon senso :)

 

e poi non preoccuparti, non sarai mai paranoico abbastanza :roflmao:

ciao

Link al commento
Condividi su altri siti

Grazie mille Water, 

la tua conferma sul fatto che la gestione degli errori rappresenta la parte più corposa degli errori mi conforta.

Riguardo il programma provo a porre un altro quesito. 

Diversamente dall'esempio che ho allegato un sensore di livello attiva in progressione le sue uscite man mano che l'acqua sale (e non una sola corrispondente al livello).

Per semplificare l'algoritmo in fase di controllo pensavo di gestire a parte gli ingressi del plc in modo da far corrispondere ad ogni livello del liquido una sola memoria attiva: è corretta questa impostazione?

Un'alternativa potrebbe essere quella di considerare gli ingressi della sonda di livello nel loro insieme come un byte in modo da utilizzare poi il numero corrispondente nella logica di controllo.

Che ne pensate? 

Grazie a tutti per i preziosissimi consigli.

Link al commento
Condividi su altri siti

.. ma gestire semplicemente gli ingressi non sarebbe più semplice?

non è chiaro che tipo di sonda stai usando e quanti sono questi contatti che si chiudono al raggiungimento del livello,

come non è chiaro cosa vuol dire ... gestire a parte usando una sola memoria attiva?!?

parli poi di usare la gestione in byte .. ma chi la costruisce, la sonda (non penso) oppure il PLC (sicuramente)?

a questo punto si ritorna alla prima riga :P

 

Link al commento
Condividi su altri siti

Ciao Water,

grazie intanto per la risposta.

Ammetto di non essere stato abbastanza chiaro, il primo punto è?

Il sensore di livello misura 4 livelli di liquido ed ha 4 uscite.

Serbatoio vuoto -> tutte le uscite a 0

primo livello -> 1a uscita a 1 le altre a 0

secondo livello -> 1a e 2a uscita a 1 le altre a zero

....

quarto livello -> tutte e quattro le uscite a 1

poichè nel programma devo controllare a che livello si trova il serbatoio e prendere azioni diverse dovrei, per ogni network del ladder controllare tutti e 4 gli ingressi.

ho pensato allora di farlo solo ad inizio programma in questo modo:

-|\|--|\|--|\|--|\|--------()- M0

-| |--|\|--|\|--|\|--------()- M1

-| |--| |--|\|--|\|--------()- M2

......

così poi nel programma ho che a ciascuna memoria (da M0 ad M4) è associato un diverso livello, ha senso?

 

 

 

Link al commento
Condividi su altri siti

certo che ha senso, si fa anche così ...

poi per ogni stato prenderai le opportune decisioni,

tieni sempre presente che la scelta migliore .. è quella che funziona!!! :superlol:

 

se vuoi essere più chiaro evita di "chiamare memoria attiva" quello che poi è solo un bit d'appoggio,

definito solitamente merker, cioè un bit che non ha un collegamento fisico con gli ingressi/uscite del PLC,

e serve sostanzialmente all'elaborazione del programma .. un bit d'appoggio appunto :P

ciao

Link al commento
Condividi su altri siti

Grazie ancora Water, 

anche per i consigli sul corretto uso dei termini.

Per quanto riguardo il bit / byte il programma che uso utillizza M0, M1 .. M15 per i bit e WM0 per indicare la word da M0 a M15 (almeno così sembra)

Ciao

Link al commento
Condividi su altri siti

scusa, chissà perchè ho dato per scontato che usassi Codesy oppure un'altro programma .. strutturato,

i questi casi i bit sono sempre preceduti dal punto oltre che al riferimento allocazione di memora,

probabilmente stai usando un microPLC tipo Zelio, Logo o similari .. che programma usi?

ciao

Link al commento
Condividi su altri siti

Figurati,

si infatti in codesys ho visto la notazione che indicavi (raspberry e plc wago)

a casa mia ho uno zelio ma l'ho programmato in fbd e non ricordo di aver usato variabili

ora sto usando il winproladder per i plc fatek

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...