Vai al contenuto
PLC Forum


Data Memory Disponibili


hits

Messaggi consigliati

Salve a tutti sto iniziando a lavorare con PLC della famiglia Omron CJ1M cpu13-etn. Per la realizzazione di un progetto dovrei scrivere una serie di dati ( stringhe, doble, interi e bit) da una applicazione a partire da una qualsiasi posizione di Data Memory, mediante i comandi FINS. Il quantitativo di dati da scrivere è abbastanza sostanzioso ;D, dovrei scrivere al max 1800 data memory. Posso decidere arbitrariamente i DM in cui scrivere? o ci sono limitazioni sui DM disponibili?

Grazie in anticipo per le risposte.

Link al commento
Condividi su altri siti


In teoria hai a disposizione 32768 word per memorizzare i dati (Data Memory).

In pratica, un po' meno, perchè l'area da D30000 in su è usata da eventuali moduli speciali. Ma ti rimangono 30000 word...

Se però non usi moduli speciali che utilizzano tale area, puoi usarli tutti.

Se poi non ti bastassero, potresti usare qualche word anche dell'area H. Questi tra l'altro sono indirizzabili al bit... Se serve...

Link al commento
Condividi su altri siti

Grazie mille per la Pronta risposta.

Ho riscontrato però che scrivendo in alcune aree i valori che poi vado a leggere non sono quelli scritti, in particolare leggo sempre DM pari 0000 anche se la scrittura è andata a buon fine

Link al commento
Condividi su altri siti

Per leggere e scrivere ho trovato una libreria che mette a disposizioni diverse API per interfacciarsi con il PLC PoohPlcLink.dll, pensi che possa essere questa il problema?

Le aree in questione sono nell'intorno del DM 1200.

Link al commento
Condividi su altri siti

Intorno a DM1200 non c'è niente che scrive in automatico, per cui puoi andare tranquillo.

Per quel che riguarda la dll non so, non la conosco.

Presumo che utilizzando i comandi FINS vedo l'area DM come tale, e non come facente parte dell'area di memoria interna del PLC.

E se te scrivi un valore qualsiasi nelle DM (mediante Cx-Programmer), le leggi regolarmente via dll? In tal caso controlla anche la lettura.

Se hai tempo, l'ideale sarebbe mettere uno sniffer e analizzare i frames, sia in tx che in rx, FINS per controllare che siano corretti.

Link al commento
Condividi su altri siti

Controlla in particolare che nel frame fins tu abbia (in esadecimale) 82 04 B0 (il primo byte indica operazioni sulla Data Memory Area, e 0x04B0 è l'indirizzo 1200).

Non vorrei che tu vada a scrivere altrove...

Link al commento
Condividi su altri siti

Qualcosa che intercetti il frame in trasmissione e in ricezione.

In particolare, bisognerebbe che non interferisse, in modo da poter vedere in tempo reale quello che succede sulla linea.

Wireshark non rammento se è "trasparente", oppure si sostituisce all'host.

Non ho trovato informazioni su quella dll che hai indicato qualche post sopra. Dove l'hai trovata?

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