Vai al contenuto
PLC Forum


Connessione Tcp Su Fanuc 90-30 Cpuic693 - Cancellazione registri col monitor di versapro


steve77

Messaggi consigliati

Salve a tutti

ho un vecchio plc serie fanuc 90-30, e stato realizzato uno scada con protocollo modbus tcp che tramite scheda tcp cmm321 si collega dal sistema centrale al plc e cancella dei registri...o megli li dovrebbe cancellare, ma succede un fatto strano che quando pongo in run il programma questo non lo riesco a cancellare neanche con la funzione monitor-write del programma versapro 2.02(collegata su seriale plc) tipica di questi plc, mentre se resetto il plc la posso cancellare.

P.S La variabile , nel mio caso %R00309 e settata dalla tabella variabili, come retentive,...dovrei settarla come external ???

tale registro va ad 1 con un move se e solo se un secondo altro registro %R00509 è maggiore di zero, il compito scada tcp è di azzerare il 509 e il 309.

Ho provato anche ad invertire da sistema l'ordine cancellazione ma niente...(ovvero prima i 309 e poi il 509)

GRazie

Link al commento
Condividi su altri siti

  • 1 month later...

Ciao.

Sulla logica non ce' una funzione blk clr word?

questa funzione serve per mettere i registri a 0 di seguito ti copio la descrizione in inglese dal manuale.

Replaces all the contents of a block of data with zeros. Can be used to clear an area of discrete (%I, %Q, %M, %G, %T, or symbolic) or analog (%R, %P, %L, %AI, %AQ, %W, or symbolic) memory.

Link al commento
Condividi su altri siti

  • 2 years later...

Se il %R00309 va a 1 solo quando Il %R00509 è diverso da 0, quando metti a 0 il %R00509 è giusto che il %R00309 rimane a 1, dato che nessun altro lo scrive, quando metti a 0

il %R00509, devi mettere a 0 anche il %R00309.

Oppure devi mettere un move 0 su %R00309 a monte di tutto così si azzera appena il %R00509 non lo scrive più.

Link al commento
Condividi su altri siti

Ciao..

visto che il registro va ad 1 quando metti la CPU in RUN escludo che il valore sia scritto dall'esterno (dallo scada per capirci).

Ti consiglio di verificare l'istruzione di confronto del registro %R00509 per verificare se sia maggiore di Zero.

Le istruzioni di confronto spesso verificano non solo una word (GT_INT) ma potrebbero utilizzare anche la word seguente (GT_DINT, GT_REAL).

Queste ultime sono utili quando confronti valori a 32 bit, ma se l'unico registro da controllare è il %R0509 e non il seguente(%R0510) allora devi per forza utilizzare il GT_INT.

Ciao

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