Vai al contenuto
PLC Forum


Data Memory Disponibili


Messaggi consigliati

Inserito:

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.


Inserita:

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

Inserita:

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

Inserita:

Mi pare strano. In che area, esattamente? Puoi mettere un esempio di come scrivi e leggi?

Inserita:

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.

Inserita:

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.

Inserita:

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

Inserita:

Grazie mille per le risposte sei stato molto chiaro e cortese.

Per sniffer intendi qlc tipo wireshark giusto?

Inserita:

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?

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