Vai al contenuto
PLC Forum


Cambio Pagine


roberto8303

Messaggi consigliati

è possibile effettuare un cambio pagina chiudendo un contatto d ingresso dal plc? se si, quale funzione utilizzare? non voglio avere sull hmi nessun oggetto per poi fare attiva pagina n°xxx tramite la chiusura del contatto.

Link al commento
Condividi su altri siti


  • 2 weeks later...

ho creato il cambio pagina tramite la segnalazione hmi a bit, solo che nelle variabili non mi riconosce i bit ma solo delle variabili, come classi di segnalazione ho usato warning. nell evento in entrata ho collegato la variabile.

Il cambio pagina funziona, ma devo sempre inserire dei valori in delle word che poi sarebbere i numeri delle pagine. C è un modo per poter collegare direttamente un bit alla pagina?? cioe se il merker m0.0 è vero attivo la pagina n1, e cosi via. Poi un altra domanda, nel ktp 400 c è un grafico circolare? tipo orologio? o c è solo quello a barra?

Link al commento
Condividi su altri siti

Giuseppe Signorella

Per fare ciò che chiedi puoi muovere al verificarsi di un evento il numero corrispondente della pagina da richiamare nella variabile.

Ad esempio fai un confronto del meker M0.0=true move "2" nella variabile che richiama la pagina. In questo modo ti verrà visualizzata la pagina 2.

Link al commento
Condividi su altri siti

cosi ho provato ma non funziona, anche dal tuo esempio dove ci sono tre pagine mi sembra, funziona solo premendo il tasto dal pannello, legge nella variabile MW11 e va alla pagina corrispondente al volore che trova nella variabile.

Ma appena chiudo il contatto da plc mi carica il valore nella variabile ma il cambio pagina non lo fa, nella funzione attiva pagina con numero, il numero pagina ho messo il collegamento della variabile, come nell esempio.

Poi rifaccio la domanda come grafici c è solo quello a barra? si puo scaricare qualcosa da internet per avere anche un grafico circolare?

Link al commento
Condividi su altri siti

Ma appena chiudo il contatto da plc mi carica il valore nella variabile ma il cambio pagina non lo fa, nella funzione attiva pagina con numero, il numero pagina ho messo il collegamento della variabile, come nell esempio.

Se per il cambio pagian usi la funzione "attiva pagina con numero", la variabile il cui cambio di valore richiama la funzione deve essere presente (anche se non visibile) in un punto in cui il pannello operatore ne richiede l'aggiornamento (es. pagina modello).

Se la variabile non è presente in nessun posto, il pannello operatore non ne chiede l'aggiornamento e non si accorge di un eventuale cambio di valore.

Per avere un sistema che funziona sempre, meglio usare gli "ordini di controllo" (metodo spiegato nel secondo link indicato da Giuseppe).

Poi, per poter dare risposte più precise, non credi sarebbe utile almeno sapere di quale pannello operatore stai parlando?

Immagino sia un KTP, perché siamo nel forum dell'S7-1200 e perché c'è un accenno nel tuo post #6, ma da immaginarlo ad averne la certezza c'è un po' di differenza.

Eppure, dopo 2490 messaggi, dovresti aver imparato che la prima regola per avere risposte è dare i dati.

Link al commento
Condividi su altri siti

il pannello e un ktp400 e quindi cosa devo usare per mettere la variabile anche nella pagina?

ho usato campo i/o modo ingresso uscita e non visibile,ho messo questa variabile in tutte le pagine e non va...

Link al commento
Condividi su altri siti

Giuseppe Signorella

Forse sono io a non comprendere bene ciò che cerchi di dire, ma tu hai scritto:

Il cambio pagina funziona, ma devo sempre inserire dei valori in delle word che poi sarebbere i numeri delle pagine. C è un modo per poter collegare direttamente un bit alla pagina??

L'esempio che ho postato, prima di inserirlo mi sembra di averlo testato e quindi dovrebbe funzionare, ma potrei anche sbagliarmi. Ciò che invece non capisco è ciò che affermi. Tu prima scrivi che funziona,

Il cambio pagina funziona, ma devo sempre inserire dei valori in delle word

ma che vuoi attivare il cambio pagine mediante un bit.

C è un modo per poter collegare direttamente un bit alla pagina??

Non puoi effettuare il cambio pagina collegando direttamente un bit ad una pagina, ma devi per forza richiamarla indicando il numero della pagina che vuoi che venga visualizzato.

Per far questo devi trasferire il numero della pagina da visualizzare all'interno della variabile che usi per richiamare la pagina.

Devi poi effettuare un collegamento tra la variabile del Plc e quella del KTP Nelle proprietà della variabile del KTP all'evento Cambia valore, devi associare la funzione "Attiva Pagina con Numero" e gli assegni la variabile che deve prendere in "considerazione" per richiamare la pagina. (Quella che conterrà il numero della pagina da richiamare).

Ciao

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

Il tuo esempio funziona solo con i pulsanti che ci sono nel pannello, e non chiudendo il contatto elettrico dal plc, chiudendo il contatto carica solo il numero intero nella variabile.

Per far si che si attiva la pagina con numero non solo il pannello deve trovare il numero nella variabile corrispondente al numero di pagina

ma sopratutto deve sentire il cambio valore della variabile, come dice Batta che ogni variabile deve essere presente anche nella pagina del pannello, io l ho messa creando una variabile con campo i/0 ingresso uscita o solo uscita, ma comunque non succede nulla,e sicuramente sbaglio a impostare questo.Infatti nel tuo esempio non cè nessuna altra variabile nella pagine, c è solo il collegamento nelle variabili del hmi, nel tuo esempio a me funziona solo se premo il pulsante sul pannello pagina0 o pagina1 ecc ecc.

Poi ho usato la funzione messaggi hmi del tipo warning, ed elaborazione a bit, in questo caso infatti, nella funzione eventi, non c è la voce attiva,

ma la funzione cambio valore variabile, cioe appena sente che la variabile indicata cambia di valore effettua la funzione e cioe cambio pagina con numero. Questo mi andrebbe anche bene, però succede che se devo creare due o tre pagine, se chiudo i0.0 e carico la pagina 1 il pannello indica la pagina 1, se nello stesso tempo chiudo i0.2 appare la pagina 2, se poi apro i0.2 il pannello invece di mostrare ancora la pagina 1 perche i0.1 è ancora chiuso ritorna alla pagina base, ed è normale, perche l ultimo cambio variabile l ha sentito quando ho chiuso i0,2.

Quindi per poter visualizzare la pagina 1 devo scollegare i0,1 e poi ricollegarlo. e a me non serve cosi,ripeto:

Se i0.1 è chiuso la pagina deve essere visualizzata. Se chiudo i0.2 passa alla pagina 2. Se apro i0,2 e i0,1 e ancora chiuso ritorna alla pagina 1 e non a quella base.

Comunque molto piu semplice da fare che spiegare con messaggi e sopratutto scritti velocemente.

Link al commento
Condividi su altri siti

Se il cambio pagina funziona, mi viene da pensare che l'errore sia nel programma PLC.

Nel PLC, se chiudi l'ingresso I0.1 carichi 1 nella variabile; se chiudi l'ingresso I0.2 carichi 2 nella variabile; se apri I0.2 e I0.1 rimane chiuso, che valore trovi nella variabile? Se trovi 1, deve aprirsi la pagina 1.

Se voui, mi puoi mandare il progetto (batta[at]plcforum.info) e gli darò un'occhiata.

Comunque, per il cambio pagina io consiglio di usare il metodo basato sugli ordini di controllo. E' semplice e funziona senza dover inserire variabili nascoste nelle pagine.

Link al commento
Condividi su altri siti

Giuseppe Signorella

Mi sono preso la briga di verificare il progetto, è presente un errore di battitura che sfasa la visualizzazione delle pagine, (ma non il principio dell'esempio.) il merker di richiamo della finestra di popup, al segmento 4 è indicato come M12.0 mentre doveva essere M2.0. oppure M1.0 (Va bene sia uno che l'altro)

Questo si sovrappone nell'aria di memoria della word M11 (Numero di richiamo pagina) che occupa 2 byte (appunto M11 ed M12) sfalsando il numero di richiamo della pagina.

Se tu rinomini quel bit, l'esempio riprende a funzionare perfettamente.

Nell'esempio non vi è alcun oggetto invisibile nelle pagine tranne quelle per il popup.

Ciao

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

ho modificato anche il merker ma nulla di fatto non va... :toobad: ho cercato di mettere qui il progetto ma il forum non mi permette di caricare il file :wacko: l ho mandato all email di batta aspettiamo buone nuove... :smile:

Link al commento
Condividi su altri siti

Giuseppe Signorella
ho modificato anche il merker ma nulla di fatto non va.

Io vorrei comprendere una cosa che ancora non ho capito, il progetto su cui stai lavorando, è un progetto nuovo che hai creato tu oppure è quello che hai scaricato dal forum? Nella seconda ipotesi, mi piacerebbe capire se hai apportato modifiche ad esempio sostituito il tipo di pannello, il tipo di PLC, oppure lo hai caricato nel medesimo modo in cui lo hai scaricato.

Io oggi ho scaricato il progetto su un PLC e su un KTP, ed eccezione fatta per il Merker ha funzionato senza problemi. Pertanto se non hai apportato modifiche, se funziona sul mio HW, non vedo perché non debba funzionare sul tuo.

Link al commento
Condividi su altri siti

no io l ho rifatto su un nuovo progetto, perche non mi permetteva di caricare il progetto di esempio nel mio plc e pannello. Infatti nemmeno io mi riesco a spiegare!!!

Link al commento
Condividi su altri siti

no io l ho rifatto su un nuovo progetto, perche non mi permetteva di caricare il progetto di esempio nel mio plc e pannello. Infatti nemmeno io mi riesco a spiegare!!!

Io me lo spiego con un errore nel tuo programma. Errore che, senza vedere il programma stesso, è impossibile individuare.

Rinnovo l'invito: mandami il progetto e gli darò un'occhiata.

Link al commento
Condividi su altri siti

Sì, ho visto ora la mail (questa casella non la controllo tutti i giorni).

Però io trovo solo il file "Progetto12.ap11". Ci sono, apparentemente, altri files ma tutti da 0 byte.

Per mandarmi il progetto devi comprimere tutta la cartella contenente il progetto, sottocartelle comprese.

Link al commento
Condividi su altri siti

Dunque, ho guardato il progetto e, come immaginavo, ci sono degli errori.

E' stato ribadito più volte che il pannello operatore (giustamente) interroga le variabili solo quando richiesto.

Questo avviene sempre per variabili tipo le variabili di allarme. Per le variabili "normali" invece, queste devono essere presenti in un oggetto della pagina attiva (campo I/O, condizionamento, curva di un trend, ecc.).

Bene. Nel tuo progetto del pannello operatore, la variabile per il cambio pagina non è utilizzata da nessuna parte. Basta fare un cross reference per rendersene immediatamente conto.

Nel modello di pagina c'è un campo I/O che, forse, serviva a questo scopo. A questo campo però non è collegata nessuna variabile.

Ma non è finita. Anche se a questo campo fosse stata correttamente collegata la variabile per il cambio pagina, otterresti solo il cambio pagina da pag.1 a pag.3, e non torneresti indietro. Questo perché la pagina 3 è configurata per non fare uso del modello.

Bastava ricontrollare il progetto con un minimo di attenzione.

Ti consiglio poi di fare più cura all'uso delle variabili.

Nella lista variabili del plc sono presenti, per esempio, MW10 e MW11. Nel programma poi utilizzi MW11 come variabile per il cambio pagina, mentre MW10 non è mai usata, quindi non ci sono errori veri e propri.

Ma il fatto che siano dichiarate sia MW10 che MW11, può portare facilmente ad utilizzarle entrambe, e questo sarebbe un grave errore.

Non ti devi dimenticare che, nell'S7-1200 (come anche in S7-300/400), l'indirizzamento è a byte. La MW10 quindi occupa i byte MB10 e MB11, e la MW11 occupa MB11 e MB12.

Buona regola poi (anche se non è comunque un errore), è di assegnare alle variabili di dimensione di 2 o di 4 byte sempre indirizzi pari.

Link al commento
Condividi su altri siti

Io me lo spiego con un errore nel tuo programma. Errore che, senza vedere il programma stesso, è impossibile individuare.

Batta il programma è l esempio che è stato messo dal gentilissimo Giuseppe, io ho solo riportato il suo stesso sistema ad un progetto avente solo meno pagine, quindi ancora piu facile. IL fatto che a Giuseppe funzionasse e a me no mi sembrava strano, visto che avevo praticamente copiato sia le variabili che gli eventi per richiamare le pagine. Infatti anche nel programma originale di esempio non trovo altre variabili. :toobad:

Link al commento
Condividi su altri siti

Facciamo così: mi mandi anche il programma originale di Giuseppe, e io ti trovo le differenze ;)

Anzi, me lo scarico io e ti faccio sapere.

Modificato: da batta
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...