Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




bcd to bin


Messaggi consigliati

Inserito:

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 😊


Inserita:

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.

Inserita:

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.

Inserita:

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.

Inserita:

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 .

 

Inserita:

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

 

Inserita:

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?

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