Vai al contenuto
PLC Forum


Tecniche Di Programmazione


dm27

Messaggi consigliati

I merker invece li ritengo utilissimi.

Con l'accrescimento delle dimensioni della memoria disponibile si è smarrita, anzi persa, la buona abitudine di minimizzare le risorse necessarie e ottimizzare le prestazioni. Poi linguaggi come il "C", che non supportano il bit, hanno inferto il colpo di grazia. Così oggi, se va bene, s'impiega un byte dove sarebbe sufficiente un bit come, ad esempio, per i glags; i flags contengono un'informazione binaria: VERO/FALSO , ALTO/BASSO; con un byte si hanno 8 flags, na gestirli in "C" diventa difficoltoso. Così, quando si dispone di una macchina e di un linguaggio, che supporta il bit non se ne fa uso perchè se ne è persa l'abitune.

Mi riferisco certo a te Steu se no te la prendi

Questo mi sa di lapsus froidiano :D:D:D Comunque cerchiamo sempre di non personalizzare le divergenze di opinione. Avere opinioni diverse è il bello della vita civile, importante è rispettarsi vicendevolmente

Link al commento
Condividi su altri siti


  • Risposte 52
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Livio Orsini

    9

  • Alessandro2151

    9

  • STEU

    8

  • FranSys

    8

Caro WNC

non preoccuparti non me la sono presa ho solo un punto di vista diverso dal tuo.

Parlando di cose serie e cercando di fare una discussione tecnica che possa aiutare me e chiunque possa trarre "ispirazione" da quello che viene scritto.

I merker invece li ritengo utilissimi. A parer mio nei programmi spesso si cerca di rendere complicate le cose che in realta non lo necessitano. Tipica filosofia Siemens

Se hai un impianto diviso a stazioni , magari piu' di 50, credo che utilizzare dei merker (cosa che facevamo ) abbiamo(parlo al plurale perchè includo anche i miei colleghi) pensato che tutti i bit , byte ecc. che servono alla stazione 47 (numero a caso) debbano stare all'interno della DB47.La Db viene plasmata con delle UDT standard commentate.Credo che questo faciliti moltissimo chi prende in mano il programma se tutto è commentato a dovere.

Con l'accrescimento delle dimensioni della memoria disponibile si è smarrita, anzi persa, la buona abitudine di minimizzare le risorse necessarie e ottimizzare le prestazioni

E vero quello che dici Livio però tu puoi andare ad indirizzare il singlo bit della db e se utilizzi le strutture degli array di 8, 16 , 32 ,48 ..ecc bit hai il simbolico del bit immediatamente scritto con il numero di indice tra le parentesi quadre , devi solo aggiungere il commento al simbolico.

Per quanto riguarda lo spreco di memoria e anche forse del tempo di scansione posso darti ragione però se utilizzi array multipli di 8 non sprechi memoria.

Modificato: da STEU
Link al commento
Condividi su altri siti

Matteo Montanari
Con l'accrescimento delle dimensioni della memoria disponibile

ed anche con la velocità di elaborazione dei vari processori

sempre rimanendo in

filosofia Siemens
utilizzare una variabile boolenana (valido anche per gli altri tipi di varibili) presente in un Blocco dati (DB) o appartenente all'immagine del sistema (ingressi/uscite/flag) hanno tempi diversi, in quanto vengono eseguite due operazioni:

U DB1.DBX0.0

equivale a:

Apri DB1

Carica il valore del Byte 0

Elabora il valore del Bit 0

anche se all'interno della funzione utilizzo sempre lo stesso blocco dati, utilizzando sempre il metodo di scrittura:

U DB1.DBX0.0

U DB1.DBX0.1

"apro" per due volte consecutive lo stesso blocco dati.

Ripeto, per i tempi di ciclo attuali non è nulla ma utilizzando CPU "vecchiotte" con questo sistema si allungava molto il ciclo di scansione...

ripeto che dipende dall'appilicazione in cui il contesto è inserito, è comunque buona cosa essere al corrente di queste cose...

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