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




Leggere Righe In Db Cambiando Il Valore Di Riga


Messaggi consigliati

Inserito:

Salve a tutti sono vuovo di Siemens e chiedo scusa in anticipo se non sapro spiegarmi in modo corretto.

Devo leggere una word in un DB. per la word puo essere la 0, la 1, la 2, ect a seconda di varie condizioni.

come faccio?

devo fare un confronto con ogni possibilità?

io pensavo di fare una cosa del genere.

L DB50.DBW********

al posto degli asterischi vado ad inserire una MW od una variabile chemi contiene un valore numerico che corrisponderà alla riga da leggere nel database.

c'è un modo per realizzare una cosa del genere???

grazie a tutti


Inserita:

si chiama puntatore.

cerca nel forum, trovi molte info a riguardo.

Inserita: (modificato)

AUF DB50

L DW[MD0]

Nella MD0 c'è il valore da te impostato

Modificato: da STEU
Inserita:

Vi scrivo quello che sto provando a fare ma chi mi da errore:

L DB100.DBW0 \\Qui c'è il numero intero che devo prendere come puntatore

T MW20 \\Carico il valore qui

AUF DB50 \\Apro il database dove devo leggere il record

L DW[MW0] QUI MI DA ERRORE

Non capisco quale sia errore, non avendo anche molta conoscenza..... mi lascia la scritta in rosso

suggerimenti?

Inserita:

Provando varie combinazioni ho trovato che....

Non utlizzando MW20 ma una varibile TEMP #valore e come tipo dati Dint oppur DWord

e facendo un L DBW[#valore]

non mi alcun errore evidenziato in rosso

quindi ricapitolando:

L DB100.DBW0 \\Qui c'è il numero intero che devo prendere come puntatore

T #valore \\Carico il valore qui, è una variabile TEMP di tipo Dint oppure DWord

AUF DB50 \\Apro il database dove devo leggere il record

L DBW[#valore]

qualcuno sa pero spiegarmi il motivo tecnico???

grazie :(

Inserita:

Devi usare un double, come ti ha detto steu:

L DW[MD10]

Inserita: (modificato)

Siccome devi puntare il bit devi shiftare di 3 posizioni verso sinistra il valore:

es.

L  L 20

SLD 3

T MD10

AUF 50

L DW[MD10]  // NON L DW[MW10]

OPPURE

L P#20.0

T MD10

AUF 50

L DW[MD10]

Ti consiglio di non andare a toccare i registri AR

Modificato: da STEU

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