Vai al contenuto
PLC Forum


Uscite Analogiche Omron E + - 10V


lostdog

Messaggi consigliati

Ciao a tutti.

Mi trovo a dover lavorare su un plc omron CJ1.

Arrivo da Codesys con Wago, e devo dire che il passaggio è stato estremamente deludente.

Ho preso un semplice programma scritto in codesys, dove faccio un po' di calcoli matematici.

Siccome era tutto scritto in blocchi funzione in ST, ho scritto dei blocchi funzione copiando dentro quello che avevo scritto in codesys... Disastro! CX programmer non accetta il casting implicito verso variabili di tipo più ampio, devo dichiarare tutto e fare casting esplicitamente.

E fin qui ok, mi son rassegnato e l'ho fatto...

Ma ora devo scrivere su una uscita analogica MAD42, e devo uscire con + - 10V.

Altro disastro. il mio bellissimo valore di tipo INT che esce dal blocco funzione non ha nessun effetto sull'uscita..

Ho scoperto che se lo converto con la funzione BIN finalmente il valore di tensione in uscita cambia, ma... Solo in positivo. I valori negativi non vengono considerati.

Che cosa devo fare?

Ringrazio anticipatamente chi mi aiuterà

Ciao

Modificato: da lostdog
Link al commento
Condividi su altri siti


Tutto settato (credo).

Ho usato tutta la mia pazienza per impostare le schede di I/O.

La domanda é: quale tipo di dati devo scrivere nell'uscita per avere tensioni negative?

Quale tipo di dati devo assegnare all'uscita quando la dichiaro nei simboli?

Link al commento
Condividi su altri siti

Beh una volta che hai compilato la I/O table tu hai identificato il tuo canale di uscita.

A quel punto se scrivi un valore compreso tra -4000 e 4000 ed abiliti il canale la scheda deve darti il segnale....

Mi rendo conto che la sto facendo troppo semplice ma a casa non ho nulla e l mad42 l'ho anche usata poco poco...

Se non risolvi prima vedo domani in ufficio di guardare qualcosa.

cordialmente

Link al commento
Condividi su altri siti

Ho fatto altre prove, ma niente.

Uso l'istruzione BIN e converto un valore INT scrivendolo su una uscita fisica, ma non vuole funzionare.

Vedo la variabile in ingresso che cambia i suoi bei valori positivi e negativi, ma in uscita all'istruzione, sull'uscita fisica, solo valori positivi.

Quando faccio entrare valori negativi, nel blocco dell'istruzione sull'uscita vedo sempre zero. e ovviamente la tensione in uscita è zero.

Probabilmente è sbagliata l'istruzione BIN, ma cosa devo usare allora?

Se scrivo direttamente non va nemmeno in positivo...

Link al commento
Condividi su altri siti

Supposto che tu abbia il selettore module number = 0, dovrebbe essere sufficiente alzare il bit "abilita conversione" bit0=uscita1, bit1=uscita2 alla cio2000 e scrivere il valore alla cio2001(uscita 1) o alla cio2002 (uscita 2) per avere in uscita un valore valido. Se la scheda è settata per lavorare a 4000 p.ti il valore (INT) deve essere tra -2000 e +2000, se lavori a 8000 p.ti dovrà variare tra -4000 e +4000.

Non serve usare l'istruzione BIN basta copiare il valore con un MOV a meno che l'uscita del tuo blocco non punti direttamente alla cio2001(o 2002).

Link al commento
Condividi su altri siti

Stamattina ho provato a utilizzare nuovamente l'istruzione MOV, che già avevo usato inizialmente, non funzionava ed ero passato alla BIN.

Beh, sorpresa... Stamattina funziona!

Restano comunque degli interrogativi aperti (del tipo: perchè prima non funzionava e ora si?).

Vi faccio perdere ancora un po' di tempo con una domanda che non ha trovato una risposta chiara nei manuali omron (che son tanti, tutti simili e tutti diversi, e proprio nelle piccole differenze tra uno e l'latro si trovano le informazioni più utili).

- quando dichiaro nella tabella dei simboli una uscita analogica, quale tipo di dati devo utilizzare? Questo tipo di dati cambia a seconda che l'uscita sia 0-10V oppure +-10V?

- quando uso l'istruzione MOV per scrivere un valore analogico in una uscita analogica (es. MOV variabile_INT variabile_uscita_fisica_CHANNEL) quali tipi di dati posso effettivamente muovere? Nel caso attuale sto muovendo un dato INT in una uscita dichiarata come CHANNEL. Ma l'ho fatto a tentativi...

Temo che tornerò qui a fare altre domande, questo plc (CJ1M) e soprattutto il sistema di sviluppo (CX Programmer 9.03) mi stanno dando davvero un sacco di problemi.

Per adesso ringrazio quanti hanno risposto alle mie domande precedenti e quanti risponderanno a quelle di questo messaggio.

Buon lavoro

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao

ingressi ed uscite analogiche nascono come valori esadecimali e nel caso di uscite a 4000 punti corrispondono quindi a un valore da 0000 a 0FA0 dove 0000 corrisponde al tuo valore minimo di uscita (che sia in corrente o tensione) e 0FA0 (senza tene re conto del range che ti viene dato in più) al valore massimo.

In pratica per lavorare è importante che tu fornisca in uscita un valore tra 0 e 4000 magari fornito all'uscita di una SCL nel caso vuoio convertirlo da una unita di misura più "comoda".

Buona giornata

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