Vai al contenuto
PLC Forum


Fifo e Variabili 32bit


Messaggi consigliati

Inserito:

Buongiorno a tutti!

Su una cpu 317 2DP devo realizzare uno storico di variabili DINT a 32bit.

Su questo storico devo realizzare uno scorrimento delle variabili , il classico FIFO.

Le funzioni della libreria standard ,fifo e a FC84 att, vanno benissimo per il mio scopo ma permettono di fare scorrere dati in formato word (16 bit).

Ho fatto una prova convertendo in ingresso e in uscita la variabile  (32BIT->16BIT e poi 16BIT->32BIT) ma cosi la precisione lascia a desiderare.

Volevo sapere se qualcuno mi sa indicare una libreria che gestisca un fifo con variabili a 32 bit o qualcosa da cui partire e studiare per poi modificarla per le mie esigenze.

 

Grazie!!


Inserita:

potresti costruirla tu la funzione. potresti usare ad esempio sfc20 block move. o usare i puntatori.

per sfc20 copi l'area di memoria tranne l'ultima dw. la incolli in un'area di appoggio di identiche dimensioni. la rimuovi sull'area di origine scrivendola dalla dword +n1.

sulla prima dword scrivi il nuovo data e così via.

Inserita:

Grazie per la risposta!

Quello che proponi va bene per le variabili in ingresso (fc84) ma in uscita  l'fc85 mi estrae non l'ultima dw ma l'ultima con valore maggiore di zero. (per quando la db non e' ancora "piena").

Quindi dovrei fare una serie di  confronti (>0) partendo dal fondo fino a trovare il primo valore ed estrarre quello...

 

Inserita:

secondo me basterebbe aggiungere un puntatore che viene incrementato una volta quando si fa lo shift con la SFC20.

Se il valore del puntatore è inferiore alla capacità del buffer basta andare a puntare il tag del (valore del puntatore -1) * 4.

Ovviamente dopo aver copiato il valore in uscita ricordarsi di decrementare il puntatore, NON serve azzerarne il valore!

 

Inserita:

devi usare puntatori a bit e formattare la cosa come ti interessa

 

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