AdsNotificationAttrib
Diese Struktur beinhaltet bei der Definition einer Notification sämtliche Attribute.
typedef struct {
ULONG cbLength;
ADSTRANSMODE nTransMode;
ULONG nMaxDelay;
ULONG nCycleTime;
} AdsNotificationAttrib, *PAdsNotificationAttrib;
Elemente
cbLength
Länge der Daten, die an die Callback-Funktion übergeben werden sollen.
nTransMode: ADSTRANSMODE
ADSTRANS_SERVERCYCLE: Die Callback-Funktion der Notification wird zyklisch aufgerufen.
ADSTRANS_SERVERONCHA: Die Callback-Funktion der Notification wird nur bei Änderung des Wertes aufgerufen.
nMaxDelay
Spätestens nach dieser Zeit wird die Callback-Funktion der Notification aufgerufen. Die Einheit ist in 100ns.
nCycleTime
In diesem Zeitinvall prüft der ADS-Server, ob sich die Variable verändert hat. Die Einheit ist in 100ns
Anmerkungen
Die Übertragung zwischen der Echtzeit und der ADS-DLL wird durch einen FIFO gepuffert. Jeder Wert, der per Callback-Funktion übertragen werden soll, wird zuvor von TwinCAT in den FIFO geschrieben. Ist der Puffer voll, oder ist die Zeit nMaxDelay abgelaufen, so wird für jeden Eintrag die Callback-Funktion aufgerufen. Dabei wird durch den Parameter nTransMode das Verhalten in folgender Weise beeinflusst:
ADSTRANS_SERVERCYCLE
Es werden in dem Zeitintervall nCycleTime die Werte zyklisch in den FIFO geschrieben. Der kleinste mögliche Wert für nCycleTime, ist die Zykluszeit des Ads-Servers; bei der SPS ist dieses die Zykluszeit der Task. Die Cycletime kann in 1ms-Schritten ausgewertet werden. Geben Sie als Cycletime 0ms an, so wird in jedem Zyklus der Task der Wert in den FIFO geschrieben.
ADSTRANS_SERVERONCHA
Es wird nur dann ein Wert in den FIFO geschrieben, wenn sich dieser geändert hat. Die Abtastung in der Echtzeit erfolgt in der Zeit, die in nCycleTime angegeben wird. Die Cycletime kann in 1ms-Schritten ausgewertet werden. Geben Sie als Cycletime 0ms an, so wird bei jeder Änderung die Variablen in den FIFIO geschrieben.
Hinweis | |
Zu viele Leseoperationen Durch zu viele Leseoperationen kann das System so stark ausgelastet werden, daß die Bedieneroberfläche stark verlangsamt wird.
|