Vai al contenuto
PLC Forum


Comportamento strano plc Siemens - Blocchi Dati


Messaggi consigliati

Inserito:

passo subito al problema

S5 siemens

cpu 943b

nessun modulo espansione

tutto funzionava bene con

3 db aperti di 255

21 db aperti di 160

21 db aperti di 170

4 db aperti di 30

per una modifica avevo necessita di avere a disposizione più dw in alcuni dei db sopra citati.

ho cosi modificato la situazione

3 db da 255

21 db da 185

21 db da 165

4 db da 30

perchè se vado in visualizzazione di un db aperto sono aperti sempre come in precedenza....

automaticamente con la modifica al programma che mi richiama delle dw non esistenti la cpu va in stop.... Giusto?


Inserita:

scusami ma quello che dici è quasi incomprensibile...

dovresti esporre meglio il problema,

magari postando anche la parte del programma che ti dà problemi.

giusto per informazione è possibile aprire un solo DB per ogni chiamata (vuol dire che se chiami un FB ed apri un DB dentro esso è solo quel DB che può essere acceduto, all'uscita dell'FB torna ad essere attivo il DB aperto in precedenza... un pò come le scatole cinesi).

CIAO.

Inserita:

scusate tanto

per aprire intendevo l' operazione:

L KF +255

E DB 100

...

...

E COSì VIA

FORSE ORA SONO STATO UN PO PIU CHIARO .... SCUSATE ANCORA

Inserita:

:blink: Scusa se ti faccio la stessa domanda, ma già nella prima richiesta non è chiaro qualcosa:

Vecchio >> Nuovo

03 db con 255 Dw >> 03 db con 255 Dw = +0

21 db con 160 Dw >> 21 db con 185 Dw = +15

21 db con 170 Dw >> 21 db con 165 Dw = -5??

04 db con 030 Dw >> 04 db con 030 Dw = +0

Scusa ma hai 21 db con 5 Dw in meno. Poi da quello che so io le db vengono create se all'accensione (o all'evento) non esistono nel programma.

Premetto che non ho mai usato questo sistema (ne ho discusso alla

macchina del caffè con dei colleghi).

Spero di averti dato qualche idea. :ph34r:

Inserita:

Le due istruzioni:

L KF 255

E DB 100

servono a creare in RAM il DB100 se questo non c'e' gia'. Se e' presente un DB100 non fanno nulla.

Per aprire usa

A DB 100

Per creare un DB devi prima cancellarlo, oppure crealo col PG sovrascrivendo.

Saluti

Inserita:

Qualcosa comincia a tornare.....

Molto probabilmente si capisce che sono abbastanza nuovo dell' argomento.....

Allora, per la modifica che ho fatto al programma avevo bisogno che i db dal 100 al 120 che prima contenevano 160 dw, ne avessero 185.

Ho così modificato l' FB che li generava:

L KF +160 ---------------> L KF +185

E DB 100 ---------------> E DB 100

E DB 101 ---------------> E DB 101

E DB 102 ---------------> E DB 102

e così via.

Ho inoltre modificato il programma come serviva per l' applicazione desiderata.

In seguito ad un errore di calcolo nel programma, pensavo di aver esagerato e di non avere abbastanza memoria per le dw aggiunte, sono andato a modificare un altro FB:

L KF +170 ---------------> L KF +165

E DB 150 ---------------> E DB 150

E DB 151 ---------------> E DB 151

E DB 152 ---------------> E DB 152

e così via.

Ho ridotto di 5 dw i db dal 150 al 170 per poter '' ingenuamente '' recuperare un po' di memoria ( ho verificato che erano inutilizzati ).

Non essendo lì l'errore, ma bensì in una istruzione di elaborazione di una dw, la cpu continuava ad andare in stop.

Corretto l'errore di elaborazione sembrava tutto Ok fino a quando il programma non ha cercato le dw che pensavo di aver aggiunto.

Analizzando le db ho notato che contenevano sempre le 160 dw iniziali.

Ora giustamente con il vostro aiuto ho capito dove posso aver sbagliato:

se come ho fatto io, le db le trasferisci sul plc dal pc, lui le vede create e non le riapre, GIUSTO?

Devo quindi eliminarle dal plc per fargliele ricreare delle dimensioni nuove,

GIUSTO?

Scusate ancora per l'incompetenza.... e se vi ho fatto perdere tempo.....

N.B. ogni consiglio che arriva.... è ben accetto....!!!!

Grazie Emy

Inserita:

Giusto...quasi giusto.

L'equivoco dipende dal fatto che di solito si chiama "apertura di un nuovo file" la sua creazione. Nei PC si dice così.

In S5 l'apertura è un'operazione che fa la CPU per leggere e scrivere le DW in un DB esistente. E si fa con A DB XX.

La creazione di un nuovo file non è chiamata apertura, ma creazione. E si fa con E DB XX. L'istruzione E crea un nuovo DB XX se non ce n'e' uno con lo stesso nome.

Saluti.

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