Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

CodeSys: compilazione progetto

PLC, servomotori, inverter...robot

Moderatori: Foto Utentecarlomariamanenti, Foto Utentedimaios

0
voti

[1] CodeSys: compilazione progetto

Messaggioda Foto UtenteCandy » 4 nov 2012, 20:08

Mi si presenta una situazione che vorrei evitare e, che per ora, ha il supporto e sostegno della mia sola interpretazione.
Modificando un progetto esistente, che preveda l'aggiunta o la rimozione, con spostamenti, di variabili ed altri componenti di memoria e, scaricandolo sul runtime già in esecuzione, come viene gestita a livello di runtime lo spostamento della memoria? Mai viene poi gestito?

La mia preoccupazione è che in questo modo si vadano ad intaccare i contenuti dei dati di istanze e variabili globali.

La mia domanda nasce da una preoccupazione. Essendo la memoria allocata in modo dinamico, mi chiedo se durante l'upload del progetto aggiornato siano previste operazioni automatiche per non intaccare i contenuti delle variabili rimaste uguali, anche se spostate di posizione.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10126
Iscritto il: 14 giu 2010, 22:54

0
voti

[2] Re: CodeSys: compilazione progetto

Messaggioda Foto UtenteAOX » 4 nov 2012, 20:15

Ti riferisci all'Online change? Cioè al cambio del programma al volo?
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29

0
voti

[3] Re: CodeSys: compilazione progetto

Messaggioda Foto UtenteCandy » 4 nov 2012, 20:18

Si, esatto.
Per carità, si può sempre passare da un "Reset All" e riavvio. Ma sono talmente bene abituato da Siemens e dalla sua concezione a blocchi del programma, che mi viene difficile accettare che un programma possa essere modificato al volo, senza che si siano prese precauzioni sui contenuti della memoria.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10126
Iscritto il: 14 giu 2010, 22:54

1
voti

[4] Re: CodeSys: compilazione progetto

Messaggioda Foto UtenteAOX » 4 nov 2012, 20:31

Non ho mai riflettuto su questo aspetto anche perché non è che programmo direttamente con CoDeSys (ma solo di contorno e test) e lo prendo come la 3S lo ha fatto. Però posso dare un'occhiata al manuale di implementazione (ossia del porting del tool sui processori) per vedere cosa dice su questo. Per quello che so, così su due piedi, nel Online Change viene raddoppiato l'uso di RAM per avere una copia completa dei due programmi (il vecchio ed il nuovo) che vengono commutati al volo al termine del download.
In effetti è giusta la tua preoccupazione di cosa ne fanno della situazione vecchia dei dati (variabili ed istanze blocchi). Nel Siemens cosa fa? Ricopia tutto? Ma se il programma è cambiato parecchio inserendo nuove variabili e blocchi come fa a ricollegarsi al passato senza nessun dolore?
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29

1
voti

[5] Re: CodeSys: compilazione progetto

Messaggioda Foto UtenteCandy » 4 nov 2012, 20:42

In Siemens l'operaqzione non è affatto indolore e scontata, ma, gestione del programma e memoria è fatto con blocchi diversi, quindi, se si è modificato il solo codice programma, modificando i relativi blocchi, il problema non si pone affatto.
Se le modifiche prevedono anche lo spostamento della memoria, che siano variabili od istanze, le cose si complicano. La via più semplice è usare sempre e solo nuovi blocchi di memoria, mai usati prima e lasciando inutilizzata quella dove si sono fatte le rimozioni. Ne viene fuori un grave problema di frammentazione che può dar eproblemi alla lunga. Ma con Siemens non si concepiscono i programmi come lo si fa con CoDeSys.

Da questo punto di vista sono molto meglio fatte altre gestioni, come Rockwell che, anche prima di tornare offline, copia anche i contenuti della memoria, (ad allocazione dinamica), nel progetto e le modifiche, quindi, sono meno dolorose. Il trasferimento del progetto al volo prevede anche il trasferimento del contenuto della memoria. Che, se semplifica e riduce i problemi, non esclude la sovrascrittura con valori vecchi.

Insomma, non conosco io una piattaforma indolore a questo dettaglio. Però visto che con CoDeSys tutto sembra così semplice, mi chiedevo come viene gestita l'operazione.

Da quello che mi hai detto tu, sembra tutto facile. Ma, io, invece, sto lavorando su un progetto che è arrivato alla bellezza di 8 MB di memoria utile. E non ho ancora finito... Chissà.
Avatar utente
Foto UtenteCandy
32,5k 7 10 13
CRU - Account cancellato su Richiesta utente
 
Messaggi: 10126
Iscritto il: 14 giu 2010, 22:54

1
voti

[6] Re: CodeSys: compilazione progetto

Messaggioda Foto UtenteAOX » 4 nov 2012, 23:22

Vedo che l'online change non è completamente indolore anche per altri. Secondo me andrebbe usato per testare al volo piccoli ritocchini come il centraggio di un tempo o altro.
Se cambi bruscamente molte cose del programma non vedo come i valori in ram delle variabili possano essere ripresi dal nuovo programma.
Anche in CoDeSys per quello che è possibile vengono presi alcuni accorgimenti a seguito del Online Change. Solo le POU cambiate sono trasferite, le altre sono copiate dalla vecchia copia alla nuova. Poi per le variabili nuove aggiunte vengono inizializzate e quelle cambiate in dimensioni sono copiate in nuove locazioni.
Avatar utente
Foto UtenteAOX
3.555 2 6 11
Master EY
Master EY
 
Messaggi: 232
Iscritto il: 20 mar 2011, 12:29


Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti