Vai al contenuto
PLC Forum


Conversione Numero / Posizione


Messaggi consigliati

Inserito:

salve, in passato con Siemens S7 ho utilizzato la seguente funzione:

'convertivo' un numero in una posizione di una db (ad esempio 14 corrisponde a dbx1.5 ...)

Non ricordo quale SFC o FC standard utilizzato ... potete aiutarmi?

Grazie


Inserita:
'convertivo' un numero in una posizione di una db (ad esempio 14 corrisponde a dbx1.5 ...)

Spiegati meglio.

Così non si capisce proprio nulla.

Inserita:

Mi spiego con un esempio:

DB10.DBW10=14

Desidero conoscere, a partire da DB10.DBX20.0, la posizione del bit corrispondente all'intero contenuto in DB10.DBW10.

Nell'esempio corrisponderà a DB10.DBX21.5.

Grazie

Inserita: (modificato)

Ci sono vari modi per fare quello che desideri.

Il modo migliore dipende da cosa dovrai fare dopo.

Per esempio, se questa operazione ti serve per leggere o scrivere lo stato del bit indicato dalla variabile DB10.DBW10 a partire da DB10.DBX20.0, potresti fare come segue:

      LAR1  P#DBX 20.0                  //Carica nel registro indirizzi AR1 l'indirizzo del primo bit
      L     DB10.DBW   10               //Carica il numero del bit interessato
      +AR1                              //e sommalo al registro indirizzi AR1

      AUF   DB    10                    //Apri il DB
      U     DBX [AR1,P#0.0]             //Interroga lo stato del bit con indirizzo AR1
      =     M     10.0
Oppure:
      L     P#DBX 20.0                  //Carica nell'accumulatore l'indirizzo del primo bit
      L     DB10.DBW   10               //Somma il numero del bit indicato dalla variabile
      +D    
      T     #Adr                        //Trasferisci in variabile locale di tipo DINT

      AUF   DB    10                    //Apri il DB
      U     DBX [#Adr]                  //Interroga lo stato del bit con indirizzo "Adr"
      =     M     10.0

Attenzione: se DB10.DBW10 = 14, non punti al bit DBX21.5, ma al bit DBX21.6.

Ci sono anche altre possibilità, ma senza sapere cosa devi fare, difficile indicare la migliore tirando ad indovinare.

Modificato: da batta
Inserita:

Scusa il ritardo per la risposta, molto gradita.

IL tuo suggerimento è stato risolutivo!

Grazie

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