ibra84 Inserito: 21 novembre 2013 Segnala Inserito: 21 novembre 2013 Salve a tutti sono nuovo del forum e inesperto, quindi non mi distruggete come mi è successo in un altro forum sono qui per imparare ,sto programmando in kop con step7 una stazione didattica della festo chiamata Handling; tramite wincc ho creato dei campi I/O dove vengono visualizzati i pezzi che produce la macchina ,ok ,not ok e totali...nel kop ho tre contatori che azzero con il reset tramite scada; però sul pc di supervisione visualizzo anche la% di pezzi ok e non ok sempre con altri 2 campi I/O questi numeri sono real,funziona tutto mi dà le percentuali ma come posso fare per creare dei reset dei valori delle percentuali ; per i contatori è stato facile perché hanno il proprio reset invece le percentuali mi escono da due blocchi separati MUL_R ,se potreste spiegarmi ve ne sarei grato non fornisco i dati della cpu per ora sto usando solo il simulatore e wincc in runtime
mrsunday Inserita: 21 novembre 2013 Segnala Inserita: 21 novembre 2013 ciao, fai un MOVE e carichi zero o il valore che vuoi sulla variabile interessata
ibra84 Inserita: 21 novembre 2013 Autore Segnala Inserita: 21 novembre 2013 però le variabili in uscita delle percentuali hanno indirizzo DB2.DBD8 E DB2.DBD12 io nel DB1 "da scada" ho creato 2 reset di tipo bool che volevo utilizzare per resettare poi i due campi con 2 tasti dal pc di supervisione...se metto in entrata al move DB2.DBD8 in uscita gli scrivo zero??mi sa che non ho ben capito...
batta Inserita: 21 novembre 2013 Segnala Inserita: 21 novembre 2013 se metto in entrata al move DB2.DBD8 in uscita gli scrivo zero?? Devi fare esattamente il contrario.
ibra84 Inserita: 21 novembre 2013 Autore Segnala Inserita: 21 novembre 2013 però il tasto reset su pannello che mi azzera i due campi i/o a che variabile lo lego....cioè devo creare due variabili bool che mi azzerano i contatori no?
mrsunday Inserita: 21 novembre 2013 Segnala Inserita: 21 novembre 2013 se selezioni la funzione e premi F1 ti esce l'. e vedi la descrizione. Il valore IN viene scritto sul valore OUTcrei una variabile bool che metti in serie al MOVE per abilitarne la funzione
ibra84 Inserita: 21 novembre 2013 Autore Segnala Inserita: 21 novembre 2013 ora provo il programma, poi ho altre curiosità riguardo i calcoli che ho fatto per calcolare la % dei pezzi ok e not ok,sono stato redarguito in un altro forum...però il docente che è un programmatore abbastanza stimato mi aveva consigliato questo metodo cioè ho tre contatori questi tre contatori danno in uscita pezzi ok non ok e totali ,ho passato queste uscite con move in tre MD queste MD con DI_R le ho trasformate in real, poi ho fatto la MD pezzi ok diviso MD totali e ho memorizzato il risultato in una LD tramite MUL_R ho moltipliato per 100 e in uscita ho la percentuale che volevo ,lo stesso procedimento l ho eseguito con i pezzi non ok l ho stesso procedimento...cosa ho sbagliato?
batta Inserita: 21 novembre 2013 Segnala Inserita: 21 novembre 2013 Se hai usato i contatori S7, ti danno il conteggio in formato BCD (da 0 a 999). Quindi, prima di fare la trasformazione DI_R devi trasformare il dato da BCD a INT (BCD_I). Per essere corretti (anche se per valori da 0 a 999 non cambia nulla) si dovrebbe fare anche la conversione da INT a DINT (I_DI), e solo dopo trasformare in REAL con DI_R. Questi contatori però, per usare un eufemismo, non sono tanto pratici. Per contare dei pezzi è molto meglio incrementare una variabile (INT o DINT secondo i limiti da gestire) sul fronte di salita dell'evento, utilizzando ADD_I o ADD_DI Se poi volessi usare AWL piuttosto che KOP, tutto diventerebbe più semplice. Esempio, il calcolo della percentuale di pezzi buoni si potrebbe fare così: L "CntPezzi".PzBuoni //Carica pezzi buoni DTR //trasforma da DINT a REAL L "CntPezzi".PzTot //Carica pezzi totali DTR //Trasforma da DINT a REAL /R //Dividi UN OV //Se il risultato della divisione è valido SPB _000 //usa risultato della divisione L 0.000000e+000 //Altrimenti imposta 0.0 _000: L 1.000000e+002 //Moltiplica per 100.0 *R T "CntPezzi".PercBuoni //Risultato: percentuale di pezzi buoni
ibra84 Inserita: 22 novembre 2013 Autore Segnala Inserita: 22 novembre 2013 si infatti anche il docente mi ha riferito che lui e i programmatori in genere non utilizzano i contatori ,ma i blocchi che hai citato tu ; mi sono anche reso conto tornando al mio primo quesito che creare dei reset delle % non serve perché azzerando i contatori di conseguenza si azzerano anche le %;a me non si azzeravano perché avevo fatto un errore nel kop Quindi lo Z_VORW in realtà non restituisce un intero.....credevo di si;nelle operazioni matematiche memorizzare un risultato parziale in una local area è una cosa giusta? tanto poi quel dato non mi servirà più....GRAZIE anche per l'esempio in awl che prossimamente studierò sicuramente
ibra84 Inserita: 22 novembre 2013 Autore Segnala Inserita: 22 novembre 2013 oltre ha quello che mi hai consigliato mi dicevano che il problema di eseguire le conversioni come ho fatto io potrebbe creare dei problemi in caso di processi di comunicazione non sincroni;sapete dirmi qualcosa in merito?
ibra84 Inserita: 22 novembre 2013 Autore Segnala Inserita: 22 novembre 2013 credevo che fosse dez uscita numero bcd e dual invece fosse intero
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora