Um das Ganze mal aufzuklären:

Mit den Properties der Komponente werden nur Vorgaben für den Aufruf von ReadBytes gesetzt. Aus Performancegründen wird die Methode Readbytes aber nicht automatisch bei Änderungen der Properties aufgerufen.

Wenn immer nur der gleiche Block aus der SPS gelesen werden soll, dann kann man einfach die Properties setzen, den Interval einstellen, und im OnRead-Event die gelesenen Daten auswerten, das ist in diesem Fall die schnellste und einfachste Lösung.

Wenn aber aus verschiedenen Bereichen bzw. DBs gelesen werden soll, dann ist es sinnvoller, nur die Verbindungsparameter in der Komponente zu setzen (eine Komponente pro SPS), die Verbindung zu aufzubauen, und dann über ein externes Interval (z.B. TTimer) zuerst die Methode ReadBytes (die Variante mit den vielen Parametern) mit den ensprechenden Einstellungen für Bereich, DB-Nr, Adresse usw. aufzurufen, und danach jeweils die gelesenen Daten mit den Methoden der Komponente auszuwerten.

Was in keinem Fall geht, ist die Properties der Komponente zu setzen, und dann direkt die Werte auswerten zu wollen, ohne vorher ReadBytes aufzurufen. Dann hat die Komponente die Werte ganz einfach noch nicht gelesen, und liefert dementsprechend zwangsläufig falsche Werte.


Gruß Axel