Un saluto a tutti.
Volevo leggere dal programma PLC i cosiddetti dati utili, ovvero i dati di sistema per rilevare il numero di db massime utilizzabili. Sembra che la strada sia la sfc51 ma tra le varie opzioni non ho visto modo di rilevare i dati utili.
cosa sapete a riguardo?
S7-300: dati utili
Moderatori:
dimaios,
carlomariamanenti
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
0
voti
[2] Re: S7-300: dati utili
Non mi è ben chiara la richiesta, il numero massimo di DB presenti o progettabili?
Nel secondo caso la vedo dura, nel senso che oltre al limite numerico del nome vi è quello intrinseco della memoria di lavoro, cosa che da sola la CPU non è in grado di determinare.
SFC51 lo userei solo come risorsa di diagnostica, nel caso prova ad interrogare l'SFC51 con ID SZL W#16#xy13 ovvero, aree di memoria utente con INDEX W#16#0001 ottieni I'indicazione dell' area di memoria di lavoro.
Tra cui vi sono questi dati che spero ti possano essere utili.
1-Dimensione complessiva.
2-Più grande blocco libero nell'area di memoria non volatile.
Poi tiri tu le somme....
BTW:Per usare bene l'SFC51 bisogna fare un sforzo in SCL , ma da quanto ricordo, per te non è un problema.
Nel secondo caso la vedo dura, nel senso che oltre al limite numerico del nome vi è quello intrinseco della memoria di lavoro, cosa che da sola la CPU non è in grado di determinare.
SFC51 lo userei solo come risorsa di diagnostica, nel caso prova ad interrogare l'SFC51 con ID SZL W#16#xy13 ovvero, aree di memoria utente con INDEX W#16#0001 ottieni I'indicazione dell' area di memoria di lavoro.
Tra cui vi sono questi dati che spero ti possano essere utili.
1-Dimensione complessiva.
2-Più grande blocco libero nell'area di memoria non volatile.
Poi tiri tu le somme....
BTW:Per usare bene l'SFC51 bisogna fare un sforzo in SCL , ma da quanto ricordo, per te non è un problema.
-
Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
[3] Re: S7-300: dati utili
Non ne vedi l'utilità o la necessità perché non sei nella mia testa, e non sai cosa sto facendo...
Comunque mi interessa il numero massimo di quelle progettabili, anche se non saranno progettate, ma se le creerà un programmino che sto scrivendo...
Ho trovato un baco nella SFC82. Se gli si passa un valore, al parametro "UP_LIMIT" superiore al limite gestito dalla CPU va in errore, anche se potrebbe tranquillamente creare la DB.
Per questo sto cercando, per scrivere bene il programma, non mi spiacerebbe che fosse capace di riconoscere i limiti della CPU, senza che me ne debba curare io ogni volta con parametrizzazione esterna. (E' un baco perché la documentazione non parla di questo problema, ed il codice di errore che emette la SFC è diverso dalla vera causa di errore...).
Comunque mi interessa il numero massimo di quelle progettabili, anche se non saranno progettate, ma se le creerà un programmino che sto scrivendo...
Ho trovato un baco nella SFC82. Se gli si passa un valore, al parametro "UP_LIMIT" superiore al limite gestito dalla CPU va in errore, anche se potrebbe tranquillamente creare la DB.
Per questo sto cercando, per scrivere bene il programma, non mi spiacerebbe che fosse capace di riconoscere i limiti della CPU, senza che me ne debba curare io ogni volta con parametrizzazione esterna. (E' un baco perché la documentazione non parla di questo problema, ed il codice di errore che emette la SFC è diverso dalla vera causa di errore...).
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
1
voti
[4] Re: S7-300: dati utili
Non fraintendiamo le cose, per favore.
Non ho mai asserito di non vederne nessuna utilità o non ravvisarne la necessità di ciò che fai, mi limitavo a dire che non capivo esattamente la tua richiesta.
Ora dopo le tue spiegazioni mi è un poco più chiaro.
Questo è strano, nel senso che ti posso dire con certezza che in una CPU315 2DP 2AH14 da 256Kb di memoria di lavoro i DB sono ammessi sino a 1024 con un campo numerico compreso tra da 1 a 16000 con una dimensione massima di 64Kb.
Ma è chiaro che se il DB occupa la demisione massima ammessa, tale numero si restringe, così come lo sarebbe se si introducessero dei blocchi non DB o si modificassero.
Quindi a priori, come ti avevo detto io ricavi la memoria libera , e calcoli quanti DB possono essere creati tramite il blocco SFC22 (che li crea) dato che come prametro gli dai sia il numero che la dimensione.
Non ho mai asserito di non vederne nessuna utilità o non ravvisarne la necessità di ciò che fai, mi limitavo a dire che non capivo esattamente la tua richiesta.
Ora dopo le tue spiegazioni mi è un poco più chiaro.
mi interessa il numero massimo di quelle progettabili
Questo è strano, nel senso che ti posso dire con certezza che in una CPU315 2DP 2AH14 da 256Kb di memoria di lavoro i DB sono ammessi sino a 1024 con un campo numerico compreso tra da 1 a 16000 con una dimensione massima di 64Kb.
Ma è chiaro che se il DB occupa la demisione massima ammessa, tale numero si restringe, così come lo sarebbe se si introducessero dei blocchi non DB o si modificassero.
Quindi a priori, come ti avevo detto io ricavi la memoria libera , e calcoli quanti DB possono essere creati tramite il blocco SFC22 (che li crea) dato che come prametro gli dai sia il numero che la dimensione.
-
Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
[5] Re: S7-300: dati utili
Sia la SFC82, sia la SFC22, voglio anche sapere entro quale range numerico creare la DB. Ci sono CPU che ne accettano 1024, ce ne sono che ne accettano solo 512 o meno, e via discorrendo.
Non in tutte le CPU la SFC22 crea DB di tipo unlinked, quindi uso la SFC82. Ma a parte questo dettaglio, per ora mi tocca conoscere a priori i limiti della CPU, per evitare che questa funzione generi errore... Volevo risolvere in automatico.
Non in tutte le CPU la SFC22 crea DB di tipo unlinked, quindi uso la SFC82. Ma a parte questo dettaglio, per ora mi tocca conoscere a priori i limiti della CPU, per evitare che questa funzione generi errore... Volevo risolvere in automatico.
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
0
voti
[6] Re: S7-300: dati utili
Temo sia un impresa molto ardua se non impossibile.
Ho chiesto un poco in giro e nessuno sà come risalire al numero di DB massimi ricavato in forma automatica dal programma.
Del resto ancge guardando il catalogo, non ho trovato nessun nesso tra memoria di lavoro e numero massimo DB che come civi tu a paritù di modello versione firmware e memoria di lavoro tra due codici di ordinazione diversi si passa da 511 a 16000.....
Ho chiesto un poco in giro e nessuno sà come risalire al numero di DB massimi ricavato in forma automatica dal programma.
Del resto ancge guardando il catalogo, non ho trovato nessun nesso tra memoria di lavoro e numero massimo DB che come civi tu a paritù di modello versione firmware e memoria di lavoro tra due codici di ordinazione diversi si passa da 511 a 16000.....

-
Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
1
voti
[8] Re: S7-300: dati utili
L'ho trovato:
SZL_ID = 16#015 restituisce 5 set di dati, ciascuno per ogni tipo di blocco, comprese le DB: numero massimo, a partire da 0, oltre altri due dati che devo ancora interpretare bene.
Ottimo...
SZL_ID = 16#015 restituisce 5 set di dati, ciascuno per ogni tipo di blocco, comprese le DB: numero massimo, a partire da 0, oltre altri due dati che devo ancora interpretare bene.
Ottimo...
-
Ivan_Iamoni
5.336 6 10 12 - Utente disattivato per decisione dell'amministrazione proprietaria del sito
- Messaggi: 2330
- Iscritto il: 22 ott 2006, 18:45
1
voti
[9] Re: S7-300: dati utili
E' vero, solo ora osservo nell'Help che il valore SZL_ID = 16#015 restituisce il set di dati dei blocchi.
Bene, chi la dura la vince, si dice no?
Adesso che sai quale può essere il numero massimo di DB sei solo all'inizio, ovvero devi anche verificare se la memoria residua permette l'inserimento di quanti blocchi nuovi e di quali dimensioni.
Qui dovrai sfoderare la tua inventiva.
Bene, chi la dura la vince, si dice no?
Adesso che sai quale può essere il numero massimo di DB sei solo all'inizio, ovvero devi anche verificare se la memoria residua permette l'inserimento di quanti blocchi nuovi e di quali dimensioni.
Qui dovrai sfoderare la tua inventiva.

-
Candy
32,5k 7 10 13 - CRU - Account cancellato su Richiesta utente
- Messaggi: 10123
- Iscritto il: 14 giu 2010, 22:54
0
voti
[10] Re: S7-300: dati utili
Già fatto, senza molta inventiva per il vero.
L'ID #13 restituisce cinque set di dati ciascuno per ogni tipo di memoria: la RAM, la FLASH, la EPROM, ecc.. con gli stessi valori che offrirebbe lo stato CPU della diagnostica di S7.
Mi sono fatto una funzione che porta in una DB tutti i dati utili della CPU, (non tutti... quelli che per ora mi servono).
L'ID #13 restituisce cinque set di dati ciascuno per ogni tipo di memoria: la RAM, la FLASH, la EPROM, ecc.. con gli stessi valori che offrirebbe lo stato CPU della diagnostica di S7.
Mi sono fatto una funzione che porta in una DB tutti i dati utili della CPU, (non tutti... quelli che per ora mi servono).

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
