Vai al contenuto
PLC Forum


HPLC: Demo In Ladder


east71

Messaggi consigliati

Buonasera

Premetto che dopo circa tre anni che seguo il mondo HPLC solo adesso cerco di capire come si programma. In questi giorni sto cercando di valorizzare i progetti di esempio del ladder per poi metterli in pratica con il mio primo progetto.

Oggi ho provato a capire il funzionamento del controllo carichi.

Mi sono già fermato al primo esempio, dove la prima parte penso di averla capita - un comparatore leggeva il valore del modulo e lo comparava con 0.8 A, qualora il valore letto era maggiore l’uscita era attiva e veniva creata un bit che accusasse tale situazione -.

Mentre al rung successivo mi sono perso.

1. A cosa servono i contatti NC inseriti (Flag1 e Carico 300mA)?

2. Perché l’avviso viene detto ritentivo se la word del flag1 è ritentiva?

3. Che differenza c’è tra MX e MW?

4. Ma il display 36 del master 3 non è MW315?

5. Cosa significa avviso nr. 16

Scusatemi per le tante domande, ma penso che le risposte possano servire anche per tantissimi altri utenti che si vogliono avvicinare al fantastico mondo dell’HPLC.

Grazie

Alla prossima

Link al commento
Condividi su altri siti


del_user_56966
3. Che differenza c’è tra MX e MW?

partirei da questa che è la più importante visto che fa parte dello standard IEC

con MW si legge e si scrive un valore analogico 0-65535 che è la somma dei singoli valori booleani dei bit che compongono la word stessa

quindi usando la dizione MW non leggo un singono bit della word ma la somma dei valori di tutti i bit attivi in quel dato momento...

esempio.... se prendo la %MW1000 e in questa sono attivi i primi 4 Bit mentre gli altri sono a zero avrò..

Bit 0 = True (valore 1)

Bit 1 = True (valore 2)

Bit 2 = True (valore 4)

Bit 3 = True (valore 8)

Bit 4-15 = False (tutti con valore 0)

il valore della Word corrisponde alla somma del peso booleano dei bit attivi.... 1+2+4+8 = 15 cosi anche il valore letto tramite %MW1000 = 15

se al contrario voglio leggere e scrivere un singolo Bit della Word devo usare la dizione %MX1000.x dove X sta appunto per elaborazione digitale e non analogica della word...

si potrà quindi usare solo i valori vero/falso, true/false, 1/0, ecc..

se per esempio tramite l'uso di %MX1000.2 = False metto a zero il Bit 2 della word 1000 il risultato di lettura del valore della word precedente cambia cosi...

Bit 0 = True (valore 1)

Bit 1 = True (valore 2)

Bit 2 = False (valore 0)

Bit 3 = True (valore 8)

Bit 4-15 = False (tutti con valore 0)

il valore della Word corrisponde alla somma del peso booleano dei bit attivi.... 1+2+0+8 = 11 cosi anche il valore letto tramite %MW1000 = 11

questo tipo di elaborazione a bit è molto potente perché si può applicare a tutta l'area di lavoro dell'HomePLC ed è talmente standard da poter essere usato anche in altri linguaggi

oltre al Ladder, cosi come si fa già tramite HomePLC.Linux tramite Java, PHP ecc...

Link al commento
Condividi su altri siti

del_user_56966

mentre riguardo allo specifico esempio di codice in ladder....

1. A cosa servono i contatti NC inseriti (Flag1 e Carico 300mA)?

servono a tagliare l'alimentazione alla logica successiva.....quando viene eseguita quella che li attiva...

per esempio una volta che il flag di esubero carico si attiva trova Flag1 negato e quindi può attivare il messaggio 16 sul display...

fatto ciò dopo un ritardo eseguito dalla linea di ritardo (Delay) si attiva Flag1 e la logica d'invio del messaggio viene inibita...

4. Ma il display 36 del master 3 non è MW315?

5. Cosa significa avviso nr. 16

Il display M3-36 ha 1 primi 15 messaggi nella prima word ma il messaggio 16 è il primo della seconda word... ovvero la %MW316

il display è l'unico modulo che non usa l'area estesa quindi occupa tanti indirizzi fisici quanti sono i messaggi da inviare... (16 messaggi per ogni indirizzo occupato)

2. Perché l’avviso viene detto ritentivo se la word del flag1 è ritentiva?

forse intendi la R contenuta nel Coll di uscita?

in quel caso si intende che è un Coil di Reset

Link al commento
Condividi su altri siti

Grazie Aleandro preciso e tempestivo come sempre.

Le prime due risposte mi sono chiare, mentre le succevie due non tanto:

Il display M3-36 ha 1 primi 15 messaggi nella prima word ma il messaggio 16 è il primo della seconda word... ovvero la %MW316

il display è l'unico modulo che non usa l'area estesa quindi occupa tanti indirizzi fisici quanti sono i messaggi da inviare... (16 messaggi per ogni indirizzo occupato)

ma il 16 messaggio non fa parte della prima word?

Perché l’avviso viene detto "non" ritentivo se la word del flag1 è ritentiva?

...ma con la risposta che mi hai dato probabilmente ho capito comunque...la R resetta il msg

Link al commento
Condividi su altri siti

del_user_56966
ma il 16 messaggio non fa parte della prima word?

No! la pagina zero è la HomePage quindi non è attivabile tramite un coil... il bit 0 serve quindi per eseguire il reset degli allarmi da Ladder

se vedi sull'_Help c'è anche la grafica con l'esempio in ladder... (in quel caso è usato il bit %MX217.0)

quindi nella prima word/indirizzo le pagine utilizzabili sono 15 e la sedicesima corrisponde al primo bit del secondo indirizzo...

cosi come in ingresso i primi 4 bit (0-3) sono i pulsanti mentre dal bit 4 si può leggere se la pagina corrispondente è attiva...

cosi se il bit 4 è attivo significa che il display sta mostrando la pagina 4.... vedi che non fa una grinza!... :lol:

...ma con la risposta che mi hai dato probabilmente ho capito comunque...la R resetta il msg

la R su un uscita significa che questa esegue il Reset di quel Bit che può essere messo invece a SET dall'altra funzione .......---|S|---

in un programma non si possono utilizzare più volte le stesse uscite se queste non sono di Set o di Reset

per questo la IDE ogni volta che usi una risorsa di uscita doppia da un messaggio del tipo... "Attenzione la risorsa è già utilizzata"

se appare questo messaggio il programmatore deve fare mente locale e capire se la logica già scritta può andare in contrasto con quella che sta scrivendo in quel momento...

per esempio se io scrivo l'uscita %QX0.0 tramite un Timer all'inizio del programma...

e poi uso nuovamente la risorsa %QX0.0 nello svolgimento del programma.... sicuramente il mio Timer non riuscirà ad utilizzare l'uscita perché questa viene sovrascritta

nei Rung successivi...

Nel ladder vince sempre l'ultima istruzione scritta... quindi se anche manovro 500 Set di un uscita ma in fondo al programma ho un Reset della stessa

il valore scritto sugli I/O sarà sempre un False!... ;)

Modificato: da Aleandro2008
Link al commento
Condividi su altri siti

  • 2 weeks later...
  • 1 month later...

Salve ritorno sull'argomento.

L'esempio indica un valore letto dal modulo inserito sull'ingresso 1 e confrontato con un valore impostato, ad esempio 0,8 A, sull'ingresso 2. Con QLF = 4, se l'ingresso 1 supera i 0,8A si attiva l'uscita. La mia domanda è la seguente, ma facendo riferimento ad un impianto monofase a 3 KW, qual'è il valore che non devo superare?, visto che il modulo viene messo a monte? Devo riferirmi alla formuna A= W/V*cos_fi, con cos_fi= a 0,9 . In questo caso A è all'incirca 16 A

grazie

Link al commento
Condividi su altri siti

  • 2 years later...

Salve volevo riprendere l'argomento perchè sto modificando alcune pagine di un display DSP però non riesco a leggere i bit delle pagine attive, o meglio la pagina deve essere settata con il coil set oppure fino a che il display ha la pagina attiva dovrei in ladder trovarmi il bit corrispondente alto? grazie

Link al commento
Condividi su altri siti

del_user_56966

per prima cosa controlla l'aggiornamento del display..

visto che i primi 4 ingressi sono i pulsanti F1-F4 mi pare che la pagina attuale parta solo dalla 5....

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