Vai al contenuto
PLC Forum


Puntatori


riomario2005

Messaggi consigliati

Ciao a tutti vorrei qualche consiglio sull`utilizzo dei puntatori con i PLC omron (Serie CJ).

Per l`esattezza vorrei sapere come creare un puntatore ad un ingresso fisico. Per le uscite ho risolto con l`istruzione OUTB, ma se avete qualche consiglio migliore ben venga.

Link al commento
Condividi su altri siti


A cosa ti serve un puntatore ad un gresso fisico?

Se vuoi verificare lo stato dell'ingresso 0.0 basta che usi un contatto normalmente aperto ,o nromalmente chiuso, nel programma.

Da CX-Programmer per aggiungere un contato normalmente aperto nella posizione in cui è il cursore premi il tasto "c".

Idem per le uscite, invece di usare l'istruzione OUTB puoi usare una bobina di sucita normale.

Da CX-Programmer per aggiungere una bobina di uscita nella posizione in cui è il cursore premi il tasto "o".

Spero di non aver interpretato male la tua domanda.

Ciao.

Link al commento
Condividi su altri siti

Per creare un puntatore ad un ingresso fisico in omron CJ bastano le seguenti righe:

LD P_On
MOVR(560) 0.00 IR0
LD P_On
MOV(021) &7 DR0
LD DR0,IR0
OUT W0.00

In questo esempio:

- Carico l'indirizzo fisico della locazione 0.00 nel registro di indirizzo IR0 tramite l'apposita istruzione MOVR

- Carico il valore 7 nel registro di spiazzamento DR0 tramite una semplice MOV

- Copio il bit indirizzato dall'associazione dei due precedenti registri (nella forma <registro di spizzamento>,<registro di indirizzo> ) nel bit interno W0.00

In questo esempio l'indirizzo copiato sul bit interno è lo 0.07.

Con lo stesso modo puoi indicizzare qualsiasi area disponibile a bit della CPU (inputs, Outputs, area W, etc.), dipende da che bit passi in ingresso all'istruzione MOVR.

Ciao.

Link al commento
Condividi su altri siti

Ok grazie mi e` stato molto utile.

L` utilizzo dei puntatori mi serve per realizzare una procedura indicizzata di controllo assi.

Link al commento
Condividi su altri siti

Ciao Volevo chiederti un`altra curiosita` se l`indirizzo dell` ingresso ed il suo spiazzamento sono contenuti in una word per es del Banco E0 cambia qualche cosa?

Es MOVR E10, IR0 dove in E10 ho &0 MOV E12, DR0 dove in E12 ho &7.

Ottengo sempre il puntatore all`ingresso 0.07?

Ciao grazie.

Link al commento
Condividi su altri siti

A lavorare a bit in quel modo non ho mai provato sinceramente, ma secondo me in quel caso se va bene ti prende il settimo bit della word E0, oppure il bit 0 della word E7 (E0 + spostamento di 6) in quanto è il dato che passi alla MOVR che discrimina l'area.

Es.: se passi alla MOVR il dato 0.00 (come nell'esempio precedente) lui memorizza la locazione fisica del primo bit del canale IR, se ci passassi W0.0 prenderebbe la locazione fisica del primo bit dell'area W.

Passandoci una DM (o un EM come nel tuo caso) dovrebbe prendere l'indirizzo fisico della word, ma non so come si comporti facendo poi una richiesta a bit....

Scusami se non ti riesco a dare più informazioni, ma il puntamento a bit l'ho usato solo per un'applicazione ormai 3 anni fa e lavoravo solo sull'area W.

Ciao

Link al commento
Condividi su altri siti

Ciao Volevo chiederti un`altra curiosita` se l`indirizzo dell` ingresso ed il suo spiazzamento sono contenuti in una word per es del Banco E0 cambia qualche cosa?

Es MOVR E10, IR0 dove in E10 ho &0 MOV E12, DR0 dove in E12 ho &7.

Ottengo sempre il puntatore all`ingresso 0.07?

No, punterebbe alla word E17. Come ha detto Cover è quello che scrivi con l'istruzione MOVR in IR che discrimina l'area.

Secondo me ti basta inizilizzare un IR con 0.00 e poi variare il puntatore con un DR.

Modificato: da drei
Link al commento
Condividi su altri siti

Ho fatto alcune prove, un modo per puntare con un IR un tipo di area diverso da quello che si usa per creare il puntatore c'è.

LD P_On
MOVL(498) #0C000 E0_0
MOVL(498) E0_0 IR1
MOV(021) 0,IR1 E0_2

Con questo codice il puntatore IR1 viene inizializzato alla memoria fisica che il plc chiama canale 0 dell'area CIO.

Come si vede il puntatore viene creato tramite un semplice MOVL che scrive l'indirizzo fisico della memoria voluta (CIO 000) tramite la word E0_0.

Variando il valore del CIO 000 si può vedere che varia il valore in E0_2.

Chiaramente usando gli indirizzi fisici della memoria del PLC il programma potrebbe essere incompatibile con un'altra CPU Omron.

La lista degli indirizzi fisici delle CPU CS1G/H si trova nel maunale numero W339-E1-09 appendice C.

Link al commento
Condividi su altri siti

:rolleyes:

Immaginavo che ci fosse la possibilita` di dirgli a che area di memoria puntare comunque grazie per il consiglio che mi e` stato molto utile

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