Jump to content

Pagina subordinata da una memoria sul PLC


Recommended Posts

Posted

Buongiorno, con la speranza che l'argomento non sia stato già trattato, volevo chiedere a voi esperti:

Sto utilizzando Tia16, PLC e HMI, vorrei far in modo che alla pressione di un pulsante sull' HMI mi porti ad una pagina, già create, tenendo conto di una serie di memorie che sono sul PLC.

Mi spiego meglio, il pulsante sull'HMI è sempre lo stesso, ma a seconda della ricetta, e quindi una memoria, che sta girando sul PLC si attivi o meno la pagina corrispondente alla ricetta che sta girando in quel momento sul PLC.

In pratica a seconda di 4 ingressi del plc, combinazione a bit, se sono a zero oppure a uno, mi carico una ricetta, vorrei che allo stesso modo, sull'HMI, quando pigio il pulsante creato apra la pagina corrispondente alla ricetta che sto utilizzando.

 

Come sempre.......grazie

 

Mattia Spoldi
Posted

o fai uno scipt sul'hmi (solo se è un modello comfort), altrimenti la via più semplice è ti crei 16 pulsanti, ad ognuno imposti la visibilità subordinata alla ricetta caricata e poi li metti tuitti uno sopra all'altro.

 

Posted
7 ore fa, Mattia Spoldi ha scritto:

o fai uno scipt sul'hmi (solo se è un modello comfort), altrimenti la via più semplice è ti crei 16 pulsanti, ad ognuno imposti la visibilità subordinata alla ricetta caricata e poi li metti tuitti uno sopra all'altro.

 

Intanto grazie, confermo è un comfort ma onestamente non saprei da dove iniziare con lo script, è complicato?

Adamo

Mattia Spoldi
Posted

non è niente di complicato,

crei un nuovo script,

dentro ci metti un case (o una serie di if then else) collegato alla tua variabile,

in base alla variabile chiami un activatepage diverso,

poi richiami il tuo script alla pressione del pulsante

 

pigroplc
Posted

Dim puntatore
puntatore = 0     'anche se non serve te lo metto per capire
 
If SmartTags("Ingresso 1") Then
    puntatore = puntatore +1 'statements
End If
If SmartTags("Ingresso 2") Then
    puntatore = puntatore +2 'statements
End If
If SmartTags("Ingresso 3") Then
    puntatore = puntatore +4 'statements
End If    
If SmartTags("Ingresso 4") Then
    puntatore = puntatore +8 'statements
End If    
' così hai la combinazione binaria del case qui sotto (da zero a quindici)

'Please replace all sequences which are enclosed with '_' by your own code.
Select Case puntatore
    Case 1
ActivateScreen "ScritturaProgramma_1", 0
    Case 2
ActivateScreen "ScritturaProgramma_2", 0
    Case 3    
ActivateScreen "ScritturaProgramma_3", 0        
    ' eccetera    
    Case Else
ActivateScreen "PaginaCheDiceProgrammaNonEsistente", 0
End Select

Simone.Salarsi
Posted

ci sarebbe un'altra soluzione se non vuoi avventurarti in script o se ti dovesse capitare la stessa situazione con un Basic Panel.

Puoi definire una variabile a PLC su cui caricare il numero di pagina a seconda delle combinazioni di bit ed usare la funzione ActivateScreenByNumber sul tasto legata al valore inserito da PLC

image.png.75d0940990cb91a61ece0831a2da132a.png

Mattia Spoldi
Posted
9 ore fa, Simone.Salarsi ha scritto:

ci sarebbe un'altra soluzione se non vuoi avventurarti in script o se ti dovesse capitare la stessa situazione con un Basic Panel.

Puoi definire una variabile a PLC su cui caricare il numero di pagina a seconda delle combinazioni di bit ed usare la funzione ActivateScreenByNumber sul tasto legata al valore inserito da PLC

image.png.75d0940990cb91a61ece0831a2da132a.png

effettivamente questa è la soluzione più semplice e veloce

Posted
Il 2/3/2026 alle 08:18 , Simone.Salarsi ha scritto:

ci sarebbe un'altra soluzione se non vuoi avventurarti in script o se ti dovesse capitare la stessa situazione con un Basic Panel.

Puoi definire una variabile a PLC su cui caricare il numero di pagina a seconda delle combinazioni di bit ed usare la funzione ActivateScreenByNumber sul tasto legata al valore inserito da PLC

image.png.75d0940990cb91a61ece0831a2da132a.png

Il 2/3/2026 alle 08:18 , Simone.Salarsi ha scritto:

ci sarebbe un'altra soluzione se non vuoi avventurarti in script o se ti dovesse capitare la stessa situazione con un Basic Panel.

Puoi definire una variabile a PLC su cui caricare il numero di pagina a seconda delle combinazioni di bit ed usare la funzione ActivateScreenByNumber sul tasto legata al valore inserito da PLC

image.png.75d0940990cb91a61ece0831a2da132a.png

 

Premessa, funzionaaaa!, grazieeee.

Non ho ben capito però come fa ad associare le pagine ad un numero, mi spiego:

Ho creato 15 pagine, con il nome "Ricetta 2020" fino alla 2034, ebbene scrivendo un numero che va da 2 a 16 mi carica, al secondo del numero scritto in quel momento, una pagina, ad esempio scrivendo 8  mi carica la pagina relativa alla Ricetta 2026, ma scrivendo 9 mi abilita la pagina relativa alla ricetta 2032.

Ribadisco che funziona, mi sono fatto uno specchietto con le varie combinazioni ed ho risolto.

 

Ancora grazia a tutti.

 

Adamo

 

Il 2/3/2026 alle 18:11 , Mattia Spoldi ha scritto:

effettivamente questa è la soluzione più semplice e veloce

 

Simone.Salarsi
Posted
12 ore fa, adamo ha scritto:

 

Premessa, funzionaaaa!, grazieeee.

Non ho ben capito però come fa ad associare le pagine ad un numero, mi spiego:

Ho creato 15 pagine, con il nome "Ricetta 2020" fino alla 2034, ebbene scrivendo un numero che va da 2 a 16 mi carica, al secondo del numero scritto in quel momento, una pagina, ad esempio scrivendo 8  mi carica la pagina relativa alla Ricetta 2026, ma scrivendo 9 mi abilita la pagina relativa alla ricetta 2032.

Ribadisco che funziona, mi sono fatto uno specchietto con le varie combinazioni ed ho risolto.

 

Ancora grazia a tutti.

 

Adamo

 

 

 

 

Per impostare il numero di pagina c'è una proprietà nella scheda generale di ogni pagina

image.thumb.png.6add6bb186585eb56339fe4628eb97a4.png

Posted
Il 06/03/2026 alle 08:17 , Simone.Salarsi ha scritto:

 

 

Per impostare il numero di pagina c'è una proprietà nella scheda generale di ogni pagina

image.thumb.png.6add6bb186585eb56339fe4628eb97a4.png

Ancora grazie a tutti, non c' è niente da fare, si impara fino alla bara!, diceva il nostro direttore generale!.

 

Adamo 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...