DOMENICO22 Inserito: 19 marzo 2021 Segnala Inserito: 19 marzo 2021 Salve a tutti. io ho un problema con un contatore (ctu) su Tia Portal v13 al momento il contatore è impostato a 5000 conteggi ma ho bisogno che lui ora inizi da 3474 e non da 0 però noto che nella tabella di forzamento non mi permette di variare il valore...cosa posso fare per poter inserire il valore a me interessato? mi serve solo alla partenza poi giustamente quando daro il comando di reset dovrà ripartire da 0. Grazie a tutti per le risposte.
thinking Inserita: 20 marzo 2021 Segnala Inserita: 20 marzo 2021 Fai una somma al conteggio di quel valore ma che abiliti con un bit che puoi forzare... ciao
drugo66 Inserita: 20 marzo 2021 Segnala Inserita: 20 marzo 2021 Ciao, hai letto il manuale o la guida in linea ? Il contatore CTU (conteggio avanti) ha un ingresso R che, quando attivato, imposta il contatore a zero; l'ingresso CU, invece, avvia il conteggio (lo incrementa) sul fronte di salita; quando il conteggio arriva al numero impostato in PV, si attiva l'uscita Q; in CV hai il valore attuale del conteggio. Se vuoi impostare un valore diverso da zero come partenza del contatore, non puoi utilizzare CTU: dovrai utilizzare CTD (conteggio indietro) o, al limite CTUD (conteggio avanti e indietro); se leggi bene la guida in linea o ti scarichi il manuale da Siemens SIOS, vedrai che non avrai problemi.
Cip77 Inserita: 22 marzo 2021 Segnala Inserita: 22 marzo 2021 Un'idea potrebbe anche essere quella di non usare nessuna funzione esistente e farti la funzione da solo. Ti incrementi un marker e controlli che non abbia superato il valore da te stabilito (5000 in questo caso); quando lo supera lo resetti a 0 e ti abiliti quello che vuoi. Solo la prima volta, nel merker che incrementi, invece che 0 ci carichi il tuo valore (3474 in questo caso). Ciao Claudio.
step-80 Inserita: 25 marzo 2021 Segnala Inserita: 25 marzo 2021 (modificato) Non mi sono mai piaciuti i contatori di libreria, anche perchè farsi la funzione richiede pochissimo tempo e poi sarà molto piu flessibile da usare. Se ho capito bene il problema di @DOMENICO22si tratta solo di usare un paio di istruzioni MOVE ed una di addizione. Con il Merker di First Scan potresti inizializzare una variabile intera a 3474 , variabile che poi andrai ad incrementare col Trigger che vuoi. Una volta raggiunto il conteggio voluto, fai quello che devi fare e porti a 0 la variabile. @Cip77 attenzione che non sono i Merker ad incrementare, ma una variabile intera , doppia o ciò che è. Per merker solitamente si intende una variabile booleana e che quindi puo assumere solo gli stati 0 e 1. Se si vuole mettere piede in questo mondo, meglio partire con quello giusto, usando la terminologia appropriata😉. Se devi incrementare una variabile, meglio crearla dentro ad un Db (nel quale metterai anche altre variabili relative a quella funzione, tipo bit di reset e quant'altro). I Db sono un po ostici da capire all'inizio ma ti assicuro che sono di una comodità assurda una volta che se ne comprendono le potenzialità. Modificato: 25 marzo 2021 da step-80
Cip77 Inserita: 25 marzo 2021 Segnala Inserita: 25 marzo 2021 16 minuti fa, step-80 scrisse: @Cip77 attenzione che non sono i Merker ad incrementare, ma una variabile intera , doppia o ciò che è. Per merker solitamente si intende una variabile booleana e che quindi puo assumere solo gli stati 0 e 1. Se si vuole mettere piede in questo mondo, meglio partire con quello giusto, usando la terminologia appropriata😉. Se devi incrementare una variabile, meglio crearla dentro ad un Db (nel quale metterai anche altre variabili relative a quella funzione, tipo bit di reset e quant'altro). I Db sono un po ostici da capire all'inizio ma ti assicuro che sono di una comodità assurda una volta che se ne comprendono le potenzialità. Ok grazie. Quindi se ho capito bene, M7.0 è un merker, perché accedo al bit 0, ma MB7, anche se è un byte che comprende tutti i bit di M7 (quindi i merker), non è più un merker ma diventa una variabile? Ultima cosa: se ho bisogno di usare un word, senza doverlo memorizzare, che vantaggi ci sono ad usare un word istanziato su un DB al posto di un MW? Grazie e ciao, Claudio.
step-80 Inserita: 25 marzo 2021 Segnala Inserita: 25 marzo 2021 @Cip77 Quote se ho capito bene, M7.0 è un merker... Esatto. %M7.0 significa il bit 0 del Byte 7 di memoria. La memoria nel 1200 è organizzata a Byte. %MB7 invece sta a significare tutto il Byte 7 , il quale naturalmente comprende il bit 0 di prima più tutti gli altri sino al nr 7..quindi l'ultimo sarà %M7.7. Il Byte cosi preso diventa una variabile dentro la quale puoi memorizzare un numero da 0 a 255 se senza segno oppure da -128 a +127 se con segno. Quote se ho bisogno di usare un word, senza doverlo memorizzare, che vantaggi ci sono ad usare un word istanziato su un DB al posto di un MW? Cosa intendi per "senza doverlo memorizzare"? Usare un Data Block ti da parecchi vantaggi, primo fra tutti forse l'organizzazione dei dati e del programma in generale. Se hai 3 variabili di numero, non ti cambierà la vita organizzarle in Db oppure nella tabella delle variabili..anche se una volta abituato userai i Db comunque. Un Db fra gli altri ti da l'enorme vantaggio di poter accedere alle variabili al suo interno con la sintassi Nome Db. Nome variabile. Ti assicuro che se devi interrogare lo stato di uno switch molto meglio cercarlo fra Dati_Silos1 . PB_Svuotamento che in mezzo a centinaia di variabili nella tabella perchè sapendo che il pulsante in questione è relativo a quella parte di impianto, quando andrai a digitare Dati_Silos_1 ti uscirà la tendina con tutte le variabili all'interno. Poi non vorrei dire una castroneria e qui gli esperti Siemens mi correggeranno nel caso..ma mi sembra di ricordare che ci sia anche il vantaggio delle risorse di sistema. Accedere ai dati di un Db se ottimizzato dovrebbe essere molto meno dispendioso per la cpu rispetto ai tag. Ma non ne sono sicuro di questo..
Cip77 Inserita: 25 marzo 2021 Segnala Inserita: 25 marzo 2021 1 ora fa, step-80 scrisse: @Cip77 Usare un Data Block ti da parecchi vantaggi, primo fra tutti forse l'organizzazione dei dati e del programma in generale. Se hai 3 variabili di numero, non ti cambierà la vita organizzarle in Db oppure nella tabella delle variabili..anche se una volta abituato userai i Db comunque. Un Db fra gli altri ti da l'enorme vantaggio di poter accedere alle variabili al suo interno con la sintassi Nome Db. Nome variabile. Ti assicuro che se devi interrogare lo stato di uno switch molto meglio cercarlo fra Dati_Silos1 . PB_Svuotamento che in mezzo a centinaia di variabili nella tabella perchè sapendo che il pulsante in questione è relativo a quella parte di impianto, quando andrai a digitare Dati_Silos_1 ti uscirà la tendina con tutte le variabili all'interno. Poi non vorrei dire una castroneria e qui gli esperti Siemens mi correggeranno nel caso..ma mi sembra di ricordare che ci sia anche il vantaggio delle risorse di sistema. Accedere ai dati di un Db se ottimizzato dovrebbe essere molto meno dispendioso per la cpu rispetto ai tag. Ma non ne sono sicuro di questo.. Grazie per le info. Figurati che io credevo fosse esattamente la cosa contraria: pensavo che usare troppi DB gravasse sul PLC, di conseguenza, ad esempio, se dovessi fare un contatore, fino a stamani avrei usato una variabile MW. I DB li utilizzavo più per i dati da memorizzare anche allo spegnimento del PLC. Grazie e buona giornata, Claudio.
batta Inserita: 25 marzo 2021 Segnala Inserita: 25 marzo 2021 L'accesso ai DB è lento con i DB "non ottimizzati". Da qualche parte si trovano anche le tabelle dei tempi delle diverse istruzioni, compreso l'accesso in lettura e scrittura ai vari tipi di variabili. Ora vado a memoria, quindi potrei anche sbagliare, ma mi pare che l'accesso ai DB ottimizzati sia più rapido dell'accesso all'area dei merker.
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