Also ich würde auch in 3 Schritten optimieren:
1) Nach Adressen sortieren
2) Überlappende Speicherbereiche erkennen (wenn z.B. ein Bit aus einem schon gelesenen Wort gelesen werden soll)
3) Optimales packen der Daten je nach ausgehandelter PDU-Größe, sodass eine minimale Anzahl an Requests gestellt werden muss (Rucksackproblem)
Ich habe mir das Packen irgendwann mal beim Wonderware DA-Server angesehen, welcher auch bei einem Abstand von zwei Variablen > 10 Byte noch zusammenhängend liest. Evtl. ist der Zugriff SPS-intern wirklich schneller wenn ein großer Block gelesen wird. Das bekommt man aber nur durch Versuche heraus (wobei ich das garnicht machen würde, weil man davon ausgehen muss dass sich das je nach CPU-Typ und Firmwareversion wieder ändert).
Am unteren Ende der Anbindungstreiber steht ja der von WinCCflexible. Der packt überhaupt nichts und liest Variablen sogar mehrfach ein. Kein Wunder dass das so lahm ist.
Was meinst du mit 6 Bytes?Und 3 ja auch aber nur mit 6 Bytes! Kann's ja mal auf 10 erweitern und sehn was besser ist!
Was meinst du mit 6 Bytes?
Ich meinte folgendes (nicht mit realen Daten).
Ausgehandelte PDU sei 100 Bytes (brutto=netto der Einfachheit halber):
- Bereich a hat 90 Bytes
- Bereich b hat 30 Bytes
- Bereich c hat 70 Bytes
- Bereich d hat 10 Bytes
Hier wäre es eben sinnvoll
Request 1: a, d
Request 2: b, c
in ein Telegramm zu packen.
Einfach der Reihenfolge nach dem Sortierungsschritt würde sich evtl.
Request 1: a
Request 2: b, c
Request 3: d
ergeben.
Hallo,
ich hänge mich mal an diesen Thread dran, da ich keinen zum Datenbankprotokoller finde. Ggf. bitte zu passenden Thread verschieben...
Jetzt kommen wir der Sache näher.
Hier mein Fehler:
CLMP CSHARP-LibNoDave-MySQL-Protokoller: Fehler beim erzeugen des Physical Interface, d.h. falsche IP, falscher COM Port, fehlende S7 Treiber! . PLCCOnnectionID:0
Scheint an der S7-verbindung zu liegen.
Habe aber mit folgendem Einstellungen schon per libnodave erfolgreich auf die 1200er zugreifen können:
fds.rfd = libnodave.openSocket(102, 192.168.0.30)
fds.wfd = fds.rfd
di = New libnodave.daveInterface(fds, "Mein Interface", 2, _
libnodave.daveProtoISOTCP, libnodave.daveSpeed187k)
di.setTimeout(1000000)
res = di.initAdapter
If res = 0 Then
dc = New libnodave.daveConnection(di, 2, 0, 1)
res = dc.connectPLC()
End If
Gruß maccap
Jetzt kommen wir der Sache näher.
Hier mein Fehler:
CLMP CSHARP-LibNoDave-MySQL-Protokoller: Fehler beim erzeugen des Physical Interface, d.h. falsche IP, falscher COM Port, fehlende S7 Treiber! . PLCCOnnectionID:0
Häää?????Vielen Dank erstmal an dieser Stelle für deine Hilfe...
So, habe jetzt das Projekt irgendwie in meine vs express 10 Version bekommen.
Habe den Daveconn angepasst und siehe da, mein Fehlerspeicher bleibt leer.
Welchen Browser? Der bei mir Integrierte um die Daten anzuschauen? Den hab Ich bis jetzt nur mit SQLLite benutzt, bei den anderen Verbindungen geht der wahrscheinlich nicht!Nun möchte ich den Browser benutzen, um auf die DB zuzugreifen. Dann bekomme ich folgenden Fehler:
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?