Vai al contenuto

Gestione area dati a matrice

Home Forum Programmazione IEC 61131 (LogicLab) Gestione area dati a matrice

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35860
    Giorgio
    Partecipante

    Avrei bisogno di un consiglio, devo creare un’area dati consecutiva dove depositare 32 parametri “P” provenienti da un max di 20 dispositivi “D” connessi tramite can bus. In pratica dovrei avere 32×20=640 word raggiungibili mediante un puntatore del tipo: Pointer=D x 32+P.

    Mi conviene usare un array[640] oppure un’area tipo MX100.1000 –> MX100.1639. Dovrò poi visualizzare questa tabella (eventualmente a gruppi di 32) su pagine web, probabilmente se non è cambiata la regola devo usare l’area M100.xxxx.

    #39121
    Sergio Bertana
    Amministratore del forum

    Il consiglio è di definire un tipo dati (Esempio PARAMETERS di 32 WORD) per contenere tutti i parametri dei vari dispositivi. Poi si potrà allocare nella DB 100 un array di 20 di questo tipo dato per contenere i parametri di tutti i dispositivi (Screenshot).

    L’allocazione nella DB 100 è obbligatoria per poter gestire i dati da pagina Web. L’accesso ai singoli parametri di ogni dispositivo da linguaggio ST è possibile utilizzando la tecnica dell’accesso a matrici (Topic). Ecco gli statrements da scrivere:

    Value:=Devices[2, 3]; (* Leggo valore del parametro 3 del dispositivo 2. *)
    Devices[10, 20]:=Value; (* Scrivo valore del parametro 20 del dispositivo 10. *)

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.