Vai al contenuto
PLC Forum


Modbus Tcp Ip - Cerco info su modbus tcp ip


studio54

Messaggi consigliati

Ciao,

avrei bisogno di aiuto riguardo il modbus tcp ip.

Dovrei realizzare una piccola interfaccia in VB che mi permetta di utilizzare le funzioni modbus in tcp ip.

Potreste darmi delle indicazioni su dove posso trovare esempi o informazioni su questo protocollo.

Grazie!

Link al commento
Condividi su altri siti


Buongiorno Claudio,

scusami ancora , oggi ho provato ad utilizzare le winsock di VB per costruire il protocollo Modbus tcp ip.

tcp_client.RemoteHost = "192.168.100.1"

tcp_client.RemotePort = 502

tcp_client.connect

ma sfortunatamente non riesco a connettermi.

tcp_client.State = 6

Posso usare le winsock di VB per realizzare un protocollo modbus tcp ip?

Sai dove posso trovare degli esempi a cui ispirarmi?

Grazie per l'aiuto...

Saluti Danilo

Link al commento
Condividi su altri siti

  • 5 years later...

Anche se è un topic un po' vecchio per me è attuale, poiché sto cercando di realizzare un client modbus TCP. Ho trovato in rete le librerie nmodbus (il sito ufficiale nmodbus.org da tempo non è più attivo) su http://code.google.com/p/nmodbus/, però sto cercando degli esempi funzionanti. Qualcuno ha qualcosa in VB.NET ?

Grazie

Link al commento
Condividi su altri siti

  • 7 months later...

Dim Dinteger(2) As Integer

Dinteger(0) = RealToDinteger(RealValue.Text)

Dim DIW As New MieConversioni.M340.ModbusXmlDa

DIW.WriteInt32(0, 100, Dinteger)

rimane poi il big/little endianism....

e ti devi fare una cosa così..

Function IntegerToReal(ByVal Dint As UInteger) As String

'Conversione da intero a binario Formato Stringa

If Dint >= 0 Then

 

Dim StrBinaryNumber As String = Convert.ToString(Dint, 2)

 

StrBinaryNumber = "00000000000000000000000000000000" & StrBinaryNumber

StrBinaryNumber = Right(StrBinaryNumber, 32)

 

 

'Calcolo Mantissa

Dim MantissaBin As String = 0

Dim MantissaDec As String = 0

Dim i As Integer = 0

 

MantissaBin = Mid(StrBinaryNumber, 10, 23)

For i = 1 To 23

MantissaDec = MantissaDec + (Mid(MantissaBin, 24 - i, 1) * (2 ^ (i - 1)))

Next i

MantissaDec = CSng((MantissaDec / 8388608) + 1)

 

 

'Calcolo Esponente

Dim ExpBin As String = 0

Dim ExpDec As String = 0

Dim E As Integer = 0

ExpBin = Mid(StrBinaryNumber, 2, 8)

For E = 1 To 8

ExpDec = ExpDec + (Mid(ExpBin, 9 - E, 1)) * (2 ^ (E - 1))

Next E

ExpDec = CInt(ExpDec - 127)

 

 

'Calcolo Segno

Dim SignBin As String = 0

Dim SignDec As Integer = 0

SignBin = Mid(StrBinaryNumber, 1, 1)

If SignBin = 0 Then

SignDec = 1

Else

SignDec = -1

End If

 

IntegerToReal = Math.Round(SignDec * MantissaDec * (2 ^ ExpDec), 1)

Else

IntegerToReal = "NAN"

End If

 

End Function

Dimmi come farai perchè cio sto perdendo l'anima...

Link al commento
Condividi su altri siti

  • 2 months later...

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