Netlog III utilizzo display incorporato

Attenzione !I messaggi sul forum potrebbero essere modificati dal nostro staff. La data e l'ora dei messaggi potrebbe non essere quella di invio ma quella di moderazione da parte dello staff. Grazie per l'attenzione.

Home Forum Controllori SlimLine e Netsyst (LogicLab) Netlog III utilizzo display incorporato

Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Autore
    Post
  • #45676
    Gianluca
    Partecipante

    Buongiorno, le sto provando tutte ma non riesco proprio a gestire i tasti e i messaggi del NetLog III con display incorporato. Qualcuno ha un progetto demo per questa gestione?

    #45713
    Sergio Bertana
    Amministratore del forum

    Nell’ultima versione di LogicLab (3.0.0) abbiamo inserito tra i progetti di esempio il programma ABCNetlog, un esempio di utilizzo del display di Netlog, lo allego per il download.

    Un ottimo esempio di utilizzo del display integrato nel Netlog è dato dal programma ServerMonitor (Download) che è il programma citato in questa knowledge. Viene eseguita l’acquisizione di un misuratore di energia monofase, i dati acquisiti sono visualizzati sul display ed inviati via REST ad un server nel cloud.

    #48346
    alessandro.paniccia
    Partecipante

    Devo realizzare un programma su NetlogIII che tra le altre specifiche dovrà avere la possibilità di modifica di 3-4 variabili direttamente dal display integrato.

    Stò vedendo l’esempio ABCNetlog del post precedente però non mi è ben chiaro come implementare 3-4 variabili per poterle successivamente modificare.  Mi potete dare qualche dritta per favore…

    #48348
    Sergio Bertana
    Amministratore del forum

    Nella configurazione dei messaggi (Screenshot) puoi definire per ogni messaggio il numero che desideri di variabili, quindi a tua scelta puoi avere 3 messaggi (Uno per ogni variabile da impostare) oppure fare un unico messaggio con tutte e 3 le variabili.

    Per inserire la visualizzazione delle variabili sul display devi mettere il tag <n>, dove al numero corrisponde la definizione della variabile nella tabella. Si possono gestire solo variabili globali di progetto sia allocate in DB100 che automatiche.

    Per ogni variabile è possibile definire se è editabile oppure no, per tutte le variabili editabili può essere impostato il valore tramite i tasti del Netlog. Come funziona l’imputazione…

    Agendo sul tasto [F] il valore della prima variabile editabile del messaggio diventa lampeggiante, agendo nuovamente su [F] si passa alla seconda, e così via.

    Con la variabile lampeggiante agendo sul tasto [E] si attiva la modifica del valore, lampeggerà la cifra meno significativa, i tasti [L] e [R] permettono di spostarsi sulle cifre, i tasti [U] e [D] permettono di impostare il valore.

    Il tasto [E] conferma il valore impostato, il tasto [F] abortisce l’imputazione.

    #49961
    Gianluca
    Partecipante

    Tutto funziona ma ho ancora un dubbio/problema che non riesco a risolvere: quando arrivo ad un certo messaggio (Impostazione manuale uscite) disabilitare i tasti navigazione fino alla pressione del tasto F e cambiare il modo di modifica variabili usando i tasti L e R per spostarmi sulla riga 2 e far lampeggiare la variabile editabile e i tasti U e D per variare il valore.

    Questo perchè nel mio utilizzo quando provo le uscite manualmente diventa troppo lungo ed in certi casi pericoloso il tempo per rientrare nel modo edit standard. Ad esempio per spegnere l’uscita 7 devo premere F 7 volte, premere E, premere D e poi di nuovo E. Se potessi tenere sempre selezionata la stessa variabile potrei accendere e spegnere più rapidamente. Il messaggio sul display è fatto così:

    Riga 1: 1-2-3-4-5-6-7-8
    Riga 2: <1> <2> <3> <4> <5> <6> <7> <8>

    Le variabili sono associate alle uscite digitali.

    #49987
    Sergio Bertana
    Amministratore del forum

    La gestione integrata del display purtruppo ha regole definite che non sono modificabili, quindi per passare da una variabile all’altra di un messaggio si utilizza il tasto [F] eseguita l’inputazione del valore ed accettata con il tasto [E] si riparte della prima variabile.

    Ma se tu definisci un messaggio con due variabili stringa da 16 caratteri (Esempio RowUp e RowDw) e poi da programma le gestisci puoi fare quello che vuoi. Ti ho postato un esempio dove realizzi quello che chiedi, tralasciando le inizializzazioni che trovi nel progetto (Download NetlogCustomMsg), ecco il “succo” del programma.

        // -------------------------------------------------------------------------
        // GESTIONE MESSAGGIO 
        // -------------------------------------------------------------------------
        // Se sono nel messaggio #2 gestisco direttamente il display.
    
        IF (Messages.MsgID = 2) THEN
            i:=SysVarsnprintf(ADR(RowUp), SIZEOF(RowUp), '%s', STRING_TYPE, ADR('0-1-2-3-4-5-6-7 '));
            i:=SysVarsnprintf(ADR(RowDw), SIZEOF(RowDw), '%s', STRING_TYPE, ADR('0 0 0 0 0 0 0 0 '));
    
            // Stampo valore variabile.
    
            FOR i:=0 TO 7 DO
                Ptr:=VAdd[i]; //Auxiliary pointer
                IF (@Ptr <> 0) THEN Ptr:=ADR(RowDw)+(i*2); @Ptr:=16#31; END_IF;
            END_FOR;
    
               // Il messaggio non ha sottomessaggi quindi i tasti [<] e [>] non sono
               // gestiti. Sulla loro pressione seleziono la variabile da modificare
               // e la visualizzo rendendola lampeggiante.
    
            IF (Display.KeyLEFT <> KeyLEFT) THEN
                KeyLEFT:=Display.KeyLEFT; //Tasto [<]
                IF (Display.KeyLEFT AND (VNr > 0)) THEN VNr:=VNr-1; END_IF;
            END_IF;
    
            IF (Display.KeyRIGHT <> KeyRIGHT) THEN
                KeyRIGHT:=Display.KeyRIGHT; //Tasto [>]
                IF (Display.KeyRIGHT AND (VNr < 7)) THEN VNr:=VNr+1; END_IF;
            END_IF;
    
            // Eseguo lampeggio variabile selezionata.
    
            IF (SysClock1000) THEN Ptr:=ADR(RowDw)+(VNr*2); @Ptr:=16#20; END_IF;
    
            // Con il tasto [E] eseguo variazione variabile.
    
            IF (Display.KeyENT <> KeyENT) THEN
                KeyENT:=Display.KeyENT; //Tasto [E]
    
                Ptr:=VAdd[VNr]; //Auxiliary pointer
                IF (Display.KeyENT) THEN @Ptr:[email protected] XOR 16#01; END_IF;
            END_IF;
        END_IF;
    
Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Devi essere connesso per rispondere a questo topic.