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




trasferimento dati tra DB


Messaggi consigliati

Inserito:

Buongiorno a tutti, 

ho una domanda, 

con quale funzione traferisco dati da un blocco non ottimizzato di bool ad un blocco di array , senza partire per forza dal bit 0 e i dati non sono multipli di 8 ?

immagini come esempio , ma vorrei trasferire per esempio anche 100 bool 

grazie !!!

blocco non ottimizzato bool.PNG

blocco array bool.PNG


Simone.Salarsi
Inserita:

che io sappia non esiste ( o perlomeno non ho trovato) una funzione specifica già pronta per fare quello che chiedi.

 

Credo che dovrai scriverti tu una funzione specifica

Inserita:

Concordo con Fiorezzz. Ora non ho modo di provarlo, ma in AWL dovrebbe essere tipo così:

 

DB1 = blocco_bool

DB2 = blocco array

 

AWL:

 

CALL BLKMOV

SRCBLK := P#DB1.DBX0.3 BOOL 20
RET_VAL := "Tag_ErrorCode"
DSTBLK := P#DB2.DBX0.0 BOOL 20

 

Ciao,

Claudio.

Simone.Salarsi
Inserita:

l'istruzione BLKMOV non fa esattamente quello che viene richiesto dal @Mello Marco

 

Innanzitutto entrambe le DB devono essere non ottimizzate ( potrebbe anche non essere un problema questo)

 

Il problema è che per lavorare con i bool la guida in linea dice 

Quote

 

Non è quindi possibile inserire la sintassi scritta da @Cip77 , il segmento rimane in errore con la segnalazione "invalid parameter assignment"

Anche cercando di spostare bool a multipli di 8, ma partendo da un bit che non sia lo x.0 il PLC va in errore

 

 

 

 

Inserita:

si concordo con Salarsi ..in effetti la uso per copiare blocchi di byte 

Quindi rimane la gestione puntatori (trasformo indirizzo iniziale  e finale in puntatori e faccio un loop per non volte che mi serve ..in AWL una decina di righe di codice ) 
 o in scl + semplice ma occorre cambiare la prima db utilizzando un array come la seconda db  e fare un for  per non bool da trasferire 

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