Vai al contenuto
PLC Forum


Indirizzamento di moduli Analogici (cx programmer)


ObaOba97

Messaggi consigliati

Buonasera a tutti una domanda gentilmente..siccome ho iniziato da poco ad utilizzare cx programmer e quindi ad affrontare i PLC,avrei un problema con un esercizio che vi allego sotto..in poche parole si tratta di 2 motori che hanno senso di marcia differente,però sull'esercizio che vi ho allegato mi dice di attribuire i 500 punti agli 8 secondi, mentre a 0 punti i 2 secondi mediante la presenza di un potenziometro..il problema è che non capisco proprio da dove cominciare, dovrei per caso utilizzare questa funzione (allego foto) ? grazie mille a chi risponderà..

 

Il pulsante P2 avvia il motore M2 con funzionamento intermittente, con duty cycle variabile tramite un potenziometro. La fase off è fissa e dura 3 secondi. La fase on può variare da un minimo di 2 secondi a 8, in corrispondenza della regolazione minima e massima del potenziometro, collegato a un ingresso analogico del PLC con risoluzione 500 punti.

FB_IMG_1556552196611.jpg

Link al commento
Condividi su altri siti


Marco Fornaciari

Onestamente non si capisce da dove parti e dove devi arrivare, cortesemente spiegati meglio, magari con un diagramma.

Poi che CPU è?

Non sono tutte uguali, nella specie le compatte possono avere istruzioni/variabili specifiche. Nello specifico non ricordo nessuna risoluzione a 500 punti.

Link al commento
Condividi su altri siti

Essendo un esercizio, non credo sia legato a una CPU (e neppure al software di programmazione). Inoltre, non c'entra nulla l'indirizzamento del modulo analogico, qui è solo un problema di scalatura.

Cioè, dovrai farti una scala tua dove al valore 0 in ingresso corrisponde a 2s di temporizzazione, mentre il valore 500 corrisponde a 8s. Così almeno ho capito io.

Bene, dato quanto sopra, il tuo campo di risoluzione è di 6s (8-2) per una variazione da 0 a 500 dell'ingresso. Sarebbero 501 punti, ma preferirei fare da 0 a 499 che sono 500, per semplicità.

Quindi, per ogni unità di valore in ingresso corrisponde a 6/500=12ms. Pertanto, per avere il valore del tempo in secondi da impostare a seconda del potenziometro, avrai la formula:

Tempo = 12*(Valore)+2000, dove il 2000 sono i ms corrispondenti ai 2s di base della scala. Se provi, avrai 2000ms con valore 0 (2s) e 8000ms con valore 500 (8s).

Il come implementarlo è un po' diverso e dipende dalla CPU. Supponiamo di avere una CP1. Supponiamo di usare i timer in decimale (istruzione TIMX) e se si vuole usare la temporizzazione in ms, in particolare la TIMHHX (valida solo per i temporizzatori da 0 a 15).

A questo punto, avendo il valore letto dall'analogica in Valore, dovrai fare una moltiplicazione e una somma per avere il tuo Tempo , attenzione che una moltiplicazione di valori a word (16bit) dà un risultato a doppia word (32bit). Quindi una volta calcolato il Valore lo metterai in un timer TIMHHX.

Quindi farai la logica di controllo del motore con un altro valore fisso (3s) dove potrai usare un normalissimo TIMX e un semplice "circuito" on/off con due temporizzatori.

 

Io almeno l'ho capita così, ed eseguita come un esercizio.

Link al commento
Condividi su altri siti

Marco Fornaciari

Se è un problema di scalatura, le funzioni ci sono già, per es. una è APR (che se la impari non la molli più), quindi le varie SCL.

Quindi i temporizzatori in decimale lavorano con dati UINT, per cui 0-65535.

In ogni caso anche se è un esercizio, ma poi deve essere inserito in una CPU o solo simulato, bisogna segliere la CPU del progetto, quindi usare le giuste istruzioni.Tenendo pure presente che non tutte le funzioni funzionano con il simulatore.

 

P.s.

Parere personale

Se poi chi propone gli esercizi  usasse dati reali, magari i futuri programmatori escono più pronti e smaliziati. E non semplici teorici.

Link al commento
Condividi su altri siti

Marco Fornaciari

Si però, un momento ...

noi esperti siamo qui a dare indicazioni su istruzioni e metodi di programmazione, ma in realtà al nostro collega furumista cosa hanno insegnato, oppure ha imparato, fino a oggi?

Gli avranno insegnato, o ci deve arrivare da solo, a calcolare i decimali usando solo interi?

E tempi base dei temporizzatori?

Qui prima di trovare la soluzione con un tipo di PLC Omron (per altri la soluzione può essere, ovvero è, diversa) c'è da lavorare di matematica.

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