Hallo, in einer Modbus-TCP-Applikation (vergleichbar mit dem EasyModbusServerSimulator) gelingt es mir nicht, auf die Datenfelder zuzugreifen. Die Verbindung zur Gegenstelle funktioniert, nur den Datenzugriff bekomme ich nicht hin. Siehe Screenshot (Err.png) im Anhang. Die komplette Solution ist ebenfalls im Anhang (VBTest2-TCP.7z).
Wenn Zeile 16 "Me.MbTcpSlave.discreteInputs.Item(i) = 0" nicht auskommentiert ist, gibt es den Build-Error "error BC31429: 'discreteInputs' is ambiguous because multiple kinds of members with this name exist in class 'ModbusServer'."
Weiss vielleicht Jemand, was ich falsch mache bzw. wie es richtig gemacht werden muss?
Vielen Dank im Voraus!
Wenn Zeile 16 "Me.MbTcpSlave.discreteInputs.Item(i) = 0" nicht auskommentiert ist, gibt es den Build-Error "error BC31429: 'discreteInputs' is ambiguous because multiple kinds of members with this name exist in class 'ModbusServer'."
Weiss vielleicht Jemand, was ich falsch mache bzw. wie es richtig gemacht werden muss?
Vielen Dank im Voraus!
Quellcode
- Imports System.ComponentModel
- Imports EasyModbus ' Modbus TCP
- Public Class Form1
- ' ModbusTcp aus easyModbus (Tools - NuGet Package Manager - Manage NuGet... - Browse - Search "easymodbus" - EasyModbusTCP - Install)
- Private MbTcpSlave As New ModbusServer
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
- Try
- 'Dim ip = New Net.IPAddress(New Byte() {127, 0, 0, 1})
- Dim ip = New Net.IPAddress(New Byte() {192, 168, 1, 107})
- Dim i As Integer
- For i = 0 To 512
- Me.MbTcpSlave.discreteInputs.Item(i) = 0
- Next
- Me.MbTcpSlave.LocalIPAddress = ip
- Me.MbTcpSlave.Port = 502
- Me.MbTcpSlave.Listen()
- Catch ex As Exception
- MsgBox("ModbusTCP: " & vbCrLf & ex.Message)
- Me.MbTcpSlave = Nothing
- End Try
- End Sub
- Private Sub Form1_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
- If Me.MbTcpSlave IsNot Nothing Then
- Me.MbTcpSlave.StopListening()
- End If
- End Sub
- End Class