Vai al contenuto
PLC Forum


bcd to bin


ferrarino

Messaggi consigliati

saluti a tutti,

nel buon vecchio step 7 per convertire un bcd to bin usavo fc 81 , ho la versione v15 tia portal qualcuno ha qualche dritta da darmi per risolvere il problema.(sto usando un 1200 plc)

grazie per l'aiuto 😊

Link al commento
Condividi su altri siti


Molto semplice, ci sono le "operazioni di conversione".
In KOP utilizzi "CONVERT", e decidi cosa devi convertire.

In SCL ti basta scrivere:

#varInt := BCD16_TO_INT(#varBCD);

 

N.B.: la variabile BCD dovrebbe essere dichiarata come WORD.

Link al commento
Condividi su altri siti

grazie batta per la risposta , ma non devo convertire un numero bcd in  intero ma in binario.

Con la funzione convert converte numeri bcd 16-32 in int.

fc81  delle librerie faceva questo.

Link al commento
Condividi su altri siti

Guarda che Intero, Esadecimale e Binario, sono solo modi diversi di interpretare la stessa cosa.
Se in una variabile imposto valore binario 0001 0100 1111 0011,
la stessa variabile in esadecimale leggerò 14F3, e in decimale leggerò 5363.

Link al commento
Condividi su altri siti

chiedo scusa mi sono espresso male io in partenza,allora ho un robot in cui devo dargli un valore in binario per variare delle quote.

Quindi con fc 81 di step 7 davo l'indirizzo di memoria ed lui automaticamente abilitava in base ha il valore richiesto le memorie per il numero binario, quindi mettiamo caso io abilitavo la mw100 dando il valore 1 automaticamente il valore m101.0 andava a true e quindi sul robot valore 1, fino a qui niente di particolare .

La stessa cosa devo fare con s71200 purtroppo non riesco a farlo.

Grazie ancora per l'aiuto .

 

Link al commento
Condividi su altri siti

Una volta che converti il bcd in intero sei a posto, non capisco il problema.

Sulla word nella quale scriverai il tuo valore in intero, la stessa variabile avrà, ovviamente, anche i bit a 1/0 a seconda del valore numerico.

 

Per intenderci, metti caso che il tuo bcd è 100 in intero. Avrai:

lJCUObr.png

 

Link al commento
Condividi su altri siti

Come no?

Se in MW100 scrivi 1, M101.0 sarà TRUE.

Non c'è nulla di diverso.

 

Dunque, già strano che usassi la FC81, che è una funzione nel gruppo "S5-S7 Converting Blocks", quando potevi già fare la stessa cosa con l'istruzione BTI (BCD to INTEGER).
Poi, se lo scopo era dare i comandi al robot impostando in valore in una variabile, riesco ancora meno a capire il perché dell'utilizzo di FC81.
E ancora non capisco cosa devi fare. Prima scrivi che "devi dargli un valore per variare delle quote", poi fai l'esempio di MW100. Non capisco.
Perché non riporti la parte di programma, così com'è nel 300, e vediamo cosa fare per farla funzionare sul 1200?

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