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




Hakko <=> Db Su Siemens S7 - Lettura DB indicizzato


Messaggi consigliati

Inserito:

Qualcuno di voi sa come si fa ad indicizzare le chiamate ai DB con Hakko V606eM20?

Mi spiego:

ho 10 DB uguali con 10 Word ciascuno,

impostando un valore da 1 a 10 alla variabile XXX devo leggere le 10 word relative al DBXXX.


Inserita:

Beh, se ho ben capito cosa vuoi fare, non penso esista una funzione già fatta ma devi usare una macro di uno switch. E' un pò lunga la cosa, ma dovrebbe funzionare. Nella macro vai a leggere il valore dell'indice e fai dieci confronti con i valori da 1 a 10: per ogni confronto, se risulta uguale, fai un salto ad una label dove eseguirai in sequenza dieci trasferimenti dalla DBxx a dove vuoi mettere i valori. Sarebbe qualcosa del genere (scritto in pseudo-linguaggio maccheronico, non nel codice utilizzato per le macro di HAKKO):

IF Indice=0 goto LABEL 0

IF Indice=1 goto LABEL 1

IF Indice=2 goto LABEL 2

eccetera, fino al'indice 10

IF Indice=10 goto LABEL 10

END

LABEL 0

Trasferisce DB0.DBW0 in variabile 0

Trasferisce DB0.DBW1 in variabile 1

Trasferisce DB0.DBW2 in variabile 2

eccetera, fino alla word 10 della DB0

END

LABEL 1

Trasferisce DB1.DBW0 in variabile 0

Trasferisce DB1.DBW1 in variabile 1

Trasferisce DB1.DBW2 in variabile 2

eccetera, fino alla word 10 della DB1

END

LABEL 2

Trasferisce DB2.DBW0 in variabile 0

Trasferisce DB2.DBW1 in variabile 1

Trasferisce DB2.DBW2 in variabile 2

eccetera, fino alla word 10 della DB2

END

eccetera, fino alla LABEL10

Spero di essere stato chiaro. Se esiste un modo più veloce sarei felice di saperlo.

Ciao

Cesare

Inserita:

Ciao,

a dire il vero esiste il modo di leggere delle DB in modo indiretto. Io l'ho usato tempo fa!

Ti conviene chiamare l'assistenza e farti spiegare come perchè ora proprio non ricordo il procedimento.

Guardo appena ho tempo.

Ciao

Inserita:

Ho risolto! :blink:

Considerando che secondo le tabelle Hakko '81' in esadecimale corrisponde alla lettura da PLC,

che '00' corrisponde alla lettura di una Word

e che la DBW0 corrisponde alla '0' su Hakko, la DBW2 è la '1' su Hakko, la DBW4 è la '2' ecc. ecc.

ne consegue che:

;Costruisco il codice di lettura DB

$uN=8100

$uN+1=00XX

$uN+2=XYYY

;dove XXX=N°DB in esadecimale

;e YYY=N°WORD in sadecimale

VAR=*$uN

;VAR avrà il valore contenuto sulla word del DB puntato da *$uN

Ci ho messo un pò, circa 2 giorni full immersion, ma ci sono riuscito.

Se avete bisogno fatemi un fischio, quello che posso....

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