Sessioni e localizzazione

Introduzione

Una sessione è un contesto di runtime in cui un utente esegue operazioni di lettura e/o scrittura in base ai propri permessi. La sessione espone delle informazioni, quali i gruppi a cui appartiene l’utente e la sua localizzazione, che si possono sfruttare per realizzare interfacce dinamiche a seconda delle caratteristiche dell’utente.

Sessione root

Quando una Q Application viene eseguita su un target, genera automaticamente una sessione root con un utente root, necessaria ad avviare tutti gli oggetti fondamentali, quali driver di comunicazione, allarmi, datalogger ecc.

Nota

l’utente root è un utente di sistema, non visibile nei nodi del progetto e non modificabile, né a design time né a runtime.

La sessione root istanzia anche il Presentation engine, se previsto nel progetto, che genera a sua volta una o più sessioni interattive, a seconda del tipo di Presentation engine.

Sessione interattiva e Presentation engine

Se in un progetto si imposta l’interfaccia utente, è necessario usare uno specifico oggetto chiamato Presentation engine, che a runtime genera una sessione interattiva per l’utente autenticato. Una sessione interattiva è una sessione che visualizza un’interfaccia utente interattiva.

L’interfaccia utente di una sessione interattiva è sempre composta da istanze degli oggetti grafici impostati a design time, a partire dalla finestra di avvio. Il Presentation engine infatti istanzia la finestra di avvio in ogni sessione interattiva, di conseguenza tutti gli oggetti visualizzati sono istanze.

Le istanze di oggetti grafici possono essere create/rimosse oppure visualizzate/nascoste in base a logiche dinamiche di navigazione, in base allo stato globale della macchina o del progetto (per esempio in base allo stato del PLC), oppure in base allo stato della sessione (permessi dell’utente e localizzazione della sessione). Queste logiche si realizzano tramite pannelli di navigazione, NetLogic e visibilità o meno degli oggetti.

Nell’esempio seguente, le pagine iniziali nelle sessioni interattive degli utenti User1, User2 e User3 sono istanze della pagina iniziale impostata nel Presentation engine. Ognuna contiene quindi diverse istanze degli stessi oggetti A, B e C, visualizzate o nascoste grazie a logiche dinamiche basate sull’utente. Inoltre, i testi in interfaccia possono essere tradotti a seconda della localizzazione dell’utente.

../../_images/79106936595b567c2b2bd8ff046706b1e60833de.svg

Scenari possibili a seconda del Presentation engine

Di seguito uno schema che riassume i possibili scenari di runtime a seconda dei Presentation engine impostati nel progetto.

Presentation engine nativo

../../_images/c676dbefca33af2af6216c439c1aa83895f73222.svg

Presentation engine web

../../_images/2e4d2dde0a42c29f18eae5b94fc98e3360a102c6.svg

Se il progetto a runtime…

Allora…

ha solo un oggetto Presentation engine nativo

esiste una sessione di root e una sessione interattiva, in cui è possibile cambiare utente.

ha solo un oggetto Presentation engine web

esiste una sessione di root e possono esistere da zero a n sessioni interattive.

Ogni sessione è associata a un solo utente e lo stesso utente può accedere in più sessioni contemporaneamente, per esempio da un PC e da un dispositivo mobile.

ha entrambi i Presentation engine

lo stesso utente può accedere sia alla sessione generata dall’oggetto Presentation engine nativo su un dispositivo, sia a più sessioni generate dall’oggetto Presentation engine web su altri dispositivi.

Nodi della sessione

Per realizzare logiche applicative legate all’utente di sessione, Q Studio fornisce l”alias di sessione {Session}. Questo è un alias di sistema che punta al nodo Session, ovvero il nodo della sessione corrente a runtime.

Si realizzano quindi collegamenti dinamici con i nodi all’interno del nodo Session, le cui proprietà sono valorizzate solo a runtime in base all’utente di sessione e alla localizzazione della sessione e/o dell’utente. In Q Studio l’alias di sessione è disponibile nella finestra dei collegamenti dinamici quando si imposta qualsiasi proprietà di oggetti grafici.

Di seguito sono descritti i nodi della sessione:

Nodo

Descrizione

Groups

Gruppi definiti nel progetto. Ogni gruppo espone uno dei seguenti valori:

  • 0 = l’utente appartiene al gruppo

  • 1 = l’utente non appartiene al gruppo

MeasurementUnits

Elenco delle grandezze disponibili. Per ogni grandezza sono disponibili le seguenti proprietà valorizzate in base alla localizzazione:

  • Description: descrizione estesa dell’unità di misura (es.: gradi centigradi)

  • DisplayName: simbolo dell’unità di misura (es.: °C)

  • UnitId: identificativo dell’unità di misura secondo OPC UA

LocaleIds

Array di identificativi di localizzazione della sessione. Indica tutte le localizzazioni supportate dall’interfaccia utente.

User

Utente di sessione. Contiene le seguenti proprietà:

  • LocaleIds: identificativi di localizzazione dell’utente

  • Password: password dell’utente

Vedi anche

Concetti correlati

Localizzazione

Procedure correlate

Rilevare periodi di inattività

API correlate

API di sessione