taurus1902
Level-1
- Beiträge
- 18
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Gemeinde !
Ich lese hier schon eine weile mit und bin am verzweifeln.
Ich versuche seit Tagen mit Visual Studio Express 2005 eine Verbindung zur Siemens Logo mit der Libnodave bibliothek herzustellen.
Ich möchte gerne eine Visualisierung für die Logo erstellen komm aber nicht weiter.
Mein Ziel währe es:
Anzeige der Eingänge
Anzeige der Ausgänge
Schalten von Merkern
Eigendlich nicht so kompliziert sollte man meinen, aber scheinbar für mich schon wer kann mich etwas unterstützen ?
Ich bin für jede Hilfe dankbar !
Danke
Hier der Quellcode:
Public Class Form1
Public fds As libnodave.daveOSserialType
Public di As libnodave.daveInterface
Public dc As libnodave.daveConnection
Public res As Integer
Public buf(100) As Byte
Public localMPI As Integer = 0
Public rack As Integer = 0
Public slot As Integer = 2
Public plcMPI As Integer = 2
Public Connection As Boolean = False
Public IP As String = "192.168.46.166"
Private Sub ConnectPLC()
fds.rfd = libnodave.openSocket(102, IP)
fds.wfd = fds.rfd
If fds.rfd > 0 Then ' if step 1 is ok
di = New libnodave.daveInterface(fds, "IF1",0, libnodave.daveProtoISOTCP,libnodave.daveSpeed187k)
di.setTimeout(1000000)
res = di.initAdapter
If res = 0 Then ' init Adapter is ok
' rack amd slot don't matter in case of MPI
dc = New libnodave.daveConnection(di, 1, 1, 0)
res = dc.connectPLC()
If res = 0 Then
Connection = True
Label1.Text = "Connected " + IP
End If
End If
End If
End Sub
Public Sub disconnectPLC()
dc.disconnectPLC()
MessageBox.Show("DisConnected " + IP, "DisConnected")
End Sub
Private Sub Timer1_Tick()
Dim a As Byte
If Connection Then res = dc.readBytes(libnodave.daveInputs, 0, 0, 1, buf)
If res = 0 Then
a = dc.getU8
If IsBitSet(a, 0) Then
Panel1.BackColor = Color.Lime
Else
Panel1.BackColor = Color.DarkGreen
End If
If IsBitSet(a, 1) Then
Panel2.BackColor = Color.Lime
Else
Panel2.BackColor = Color.DarkGreen
End If
Else
Label1.Text = "Read data. " + libnodave.daveStrerror(res)
End If
End Sub
Public Function IsBitSet(ByVal InByte As Byte, ByVal Bit As Byte) As Boolean
'Is a n'th bit in InByte 1 of not?
IsBitSet = ((InByte And (2 ^ Bit)) > 0)
End Function
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
disconnectPLC()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
connectPLC()
End Sub
End Class
Danke
Ich lese hier schon eine weile mit und bin am verzweifeln.
Ich versuche seit Tagen mit Visual Studio Express 2005 eine Verbindung zur Siemens Logo mit der Libnodave bibliothek herzustellen.
Ich möchte gerne eine Visualisierung für die Logo erstellen komm aber nicht weiter.
Mein Ziel währe es:
Anzeige der Eingänge
Anzeige der Ausgänge
Schalten von Merkern
Eigendlich nicht so kompliziert sollte man meinen, aber scheinbar für mich schon wer kann mich etwas unterstützen ?
Ich bin für jede Hilfe dankbar !
Danke
Hier der Quellcode:
Public Class Form1
Public fds As libnodave.daveOSserialType
Public di As libnodave.daveInterface
Public dc As libnodave.daveConnection
Public res As Integer
Public buf(100) As Byte
Public localMPI As Integer = 0
Public rack As Integer = 0
Public slot As Integer = 2
Public plcMPI As Integer = 2
Public Connection As Boolean = False
Public IP As String = "192.168.46.166"
Private Sub ConnectPLC()
fds.rfd = libnodave.openSocket(102, IP)
fds.wfd = fds.rfd
If fds.rfd > 0 Then ' if step 1 is ok
di = New libnodave.daveInterface(fds, "IF1",0, libnodave.daveProtoISOTCP,libnodave.daveSpeed187k)
di.setTimeout(1000000)
res = di.initAdapter
If res = 0 Then ' init Adapter is ok
' rack amd slot don't matter in case of MPI
dc = New libnodave.daveConnection(di, 1, 1, 0)
res = dc.connectPLC()
If res = 0 Then
Connection = True
Label1.Text = "Connected " + IP
End If
End If
End If
End Sub
Public Sub disconnectPLC()
dc.disconnectPLC()
MessageBox.Show("DisConnected " + IP, "DisConnected")
End Sub
Private Sub Timer1_Tick()
Dim a As Byte
If Connection Then res = dc.readBytes(libnodave.daveInputs, 0, 0, 1, buf)
If res = 0 Then
a = dc.getU8
If IsBitSet(a, 0) Then
Panel1.BackColor = Color.Lime
Else
Panel1.BackColor = Color.DarkGreen
End If
If IsBitSet(a, 1) Then
Panel2.BackColor = Color.Lime
Else
Panel2.BackColor = Color.DarkGreen
End If
Else
Label1.Text = "Read data. " + libnodave.daveStrerror(res)
End If
End Sub
Public Function IsBitSet(ByVal InByte As Byte, ByVal Bit As Byte) As Boolean
'Is a n'th bit in InByte 1 of not?
IsBitSet = ((InByte And (2 ^ Bit)) > 0)
End Function
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
disconnectPLC()
End Sub
Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
connectPLC()
End Sub
End Class
Danke