MaxT1978 Inserito: 10 giugno 2016 Segnala Share Inserito: 10 giugno 2016 Buongiorno a tutti, ho provato a cercare nel forum se fosse riportato in merito qualcosa di simile, ma non mi sembra ci sia nulla. Quindi vi chiedo se secondo voi esista la possibilità di leggere da PC tramite un programma (fatto p.e. in VS) , il buffer di diagnostica di un PLC (serie 300, per la precisione CPU 317 DP con una scheda 343-1). Vi ringrazio comunque per l'attenzione. Massimo Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 10 giugno 2016 Segnala Share Inserita: 10 giugno 2016 Si è possibile. Lato PLC il buffer di diagnostica lo puoi leggere con SFC 51 passando W#16#00A0 al parametro SSL-ID (INDEX=0). Le stesse informazioni, lato PC, puoi ottenerle con la funzione Cli_ReadSZL() di Snap7 che puoi utilizzare con VS. Nel manuale "System Software for S7-300/400System and Standard Fuctions" trovi informazioni su SFC 51. Quì trovi informazioni su Snap7. Il problema è che la parola "Info" di ogni Item è codificata e sul manuale non c'è assolutamente nulla a riguardo. Risolvono elegantemente così : "You obtain more information about the events in the diagnostic buffer using STEP 7". Se vuoi una "preview" senza impegnarti troppo, scarica Snap7 e manda in esecuzione il demo \rich-demos\i386-win32\bin\clientdemo.exe Ti connetti al PLC e vai nella pagina "Read SZL", inserisci ID $00A0 e premi Read SZL. Avrai il dump del buffer diagnostico. Link al commento Condividi su altri siti More sharing options...
MaxT1978 Inserita: 10 giugno 2016 Autore Segnala Share Inserita: 10 giugno 2016 Intanto grazie mille dan64100. La funzione Cli_ReadSZL() di Snap7 non va a leggere quanto estratto usando la SFC51, ma è una specie di SFC51 però eseguita da PC, corretto? Nel dump del buffer diagnostico, seguendo quanto hai indicato nell'ultima frase, avrei comunque le info codificate, da cui dopo devo risalire al significato leggendo il buffer direttamente dalla CPU, corretto? Grazie ancora per la risposta. Massimo Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 11 giugno 2016 Segnala Share Inserita: 11 giugno 2016 Tutto giusto. Ogni telegramma diagnostico (sono tanti e la loro lista la puoi ottenere con Cli_ReadSZLList() ) ritorna un buffer strutturato il cui formato è descritto nel manuale Siemens. La cosa più conveniente è passare alla funzione l'indirizzo di una struct adeguata. Alcune funzioni di Snap7 utilizzano internamente SZL (ad esempio Cli_GetCpuInfo() ), se conosci un po' di C puoi dare un'occhiata direttamente ai sorgenti, il meccanismo è molto semplice Link al commento Condividi su altri siti More sharing options...
MaxT1978 Inserita: 13 giugno 2016 Autore Segnala Share Inserita: 13 giugno 2016 Grazie mille dan64100, proverò ad implemtare quello che mi serve e darò un feedback. Intanto grazie per le informazioni. Massimo Link al commento Condividi su altri siti More sharing options...
MaxT1978 Inserita: 23 giugno 2016 Autore Segnala Share Inserita: 23 giugno 2016 Ciao dan64100, ho un problema nell'eseguire un primo programma di prova per la connessione al PLC. Precisamente, quando creo la referenza a S7Client, il runtime di VS mi torna che :"Unable to load DLL 'snap7.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)". E' perchè bisogna registrare la dll? Dove la trovo? Sotto Build/Windows/Sys64bit? Ti ringrazio in anticipo. Max Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 24 giugno 2016 Segnala Share Inserita: 24 giugno 2016 Se programmi in C#/VB.NET c'è tutto scritto qui: http://snap7.sourceforge.net/dotnet.html#key_concepts Se programmi in C/C++ devi semplicemente copiare la dll nel percorso del tuo eseguibile (scegli quella 32 o 64 bit a seconda dei casi). 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