Vai al contenuto

Gestione screensaver con oggetti in Common Window

Home Forum Terminali operatore (Weintek) Gestione screensaver con oggetti in Common Window

  • Questo topic ha 7 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 2 anni fa da a08.
Stai visualizzando 8 post - dal 1 a 8 (di 8 totali)
  • Autore
    Post
  • #71280
    a08
    Partecipante

    Siccome non ho trovato purtroppo un topic simile sul sito, volevo chiedere come fosse possibile attivare uno screen saver a schermo intero escludendo la Common Window.

    Vorrei mettere come screen saver/pagina di avvio il nostro logo aziendale ma purtroppo è sempre presente la common view dove noi mettiamo la barra degli allarmi, data ora, login, menu di navigazione, ecc.

    #71284
    Sergio Bertana
    Amministratore del forum

    Avendo definito degli oggetti degli oggetti nella Common Window questi vengono visualizzati su ogni pagina, quindi la funzione automatica di screen saver non può essere utilizzata. La funzione esegue un cambio pagina in visualizzazione ma essendoci oggetti nella Common Window questi vengono comunque visualizzati. Ora che alternative hai:

    • Rimuovi gli oggetti dalla Common Window e li vai ad inserire nelle pagine dove ti occorre visualizzarli, ma questa soluzione certo comporta una modifica pesante del progetto.
    • Puoi crearti una macro ad esecuzione periodica che gestisce un conteggio del tempo trascorso in cui nessuno tocca lo schermo, il bit 0 della variabile LW-9041 se attivo indica che l’utente stà toccando lo schermo. Dopo il tempo desiderato puoi attivare una pagina in pop-up grande come la pagina base, in modo da ricoprire completamente la pagina base ed anche la Common Window.
    #71289
    a08
    Partecipante

    Buongiorno, come sempre grazie della risposta.

    Posso chiedere gentilmente un esempio di scrittura di questa macro siccome non saprei come eseguirla, in modo tale che dopo posso metterla in atto e provare.

    Per il momento ringrazio per aver trovato questa soluzione al problema.

    #71326
    Sergio Bertana
    Amministratore del forum

    Intanto la notte ha portato consiglio, potresti spostare gli oggetti dalla Common Window in una nuova finestra, poi nelle tue finestre andare a definire nei settaggi questa finestra come Underlay window.

    In questo modo avrai un funzionamento identico a prima ma nella finestra che utilizzerai come salvaschermo non definendo nessuna Underlay window non avrai nessun oggetto tranne quelli dichiarati nella pagina.

    #71327
    Sergio Bertana
    Amministratore del forum

    Così per sfizio ti posto anche l’esempio della macro.

    macro_command main()
    bool ResetBit=false //Reset bit command
    bool SetBit=true //Set bit command
    short CTime=0 //Current time
    short TouchNow[2]={0,0} //Touch now position
    short TouchSave[2]={0,0} //Touch save position
    
    // Read data from HMI support variables.
    
    GetData(CTime, "Local HMI", LW, 10, 1) //Current time
    GetData(TouchSave[0], "Local HMI", LW, 11, 2) //Touch save position
    
    // Increase current time.
    
    CTime=CTime+1 //Current time
    
    // Acquire last touch position.
    
    GetData(TouchNow[0], "Local HMI", LW, 9042, 2) //Touch X, Y position
    
    // Check is screen is touched.
    
    if ((TouchNow[0] <> TouchSave[0]) or (TouchNow[1] <> TouchSave[1])) then
        CTime=0 //Current time
        SetData(ResetBit, "Local HMI", LB, 10, 1) //Reset pop-up trigger
        TouchSave[0]=TouchNow[0] //Touch save position
        TouchSave[1]=TouchNow[1] //Touch save position
    end if
    
    if (CTime > 10) then
        SetData(SetBit, "Local HMI", LB, 10, 1) //Set pop-up trigger
    end if
    
    // Save data on HMI support variables.
    
    SetData(CTime, "Local HMI", LW, 10, 1)
    SetData(TouchSave[0], "Local HMI", LW, 11, 2) //Touch save position
    end macro_command

    La macro viene eseguita a tempo ogni 1 secondo, ed esegue l’incremento di un avariabile tempo, se viene toccato lo schermo (siccome eseguo la macro a tempo non posso utilizzare il bit di schermo toccato, ho usato le posizioni di tocco), eseguo il reset del tempo e del bit di attivazione finestra pop-up.

    Se scade il tempo si attiva il bit di attivazione finestra pop-up, ho scelto un bit a caso LB10 ed ho inserito nella Common window un oggetto Direct window che visualizza una finestra di pop-up se LB10 è attivo. Così quando si attiva la finestra di pop-up basta toccare lo schermo per resettare il bit e chiuderla.

    #71346
    a08
    Partecipante

    Grazie mille davvero della dipsonibilità e tempestività di riposta. Proverò entrambi i metodi per gestire questa funzione. Ringrazio ancora della disponibilità

    #71347
    a08
    Partecipante

    Buona sera, confermo di avere risolto con il metodo Underlay window; spero possa tornare utile anche a qualche altro utente!
     

    #71348
    a08
    Partecipante

    Ho provato la stessa procedura in un secondo progetto e ho riscontrato soltanto un problema, quando avevo tutto nella pag 4 di common window al suo interno avevo alcuni tasto combo che mi facevano comparire un menù a selezione che era in primo piano quindi indipendemente dalla pagina in cui mi trovavo questo menù era in primo piano. Questa cosa purtroppo non riesco a replicarla con il metodo da lei suggerito come alternativa alla common window.

    Se per esempio mi trovo nella home page e vado a premere il tasto combo presente nella common windows mi compare il poup-up ma al di sotto della home page quindi non riesco ad operare. Ho provato anche a mettere nelle impostazioni della pagina HomePage che la pagina sottostante (CommonWindow con modalità da lei consigliata) si al di sopra e non al di sotto.

    Nell’altro progetto funziona tutto perfettamente siccome nella CommonWindow non possiedo tasti combo che mi aprono una sorta di menù   a tendina

    Rimango a disposizione, ringrazio.

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