Vai al contenuto
PLC Forum


Cambio Pagine


roberto8303

Messaggi consigliati

Visto che Roberto afferma di essere partito dal progetto di Giuseppe, e che Giuseppe conferma che nel suo progetto non c'è nulla per aggiornare la variabile cambio di pagina, ho fatto le seguenti prove:

1) Ho aperto il progetto di Roberto ed ho subito effettuato le correzioni che ritenevo opportune per attivare l'aggiornamento della variabile per il cambio pagina (inserito campo I/O con variabile cambio pagina nel modello di pagina e abilitato il modello di pagina in tutte le pagine). In questo modo, il cambio pagina funziona. Poi ho tolto il campo I/O con la variabile per il cambio pagina e, come mi aspettavo, non funziona più.

2) Ho aperto il progetto di Giuseppe e verificato con il Cross Reference che nel pannello operatore la variabile per il cambio pagina esiste solo come dichiarazione, ma non è utilizzata in nessuna pagina. Nonostante questo, il cambio pagina funziona.Come me lo spiego? Molto semplice: non me lo spiego proprio.

3) A questo punto ho deciso di fare un progetto nuovo, con il cambio pagina sempre comandato nella stessa maniera. Anche in questo nuovo progetto, se non inserisco la variabile per il cambio pagina in un punto dove ne venga richiesta la lettura, il cambio pagina non funziona.

Link al commento
Condividi su altri siti


inserito campo I/O con variabile cambio pagina nel modello di pagina e abilitato il modello di pagina in tutte le pagine

Allora io voglio solo capire come fare a far funzionare il mio progetto, sapere che quello di Giuseppe funziona che il tuo Batta funziona e il mio no non risolvo nulla, sono punto e a capo... Però non pretendo nemmeno che mi sia data la pappa bella e pronta, anzi Batta ti ringrazio per la pazienza che hai avuto per controllare il programma. Solo una cosa adesso che non ho il Tia sotto mano, non capisco quando dici inserito campo i/0 con variabile cambio pagina...o meglio ti spiego cosa ho capito e proverò a fare:

Apro in modello di pagina una variabile visibile di ingresso-uscita, chiamata mw0 vado in eventi e faccio attiva cambio pagina con numero?con nome?

Poi dove si fa abilita il modello di pagina in tutte le pagine?

Ultima cosa visto che ho anche io il progetto di Giuseppe dove sta il cross Reference per vedere la variabile che io non ho proprio creato?cosi mi rendo conto piu facilmente :smile:

Link al commento
Condividi su altri siti

inserito campo I/O con variabile cambio pagina nel modello di pagina e abilitato il modello di pagina in tutte le pagine

Ma così funziona o no?

Solo una cosa adesso che non ho il Tia sotto mano, non capisco quando dici inserito campo i/0 con variabile cambio pagina...o meglio ti spiego cosa ho capito e proverò a fare:

Apro in modello di pagina una variabile visibile di ingresso-uscita, chiamata mw0 vado in eventi e faccio attiva cambio pagina con numero?con nome?

Nel modello devi inserire un campo con la variabile che già utilizzi per il cambio pagina, ovvero quella che, nel tuo progetto, nell'archivio variabili dell'HMI hai chiamato "prova", e che corrisponde alla MW11 nel PLC.

Nell'archivio variabili hai già programmato (nella scheda "eventi" della variabile) il richiamo di pagina quando la variabile cambia di valore.

Il problema è che se il pannello operatore non utilizza questa variabile, non si accorge di un eventuale cambio di valore e, quindi, non lancia il comando programmato.

Se la variabile è presente nella pagina attiva (o nel modello utilizzato dalla pagina attiva), ecco che l'HMI è costretto a leggere la variabile dal PLC e ad accorgersi di un eventuale cambio di valore.

Poi dove si fa abilita il modello di pagina in tutte le pagine?

Pagina per pagina, nelle proprietà, puoi decidere se associare o meno un modello di pagina.

Ultima cosa visto che ho anche io il progetto di Giuseppe dove sta il cross Reference...

Tasto destro sulla variabile --> Riferimenti incrociati.

Ho fatto un piccolissimo progetto di esempio per il cambio pagina con ordine di controllo, che è un metodo che considero migliore.

In questo progetto c'è anche l'esempio di come sia possibile gestire un cambio pagina selezionando la pagina da un campo I/O simbolico e, sempre tramite questo campo I/O simbolico, visualizzare il nome della pagina attiva.

Questo metodo non è farina del mio sacco (viene direttamente da Siemens), ma lo trovo molto comodo e lo uso spesso.

http://digilander.li...ambioPagina.zip

Link al commento
Condividi su altri siti

Giuseppe Signorella
Nonostante questo, il cambio pagina funziona.Come me lo spiego? Molto semplice: non me lo spiego proprio.

E se non riesci a spiegarlo tu...........io non ci provo nemmeno.

Non mi resta che, nei prossimi giorni, di provare a rifare per l'ennesima volta un progetto ex novo, partendo da zero.

Anche se quello inserito come esempio nel forum è il secondo progetto fatto ex novo ed entrambi funzionanti. (Il primo lo fatto per un'applicazione ed il secondo come esempio per il forum).

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Ahhh finalmente funzionaa :smile: ho messo in pagina modello la variabile prova ho capito cosa intendevi!! Per il secondo esempio quello che hai caricato, nell Fc #NRpag è presente solo nei block move? nelle pagine non è collegato? ho fatto cross reference e c è solo nel provacambiopagina nei segmenti come scrittura, non è necessario collegarli anche alle pagine? o alla pagina modello?perche?

Link al commento
Condividi su altri siti

Come funziona l'ordine di controllo per il cambio pagina, l'ho già spiegato.

http://plc.plcforum....dpost__p__91262

Nel mio esempio, la variabile #NrPag è una variabile temporanea che appartiene solo alla FC "ProvaCambioPagina".

Proprio perché si tratta di una variabile temporanea poi, avrai notato che mi curo di assegnarle un valore di inizializzazione (zero, in questo caso).

Se non facessi questa operazione, la variabile potrebbe assumere valori casuali.

Quando si verifica un evento che mi richiede la chiamata alla pagina desiderata, sul fronte di salita di questo evento (mi raccomando, importante usare il fronte) carico nella variabile #NrPag il numero della pagina che voglio visualizzare.

Successivamente controllo il valore di #NrPag e, se è diverso da zero, carico 51 (che è il codice dell'ordine per il cambio pagina) nella prima variabile del puntatore area "Ordine di controllo", e il numero della pagina nella seconda variabile.

Sarà poi il pannello operatore che rimetterà a zero queste variabili dopo aver eseguito l'ordine.

Nel pannello operatore si deve solo configurare il puntatore area "Ordine di controllo".

Come vedi, più che semplice lo definirei banale.

Link al commento
Condividi su altri siti

Giuseppe Signorella

Come detto nel precedente post, oggi ho effettuato delle prove in merito al richiamo delle pagine dell'HMI senza l'uso di oggetti invisibili posizionati all'interno delle stesse.

Dalle prove effettuate, posso affermare e/o confermare a tal punto che per richiamare delle pagine dal programma del PLC non è necessario inserire alcun oggetto nelle medesime.

Ho ricreato diversi progetti ex novo con differenti pagine, ho assegnato differenti nomi alle variabili e cercato di ricreare differenti situazioni. In tutte le prove che ho effettuato, il richiamo delle pagine ha funzionato senza alcun problema. Ho ricreato in tutto tre nuovi progetti differenti tra loro e uno su un PC differente, anche se quest'ultima prova (quella di cambiare PC) era priva di qualunque senso.

In uno dei tre progetti, ho richiamato una quindicina di pagine mediante hyperterminal ed una connessione Ethernet. (Non avevo sufficienti ingressi della cpu per richiamare tutte le pagine).

Link al commento
Condividi su altri siti

Non so proprio cosa dirti.

Anch'io ho constatato che il tuo progetto funziona anche senza inserire nelle pagine la variabile per il cambio pagina.

In quello di Roberto e in quello che avevo fatto io, invece no.

Per capire cosa c'è di diverso, dovremmo analizzare passo per passo il procedimento usato per creare il nuovo progetto, rilevare eventuali differenze nella procedura, e capire cosa queste differenze comportino.

Sembra banale, ma richiede un po' di tempo.

Io preferisco usare l'ordine di controllo, ed eliminare il problema alla radice.

Link al commento
Condividi su altri siti

Giuseppe Signorella
Per capire cosa c'è di diverso, dovremmo analizzare passo per passo il procedimento usato per creare il nuovo progetto, rilevare eventuali differenze nella procedura, e capire cosa queste differenze comportino.

In realtà è ciò che ti avevo proposto,.........poi ti ho perso.

In quello di Roberto e in quello che avevo fatto io, invece no.

Non comprendo, visto i sorgenti messi a disposizione.

Ho ripetuto più volte la creazione di un nuovo progetto è non ho riscontrato nessuna difficoltà. Siccome stiamo parlando di un progetto troppo banale, non riesco proprio a capire il perchè replicando il mio progetto a voi non funziona. E' un arcano mistero. Eppure non credo che sia la versione del tia o altro, sono sicuro che la vostra è aggiornata come la mia. Forse sarà che al sud siamo tecnologicamente più evoluti ......... :whistling:

Io preferisco usare l'ordine di controllo, ed eliminare il problema alla radice.

E' questo non lo condivido.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Finalmente ho trovato. Ed era anche piuttosto banale.

Di default, quando crei una nuova variabile, come modo di acquisizione viene impostato "Funzionamento ciclico". In questa modalità la variabile viene aggiornata solo se la variabile è presente nella pagina (o in uno script, in registrazioni o altro).

Basta invece impostare il modo di acquisizione su "Cicli continui", per ottenere sempre l'aggiornamento della variabile.

A questo punto, se utilizzare il metodo dell'istruzione "Attiva pagina con numero" o quello dell'ordine di controllo, diventa solo una scelta personale.

P.S.

Però potevi specificare che avevi modificato quell'impostazione. Oppure l'hai specificato e mi è sfuggito?

Link al commento
Condividi su altri siti

Giuseppe Signorella
P.S.

Però potevi specificare che avevi modificato quell'impostazione. Oppure l'hai specificato e mi è sfuggito?

In tutta sincerità credo di averlo detto in uno dei miei precedenti post quando consigliavo a Roberto come procedere, ma non ne sono sicuro. Se non lo fatto e perché mi sarà sfuggita o l'avrò data per scontato.

La cosa positiva di tutto ciò che abbiamo confermato due delle regole più importanti tramandate dai nostri antenati.

1) Sbagliando si impara (Una mia cattiva interpretazione di un tuo vecchio post mi ha portato ad ottenere il risultato di cui oggi discutiamo)

2) Non si finisce mai di imparare.

P.S. Mi devi una birra, ma non di quella commerciale. Quindi datti da fare ;)

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

  • 4 weeks later...

Buongiorno a tutti,so che l argomento e giá stato trattato,ma volevo sapere se esiste un metodo"semplice" per visualizzare per un certo tempo (es un paio di secondi)una finestra pop up(ma andrebbe bene anche una finestra di segnalazione di sistema)che informi l operatore sull esito di una sua operazione

Esempio alla pressione dell ipotetico tasto "memorizza dato"o "apri valvola" vorrei visualizzare una finestra con scritto"dato memorizzato correttamente"o "valvola aperta".

Senza entrare nel merito di preoccuparmi di controllare se il dato è stato memorizzato veramente o no,esiste un modo "semplice "di far apparire queste finestre per es alla pressione di un tasto?o devo per forza creare nel plc un ramo di programma che lo faccia?

Le finestre dovrebbero poi scomparire da sole nel giro di un paio di secondi.

Spero di essermi spiegato correttamente

Grazie in anticipo

Matteo

Link al commento
Condividi su altri siti

Giuseppe Signorella

Come si già evidenziato, se vuoi crearti una finestra tipo popup che visualizzi un determinato evento, puoi giocare con la proprietà visibilità, collegandone lo stato ad una variabile.

Trovi un esempio qui sul forum.

Ciao

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...