Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Esempi Vb6 X Libnodave - Libnodave per VB6


Messaggi consigliati

Inserito:

Scusatemi se ho aperto una ulteriore discussione riguardo al Libnodave, ma sto' provando ad eseguire una connessione con un S7216 in vano da un paio di ore :angry: seguendo le istruzioni allegate, c'è mica qualche anima buona che mi passerebbe qualche esempio semplice semplice del codice per eseguire questa benedetta connessione al PLC.

Grazie mille per la disponibilità

Adolfo


Gabriele Corrieri
Inserita:

Ciao

fornisci qualche altro dato, il codice che hai scritto, ad esempio, eventualmente se vuoi pubblicare l'intero progetto VB6 e non hai spazio web contattami in privato.

Ciao

Inserita:

Intanto grazie per l'attenzione e la tempestività, praticamente io ho preso il file (modulo .BAS) del programma di esempio allegato alla DLL ho cambiato le dichiarazioni da PRIVATE a PUBLIC e ho provato scrivendo il codice che dovrebbe connetermi al PLC, l'ultima prova l'ho fatta con le seguenti istruzioni:

ph = setPort(com1, 9600, 0)

Text1 = ph

di = daveNewInterface(ph, ph, "IF1", 0, daveProtoPPI, daveSpeed187k)

Call daveSetTimeout(di, 500000)

res = daveInitAdapter(di)

Text2 = res

dc = daveNewConnection(di, 2, 0, 2)

res = daveConnectPLC(dc)

quello che non mi torna è che praticamente che io abbia il PLC collegato oppure no non ottengo nessuna variazione.

Dove sto' sbagliando?

Adolfo

Inserita:

C'è qualcosa che non va:

1) Con che tipo di interfaccia ti vuoi connettere ?

2) Nel caso tu stia utilizzando un PC Adapter collegato sulla COM1 devi sistemare il baud rate in modo opportuno (19200 o 38400).

Riesci a fornire qualche informazione in più ? (scrivi pure)

Io utilizzo le librerie di LibNoDave sia in VB6 che in C#, se posso ti aiuto volentieri.

Ciao

BR1

Gabriele Corrieri
Inserita:

Ciao

secondo me l'errore sta qui

di = daveNewInterface(ph, ph, "IF1", 0, daveProtoPPI, daveSpeed187k)

dove c'è davespeed187k, devi riportare 9,6Kbps, guarda cosa dice l'. a riguardo.

Ciao

Inserita:

Il tipo di interfaccia che sto usando per questo "Esperimento" è la classica PPI per S7 200 tramite seriale, francamente ho iniziato le prove con il Baudrate a 9,6K e da li non mi sono mosso, effettivamente come mi avete fatto notare c'è un errore tra il baudrate con cui ho aperto la com ed il valore invocato nella funzione DveNewInterface, comunque anche correggendo tale valore a 9K come indicato da manuale non cambia nulla. comunque se puo' essere utile vi indico i valori che ottengo dalle variabili del codice scritto, che come ho gia detto non cambiano sia che il PLC sia collegato oppure no.

ph = -1

di = 33425112

res = 0

dc = 33431480

res1 = daveConnectPLC(dc) valore = -1025

Adolfo

Inserita:

Ciao da codici errori sembra che:

ph = -1

Non ha funzionato la setport: la tua variabile com1 come è dichiarata e cosa contiene ?

deve essere STRING e deve contenere la stringa "COM1" se collegata alla porta seriale COM1:

daveConnectPLC(dc) valore = -1025 significa

Timeout when waiting for PLC response

potrebbe essere una conseguenza della setport.

Ciao

BR1

Inserita:

Scusate, mi ero dimenticato:

l'interfaccia seriale PPI funziona diversamente dalla MPI, la parità deve essere settata a "E" Even

non a "O" Odd.

Altra domanda sei collegato con una seriale convenzionale o stai usando un convertitore USB ?

Riprova e facci sapere.

Ciao

BR1

Inserita:

Invio l'ultima versione del codice che ho usato con allegato i valori di risposta ottenuti

ph = 0

di = 0

dc = 0

res = -1

BAUD$ = "19600"

port = "COM1"

parity$ = "E" come indicato da BRUNO

ph = setPort(port, BAUD$, Asc(Left$(parity$, 1))) ph = 720

Text1 = ph

di = daveNewInterface(ph, ph, "IF1", 0, daveProtoPPI, daveSpeed19k) di = 33556184

res = daveInitAdapter(di) res = 0 (zero)

MpiPpi = 2

dc = daveNewConnection(di, MpiPpi, 0, 0) dc = 33562552

res1 = daveConnectPLC(dc) res1 = -1025

Text2 = res1

grazie a tutti per l'interessamento

ciao Adolfo

Inserita:

Sembra che siamo sulla strada giusta, spero solamente che il baud rate sia a 9600 e non 19600 (spero in un errore di battitura), quindi:

BAUD$ = "19600"

Tutti i passaggi sembrano andati bene tranne l'ultimo, ma ho notate che nell'esempio fornito da Thomas (autore della libreria) non viene testato...

hai provato ad eseguire una lettura dopo la daveConnectPLC(dc) (che è quella che ti va in errore) ?

Hai provato a testare l'hardware con l'eseguibile fornito con le DLL (testPPI.exe) ?

Sempre verificando gli esempi di Thomas prova a scrivere

di = daveNewInterface(ph, ph, "IF1", 0, daveProtoPPI, daveSpeed187k)

DAIII Sei vicino alla luce....

BR1

Inserita:

Grazie mille Bruno per il tuo aiuto e grazie anche a tutti gli altri, comunque venendo al problema ho provato a modificare il codice in varie maniere ottenendo i soliti risultati, ho allora come da te consigliato eseguito il testPPI sotto ti espongo i risultati:

C:\win1>testppi -s COM1

timeout in _daveExchangePPI!

Trying to read 64 bytes (32 words) from data block 1.

This is V memory of the 200.

Press return to continue.

timeout in _daveExchangePPI!

Trying to read 16 bytes from FW0.

Press return to continue.

timeout in _daveExchangePPI!

timeout in _daveExchangePPI!

Mi viene il dubbio .... non sarà mica colpa del WIN XP PROF SP2 ? oppure del cavo PPI datato?

Ormai è diventata una questione di onore devo riuscire a collegarmi.

Grazie ancora

Adolfo

Inserita:

:D:D:D EVVIVA!!!!!

Finalmente ci sono riuscito, sistemando il baudrate del PLC a 9,6K il testPPI e riuscito, quindi smanettando con il codice in VB sono riuscito ad eseguire il collegamento ed a mandare in STOP e poi far ripartire il PLC.

Se avrò ulteriori amnesie non esiterò a postare ancora, Grazie veramente a tutti.

Adolfo

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...