Vai al contenuto
PLC Forum


Istruzioni Di Cpm1 30cdr


curcelli

Messaggi consigliati

Ciao a tutti, dopo diversi tentativi sono riuscito a visualizzare sul pc i movimenti dell'encoder collegato sull'ingresso 000. Con l'istruzione PRV riesco a leggere i valori dell'encoder ma non riesco a capire per esempio come devo fare per attivare un'uscita o un contatto raggiunto un certo valore con l'encoder. Ho provato a prendere in esempio alcune applicazioni che sono riportate sul manuale ma senza avere alcun risultato! C'è qualcuno che può darmi una mano?

Ciao a tutti

Link al commento
Condividi su altri siti


Devi utilizzare l'istruzione CMP che permette di controllare il valore con uno di riferimento.

Influisce sullo stato di tre flag interni:

255.5 = maggiore

255.6 = uguale

255.7 = minore

Link al commento
Condividi su altri siti

Esiste un istruzione dedicata alla gestione del conteggio veloce che si chiama CTBL. Ti permette di registrare valori o range di valori e di eseguire una subroutine quando il conteggio li raggiunge. Il vantaggio rispetto alla soluzione suggerita da bitstop è che lavora in modo indipendente dal tempo di scansione. Sul manuale di programmazione del PLC trovi la spiegazione su come usarla e anche qualche esempietto.

BUon lavoro! ;)

Modificato: da edogol
Link al commento
Condividi su altri siti

Ciao, edogol ho già preso in esempio la funzione ctbl, seguita dalle funzioni di sottoprogramma: sbn e ret ma quando il valore impostato nella dm corrispondente alla sbn viene raggiunto dall'encoder come devo fare per esempio ad attivare un contatto normalmente aperto? Infatti sul manuale sono riportati vari esempi ma quando il valore dell'encoder che leggo tramite l'istruzione prv raggiunge il valore impostato nella dm di una certa sbn dovrei vedere per esempio la variazione di un contatto da me precedentemente destinato da on a off o viceversa, ma non sò come fare anche perchè sul manuale non è specificato.

Link al commento
Condividi su altri siti

Ciao edogol hai ragione, sono riuscito a mettere in pratica l'esempio che mi ha fatto bitstop, praticamente ho fatto si che raggiunto il valore impostato in cmp diventasse on il bit di reset 25200 tramite il flag 25506, ed ho notato che la frequenza dell'encoder riusciva a ignorare il tempo di scansione e il valore oltrepassava il limite da me impostato! Come posso fare a realizzare qualcosa di simile con l'istruzione ctbl?

Gradirei qualche esempio pratico visto che sono un autodidatta, se poi hai qualche esempio di programmazione in ladder in proposito mi faresti un grande piacere!

Comunque grazie a tutti!

Link al commento
Condividi su altri siti

Ciao, io faccio così:

- encoder collegato in 00000 (A) 00001 (B) 00002 (Z)

- DM6642 = X (vedi manuale)

- 25313 . MOV(21) . 248 . DM0

- 25315 . INI(61) . 000 . 002 . DM0

- 25313 . BCMP(68) . DM0 . DM10 . HR0

- XXXXX (00002) . 25200

quando DM0 è compresa tra DM10 e DM11 si alza HR000

quando DM0 è compresa tra DM12 e DM13 si alza HR001

quando DM0 è compresa tra DM14 e DM15 si alza HR002 ecc ecc

Le DM pari devono essere inferiori alle DM dispari

Spero di esserti stato d'aiuto.

ELEL65

Link al commento
Condividi su altri siti

Se la tabella utilizzata dalla CTBL è corretta, quando il conteggio raggiunge il primo valore impostato viene eseguita la subroutine associata.

Ad esempio, se nella subroutine metti un contatto sempre on (P_On) che incrementa un DM (INC DM0) vedrai il valore del DM che si incrementa ogni volta che raggiungi quel valore.

(Per mettere il bit a ON e a OFF alternativamente metti il contatto Sempre On in serie all'uscita negata del bit)

PS: Non ho esempi 'semplici' da postare :o

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