Vai al contenuto

registro fifo


Messaggi consigliati

Inserito:

ciao. su un plc s7_300 dovrei creare un registro fifo per archiviare data ed ora nel momento in cui un bit si imposta.

nello screen allegato, l'ultima parola in lista e il valore date_time reale ; all'attivazione del mio bit specifico, data_ora devo passare nella prima parola, quello che era presente nella prima parola va nella seconda, quello che era presente nella seconda parola va nella terza etc.. sino ad arrivare in questo caso alla parola 24 ; quello che era nella parola 24 va perso.

Ho scritto un codice che sposta le parole una ad una, vorrei però perfezionare il tutto e scrivere il codice con i puntatori (di cui però non sono pratico). Chiede gentilemnte se qualcuno può aiutarmi con un'esempio. grazie mille a tutti. mandi.

2020-03-23 19_18_33-KOP_AWL_FUP  - [DB360 -- _DB BUFFER KW EVENTO_ -- CPU_317PN_HOME_20200117_CPU_31.png

Inserita:

Più che con AWL e puntatori, ti consiglierei di farlo in testo strutturato, e dichiarando un array di variabili.

A parte questo, c'è un modo più efficiente per gestire un registro FIFO. Col tuo metodo, ogni volta devi spostare tutti gli elementi. Nel tuo caso sono solo 24, ma pensa se dovessero essere molti  di più: il lavoro diventerebbe piuttosto pesante.
Molto meglio quindi gestire il registro tramite indici. Se parti con registro vuoto, l'indice vale 1 (o zero, a seconda di come dichiari l'array) ed andrai a scrivere il dato nel primo elemento dell'array. Ogni volta che devi scrivere un dato, incrementi l'indice e scrivi nell'elemento corrispondente. Quando arrivi all'ultimo elemento, riparti dal primo.
Cosa analoga per i dati che andrai ad estrarre dal registro.
In questo modo, non importa se il tuo registro è composto da 10 o da 1000 elementi: il lavoro da fare, sarà sempre il minimo indispensabile. 

Inserita:

ho capito, grazie. saresti così gentile da scrivere l'esempio ? grazie

Inserita:

il testo strutturato, in simatic manager, è il linguaggio SCL ?

Inserita:

Sì, SCL è come Siemens chiama il testo strutturato, come chiamano KOP il ladder, e FUP l'FBD. Cosa vuoi mai, sono tedeschi... ;-)
 

  • 2 weeks later...

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