Vai al contenuto
PLC Forum


Comunicazione UDP Accelerometro


Luca Carminati

Messaggi consigliati

Buongiorno a tutti,

E' il mio primo post su questo forum, quindi se violo qualche regola ditemelo pure che provvederò.

Sto facendo degli esperimenti nella mia azienda cercando di far comunicare un ET200SP e una scheda con accelerometro customizzata (quindi non chiedetemi datasheet perchè purtroppo non posso darveli (😢).

L'accelerometro funziona principalmente in questo modo:

 

  • Si invia uno "Start" di 24V ad un suo ingresso specifico.
  • Appena rilevato il livello logico alto esso comincerà a raccogliere tutti i dati che l'accelerometro rivela dall' ambiente esterno.
  • Quando il livello logico torna normale (basso) la scheda a cui è attaccato l'accelerometro tiene in memoria tutti i dati rilevati da quest'ultimo, e, all'invio del dato (In UDP dal PLC) "0" esso sparerà fuori degli array da 506 byte ciascuno contenente tutti i dati rilevati.
  • Il 2° byte di ogni array contiene il N° dell' array stesso. (Spiego meglio: se vengono inviati 3 array da 506 Byte, il 2° byte del primo array conterrà 01, il 2° del secondo 02, il 2° del terzo 03 3 così via....) 

 

Il N° di array che verranno inviati al PLC dipende dalla durata di "Start" che è stata inviata dal PLC.

In particolare il PRIMO array che invia al PLC contiene un dato riguardante il N° totale di array che verranno inviati immediatamente dopo al PLC.

Per suddividere tutti i vari array e memorizzarli nel PLC in Tia Portal (15.1) ho provato la seguente soluzione (funzionante):

Arrivo del 2° array ( scartiamo il PRIMO che non contiene dati riguardanti i valori di accelerazione), faccio un confronto tra il 2° byte dell'array e un numero fisso (1,2,3...), se il numero fisso corrisponde al 2° byte dell' array appena arrivato lo salvo in un Array dichiarato in una DB del PLC, e così via per tutti gli altri array che mi arriveranno; ne arriva uno , lo confronto lo salvo, ne arriva un altro lo confronto e lo salvo ecc..

Il problema che mi si pone ora (e arriviamo al dunque) è che non so tecnicamente come fare per creare degli array al momento che dipenderanno dalla lunghezza della lettura effettuata dall' accelerometro.

Infatti, come credo abbiate capito se lo "Start" dura 10s mi arriveranno Tot array, se ne dura 20s mi arriveranno Tot+n array.

 

 

Vi allego immagini esplicative per chiarire meglio cosa mi arriva

 

 

P.S. per effetturare il collegamento tra PLC e Accelerometro utilizzo un blocco TCON per stabilire la connessione, un blocco TUSEND per inviare il dato "0" e un blocco TURCV per ricevere la valanga di array in UDP

Cattura.PNG

Cattura_.PNG

Confronto.PNG

UDP.PNG

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