-> Hier kostenlos registrieren
Hallo,
ich will von einer S7-300-CPU kontinuierlich den Wert im MW20 einlesen. Dazu habe ich in VB2005 die Timer2-Prozedur angelegt, die alle 100 ms aufgerufen wird.
Dabei stelle ich fest, dass die Wertänderung im MW20 in VB2005 nicht schnell genug erfasst wird. Die S7-CPU verändert alle 100 ms den Wert im MW20. In VB2005 macht sich aber nur alle 2 bis 3 s eine Wertänderung bemerkbar. Es spielt dabei keine Rolle, ob ich für die Übertragung einen alten PC-Adapter von Siemens (6ES7 972-0CA22-0XA0) mit der Einstellung 38,4 kBit/s oder ein schnelles MPI-LAN-Kabel der Prozessinformatik mit 187,5 kBit/s einsetze. Auch beim Einsatz von Accontrol als fiktive CPU bleibt das Resultat gleich:
Nur alle 2 bis 3 s macht sich in VB2005 in der Textbox "txtWert" eine Wertänderung bemerkbar. Die Messung mit dem GetTickCount hat ergeben, dass die ReadBytes-Methode beim Siemens-PC-Adapter ca. 78 ms, beim MPI-Lan-Kabel ca. 15-30 ms und bei Accontrol ca. 0 ms benötigt. Bei diesen Messungen war das Timer2-Intervall auf 5 s eingestellt. Der Wert selbst wird richtig dargestellt.
Ich habe die "libnodave.dll" ins System32 kopiert und die "libnodave.net.dll" in den VB-Projektordner in ...\bin\debug
Für die "libnodave.net.dll" habe ich einen Verweis angelegt.
Hier der Programmcode des Timers2:
Gruß
Earny
ich will von einer S7-300-CPU kontinuierlich den Wert im MW20 einlesen. Dazu habe ich in VB2005 die Timer2-Prozedur angelegt, die alle 100 ms aufgerufen wird.
Dabei stelle ich fest, dass die Wertänderung im MW20 in VB2005 nicht schnell genug erfasst wird. Die S7-CPU verändert alle 100 ms den Wert im MW20. In VB2005 macht sich aber nur alle 2 bis 3 s eine Wertänderung bemerkbar. Es spielt dabei keine Rolle, ob ich für die Übertragung einen alten PC-Adapter von Siemens (6ES7 972-0CA22-0XA0) mit der Einstellung 38,4 kBit/s oder ein schnelles MPI-LAN-Kabel der Prozessinformatik mit 187,5 kBit/s einsetze. Auch beim Einsatz von Accontrol als fiktive CPU bleibt das Resultat gleich:
Nur alle 2 bis 3 s macht sich in VB2005 in der Textbox "txtWert" eine Wertänderung bemerkbar. Die Messung mit dem GetTickCount hat ergeben, dass die ReadBytes-Methode beim Siemens-PC-Adapter ca. 78 ms, beim MPI-Lan-Kabel ca. 15-30 ms und bei Accontrol ca. 0 ms benötigt. Bei diesen Messungen war das Timer2-Intervall auf 5 s eingestellt. Der Wert selbst wird richtig dargestellt.
Ich habe die "libnodave.dll" ins System32 kopiert und die "libnodave.net.dll" in den VB-Projektordner in ...\bin\debug
Für die "libnodave.net.dll" habe ich einen Verweis angelegt.
Hier der Programmcode des Timers2:
Private Sub Timer2_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Timer2.Tick
Dim MW(1) As Byte, Wert As Short, Zeit As Long
If fds.rfd > 0 Then
Zeit = GetTickCount
res = dc.readBytes(libnodave.daveFlags, 0, 20, 1, MW)
Wert = dc.getS16
Zeit = GetTickCount - Zeit
txtDauer.Text = Zeit
txtWert.Text = Wert
End If
End Sub
Gruß
Earny