steve77 Inserito: 13 luglio 2007 Segnala Share Inserito: 13 luglio 2007 Salve a tuttiho 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 More sharing options...
Massimuccio Inserita: 4 settembre 2007 Segnala Share Inserita: 4 settembre 2007 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 More sharing options...
Glave Inserita: 19 novembre 2009 Segnala Share Inserita: 19 novembre 2009 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 More sharing options...
jackdaniel Inserita: 22 novembre 2009 Segnala Share Inserita: 22 novembre 2009 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora