-> Hier kostenlos registrieren
Hallo,
ich will diverse VB.Net-Visus über libnodave mit ACCOntrol kommunizieren lassen. Auf meinem alten WinXp-Rechner klappt das problemlos. ACCOntrol 1.2.32 lässt sich unter W7 64 Prof installieren. Es kann aber nicht in der Schnittstellenkonfiguration von STEP7 angesprochen werden. (Ist nicht so schlimm, man kann das S7-Programm auch direkt laden.). Ich hoffe aber, das Deltalogic demnächst die 1.3.0- oder 2.0.0-Version von ACCOntrol für W7 64 Bit herausbringt.)
Das S7-Programm läuft fehlerfrei in der ACCONtrol-CPU ab.
Die libnodave.dll habe ich an vier Stellen abgelegt (sicher ist sicher):
in Syswow64 von Windows (hier sollen die alten 32 Bit-Treiber(!), z.B. dlls und ocx usw. rein)
in Sytem32 von Windows (hier sollen die neuen 64 Bit-Treiber(!) rein)
im Projektordner des mit VB.2010SP1Prof erstellten VB-Projekts
und im Ordner bin\debug des VB-Projekts
Ich vermute, dass die libnodave.dll nicht wirklich W7 64 Bit bekannt ist. Bei Xp genügt es ja, sie ins system32 zu kopieren - das wars. Ich benutze noch den libnodave-Modul, also nicht die Wrapper-libnodave.net.dll. Das hat bisher auf dem XP-Rechner bestens funktioniert.
Oder tut es die alte libnodave.dll (32 Bit) bei W7 64 Bit nicht. Hier im Forum gibt es schon viel Infos drüber.
Das nachfolgende VB-Projekt startet fehlerfrei. Es gibt keine Fehlermeldung! Der Wert aus dem MW40 soll gelesen und in die Textbox "txtWert" geschrieben werden. In der Textbox kommt eine saubere "0" an, aber es entsteht kein Fehler.
In cbxIP gebe ich die 127.0.0.1 für die ACCONtrol-CPU an. ACCOntrol zeigt im MW40 die Werte korrekt an!
Gruß
Earny
ich will diverse VB.Net-Visus über libnodave mit ACCOntrol kommunizieren lassen. Auf meinem alten WinXp-Rechner klappt das problemlos. ACCOntrol 1.2.32 lässt sich unter W7 64 Prof installieren. Es kann aber nicht in der Schnittstellenkonfiguration von STEP7 angesprochen werden. (Ist nicht so schlimm, man kann das S7-Programm auch direkt laden.). Ich hoffe aber, das Deltalogic demnächst die 1.3.0- oder 2.0.0-Version von ACCOntrol für W7 64 Bit herausbringt.)
Das S7-Programm läuft fehlerfrei in der ACCONtrol-CPU ab.
Die libnodave.dll habe ich an vier Stellen abgelegt (sicher ist sicher):
in Syswow64 von Windows (hier sollen die alten 32 Bit-Treiber(!), z.B. dlls und ocx usw. rein)
in Sytem32 von Windows (hier sollen die neuen 64 Bit-Treiber(!) rein)
im Projektordner des mit VB.2010SP1Prof erstellten VB-Projekts
und im Ordner bin\debug des VB-Projekts
Ich vermute, dass die libnodave.dll nicht wirklich W7 64 Bit bekannt ist. Bei Xp genügt es ja, sie ins system32 zu kopieren - das wars. Ich benutze noch den libnodave-Modul, also nicht die Wrapper-libnodave.net.dll. Das hat bisher auf dem XP-Rechner bestens funktioniert.
Oder tut es die alte libnodave.dll (32 Bit) bei W7 64 Bit nicht. Hier im Forum gibt es schon viel Infos drüber.
Das nachfolgende VB-Projekt startet fehlerfrei. Es gibt keine Fehlermeldung! Der Wert aus dem MW40 soll gelesen und in die Textbox "txtWert" geschrieben werden. In der Textbox kommt eine saubere "0" an, aber es entsteht kein Fehler.
In cbxIP gebe ich die 127.0.0.1 für die ACCONtrol-CPU an. ACCOntrol zeigt im MW40 die Werte korrekt an!
Code:
Option Explicit On
Option Strict Off
Public Class Form1
Dim ph As Integer
Dim di As Integer
Dim dc As Integer
Dim res As Integer
Private Sub btnAufbau_Click_1(sender As System.Object, e As System.EventArgs) Handles btnAufbau.Click
Dim Port As Integer = 102, IP As String, Rack As Integer = 0, Slot As Integer = 2
Dim MPIAdressLocal As Integer = 0, MPIAdressPLC As Integer = 2
IP = cbxIP.Text
ph = openSocket(Port, IP)
di = daveNewInterface(ph, ph, "IF1", MPIAdressLocal, daveProtoISOTCP, daveSpeed187k)
res = daveInitAdapter(di)
dc = daveNewConnection(di, MPIAdressPLC, Rack, Slot)
res = daveConnectPLC(dc)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer1.Tick
Dim buf(1) As Byte, Wert As Single
res = daveReadBytes(dc, daveFlags, 0, 40, 2, buf(0))
Wert = daveGetS16from(buf(0))
txtWert.Text = Wert
End Sub
Private Sub btnAbbau_Click_1(sender As System.Object, e As System.EventArgs) Handles btnAbbau.Click
Timer1.Enabled = False
res = daveDisconnectPLC(dc)
Call daveFree(dc)
dc = 0
res = daveDisconnectAdapter(di)
Call daveFree(di)
di = 0
res = closePort(ph)
ph = 0
End Sub
End Class
Gruß
Earny