Phoedus Inserito: 26 gennaio Segnala Share Inserito: 26 gennaio Buongiorno, sono un programmatore python, ho un sistema composto da un microprocessore, connesso attraverso cavo ethernet ad una PLC Siemens S7-1500. Non sono riuscito a trovare un modo per poter scambiare informazioni con il DB ottimizzato del PLC, attraverso protocollo Snap7. Mi è chiaro che se ottimizzato, il DB non esponga in modo evidente le allocazioni di memoria occupate dalle variabili. Ma sono a chiedervi: Questa mappa è possibile ottenerla? O più in generale: è possibile in qualche modo, anche molto articolato, leggere e scrivere un DB ottimizzato? Tendenzialmente mi aspetto risposte negative, ma se anche esistesse un barlume di speranza, sarà pronto ad accoglierlo. Grazie a tutti. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio (modificato) Al programmatore PLC grava rendere i DB alla vecchia maniera? Cioè non ottimizzati ma con indirizzi assoluti. Se siete ancora in fase di sviluppo togliete l'ottimizzazione ai DB usati per parlare con te. Oppure parlarsi tramite OPC-UA? Modificato: 26 gennaio da dina_supertramp Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio 43 minuti fa, Phoedus ha scritto: Mi è chiaro che se ottimizzato, il DB non esponga in modo evidente le allocazioni di memoria occupate dalle variabili. Ma sono a chiedervi: Questa mappa è possibile ottenerla? No, perchè non viene usato un indirizzo assoluto di allocazione, ma viene solo gestito il "simbolo" e allocato nella memoria del DB dove trova "il primo spazio libero" passami il termine molto alla buona... Qui trovi la spiegazione esaustiva con link alle guide Siemens Optimized and Non Optimized Data Blocks and CPU Cycle Time - 155671 - Industry Support Siemens Link al commento Condividi su altri siti More sharing options...
Phoedus Inserita: 26 gennaio Autore Segnala Share Inserita: 26 gennaio 32 minuti fa, dina_supertramp ha scritto: Al programmatore PLC grava rendere i DB alla vecchia maniera? Cioè non ottimizzati ma con indirizzi assoluti. Se siete ancora in fase di sviluppo togliete l'ottimizzazione ai DB usati per parlare con te. Oppure parlarsi tramite OPC-UA? Mi piace la tua domanda, me lo sono chiesto anche io, probabilmente l'ottimizzazione da loro il grande vantaggio di immagazzinare più informazioni. Grazie per il consiglio, purtroppo il sistema cui mi sto interfacciando è già completamente definito e non sono consentite modifiche. Grazie ad OPC-UA il problema si risolve quindi? Medesimo DB, diverso protocollo, potrebbe funzionare? Questo sarebbe fantastico! 9 minuti fa, dina_supertramp ha scritto: No, perchè non viene usato un indirizzo assoluto di allocazione, ma viene solo gestito il "simbolo" e allocato nella memoria del DB dove trova "il primo spazio libero" passami il termine molto alla buona... Qui trovi la spiegazione esaustiva con link alle guide Siemens Optimized and Non Optimized Data Blocks and CPU Cycle Time - 155671 - Industry Support Siemens Grazie molte Dina, ora è molto più chiaro. Che voi sappiate l'allocazione rimane stabile una volta definite tutte le variabili del DB? Ragionevolmente ipotizzerei di sì, giusto? Lo chiedo perchè in tal caso, mi sarebbe forse possibile ricostruire la disposizione in memoria delle variabili, conoscendo i valori in esse inseriti. Prevedete controindicazioni o problemi in questo? Grazie molte Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio 1 ora fa, Phoedus ha scritto: Grazie ad OPC-UA il problema si risolve quindi? Medesimo DB, diverso protocollo, potrebbe funzionare? Questo sarebbe fantastico! Si, ma dovresti comunque agire lato PLC per abilitare l'OPC-UA (server) e pubblicare i dati, insomma ti serve comunque il programmatore PLC. Guida introduttiva OPC UA (siemens.com) 1 ora fa, Phoedus ha scritto: Che voi sappiate l'allocazione rimane stabile una volta definite tutte le variabili del DB? Ragionevolmente ipotizzerei di sì, giusto? A questo non so risponderti, non mi sono mai addentrato cosi profondamente nel discorso, magari qualcuno qui sul forum può risponderti, oppure Siemens direttamente. Le mie DB interne sulle serie 1200-1500 sono solo ad accesso ottimizzato perché gestiscono meglio lo spazio di memoria e i dati sono gestibili più efficientemente nel programma. Con le serie 1200-1500 (attuali) a meno di scambi dati che richiedono accessi assoluti è inutile usare DB "vecchio stile". Link al commento Condividi su altri siti More sharing options...
Area_Federico Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio E' meglio creare una DB non ottimizzata dedicata allo scambio informazioni con il sistema esterno(MES o simili) In questo modo le logiche di programma non cambiano e nella nuova DB si andranno ad inserire solo i dati strettamente necessari. Link al commento Condividi su altri siti More sharing options...
dina_supertramp Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio 17 minuti fa, Area_Federico ha scritto: E' meglio creare una DB non ottimizzata dedicata allo scambio informazioni con il sistema esterno(MES o simili) In questo modo le logiche di programma non cambiano e nella nuova DB si andranno ad inserire solo i dati strettamente necessari. Si, pure io faccio così... DB non ottimizzate popolate solo dai dati da scambiare con l'esterno, che vengono scritte/lette da DB ottimizzate interne. DB mia (ottimizzata) <---> DB scambio con cliente (non ottimizzata) Link al commento Condividi su altri siti More sharing options...
batta Inserita: 26 gennaio Segnala Share Inserita: 26 gennaio 4 ore fa, Area_Federico ha scritto: E' meglio creare una DB non ottimizzata dedicata allo scambio informazioni con il sistema esterno(MES o simili) In questo modo le logiche di programma non cambiano e nella nuova DB si andranno ad inserire solo i dati strettamente necessari. Facile se il sistema esterno deve solo leggere, meno facile se deve anche scrivere su variabili che anche altri (es. HMI) devono scrivere. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora