Vai al contenuto
PLC Forum


Puntatori - ISTRUZIONI


Messaggi consigliati

Inserito:

Ciao,

non ho mai usato i puntatori c'è qualcuno che ha voglia di spiegarmi qualcosa?

Non riesco a capire le istruzioni di carico del registro nell'accumulatore LAR1 e inoltre non riesco a far funzionare l'istruzione

L DBW [AR1,P#0.0]

Se per favore mi fate un es. semplice-semplice incomincio a imparare qualcosa.

Grazie, scusate.


Matteo Montanari
Inserita: (modificato)

AUF DB20 apertura del blocco dati (DB) numero 20

L P#20.0 carico in accumulatore il valore di "puntamento" 20.0

T LAR1 utilizzo il valore nell'accumulatore per creare il puntatore

L DBW [AR1,P#0.0] leggo il valore nell'inidirizzo "puntato" dal puntatore

T MW 0 trasferisco il valore dell'accumulatore

con queste istruzioni leggi il valore presente nella DB20.DBW20 praticamente è come se facessi:

L DB20.DBW20

T MW 0

chiaramente al posto di "L P#20.0" puoi mettere anche un altro valore.

volendo caricare un numero intero, ad esempio "30" devi fare in questo modo:

L 30

SLD 3

T LAR1

L'istruzione SLD 3 serve per rendere il numero "30" comprensibile per il puntatore.

in questo caso i dati sono quelli presenti nella DB20.DBW30.

se inserisci queste istruzioni:

  
//;
// Cerazione Puntatore (primo numero sequenza)
//;
      L     P#50.0
      LAR1  
//;
// Creazione Numero dati da controllare
//;
         L     20
nex0: T     #Indice
//;
// Controllo Dato
//;
      L     DIB [AR1,P#0.0]
      L     2
      ==I   
      R     DB40.DBX   60.5
//;
// Se Verifica positiva salto a successiva Verifica
// in caso contrario continuo il controllo
//;
      +AR1  P#1.0
//;
      U     DB40.DBX   60.5
      SPB   OkV1
//;
      L     0
      T     DIB [AR1,P#0.0]   
//;
OkV1: L     #Indice
      LOOP  nex0

Ti permette di fare un conrtrollo su venti varibili

ma è uno dei tanti possibili impieghi del puntatore

-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-

scusate

e di cosa?

Modificato: da keosmm
Inserita:

Ho provato con il tuo primo esempio e ho capito, ancora una cosa come viene interpretata l'istruzione seguente?

L DBW [AR1,P#0.0]

Mi spiego, P#0.0 serve per impostare l'offset?, come funziona?

Grazie

Matteo Montanari
Inserita:

prendiamo l'esempio di prima:

L P#20.0

T LAR1

L DBW [AR1,P#0.0] in questo caso punti la DBW20

L DBW [AR1,P#1.0] in questo caso punti la DBW21

L DBW [AR1,P#10.0] in questo caso punti la DBW30

un esempio diverso:

U DBX [AR1,P#0.0] in questo caso punti DBX20.0

U DBX [AR1,P#1.3] in questo caso punti DBX21.3

= DBX [AR1,P#2.7] in questo caso punti DBX22.7

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