Vai al contenuto
PLC Forum


Visual Basic Su Et200s


luca80

Messaggi consigliati

Ciao a tutti, vorrei sapere se è possibile fare comunicare un sistema in vb6 con un plc et200s via mpi, devo leggere/scrivere 24 input ,16 output e scrivere una db con circa 40 dbd. La macchina è un'unità abbastanza chiusa, l'operatore ci dovrà variare qualcosa due volte l'anno, quindi non c'è nessun problema di tempi di risposta. Grazie mille.

Link al commento
Condividi su altri siti


Ho trovato l'esempio, ma dopo aver inserito in vb il codice come modulo, mi da degli errori in compilazione che sinsìceramente non conosco..

Link al commento
Condividi su altri siti

Dopo varie prove ho compilato un'altro esempio trovato in internet, che a quanto pare è già testato, da qui volevo iniziare a inserire una form con le poche variabili che mi servono. Però alla prima prova di comunicazione trovo già dei problemi, ma leggendo come sono fatte le impostazioni mi trovo che si possono usare degli adattatori MPI del tipo('6ES7 972-0CA22-0XAC, 6ES7 972-0CA23-0XAC, 6ES7 972-0CA33-0XAC).io volevo usare il mio che è 6ES7 972-0CB20-0AX0 per USB

Qualcuno sa per caso la diffrenza che c'è tra il mio e quelli che sono stati usati nell'esempio?

Grazie.

Link al commento
Condividi su altri siti

Sei un pochettino vago nella descrizione dei tuoi problemi, magari potremmo aiutarti meglio...

Dai qualche indicazione sull'esempio che stai usando...

Comunque, in linea di principio, con Libnodave per usare l'adattatore USB devi usare la connessione attraverso il protocollo "S7ONLINE".

Ciao

BR1

"Good Night and Good Luck"

Link al commento
Condividi su altri siti

L'esempio che ho trovato è proprio fatto da tè Bruno, StarteKit84, con vb, dovete scusarmi ma è la prima volta che provo a fare un'interfaccia con vb. Dopo averlo compilato posso usarlo per connettermi o bisogna implemetargli qualcosa?

Grazie

Link al commento
Condividi su altri siti

Gianmario Pedrani

Scusa Luca80 una domanda stupida, ma VB lo conosci?? perchè se non conosci il linguaggio, e pretendi di creare una supervisione, be ammiro il coraggio ma il metodo non mi sembra dei migliori.

Seconda cosa scrivi tutte le prove che hai fatto dove si blocca e come hai pensato di gestire il tutto, perchè sei decisamente molto vago e qui noi facciamo molta fatica a capire quello che stai provando a fare e dove trovi le tue difficolta.

Link al commento
Condividi su altri siti

L'esempio è completo e dopo averlo compilato dovresti essere in grado di accedere in lettura / scrittura ad un PLC Siemens senza dover aggiungere nulla.

Lo scopo del codice che hai scaricato è puramente didattico per comprendere l'utilizzo della libreria: se noti possibilità di miglioramenti nei sorgenti o nelle spiegazioni (preparazione di file doc) postali pure liberamente, potrebbero servire a qualcun'altro.

Se esegui operazioni di ricerca sul forum troverai discussioni che parlano dell'utilizzo sia degli esempi che delle interfacce.

Buon lavoro

BR1

Link al commento
Condividi su altri siti

Si hai ragione funziona, ho trovato solo un problema sul pulsante stop plc che chiama sempre la funzione run, bruno che tu sappia se devo leggere una doppia intera devo usare la funzione "daveManyReadBytes" ?

Ciao grazie

Link al commento
Condividi su altri siti

Scusa, la domanda era come leggere una doppia intera in virgola mobile, perche se metto numero elementi a 4 , leggo una 32 bit però come gestisco la virgola , faccio uno shift a destra epoi lo converto in virgola mobile?

Link al commento
Condividi su altri siti

Ti posto Link dal sito della Siemens, infatti io normalmente leggo sempre vettori di byte, quindi interpreto volta per volta i dati a seconda del significato.

Ciao

BR1

Link al commento
Condividi su altri siti

Con i numeri ci siamo,dopo anche un consiglio di un collega , ma adesso ho un problema con il set bit che è dentro ad una DB ,mentre i reset funziona, il codice che ho inserito sul modulo è questo e lo chiamo da un form

//// su form

Private Sub ttttt_Click()

Dim Area As Long

Dim NumeroArea As Integer

Dim Inizio As Integer

Dim Quanti As Integer

Dim Valore As Variant

PLC_Node.sPLC_IP = CheckIdent_PLC()

lstDebug.Clear

Call SET_BIT(PLC_Node, Area, NumeroArea, Inizio, Quanti, Valore)

End Sub

/// sul modulo

' Set bit

Public Function SET_BIT(ByRef PLC As PLC_AdrType, TipoArea As Long, NumeroArea As Integer, Inizio As Integer, Quanti As Integer, Valore As Variant) As Long

Call daveSetBit(PLC.dConn, daveDB, NumeroArea, Inizio, Quanti, Valore)

End Function

non prendete paura, sono alle prime armi.

Link al commento
Condividi su altri siti

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...