Gestione screensaver con oggetti in Common Window
Home › Forum › Terminali operatore (Weintek) › Gestione screensaver con oggetti in Common Window
-
AutorePost
-
Marzo 27, 2023 alle 11:25 am #71280
a08
PartecipanteSiccome 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.
Marzo 27, 2023 alle 11:31 am #71284Sergio Bertana
Amministratore del forumAvendo 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.
Marzo 27, 2023 alle 1:02 pm #71289a08
PartecipanteBuongiorno, 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.
Marzo 28, 2023 alle 4:55 pm #71326Sergio Bertana
Amministratore del forumIntanto 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.
Marzo 28, 2023 alle 4:57 pm #71327Sergio Bertana
Amministratore del forumCosì 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.
Marzo 29, 2023 alle 10:21 pm #71346a08
PartecipanteGrazie mille davvero della dipsonibilità e tempestività di riposta. Proverò entrambi i metodi per gestire questa funzione. Ringrazio ancora della disponibilità
Marzo 29, 2023 alle 11:05 pm #71347a08
PartecipanteBuona sera, confermo di avere risolto con il metodo Underlay window; spero possa tornare utile anche a qualche altro utente!
Marzo 29, 2023 alle 11:27 pm #71348a08
PartecipanteHo 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.
-
AutorePost
- Devi essere connesso per rispondere a questo topic.