leonardi.mair Inserita: 15 novembre 2007 Autore Segnala Inserita: 15 novembre 2007 ph = openS7online("/S7ONLINE", 0)
leonardi.mair Inserita: 18 novembre 2007 Autore Segnala Inserita: 18 novembre 2007 In fase di modifica del server libnodave (importazione del codiceda visual studio 2005 a devc++) ho provato l'installazione di wxdevcpp_6.10.2_al posto di devc++.E' una versione decisamente migliore di devc++ anche in virtù del fattodi avere un IDE grafico alla visual studio. Attenzionea non installarlo sotto c:\programmi (percorso di default),ma in c:\Dev-Cpp.Disinstallare le precedenti versioni devc++ e cancellarne la cartella in c: primadi installare wxdevcpp_6.10.2, pena un errore di linkingin fase di compilazione.
leonardi.mair Inserita: 18 novembre 2007 Autore Segnala Inserita: 18 novembre 2007 attenzione che utilizzand wxdevcpp_6.10.2, mingw utima release e gcc ultima release,i parametri di compilazione per il progetto libnodave sono diversi da quelli contenutinel progetto presente nel forum. In pratica la libreria viene compilata e linkata correttamente, ma nonvengono esportate (rese visibili) le funzioni per vb. Quindi il richiamo da vb genera unerrore che indica la funzione non presente nella libreria.
Bruno Inserita: 18 novembre 2007 Segnala Inserita: 18 novembre 2007 CiaoAl momento sono bloccato dall'influenza... appena possibile provo awxDev-C++, unica cosa non ho capito il tuo ultimo post.In ogni caso pubblica il file di progetto da usare.Io sto provando la versione demo questo prodotto per testare il software senza PLC (solamente collegamento in TCP/IP con S7300).BR1(cough cough cough)
leonardi.mair Inserita: 18 novembre 2007 Autore Segnala Inserita: 18 novembre 2007 ciao,auguri per una pronta guarigione.Il file di progetto è lo stesso utilizzato per devc++. Oggi ho visto che il make è diverso,ma anche cambiandolo non si risolve il problema. Probabilmente il problema riguardail file di definizioni delle funzioni perchè siano "visibili" anche da VB.
Bruno Inserita: 22 novembre 2007 Segnala Inserita: 22 novembre 2007 Non sono ancora ritornato tra i vivi, ma sto cercando di andare avanti con il codice:purtroppo riesco a testare solo il protocollo in Ethernet in quanto a casa non ho un'interfaccia.per quanto riguarda lo sviluppo in C# DOT.NET ho modificato:1) il file libnodave.net.cs per creare la DLL di interfaccia per il frameworkda: [DllImport("libnodave.dll" /*, PreserveSig=false */ )] public static extern int openS7online( [MarshalAs(UnmanagedType.LPStr)] string portName ); a: [DllImport("libnodave.dll" /*, PreserveSig=false */ )] public static extern int openS7online( [MarshalAs(UnmanagedType.LPStr)] string portName, int hw ); 2) Naturalmente lancio il comando: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:library libnodave.net.cs in modo da creare la DLL libnodave.nel.dll che referenzio nel progetto in C# 3) In modo analogo al VB6 la modifica della chiamata in c# diviene: if ((int)LibNoDaveServer.myConnection.iProtoNum == libnodave.daveProtoS7online) { LibNoDaveServer.main_fds.rfd = libnodave.openS7online(LibNoDaveServer.myConnection.sAccessPoint, 0); LibNoDaveServer.main_fds.wfd = LibNoDaveServer.main_fds.rfd; }
Bruno Inserita: 22 novembre 2007 Segnala Inserita: 22 novembre 2007 Per quanto riguarda l'utilizzo di wxDev-Cpp non ho ancora provato (lo farò a breve).Per il tuo problema ti consiglio di leggere questo linkCiao
Bruno Inserita: 23 novembre 2007 Segnala Inserita: 23 novembre 2007 Oggi in pausa pranzo ho verificato, con successo,il funzionamento delle modifiche citate con un interfaccia PC ADAPTER USB (6ES7972-0CB20-0XA0) utilizzandoil collegamento /S7ONLINE .Adesso metterò in rete un file definibile libnodave starter kit composto da:Ver 0.8.2- Sorgenti ver.0.8.2 con files necessari per compilare la DLL con Dev-Cpp- Sorgenti per esempio in VB6 che usano la DLL compilata- Sorgenti per compilare DLL per Framawork DOT.NET 2.0- Sorgenti per esempio in C# che usano la DLL compilataVer 0.8.4- Sorgenti ver.0.8.4 con files necessari per compilare la DLL con Dev-Cpp- Sorgenti per esempio in VB6 che usano la DLL compilata- Sorgenti per compilare DLL per Framawork DOT.NET 2.0- Sorgenti per esempio in C# che usano la DLL compilataVorrei anche aggiungere un programma (liberamente scaricabile) che emula il PLC (nel caso Ethernet). Ma per questo prima contatto uno dei moderatori.CiaoBR1"Good night and Good luck"
borinid Inserita: 26 novembre 2007 Segnala Inserita: 26 novembre 2007 Ciao Bruno,sei riuscito a mettere lo "starter kit" in rete?Io sto provando a sviluppare un programma in VB.NET ma non riesco a fargli digerire la libnodave.dllSai darmi indicazioni su come riesca a farlo?Grazie 1000.Daniele.
Bruno Inserita: 27 novembre 2007 Segnala Inserita: 27 novembre 2007 (modificato) Ho preparato i due starter kit, uno per la versione 0.8.4 e uno per la versione 0.8.2ma non riesco ad eseguire l'upload La dimensione degli Zip é inferiore ai 2 MB, ma non riesco ad eseguire l'upload !aiuta meaiuta usBR1per il tuo problema: hai referenziato la libnodave.net.dll ? Hai copiato la libnodave.dll nello stesso direttorio dove haib l'eseguibile ? Hai compilato la DLL per lo stesso framework che usi con VB.NET (1.0, 1.1, 2.0) Modificato: 27 novembre 2007 da Bruno
borinid Inserita: 27 novembre 2007 Segnala Inserita: 27 novembre 2007 ho eseguito un pò di prove e ho notato che non funzionano nemmeno gli esempi nella cartella DOT.NET. ho compilato il file libnodave.net.cs per avere la dll. ho copiato quella e la libnodave.dll prelevata dal tuo programma di test fatto in vb6, ma quando eseguo uno qualunque fra gli eseguibili della cartella CS ottengo un errore. ho provato a compilare la dll sia col framework 1.1 che col framework 2.0 ma il risultato è identico.. quindi con #DEVELOP ho convertito il file libnodave.net.cs in VB inserendolo direttamente nel progetto, nessun problema nel senso che aggancia le procedure dalla libnodave.dll purtroppo però connectplc ritorna -1 .. non riesco a capire perchè, sto prendendo spunto dal tuo testolibnodave in VB6 (0.8.4) quello funziona da dio,sia collegandolo al simulatore che direttamente al plc. Ne deduco che commetto un errore quando importo in dot.net.... non riesco a capire dove però!!!!!
borinid Inserita: 27 novembre 2007 Segnala Inserita: 27 novembre 2007 L'area download è offline da venerdi, dannazione!!!!!!!!!!!!Sono riuscito a referenziare la libnodave.net.dll era un problema di framework.... (ma và??) purtroppo stesso risultato: connectPLC=-1 Lavori a Reggio Emilia? Io lavoro in provincia di Parma....
Bruno Inserita: 27 novembre 2007 Segnala Inserita: 27 novembre 2007 Ho provato nuovamente a fare l'upload, ma è fallito ancora.Ho visto che il download funziona, puoi provare a scaricare il file LibNoDave_C.zip lo trovi nella sezione Home / Softwareè in C# framework 2.0 ed è per la versione 0.8.2 ma è funzionante puoi testare se con quello va e poi controlli le differenze.Che connessione usi ?Io preferisco la ISOonTCP ! Ed è quella che conosco meglio (oltre a non richiedere DLL siemens come il collegamento /S7ONLINE.Dai che ci riesci !BR1Reggio/Parma magari ci siamo anche conosciuti, faccio questo lavoro da 1988 (poki ai ventanni)
borinid Inserita: 27 novembre 2007 Segnala Inserita: 27 novembre 2007 Ok, il programmino di test in C# funziona alla perfezione! ora l'unico problema è che uso VB.NET 2003 il quale è all'oscuro dell'esistenza del framwork 2.0 (almeno credo) farò una prova domani con #Develop.. spero di risolvere appoggiandomi al 2.0.. ho paura però di avere troppa confusione di framework nel pc.. comunque, grazie dell'aiuto, ti terrò informato, per dovere di cronaca, dei miei progressi.Complimenti per il ventennale di esperienza... io sono un pò indietro, a metà dicembre festeggerò il primo mese di guerra con i PLC...
Bruno Inserita: 28 novembre 2007 Segnala Inserita: 28 novembre 2007 Con VB.NET 2003 stai utilizzando il framework 1.1, la DLL dovrebbe essere compilata per il 2.0, ma TRANQUI !Per la compilazione io uso il comandoC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe /t:library libnodave.net.csdove csc.exe è il compilatore, tu dovresti trovare dove si trova quello per la tua versione e ricompilarepenso proprio che non dovresti avere problemi, infatti la libreria LIBNODAVE.NET.DLL non è altro che un interfacciatra il framework e la libreria statica.BR1
borinid Inserita: 28 novembre 2007 Segnala Inserita: 28 novembre 2007 Sono riuscito!!! Ho installato #Develop che non è razzista con i framework e li accetta tutti, poi la libnodaveserver.cs l'ho convertata in vb, ho copiato le dll e tutto funziona alla perfezione!!Attualmente un mini versione è già operativa, devo concentrarmi sulle ottimizzazioni e la gestione delle eccezioni.Grazie ancora per il supporto e l'aiuto, vedere un'applicazione di 19 Kb che fa le stesse cose di un OPC server pesante, lento e macchinoso è una soddisfazione!!!
Bruno Inserita: 29 novembre 2007 Segnala Inserita: 29 novembre 2007 Dopo vari tentativi di uploadare (forma verbale interessante) lo starter kit (tutti falliti) oggiho avuto il messaggio di limite mensile raggiunto.....Ci riproverò la settimana prox.Ciao
leonardi.mair Inserita: 1 dicembre 2007 Autore Segnala Inserita: 1 dicembre 2007 ciao Bruno,sono rientrato ieri da una trasferta...ho visto che hai fatto progressi nella compilazione. La prossima settimana mi rimetto al lavoro anch'io alla libreria (ho nuove funzioni da integrare per processare stringhe di bit e allarmi).
Bruno Inserita: 2 dicembre 2007 Segnala Inserita: 2 dicembre 2007 Bentornato !Io al momento sto lavorando sulla DLL per il framework, infatti nell'interfaccia rilasciata dall'autore (Thomas Hergenhahn) non sono pubblicate tutte le funzioni della libreria, quali:davePut8(uc *b,int v);davePut16(uc *b,int v);davePut32(uc *b,int v);davePutFloat(uc *b,float v);davePut8At(uc *b, int pos, int v);davePut16At(uc *b, int pos, int v);davePut32At(uc *b, int pos, int v);davePutFloatAt(uc *b,int pos, float v);oltre a quello sto facendo delle prove con il framework 3.5 (ho scaricato visual studio 2008 express edition).stay tunedBR1
yahoo52 Inserita: 2 dicembre 2007 Segnala Inserita: 2 dicembre 2007 ho avuto conferma dalla Siemens che la pdu delle 300 (io utilizzo una S7-300T)è stata aumentata a 8192 da 240. Ho provato la funzione davereadbytes conun valore maggiore di 240, ma non sembra funzionare. Probabilmente 240 è una costanteall'interno della libreria libnodave. Aumentare questo limite aumenterebbe considerevolmente la velocità di trasmissione per un elevato numero di words da leggere.
Bruno Inserita: 3 dicembre 2007 Segnala Inserita: 3 dicembre 2007 Il limite (con la versione 0.8.4) dovrebbe essere 1920 e viene diminuito a 240 byte per le connessioni/interfacce:IBH (sia MPI che PPI), AS511.Con la connessione /S7ONLINE viene acquisita dalla DLL siemens.Considero sempre importante che le connessioni funzionino indipendentemente dalla configurazione HW, per cui bisognerebbeverificare che il sw sia in grado di testare la versione del PLC e adeguarsi in modo automatico o rimanere limitato a 240 in mododel tutto trasparente all'utente finale.Ciao
yahoo52 Inserita: 3 dicembre 2007 Segnala Inserita: 3 dicembre 2007 il limite di 8192 è per la connessione ethernet, secondo me al variare dell'interfacciadovrebbe corrispondere un adeguamento della pdu in modo da ottimizzare il rendimentoal tipo di collegamento scelto.
Bruno Inserita: 3 dicembre 2007 Segnala Inserita: 3 dicembre 2007 Tu hai fatto una prova con un numero leggermente inferiore a 1920 ?Io non ho ancora avuto il tempo...Se con 1900 funziona (18 byte sono di header) la modifica è molto ben identificabile...BR1
yahoo52 Inserita: 3 dicembre 2007 Segnala Inserita: 3 dicembre 2007 non ho ancora provato con libnodave,ho utilizzato il send/receve tra 2 plc.
yahoo52 Inserita: 4 dicembre 2007 Segnala Inserita: 4 dicembre 2007 ho visto che ci sono le funzioni: davegetmaxPDUlen(dc)per ottenere il valore della pdu,davenewpdu() per crearne una ?
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