Vai al contenuto
PLC Forum


Cpm2a, Number, Comparazioni - le codifiche numeriche


gigifactotum

Messaggi consigliati

Premessa: non sono un esperto di plc e ringrazio per la pazienza in anticipo

Ho provato la TCMP(85) - Table Compare

Ho memorizzato 5 valori dalla DM6144 in poi, scrivendoli direttamente in memoria con il CX programmer. dopo

aver attivato la codifica BCD (tramite Alt+C)

Nella DM13 ho messo il mio valore da confrontare ( in UINT_BCD).

Risultato: nulla, un bellissimo 0

Se nella DM6145 ho il valore 1234 e cosi' pure nella DM13, la mio word di risultato (ad esempio IR220) dovrebbe

avere il secondo bit a 1. Invece nulla!

Cambio sistema, uso la CMP (ne uso 5, in luogo della TCMP)

LD 208.03

OUT TR0

CMP(20) RegistroComando Azzera

ANDNOT P_EQ

L'ANDNOT P_EQ e' sempre true, ovvero i numeri in registroComando e la costante(NUMBER) azzera non risultano mai uguali

Provo a scrivere la mia Azzera nella tabella dei simboli come #1234 e come 1234. Leggo la guida in linea (che e' orrenda!!)

leggo il manuale di prgrammazione cartaceo. Risultato: non riesco a far capire al PLC che il 1234 nella DM13 e' lo stesso

della Tabella(per la TCMP) e per la costante numerica di tipo NUMBER.

La guida dice a proposito di NUMBER:

'#'

- un valore esadecimale. Questo deve essere utilizzato quando si inserisce un valore per un operando di tipo BCD.

Poi prosegue con una nota che prima afferma una cosa e poi la nega(???).

Insomma, Come si fa a trattare costanti simboliche e aree DM con lo stesso tipo di dati (BCD)?

Grazie per la risposta

Link al commento
Condividi su altri siti


Soundtechsystem

peril cmp se guardi il flag di eq, non lo vedrai mai funzionare, devi appoggiarlo con una bobina magari usando un Hr od un Cio,

per il tcmp, adesso non mi ricordo, adesso qui non ho cx programmer.. magari domani...

Link al commento
Condividi su altri siti

effettivamente con questo capitolo, il cx-programmer fa un po' caos.

Il vecchio Omron era solo BCD, il nuovo Omron tende ad andare versoe HEX, ma la visualizzazione dei dati è un confusionata.

La compare o la Table compare non fanno differenza tra BCD o HEX, ma devi verificare che entrambi i dati siano stati inseriti nella medesima maniera.

Prova a scrivere

MOV #1234

D13

e

MOV #1234

D6144

e po confrontale.

Vedrai che 255.6 sarà ON (ma come dice sound... devi appoggiarla ad una variabile poichè il 255.6 è influenzato da diverse istruzioni)

Modificato: da bitstop
Link al commento
Condividi su altri siti

Grazie per le risposte, oggi pomeriggio provero'.

Ieri ero molto demoralizzato, ma poi la notte porta consiglio e ho pensato

che potevo, prima di scrivere sul forum, esaminare i contenuti delle DM non in modo BCD, ma binario, per vedere se i bits

erano uguali.

Riguardo al flag, certo... non lo vedrei mai attivo, visto l'uso che ne viene fatto internamente.

Il problema e' che l'operazione a cui esso e' immediatamente legato dopo il confronto non si comporta come

dovrebbe se i valori fossero uguali.

Comunque oggi provero' sul campo.

Grazie

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