Vai al contenuto
PLC Forum


Piccolo Problemino Cpu313


VINZENT

Messaggi consigliati

Gentilissimi,

non sono un grande esperto sulla famiglia 300.

Nel mettere nel mio programma un temporizzatore tipo T5 trovo alcuni problemi del tipo:

-devo perforsa impostare un tempo fisso tipo S5time#2s (ma se volessi mettere una variabile tipo una MW alla quale cambia il sua volore in riferimento ad un potenziometro..perche' i valori bassi me li prende e quelli piu' alti no?)

-inoltre dovrei fare un confronto tra in temporizzatore T5 quando viene attivato e una variabile MW...ma noto che il valore del temporizzatore non esperesso in incremento ma in decremento..e cioe' mi fa' vedere il tempo che rimane e non quello che scorre..e per tanto trovo problemi nel far fare un confronto.

-per ultimo ho un op177 che visualizzo dei pezzi..ma quando accendo e spengo la macchina perde il dato..in quale area di memoria devo appoggiare il contapezzi nella mia cpu per non perdere il valore?

spero di non chiedere troppo.

saluti.

Link al commento
Condividi su altri siti


per i dati ritentivi devi crearti una db e inserire i dati all'interno.

per invece il valore del timer, basta che sulla stessa db aggiungi una variabile tipo s5time e poi sul timer scrivi

u condizioni

l dbxx.dbwxx

se t0

se vuoi la metti sul pannello, tieni conto che devi fare la scalatura di 1000 se vuoi vedere i secondi

Link al commento
Condividi su altri siti

non mi e' molto chiaro sul discorso del timer.

io ci scrivo la sintassi che deve contare fino a 5 secondi...ma poi per cambiare lo stasso valore e visualizzare il valore di conteggio in incremento?

Link al commento
Condividi su altri siti

L'area M di default non è ritenitiva, volendo puoi renderla ritenitiva intervenendo nella configurazione dell'Hardware, ma non ti conviene.

Segui il consiglio di 84Paolo e crea una o più DB (blocchi dati)

All'interno di queste DB puoi aggiungere tutte le variabili che vuoi.

Per esempio:

- Crea la DB10 e dagli un nome simbolico "Dati"

- Aggiungi una variabile di tipo S5TIME con nome "Set_T5"

- Aggiungi una variabile di tipo DINT con nome "Contapezzi"

A questo punto se in qualsiasi blocco del tuo programma richiami la prima word (DB1.DBW0) non appena confermi ti apparirà il nome simbolico "Dati".Set_T5, se richiami la seconda variabile (DB1.DBD2) ti apparirà il nome simbolico "Dati".Contapezzi.

Nel blocchetto del timer T5 al posto di scrivere "S5time#2s" scrivi DB1.DBW0, oppure "Dati".Set_T5, nota bene che questa word ha il valore 0 (a meno che non indichi un valore iniziale in fase di creazione della DB).

L'impostazione del valore la puoi fare da pannello operatore puntando a quella word, oppure puoi farla tramite istruzioni AWL o KOP.

Tutto questo solo per cercare di spiegati meglio come funziona, per il problema dell'incremento invece dal mio punto di vista è più conveniente costruirsi un temporizzatore che fare calcoli sul conteggio di un temporizzatore S5 (il conteggio e il setpoint sono codificati in BCD dove la prima cifra è la base dei tempi, non puoi fare delle pure sottrazioni).

Link al commento
Condividi su altri siti

Dimenticavo:

ma se volessi mettere una variabile tipo una MW alla quale cambia il sua volore in riferimento ad un potenziometro..perche' i valori bassi me li prende e quelli piu' alti no?

Per questa ragione:

(il conteggio e il setpoint sono codificati in BCD dove la prima cifra è la base dei tempi

Base tempi = 0 : centesimi di secondo

Base tempi = 1 : decimi di secondo

Base tempi = 2 : secondi

Base tempi = 3 : decine di secondi

Le altre 3 cifre BCD sono il valore di conteggio da 0 a 999

Link al commento
Condividi su altri siti

Per passare il valore di preset a un timer S5 con una variabile, il formato deve essere il seguente:

bit da 0 a 11: contiene il valore di preset in BCD (quindi, da 0 a 999)

bit 12 e 13: definiscono la base tempi. 00 = 10ms; 01 = 100ms; 10 = 1s; 11 = 10s.

bit 14 e 15: riservati

Lo stesso formato vale per il valore residuo.

Nel caso di impostazione del valore da pannello operatore Siemens, devi dichiarare la variabile nel DB come S5Time. Questa variabile occupa 2 byte, ma il valore che tu andrai a scrivere sul pannello operatore sarà in millisecondi su 4 byte. Il pannello operatore si occupa però in automatico della conversione da millisecondi al formato S5Time.

Esistono però anche altri timer. Per esempio, SFB4 "TON" e SFB5 "TOF" (li trovi nelle librerie Siemens).

Con questi timer si imposta il preset in formato TIME (millisecondi) e, sempre in formato TIME, danno in uscita il tempo trascorso.

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...