Vai al contenuto
PLC Forum


conteggio continuo variainteger 16


FrancescoAMIGA

Messaggi consigliati

Buongiorno a Tutti.

Sono un appassionato di elettronica e PLC.

Ho collegato una tastiera Siemens 483C-PN ad un plc S1200.

La tastiera mette a disposizione due ingressi encoder.

Ad uno di questi è stato collegato un encoder da 100 imp/giro

Nel plc viene letta come %IW82 e quindi i valori variano nel range -32768 ad 32768

Il mio problema è che quando il conteggio e' arrivato al massimo consentito da un I16 e quindi ad esempio ad 32768, il successivo count dell'encoder la variabile passa a -32768 .

Questo mi crea problemi nell'applicazione .

Esiste un modo per far in modo di avere continuità di conteggio sia in positivo che in negativo anche quando la iw82 inverte il segno ?

 

Grazie Francesco

Link al commento
Condividi su altri siti


Nel PLC la puoi dichiarare come UINT (intero 16 bit senza segno). In questo caso, il conteggio andrebbe da 0 a 65535, e poi ripartirebbe da zero.

Link al commento
Condividi su altri siti

Buongiorno.

Grazie per la risposta .

Non cambierebbe nulla, perchè il valore passerebbe immediatamente da 65535 a 0 .

i valori devono essere successivi sia positivi che negativi.

HO provato con Labview e sono riuscito attenere -65535 a 65535, memorizzando i transienti , ma è elaboroto.

Ho deciso quindi di collegare l'encoder su una scheda VIpa su ethercat.

La scheda utilizza una variabile 32 bit , quindi sufficiente come conteggi per macchine sino a diversi metri di lunghezza.

 

Grazie comunque.

Link al commento
Condividi su altri siti

11 ore fa, FrancescoAMIGA ha scritto:

Non cambierebbe nulla, perchè il valore passerebbe immediatamente da 65535 a 0 .

 

La gestione dei trabocchi è semplicissima; si fissa una soglia vicina ai limiti di conteggio superiore ed inferiore. Superata la soglia ad ogni lettura si fa il confronto se la lettura attuale è maggiore della precedente, oltr il limite inferiore, o minore della precedente, oltre il limite superiore; in uesti casi si è avuto il trabocco oltre il massimo o oltre il minimo, e basta incrementare di 1 i contatori dei riporti superiore ed inferiore. In questo modo si può estendere il conteggio a conteggi di qualsiasi lunghezza.

Link al commento
Condividi su altri siti

Con 16 bit non puoi fare da -65536 a +65535.
Per andare oltre i limiti -32768..+32767 o 0..65535, devi appoggiarti ad una variabile a 32 bit, memorizzando il superamento del limite come descritto da Livio.

 

Però una cosa non capisco: il 1200 gestisce variabili a 8, 16, 32 e 64 bit. Perché ricorrere ad una scheda Vipa?
Come hai gestito l'encoder? Mi pare di capire che l'encoder sia collegato alla tastiera (che non conosco), e che dal 1200 leggi questa %IW82 dalla tastiera.
Poi hai risolto collegando l'encoder ad una scheda Vipa in Ethercat? Ma non era molto più semplice collegare l'encoder direttamente al PLC S7-1200, che dispone di contatori veloci a 32 bit?

 

Una descizione più dettagliata di tutto il sistema ci aiuterebbe a capire e, se capiamo, forse possiamo darti consigli sensati.
 

Modificato: da batta
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...