Jump to content
PLC Forum


markolino

Timer e variabili

Recommended Posts

markolino

Ciao a tutti,

vi disturbo per una domanda su PLC omron serie CP1H.

Per pura passione mi sto cimentando con qualche esperimento guardando video qua e là per documentarmi un pò su questo tipo di PLC.

Sto facendo prove per utilizzare timer, contatori e quant'altro...ma in particolare non riesco a capire come utilizzare i timer con le variabili...

Mi spiego:

TIM 0 #150    mi prepara un bel timer di 15s.   E fino a qui nessun problema.

 

La mia difficoltà è nel capire come mettere quei 15s dentro un'area di memoria, che un giorno magari sarà settabile da un pannellino...Non riesco a fargliela digerire.

Volevo quindi utilizzare qualcosa come l'area di memoria D, ma es.  se dichiaro una D100 di tipo intero e gli assegno un valore, passandola poi al timer (al posto di #150) ovviamente la cosa non funziona.

 

Gentilmente, potreste darmi una mano ?

Grazie infinite

Share this post


Link to post
Share on other sites

Nicola Carlotto

dm 10= set del tempo nel touch screen

 

se imposto dm10 = 10 secondi nel mio plc  eseguo  dm10 x 10 e lo appoggio per esempio su dm 50 , converto d50 in bcd e lo metto in d100 , usero' dm 100 come base tempi per il temporizzatore .

 

ciao

image.thumb.png.a59e47c97d8776d97664f8cc08919be9.png

Share this post


Link to post
Share on other sites
Ctec

Per usare i timer con un dato in decimale (INT o UINT) al posto di un BCD (UINT_BCD), basta usare l'istruzione TIMX, per il resto identica alla TIM.

La seconda è stata mantenuta per compatibilità col passato (serie C e anche prima), ma è stata aggiunta la TIMX proprio per questo.

Altro sistema è mantenere la TIM e mettere nel dato un valore BCD impostando la variabile del pannello per tale notazione.

Share this post


Link to post
Share on other sites
markolino

Grazie per le risposte.

@Nicola: ho provato lo schema che mi hai postato e funziona.

Dubbio:

nella moltiplicazione, potresti spiegarmi perché la d10 devo moltiplicarla per &10 e non semplicemente per 10?

Dovrei dichiarare la D10 come intero per moltiplicare * 10 ?

 

@Ctec: grazie per la segnalazione. Nella CP1H è utilizzabile la TIMX ? Nel manuale la trovo, ma se scrivo in ladder TIMX 00 &10 non prende l'istruzione...

 

Grazie infinite.

Edited by markolino

Share this post


Link to post
Share on other sites
Ctec
59 minuti fa, markolino scrisse:

perché la d10 devo moltiplicarla per &10 e non semplicemente per 10

Perché in Omron un numero senza nulla davanti è un indirizzo, cioè se scrivi 10 non è il numero, ma la word CIO10 (ingressi/uscite), quindi moltiplicherà per un valore che è contenuto in tale word.

 

Per attivare la modalità binaria nei CP, devi andare nella colonna del progetto a sx, tasto destro sull'icona del PLC, seleziona Proprietà: metti la spunta sull'ultima voce in basso "Esegio temporizzatore/contatore come binario". E consiglio sempre di togliere la spunta a "Mostra stato backup memoria PLC" se fate editazione in linea...

Share this post


Link to post
Share on other sites
markolino
30 minuti fa, Ctec scrisse:

Perché in Omron un numero senza nulla davanti è un indirizzo, cioè se scrivi 10 non è il numero, ma la word CIO10 (ingressi/uscite), quindi moltiplicherà per un valore che è contenuto in tale word.

 

Per attivare la modalità binaria nei CP, devi andare nella colonna del progetto a sx, tasto destro sull'icona del PLC, seleziona Proprietà: metti la spunta sull'ultima voce in basso "Esegio temporizzatore/contatore come binario". E consiglio sempre di togliere la spunta a "Mostra stato backup memoria PLC" se fate editazione in linea…

 

Ah ok, quindi &10 in realtà è il numero intero 10.

Grazie mille, molto gentile :)

Share this post


Link to post
Share on other sites
markolino

Scusate ma già che ci sono vi chiedo un ulteriore conferma.

In Omron ogni D è una word giusto ? E sono accessibili solo come tali.

Cioè in D10 ho 16 bit ,  che sono indipendenti dalla D11 .   

Perdonatemi se sembrano domande banali, ma vorrei evitare pasticci di overflow :)

 

Grazie

Share this post


Link to post
Share on other sites
Ctec

Tutti i dati base in Omron (come anche in Mitsubishi) sono a word (16bit), anche i canali di I/O sono a 16bit.

Sostanzialmente non esiste l'indirizzamento al byte, se non con particolari istruzioni.

Sui CP l'area D non è accessibile al bit, mentre sui CJ si può fare.

Share this post


Link to post
Share on other sites
markolino
il 12/9/2019 at 07:35 , Ctec scrisse:

Tutti i dati base in Omron (come anche in Mitsubishi) sono a word (16bit), anche i canali di I/O sono a 16bit.

Sostanzialmente non esiste l'indirizzamento al byte, se non con particolari istruzioni.

Sui CP l'area D non è accessibile al bit, mentre sui CJ si può fare.

Grazie mille :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...