Vai al contenuto
PLC Forum


Conversione Timers S5 in IEC e TIA portal con linguaggio AWL


BRUNO_regg

Messaggi consigliati

Buongiorno a tutti, 

Sto lavorando su di un progetto trasformato in S7-1500  (da S7-300), avendo un po' di tempo stavo aggiornando alcuni blocchi seguendo i consigli di Siemens ossia cercando di ottimizzare il piu possibile quelle che sono le DB e parti di progetto piu obsolete.

Per il momento non volevo rifarlo completamente ma mantenere alcune parti per vari motivi.

Per quanto riguarda i timers ho pensato di convertirli tutti in IEC, creando una DB approppriata contenente tutti i timers del progetto;

 

Timer1.jpg.f2a031c02e50a35b60531a78ffc75ea8.jpg

 

Per la parte di programma in Ladder nessun problema, numero timer e definizione se TON, TOF, ecc...

Ladder.jpg.59ea072f5e27ad37fb4cb5b97b525921.jpg

non riesco pero' a capire come richiamare i timers (e soprattutto come definire se TON, piuttosto che TOF o TP)

nella parte di progetto in AWL (che vorrei lasciare tale).

Awl1.jpg.0a8c3b74fcbbb6425d3fbd8ec331e342.jpg

 

Es. il T99 del codice in AWL è un timer "TP", come va riscritto (e definito)  utilizzando i timers IEC?

 

Ho guardato nell'. ma non ho trovato nessun aiuto,

una cosa che ho pensato è quella di definirlo direttamente nella DB timers (forse si fa proprio cosi') cosa che non volevo fare in quanto volevo lasciarla standard con tutti i timers IEC e non alcuni TON, altri TOF, ecc..

A qualcuno è già successo di imbattersi nel mio stesso problema  (Se cosi' si puo' definire).

 

Un'altra domanda: qule vantaggio abbiamo creando una DB di timers piuttosto che mantenere i vecchi S5?

(a parte il fatto di poter trasformare velocemente il progetto per la sola parte LADDER  in S7-1200).

 

Grazie a chi mi potrà dare una mano.

 

Bruno

 

 

Link al commento
Condividi su altri siti


il timer iec in awl devi mettere Call Ton, db istanza del timer.

sul 1200 non esistono gli s5 time per cui se devi riutilizzare il codice tra 1200 e 1500 ti convengono gli IEC. poi eviti anche la conversione in bcd se devi fare dei calcoli.

fare un unico db timer é la stessa cosa di usare gli s5time.

gli IEC sono comodi perché li puoi mettere direttamente nei DB dove ti servono. per esempio fai un db motore e dentro ci metti i suoi timer. Se duplichi il motore hai già tutti i timer pronti e non devi andare alla ricerca di liberi evitando il problema di usare due volte lo stesso timer. Personalmente ultimamente ho anche abbandonato gli IEC per problemi che ogni tanto non si avviano dalla versione 15 per il fronte di salita e mi sono fatto la mia funzione timer al posto del TON.

per grandi progetti convertiti dal 300 sto continuando invece ad utilizzare gli S5time che li trovo molto più immediati e caricano meno il tempo ciclo della cpu

Link al commento
Condividi su altri siti

Intanto grazie per la risposta,

proverò a richiamare il timer come mi hai detto…..

 

Un paio di precisazioni sulla tua risposta:

Personalmente ultimamente ho anche abbandonato gli IEC per problemi che ogni tanto non si avviano dalla versione 15 per il fronte di salita e mi sono fatto la mia funzione timer al posto del TON. non capisco…...dalla versione 15 non si avviano o  fino alla versione 15? con 15.1 o 16 funzionano correttamente?

 

per grandi progetti convertiti dal 300 sto continuando invece ad utilizzare gli S5time che li trovo molto più immediati e caricano meno il tempo ciclo della cpu. Quindi meglio mantenere gli S5time?

 

Grazie

Bruno

 

Link al commento
Condividi su altri siti

Ciao,

i timer S5Time sono in numero predefinito, invece utilizzando i timer IEC il limite è la sola memoria;

i timer S5Time hanno il preset in BCD, mentre i timer IEC hanno un DInt in mS, quindi più facile da gestire;

i timer S5Time hanno un termine come la serie 300 (non so quale, ma si tratta di qualche anno), mentre i timer IEC sono il presente ed il futuro per 1200 e 1500.

Usare una o più DB sta a te: ad esempio, io li divido per stazione, gruppo, etc.: in questo modo diventa tutto più leggibile (almeno secondo me).

Per il fatto che non conta cerca un post che ne parla; basta farsi un bit di avvio PLC che "apre" l'enable al timer al Run del PLC ed il problema non si pone più; in più si tratta dei soli timer che hanno l'enable già attivo prima del RUN, quindi basta farci un pò di attenzione.

Link al commento
Condividi su altri siti

Ho provato, 

ma in un FC non riesco a d inserire il timer IEC presente nella DB (array di timer),

appare sottolineato di rosso;

Se invece creo un'istanza singola per il timer allora OK;

 

 

FC XY

Segmento 1:

 

Call TON, "DB901-Timers" . "Timer 1"

 

quindi presumo non si possa inserire...

Link al commento
Condividi su altri siti

é proprio come hai detto. funziona solo se fai un db di istanza per ogni timer e non se hai un db di timer. se non ne hai molti ti conviene fare un db per ogni timer per usarli in awl. i db se li crea lui in automatico

Link al commento
Condividi su altri siti

Nella DB devi dichiararli come TON_TIME o TOFF_TIME.Cattura.thumb.JPG.7d00ce08b6ca872f4474aa45fe4abeee.JPG

 

 

 

1 ora fa, 84paolo ha scritto:

se non ne hai molti ti conviene fare un db

Assolutamento no, crei un casino di DB, la cosa migliore è una DB che raggruppa tutti i temporizzatore divisi in gruppi o negli FB, nell'istanza.

Link al commento
Condividi su altri siti

Grazie a tutti per l'interessamento;

ok consiglio di "acquaman",

ma come ho scritto all'inizio volevo mantenere la DB timers totalmente definita come IEC.

 

Per il momento ho deciso di trasformare i pochi FC in AWL (o almeno quelli dove ho dei timers non convertibili in Ladder) in FB inserendo i timers stessi nell'area STAT.

 

Grazie

Bruno

 

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