gigi_plc Inserito: 5 marzo 2008 Segnala Share Inserito: 5 marzo 2008 Salve a tutti,inanzitutto complimenti per questo forum, è veramente utile e ricco di risorse.Volevo chiedere il vostro aiuto a riguardo di un collegamento diretto tra CPU S7 315-2 PN/DP tramite ethernet con un PC con windows xp, librerie libnodave e programma sviluppato in visual basic .net. Ho usato la funzione cerca per trovare una risposta al mio problema ma niente.Riporto il codice presente nel mio programma: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim localMPI As Integer = 0, plcMPI As Integer = 2 Dim fds As libnodave.daveOSserialType Dim di As libnodave.daveInterface Dim dc As libnodave.daveConnection Dim res As Integer ' Dim a, b, c As Integer, d As Single Dim buf(1000) As Byte ' Dim s As String Dim args As String = "192.168.0.1" Console.WriteLine("Hello World!") fds.rfd = libnodave.openSocket(102, "192.168.000.001") fds.wfd = fds.rfd If fds.rfd > 0 Then di = New libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoMPI_IBH, libnodave.daveSpeed187k) di.setTimeout(1000000) res = di.initAdapter If res = 0 Then dc = New libnodave.daveConnection(di, 0, 0, 2) res = dc.connectPLC() Else End End If End If End Subquando il programma esegue la funzione open.socket, dopo circa 10 secondi la risposta è sempre zero e quindi non avviene la comunicazione.uso un cavo ethernet incrociato che collega direttamente la cpu al pc. L'indirizzo ethernet del plc è quello impostato da programma, verificato 100 volte.Le librerie sono presenti sia in system 32 che nel direttorio del programma.Cosa posso ulteriormente verificare?Vi ringrazio della vostra collaborazione..Ciao a tutti Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 10 luglio 2008 Segnala Share Inserita: 10 luglio 2008 Hai risolto?Sarei molto interessato a sfruttare la tua esperienza sull'argomento ... Ho scaricato libnodave e ho creato un progetto vb.net pastando il tuo codice ... stranamente, ogni volta che lancio l'applicazione mi si skianta alla riga 17:fds.rfd = libnodave.openSocket(102, "192.168.000.001")Il compilatore segnala : DllNotFoundException not handleVorrei specificare che non ne so molto di VB ... Ho usato Vb.net 2008 per eseguire il test ... Link al commento Condividi su altri siti More sharing options...
Bruno Inserita: 10 luglio 2008 Segnala Share Inserita: 10 luglio 2008 Consiglio ad entrambi di cercare nella sezione upload/download di questo sito gli esempi per l'utuilizzo delle librerie libnodave in:VB6VC# 2005VB.NET 2005facendo ricerche sulle discussioni passate con parola chiave "libnodave" troverete diversi aiuti....dai non rifate gli errori di altri, sfruttate l'esperienza leggendo le discussioni passate.ciaoBR1P.S.Quando vi sarete documentati postate nuovamente e verrete aiutati molto volentieri !!! Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 10 luglio 2008 Segnala Share Inserita: 10 luglio 2008 Fatto!In realta' avevo gia' letto tutti i post relativi a LibNoDave, solamente che non riuscivo a downlodare gli esempi dalla sezione download Ora ci sono riuscito, ho provato Libnodave_VBNET.zip e funziona !!!!Non mi resta che reciclare il codice che mi serve nella mia applicazione.Grazie Link al commento Condividi su altri siti More sharing options...
Bruno Inserita: 10 luglio 2008 Segnala Share Inserita: 10 luglio 2008 Come ho già scritto quell'esempio non mi è venuto al meglio... per quanto riguarda la classe LibNoDave ti consigio di controllare la parte scritta in C#....Sto preparando un esempio migliore in VB.NET, ma il tempo "libero" è tiranno.....Se conosci solo il VB.NET controlla anche la classe scritta da Varg ! Magari potresti postare tu un esempio funzionante, stand-alone, ordinato e semplice ciaoBR1 Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 12 luglio 2008 Segnala Share Inserita: 12 luglio 2008 lato plc cosa bisogna fare ? gestire a livello di codice o rimane trasparante come quando si usa opc server ?grazieciao Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 12 luglio 2008 Segnala Share Inserita: 12 luglio 2008 ho provato a scaricare i 3 files ma non funzia , non capisco , dopo aver cliccato sull'icona scarica si apre ua pagina che non mi dice niente ......riva ...... Link al commento Condividi su altri siti More sharing options...
Bruno Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 Sul lato PLC non bisogna fare nulla !ho provato a scaricare i 3 files ma non funzia , non capisco , dopo aver cliccato sull'icona scarica si apre ua pagina che nonmi dice nienteRicordati che bisogna loggarsi per poter scaricare i filesCiaoBR1 Link al commento Condividi su altri siti More sharing options...
Andboa Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 ciao a tutti , ho avuto modo di utilizzare la nuova cpu della siemens 315_2pn_dp che integra la device ethernet .come diceva un mio amico , bella , design accativante , economicamente conveniente ma ........... "cpu di mer....."io e pinze un mio collega oramai ex .... ci siamo imbattuti nella necessità di creare un protocollo TCp tra Cpu e cpu x201485 B&R.per le prime prove abbiamo configurato la cpu come server e abbiamo realizzto un client in vb6 ;subito abbiamo visto che con questa cpu bisognava configurare un db parametri secondo le specifiche dell' UDT 120 di siemens.qui vengono definiti ip , porte in ascolta fino a 8 , e il tipo di conessione (client server).lato plc abbiamo configurato due blocchi send recive , un connect e un disconnet basati su protocollo send recive.ok .tutto bene ci siamo accorti che con questa cpu ogni porta riesce a gestire fino a 1480 byte a differenza del vecchio send recive su cpu 343-1 eth. . 240 bytema utilizzandola , abbiamo visto che la 343-1 e piu' solida e garantisce una diagnostica delle connessioni.questa cpu non supporta fetch and write , ed è nata per lavorar con pannelli siemens , se qualcuno vuole qualcosa di diverso come nel mio caso siemens rende la strada lunga e contorta .se qualcuno e' interessato posso rigirare un po di codice. Link al commento Condividi su altri siti More sharing options...
oiuytr Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 se qualcuno e' interessato posso rigirare un po di codice.Puoi postarlo qui, faresti cosa gradita a tanti Se si tratta di blocchi particolarmente lunghi puoi utilizzare la sezione Up/download files Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 sono loggato ...altrimenti non potrei nemmeno rispondere nei post .Sarei interessato a scaricare tutti i files di libnodave per contribuire anche ad un'estensionePero non mi fa' scaricare Qualora non sia necessaria la forum card (visto che non ce l'ho ) , vorrei chiedere gentilmente se qualcuno potrebbe inviarmi il malloppo via mail I files interessati sono :LIBNODAVE_VBNET01.ZIPLIBNODAVE_C.ZIPLIBNODAVE_C2.ZIPLIBNODAVE_VBNET.ZIPSTARTERKIT_084.ZIPgrazie walter Link al commento Condividi su altri siti More sharing options...
oiuytr Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 sono loggato ...altrimenti non potrei nemmeno rispondere nei post .Nell'area up/download files occorre una nuova registrazione che e' indipendente da quella del forum Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 13 luglio 2008 Segnala Share Inserita: 13 luglio 2008 ok fra Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 17 luglio 2008 Segnala Share Inserita: 17 luglio 2008 (modificato) Come ho già scritto quell'esempio non mi è venuto al meglio... per quanto riguarda la classe LibNoDave ti consigio di controllare la parte scritta in C#....Sto preparando un esempio migliore in VB.NET, ma il tempo "libero" è tiranno.....Se conosci solo il VB.NET controlla anche la classe scritta da Varg !Magari potresti postare tu un esempio funzionante, stand-alone, ordinato e sempliceDici bene ... MAGARI! Ho provato ad usare la classe di Varg ma, date le mie scarse conoscenze di VB (sono solo uno smanettone), non sono riuscito neanche a leggere un byte! E' un peccato, la classe di Varg sembra essere Molto ottimizzata ... Posto il codice usato per il mio test, dove ho provato a connettermi via TCP all'indirizzo 192.168.0.102 ...Dim S7MainConn As New modSiemens2.MainConn S7MainConn.bAutoLogon = False S7MainConn.iMPI = 4 S7MainConn.iProtoNum = modSiemens2.EmpTypeProto.daveProtoISOTCP S7MainConn.iRack = 0 S7MainConn.iSlot = 2 S7MainConn.sAccessPoint = "/S7ONLINE" S7MainConn.sBaudRate = "38400" S7MainConn.sCommPort = "COM1" S7MainConn.sParity = "E" S7MainConn.sPLC_IP = "192.168.0.102" Dim S7Conn As New modSiemens2.LibNoDaveServer(S7MainConn) Dim byBuffer() As Byte Dim obj As Object S7Conn.initHardware() S7Conn.initPlcConn() ReDim byBuffer(10) obj = S7Conn.ReadByteFromPLC(S7Main2.daveblocktype_db, txtDB.Text, txtElement.Text, txtLenght.Text, byBuffer) Me.lblValue.Text = byBuffer(0) S7Conn.CloseHardware(modSiemens2.EmpTypeProto.daveProtoISOTCP) S7Conn.ClosePlcConn()Modificando il tuo esempio (usando la tua classe) sono riuscito a leggere variabili e scansionare la CPU alla ricerca delle DB configurate e loro lunghezza ...comunque sia provero' ancora con la classe di Varg ... tempo permettendo ... Modificato: 17 luglio 2008 da caracarogna Link al commento Condividi su altri siti More sharing options...
varg Inserita: 18 luglio 2008 Segnala Share Inserita: 18 luglio 2008 (modificato) Salve a tutti facciamo un po di luce sulla classe di gestione in VB.NETPer farla andare è una cosa semplice Dim PLC As MainConn Dim PLCConn As LibNoDaveServer PLC Rappresenta la Configurazione del Vostro PLC PLCConn Rappresenta la Connesione tra il PC e il PLC Configurate Decentemente PLC, con tutti i dati necessari per il vostro PLC, come seriale, protocollo, ethernet o altro... Ricordatevi di settare bAutoLogon a true cosi si connette da solo finito di configurare PLC PLCConn = New LibNoDaveServer(PLC)a questo punto avere la connessione PLCConn gia connessa e funzionante e potete fare tutto quello che volete leggere scrivere o altro... Modificato: 18 luglio 2008 da varg Link al commento Condividi su altri siti More sharing options...
caracarogna Inserita: 18 luglio 2008 Segnala Share Inserita: 18 luglio 2008 (modificato) Grazie Varg! Sono riuscito a leggere dal mio S7-300, posto il codice che ho utilizzato per la connessione con il mio HW (CPU 317 2PN/DP con CP 343-1), N.B. in questo esempio la connessione avviene con protocollo TCP (ethernet)Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdConnetti.Click Dim PLC As modSiemens2.MainConn Dim PLCConn As modSiemens2.LibNoDaveServer PLC.bAutoLogon = True PLC.iMPI = 2 PLC.iRack = 0 PLC.iSlot = 2 PLC.iProtoNum = modSiemens2.EmpTypeProto.daveProtoISOTCP PLC.sPLC_IP = "192.168.0.102" PLCConn = New modSiemens2.LibNoDaveServer(PLC) Dim byBuffer() As Byte 'txtDB.Text ---> textbox contenente il numero della DB da leggere 'txtElement.Text, ---> textbox contenente l'indice del primo byte della DB da leggere 'txtLenght.Text ---> textbox contenente il numero di byte da leggere ReDim byBuffer(txtLenght.Text) PLCConn.ReadByteFromPLC(libnodave.daveDB, txtDB.Text, txtElement.Text, txtLenght.Text, byBuffer) 'per test scrivo il primo valore letto in una label Me.lblValue.Text = byBuffer(0) 'Chiusura della connessione con il Plc PLCConn.ClosePlcConn() End SubDimenticavo, ovviamente per eseguire il test si deve scaricare (sezione download) LibNoDaveVBNET01.zip (by Varg) e le LibNoDave da sourceforge ...Grazie a tutti !!!! Modificato: 18 luglio 2008 da caracarogna Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 29 agosto 2008 Segnala Share Inserita: 29 agosto 2008 la cosa che non capisco e' che se si tratta di comunicazione ethernet ma ci sono i parametri anche della seriale Ho provato 5 minuti fa con l'applicazione test form che fa riferimento all assembly per .net Nella scehda option si possono scegliere dei protocolli , poi c'e' l'indirizzo ip , la seriale ect Io vorrei fare una prova di comunicazione con CP5512 in MPI , collegato al plc in mpi .Il simatic net e' installato ect .......Sapete se con queste caratteristiche posso comunicare ?graziewalter Link al commento Condividi su altri siti More sharing options...
Bruno Inserita: 29 agosto 2008 Segnala Share Inserita: 29 agosto 2008 Ciao WalterIl fatto che le librerie libnodave non sono solo ethernet, se stai provando il programmino che penso io puoi instaurare la comunicazione in diversi modi:0 = MPI for S7 300/4001 = MPI for S7 300/400, "Andrew's WITH"2 = MPI for S7 300/400, Step 7 Version, not yet implemented3 = MPI for S7 300/400, "Andrew's WITHOUT"10 = PPI for S7 20020 = S5 via programming interface50 = S7 using Siemens libraries & drivers for transport122 = ISO over TCPNel casi da 0 a 3 si intende una comunicazione MPI attraverso porta seriale e interfaccia PG/PC (quindi non interfaccia USB o CP 5512), in questi casi devi impostare i paratri per la porta seriale (ignora pure l'indirizzo IP)Nel caso 10 si intende comunicazione PPI con S7-200 attraverso cavo seriale, anche in questo casi devi impostare i parametri per la porta seriale (ignora pure l'indirizzo IP)Nel caso 20 si intende comunicazioe AS511 (porta CPU) con PLC serie S5 attraverso cavo seriale con opportuna interfaccia in current loop, impostare parametri seriali (in questo caso ignora pure IP ma anche rack e slot che non hanno senso)Tutti questi casi appena elencati fanno riferimento ad una seriale del PC, sono validi sia in linux che in Windows.Nel caso 50 la libreria utilizza le DLL della siemens per la comunicazione con i PLC seria S7300 il parametro che indica la tipologia di comunicazione da usare è "access point" (normalmente /S7ONLINE), quindi utilizzando il software Siemens "Imposta interfaccia PG/PC" da pannello di comando definisci come comunicare se via Ethernet (con scheda di rete) o via MPI (con interfacce tipo USB o CP5512). Quindi a seconda del collegamento il parametro che indica il PLC con cui comunicare è l'indirizzo IP in un caso e l'indirizzo MPI nell'altro. ATTENZIONE: con questa tipologia di comunicazione risulta necessiaro che sul PC in questione sia installato software Siemens tipo S7 manager o Simatic NET o altro (quindi attenzione alle licenze), di conseguenza questo caso è limitato al sistema operativi windows.Il caso 122 (il mio preferito) fa riferimento alla comunicazione ISO on TCP (utilizza la porta 112) il parametro che devi impostare è l'indirizzo IP (ignora pure gli altri). Come nel caso seriale questa comunicazione funziona in ambienti windows e linux. Sempre come negli altri casi (tranne che il 50) non necessita di nessuna installazione commerciale (licenze OK).Spero di esserti stato utile.CiaoBR1 Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 31 agosto 2008 Segnala Share Inserita: 31 agosto 2008 ok , il 122 sarebbe anche il mio preferito , solo che 1000 euro di scheda ethernet l'azienda non me li porge sopra l'unghia ..... Io nei vari pc nuovi la seriale non ce l'ho.Uso spesso , anzo solo , la CP5512 , attraverso la quale (settando l'interfaccia Pc Internal ) posso programmare e debuggare il plc e contemporaneamente lanciare un'applicazione client su opc server , fino qualche annetto fa .Quindi opterei per la scehda CPxxxSe invece il pc di supervisione non ha step 7 allora puo darsi abbia la seriale , o la CP5611 Ultimamente si sta cercando di eliminare le scehde seriali per ovvi motivi e per una macchina o impianto di solito non si opta per la scheda ethernet , a meno che non ci siano clien , livello 2 , e altri plc in rete .Con il 50 come dici tu dovrei riuscire ad instaurare un collegamento , 50 sarebbe il valore dell'indice dell'enumeratore che permette di scegliere tramite combo box il protocollo ....se ho visto giusto nel progetto C# Link al commento Condividi su altri siti More sharing options...
nicola1 Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 Ciao a tutti.Ho un problemino da risolvere... Sto facendo dei lavori in cucina in occasione della sostituzione dei mobili e degli elettrodomestici.Devo aggiungere dei punti presa. Per rompere il meno possibile, ho intercettato il tubo esistente, che andava a servire un'altra presa più in là.Il fatto è che ho rotto la mattonella per farci passare la 503, ma adesso il foro che ho aperto è troppo grande per essere coperto con una qualsiasi placca in commercio. Ovviamente a far bene dovrei rompere tutta la mattonella e tagliarne una nuova a misura.Io mi chiedevo se esiste in commercio qualche accessorio che risolva questo problema estetico, ossia qualcosa che si avviti sulla 503 e che vada a coprire oltre la dimensione di una normale placca...Allego una foto per capirci meglio.Voi che fareste?Grazie, Nicola Link al commento Condividi su altri siti More sharing options...
Ivan Botta Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 (modificato) Sicuramente dal punto di cista estetico la soluzione migliore consiste nel sostituire la piastrella rotta.Allego una foto per capirci meglio.Dov'è? Modificato: 7 giugno 2009 da Ivan Botta Link al commento Condividi su altri siti More sharing options...
nicola1 Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 (modificato) Avete ragione il link non funziona...La metto come allegato.. Supponiamo che volessi abbandonare per principio l'idea di sostituire l'intera piastrella, quale potrebbe essere un'altra soluzione anche se magari più "mediocre"? Modificato: 7 giugno 2009 da nicola1 Link al commento Condividi su altri siti More sharing options...
vinlo Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 In commercio c'è una specie di "salvamuro" ( non so come si chiama e chi li produce ), che farebbe al caso tuo. In pratica si mette dietro il supporto e, stringendo quest'ultimo alle sue viti,copre tutto il contorno del supporto in maniera rilevante e impedisce, appunto, di sporcare i muriUnico neo per quanto riguarda lo scopo a cui serve a te,è trasparente.. La dovresti decorare in qualche modo..Ciao Link al commento Condividi su altri siti More sharing options...
Mauro Dalseno Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 (modificato) Cosi' a occhio e croce mi sembra che se muri la scatola ben centrata, la placca riesce a coprire il foro.... Ovviamente dipende da che serie civile utilizzi, quelle moderne hanno delle placche abbastanza grosse Modificato: 7 giugno 2009 da Mauro Dalseno Link al commento Condividi su altri siti More sharing options...
nicola1 Inserita: 7 giugno 2009 Segnala Share Inserita: 7 giugno 2009 In commercio c'è una specie di "salvamuro" ( non so come si chiama e chi li produce ), che farebbe al caso tuo. In pratica si mette dietro il supporto e, stringendo quest'ultimo alle sue viti,copre tutto il contorno del supporto in maniera rilevante e impedisce, appunto, di sporcare i muriCercavo proprio qualcosa del genere... Il top sarebbe ovviamente che ci fossero bianchi Qualcuno sa essere piu' preciso sul nome commerciale di questi accessori? Mi fareste un gran favore...Cosi' a occhio e croce mi sembra che se muri la scatola ben centrata, la placca riesce a coprire il foro.... Ovviamente dipende da che serie civile utilizzi, quelle moderne hanno delle placche abbastanza grossePurtroppo ho già fatto un tentativo al volo sia con la International sia con la Idea ma nessuna delle due copre il foro completamente...Vedrò di informarmi meglio anche dal mio fornitore su questi "salvamuro"...Grazie, ogni ulteriore consiglio e' ben accetto Buona giornata... 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