Also: Ich habe gerade mal einen OPC-Trace durchgeführt (das geht über die SimaticNet Konfigurations-Konsole) und dabei folgendes Festgestellt:
- wenn ich den OPC Scout als Client nutze mit 4ms aktualisierungszeit erfolgt laut Trace alle 10-11ms ein Zugriff auf den Profibus
- wenn ich LabView als Client nutze erfolgt alle 100-101ms ein Zugriff.
ich habe mal ein wenig gesucht... und gefunden: im Server Explorer von LabView findet man den Simatic Net OPC. Den kann man nutzen wie den OPC Scout, und da kann man auch zeiten einstellen. Und siehe da, wenn ich dort die Item-Aktualisierungszeit auf 10ms stelle, erfolgt wieder alle 10ms ein Zugriff. Allerdings nur aus diesem Server Explorer, über das VI sinds wieder 100ms.
Der OPC scheint also mehr als 100ms zuzulassen, das wurde mir auch von Siemens-Seite aus so bestätigt.
Die einzige 100ms-Grenze die es dort gibt bezieht sich auf das Protokoll S7-Verbindung, das ist nicht so schnell. Ich arbeite aber mit DP-Protokoll.
Zitat:LabVIEW greift mit den Elementen des Datasocket auf die OPC-Schnittstelle (quasi der OPC-Scout) zu, die von OPC-Lieferanten (hier also Siemens) zur Verfügung gestellt wird. Wenn diese Schnittstelle, ob das nun ein Server oder ein Client ist spielt keine Rolle, neue Daten nur langsam zur Verfügung stellt - ist doch LabVIEW nicht Schuld. Die Zugriffsgeschwindigkeit von LabVIEW auf den OPC-Server geschieht alleine dadurch, dass du z.B. alle 5ms einen expliziten Lesebefehl machst. Der Lesebefehl kann nun mit oder ohne "Warten auf neue Daten" geschehen (wobei "neue Daten" nur heißt "neues Datenpaket").
Der OPC-Server läuft auf dem PC, bzw. dem Profibus-CP, und der wird über die Hardwarekonfiguration parametriert. In meinem Falle mit 4ms, er lässt also 4ms als kürzeste Zeit zu. Der OPC Client liest und schreibt die Daten, und zwar mit einer eigenen Geschwindigkeit, die ich irgendwo vorgeben können muss. Die Langsamere der beiden geschwindigkeiten bestimmt die endgültige Datenaktualsierung.
Der OPC-Scout ist nicht die OPC-Schnittstelle, sondern ein Client, die Daten aus dem OPC Server liest und schreiben kann. Praktisch genau das gleiche, was LabView in meinem Falle auch sein sollte.
die Datenübertragung zum OPC erfolgt in 16bit-Blöcken (das entspricht dem PZD des Stromrichters). Zur Zykluszeitmessung wird im Moment von LabView nur gelesen, über DataSocket: lesen, und zwar genau ein Eingangsword, d.h. die 16bit.
Das mit dem Schieberegister probier ich aus, danke für den Tip. Vor lauter Zykluszeiten komm ich gar nicht mehr zum Programmieren, und das wo ich doch als Energietechniker mit der Bitpopelerei eigentlich gar nix zu tun haben wollte