Vai al contenuto
PLC Forum


Fifo con Tia v14


GATTO

Messaggi consigliati


Volevo sapere, visto che sul TIA non e più presente l'istruzione FIFO chiedevo se qualcuno

avesse avuto modo di usare questa istruzione e come a fatto.

Grazie

Link al commento
Condividi su altri siti

Non ho capito: se non c'è, come si fa ad usarla?

Per creare un'istruzione FIFO bastano poche righe di codice in SCL.

Link al commento
Condividi su altri siti

CiaoVolevo sapere, visto che sul TIA non e più presente l'istruzione FIFO chiedevo se qualcuno

avesse avuto modo di usare questa istruzione e come a fatto.

Grazie

Ciao Batta

Mi sono espresso male certo non essendoci nessuno la può avere usata,

chiedevo se qualcuno avesse creato qualcosa, cortesemente non essendo

un esperto di SCL puoi darmi una mano 

Grazie

Link al commento
Condividi su altri siti

scl è per velocità di realizzazione e semplicità di codice. se non conosci scl la puoi realizzare anche in kop oppure awl.

la funzione FiFo (first in e first out) la puoi realizzare in molti modi, li dipende dalla mole di dati da trattare.

un puntatore e sfc20 e lo fai. ovvio, in kop e awl è abbastanza macchinoso.

 

Se vuoi realizzarlo in scl ci sono esempi in rete. ti basta scrivere fifo scl su un motore di ricerca

Link al commento
Condividi su altri siti

  • 2 weeks later...

Grazie a "rossiroberto" per la segnalazione della libreria.

 

Devo dire che la trovo piuttosto interessante, sia perché contiene parecchie funzioni, sia (o forse ancora di più) perché le funzioni non sono protette, quindi, a guardarci dentro, sicuramente si impara qualcosa.
Per esempio, tanto per restare in tema "FIFO", si trovano alcune cose, a mio avviso, interessanti.

 

La prima cosa interessante riguarda il modo in cui viene gestito il registro. Non si tratta di una novità (a dire il vero, i miei registri FIFO quasi sempre seguono questa filosofia), ma di un modo di gestire il registro che si scosta da quello più comunemente usato. Di solito si inserisce il nuovo dato nella prima locazione libera, mentre quando si estrae un dato si legge il contenuto della prima locazione e poi si spostano tutte le locazioni in giù di una posizione (o viceversa, a seconda dei gusti). Questo potrebbe comportare un lavoro piuttosto pesante nel caso di registri lunghi.

La funzione FIFO della libreria invece gestisce semplicemente due indici: l'indice dove si dovrà scrivere il nuovo dato (la prima locazione libera), e l'indice del dato da estrarre (quello più vecchio). Non c'è bisogno di fare scroll del registro, quindi risulta una funzione molto più efficiente. Il rovescio della medaglia è che, guardando tutto il registro, non risulta evidente a colpo d'occhio quale sia il dato più vecchio e quale sia l'ultimo dato inserito, ma si deve andare a guardare i valori di "statFirstItemIndex" e "statNextEmptyItemIndex" all'interno dell'istanza della funzione.


Seconda cosa buona di questa funzione è che come parametri per i dati del registro usa il tipo VARIANT.

Il registro FIFO può quindi anche essere costituito da un Array di Struct.

 

La terza cosa interessante è l'utilizzo di istruzioni per il controllo del tipo di dati passati alla funzione, come IS_ARRAY, CountOfElements, TypeOf, TypeOfElements, molto utili soprattutto quando si utilizzano variabili di tipo VARIANT.

 

Trovo strano invece che la libreria non contenga un registro di tipo "LIFO". Forse perché il LIFO è più semplice del FIFO, o forse perché, partendo dal FIFO, basta poco per costruire un LIFO, mantenendo tutti i controlli sul formato dei dati passati alla funzione.

 

Il mio consiglio quindi è di scaricare la libreria (è gratuita) e di guardare come sono fatte le funzioni.

Link al commento
Condividi su altri siti

  • 3 weeks later...

CiaoVolevo sapere, visto che sul TIA non e più presente l'istruzione FIFO chiedevo se qualcuno

avesse avuto modo di usare questa istruzione e come a fatto.

Grazie

Ciao Batta

Mi sono espresso male certo non essendoci nessuno la può avere usata,

chiedevo se qualcuno avesse creato qualcosa, cortesemente non essendo

un esperto di SCL puoi darmi una mano 

Grazie

 

Grazie a tutti x la collaborazione,

ho letto solo ora perchè ero fuori 

Link al commento
Condividi su altri siti

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