Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Un Consiglio - Il giusto metodo


Messaggi consigliati

Inserito:

Ragazzi, volevo sapere da voi qual'è il giusto metodo di gestione della memoria dei sistemi S7-300.

Il nuostro sistema è cosi composto:

CPU315 - SM321 (x2) - SM322 (x2) - FM357

I nostri programmi sono abbastanza complessi e utilizziamo numerose variabili.

Praticamente volevo sapere se è meglio usare la tebella "simboli" per dichiarare tutte le variabili usate (M, MB, MW, MD) oppure usare i DB e dividere le variabili per ogni gruppo meccanico della macchina.

Per esempio:

DB MAIN, DB RESET, DB AUTOMATICO, DB MANUALE, DB ASSE1...2...3...., DB GRUPPO1...2...3....

Ma la un tecnico della Hot-line di Siemens mi ha detto che usare troppi DB potrebbe appesantire il ciclo macchina perchè genererebbe troppi salti e aperture dei DB.

Oppure un'altra soluzione sarebbe di dichiarare le variabili più comuni nella tabella "simboli" e cercare di usare meno DB possibili.

Cosa mi consigliate voi?

Grazie infinitamente.


Gianmario Pedrani
Inserita:

Io, ti posso dire come opero, di solito definisco dei range di memorie, es quelle da m0.0 a m10.0 per gli appoggi accumulativi: allarmi gravi meno grami e segnalazioni, e clock, poi definisco un altro range dove appoggiare le varie abilitazioni es: sistema in manuale, in automatico in manutenzione ecc.... poi prendo dei range molto alti per gestire i varia allarmi, e le db per la gestione di tempi, o variabili numeriche riferite alle singole operazioni. es: io mi creo un db di comunicazione e sara sempre quello a scambare dati con la supervisione. Un db tempi e dati per il ciclo 1 e cosi via , mentre le variabili globali le appoggio su dei merker con la tecnica destritta sopra.... ma questo e' solo un modo non esiste una regola ben precisa, secondo me ti devi creare un tuo metodo e mantenerlo affinandolo nel tempo ciaooooooo :D

Inserita:

faccio anche io Gianmario.

Utilizzo i DB perchè mi piace molto avere tutte le cose sottocontrollo. Assegno ad esempio un DB per ogni inverter e li strutturo tutti alla stessa maniera in modo da avere un'ordine sempre preciso nelle cose. Ad esempio so che il riferimento di velocità sarà sempre nel DB(W-D) tal dei tali e così discorrendo.

Dove possibile, nei calcoli intermedi (ad esempio per ricavare il riferimento di velocità) utilizzo L(W-D) in modo da scaricare i DB

  • 4 weeks later...
Inserita:

Ciao!

Non credo esista un 'metodo giusto' per l'utilizo della memoria. Ogni area (tipo) ha le sue caratteristiche, pregi e difetti.

Così p.e. la memoria DB consente di ottenere un buon ordinamento della memoria, e quindi una buona leggibilità del programma ed è rimanenza (che in qualche caso può essere un difetto) ma l'accesso da parte della CPU è lento (l'istruzione p.e. L DB100.DBW0 si compone in realtà di due azioni: AUF DB100 e L DBW0, oltre al fatto che Siemens dichiara l'accesso alle variabili DB con un tempo circa 3 volte maggiore di quello all'area M).

La memoria di area M invece ha un accesso più veloce, ma è unica, cioè non divisibile in blocchi (come il metodo di progrmmazione di mamma siemens induce a seguire), a meno che non la si divida 'idealmente' in zone (p.e. da M10.0 a 19.7 risevata per gli allarmi, da 20.0 a 21.7 per gli stati macchina, ecc.), e non è a rimanenza (se non esplicitamente definito dal programmatore nelle caratteristiche della CPU, e comunque un solo blocco)

L'area L (locale) è privata, cioè esiste solo durantre l'esecuzione del blocco che ha dichiarato la data variabile, e può quindi essere utilizzata come appoggio per risultati intermedi di calcoli o di logiche.

Quindi, secondo me, ogni programma ha una sua organizzazione della memoria, anche se ovviamente si può seguire una linea guida.

Ciao a tutti!

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