tafanoide Inserito: 13 maggio 2016 Segnala Share Inserito: 13 maggio 2016 Salve a tutti. Sto provando a sviluppare un applicativo in VB Net usando Visual Studio 2015. Purtroppo non riesco a uscire dal buco, nel senso che non riesco a integrare in maniera corretta lo snap al sistema, infatti quando faccio il debug mi dice che va tutto bene, ma quando lo faccio partire "Start" mi dice che non riesce a accedere al snap7.net.dll .. Ho seguito quello che avete scritto, ma nulla, non riesco. Volevo chiedervi, mi riuscite a inviare un esempio di collegamento con gia integrato il tutto? cosí da iniziare da li e confrontare la soluzione che ho giá fatto. Cosí poi da postare il mio errore (qualora lo trovassi) grazie mille Link al commento Condividi su altri siti More sharing options...
Giuseppe Signorella Inserita: 13 maggio 2016 Segnala Share Inserita: 13 maggio 2016 Ciao tafanoide e benvenuto sul forum. Ti eri accodato ad una discussione esistente. L'accodamento è vietato dal regolamento del forum. Ho separato il tuo intervento per creare una nuova discussione tutta tua. All'interno del forum trovi molto materiale su SNAP7, esempi compresi. E' sufficiente fare una ricerca. Poi se vai sulla pagina ufficiale di snap7, trovi tutto ciò che ti serve. Ciao e buona permanenza sul forum. Link al commento Condividi su altri siti More sharing options...
tafanoide Inserita: 14 maggio 2016 Autore Segnala Share Inserita: 14 maggio 2016 Buongiorno, Grazie della risposta e di aver creato una discussione tutta mia. Ho guardato nel forum, ci sono tanti esempi ma non quello che sto cercando io (o forse mi sbaglio, ma a me non sembra) Sono andato sul sito di snap7, ma non riesco a capire che cosa devo fare per integrarlo nel mio progetto VB in modo tale che alla compilazione e al run possa accedere alla libreria senza problemi Grazie Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 16 maggio 2016 Segnala Share Inserita: 16 maggio 2016 Ho scritto un capitolo apposito per .NET sul sito e nel manuale: http://snap7.sourceforge.net/dotnet.html#key_concepts Inoltre nella cartella \examples\dot.net\WinForm del package trovi progetti già pronti e funzionanti per VB e C#. Poi c'è anche una solution VB/C# (nella cartella VB_Mixed) che ti permette di ricompilare l'assembly Snap7.net.dll insieme al tuo progetto svincolandoti dalla versione del framework. Link al commento Condividi su altri siti More sharing options...
tafanoide Inserita: 20 maggio 2016 Autore Segnala Share Inserita: 20 maggio 2016 Salve, Ottimo! Sono riuscito, partendo dal tuo progetto in examples/dot.net a fare qualcosa di utile. Ora ho solo una domanda ancora , ho letto la documentazione ma non ho capito come posso usare la funzione DBREAD, qualora volessi leggere per esempio db400.dbd4 che é una DINT, come sarebbe la sintassi specifica per DBREAD ? Grazie mille Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 20 maggio 2016 Segnala Share Inserita: 20 maggio 2016 Gli esempi nel paragrafo Data Access Example di .NET Environment a pag.271 fanno proprio quello che chiedi. che trovi anche qui: http://snap7.sourceforge.net/dotnet.html#example Senti, già scrivere codice in VB mi provoca pruriti su tutto il corpo e secchezza delle fauci (tipo gli antibiotici scaduti) Almeno guardateli Link al commento Condividi su altri siti More sharing options...
tafanoide Inserita: 20 maggio 2016 Autore Segnala Share Inserita: 20 maggio 2016 Avevo giá guardato quell´esempio, infatti é li che mi sorge il dubbio. questo é il mio codice : Dim DBNumber As Integer Dim Size As Integer Dim Result As Integer Dim Address As Integer Dim s As Integer Dim Buffer(6000) As Byte DBNumber = 20 Size = 32 'grandezza Dint ' Read "Size" bytes from the DB "DBNumber" starting from 0 and puts them into Buffer. Result = Client.DBRead(DBNumber, 0, 6000, Buffer) ShowResult(Result) '*************************************************************** '*************************************************************** Address = 2160 Result = Client.DBRead(DBNumber, Address, Size, Buffer) ShowResult(Result) If Result = 0 Then s = S7.GetDIntAt(Buffer, Address) Label30.ForeColor = Color.LightGreen Label30.Text = System.Convert.ToString(s) End If se lascio cosí mi legge il valore giusto da DB20.DBD2160, se invece commento il secondo o il primo DBRead allora non leggo niente (commentando il secondo mi dice che vado out of range, mentre commentando il secondo leggo 0 nella label30) . Non riesco proprio a capire. Mi dispiace che ti provoco in te sintomi da antibiotici scaduti .. potessi eviterei in pieno Sicuramente sto facendo un errore da principiante, ma non riesco a vederlo e mi manda fuori di testa e mi provoca gli stessi sintomi che hai tu Link al commento Condividi su altri siti More sharing options...
dan64100 Inserita: 21 maggio 2016 Segnala Share Inserita: 21 maggio 2016 Ci sono 3 imprecisioni: 1) La dimensione di DINT è 4 non 32 2) Il buffer di lettura viene sempre riempito a partire dal byte 0 a prescindere dall'offset di lettura della DB 3) Hai concatenato due letture usando la stessa variabile di ritorno (Result) la seconda riscrive la prima e l'IF non è coerente. Così dovrebbe funzionare: Dim DBNumber As Integer Dim Size As Integer Dim Result As Integer Dim Address As Integer Dim s As Integer Dim Buffer(6000) As Byte ' <-- In effetti ne servono solo 4 DBNumber = 20 Address = 2160 Size = 4 'grandezza Dint 'Legge 4 bytes da DB20 a partire da 2160 e li mette in Buffer a partire da 0 Result = Client.DBRead(DBNumber, Address, Size, Buffer) ShowResult(Result) If Result = Then s = S7.GetDIntAt(Buffer,0) ' Il buffer viene sempre riempito dal byte Label30.ForeColor = Color.LightGreen Label30.Text = System.Convert.ToString(s) End If 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