TcAdsClient.AddDeviceNotificationEx Method (UInt32, UInt32, AdsTransMode, Int32, Int32, Object, Type, .Int32.)
Connects a variable to the ADS client. The ADS client will be notified by the AdsNotification event. If type is a string type, the first element of the parameter args specifies the number of characters of the string. If type is an array type, the number of elements for each dimension has to be specified in the parameter args. At the moment only 1 dimensional Arrays are supported.
Namespace: TwinCAT.Ads
Assembly: TwinCAT.Ads (in TwinCAT.Ads.dll)
Version: 4.3.0.0
Syntax
C#
public int AddDeviceNotificationEx(
uint indexGroup,
uint indexOffset,
AdsTransMode transMode,
int cycleTime,
int maxDelay,
Object userData,
Type type,
int[] args
)
VB
Public Function AddDeviceNotificationEx (
indexGroup As UInteger,
indexOffset As UInteger,
transMode As AdsTransMode,
cycleTime As Integer,
maxDelay As Integer,
userData As Object,
type As Type,
args As Integer()
) As Integer
Parameters
indexGroup |
Type: System.UInt32 |
indexOffset |
Type: System.UInt32 |
transMode |
Type: TwinCAT.Ads.AdsTransMode |
cycleTime |
Type: System.Int32 |
maxDelay |
Type: System.Int32 |
userData |
Type: System.Object |
type |
Type: System.Type |
args |
Type: .System.Int32. |
Return Value
Type: Int32
The handle of the notification.
Implements
Receive AdsNotifications
//AdsStream readStream = new AdsStream(sizeof(UInt32));
private void ReceiveNotifications()
{
using (TcAdsClient client = new TcAdsClient())
{
// Add the Notification event 'Ex' handler
client.AdsNotificationEx += Client_AdsNotification;
// Connect to target
client.Connect(AmsNetId.Local, 851);
int notificationHandle = 0;
try
{
// Notification to a ZDINT Type (UINT32)
// Check for change every 200 ms
notificationHandle = client.AddDeviceNotificationEx("MAIN.nCounter",AdsTransMode.OnChange, 200, 0, null,typeof(uint));
Thread.Sleep(5000); // Sleep the main thread to get some (asynchronous Notifications)
}
finally
{
// Unregister the Event / Handle
client.DeleteDeviceNotification(notificationHandle);
client.AdsNotificationEx -= Client_AdsNotification;
}
}
}
private void Client_AdsNotification(object sender, AdsNotificationExEventArgs e)
{
// Or here we know about UDINT type --> can be marshalled as UINT32
uint nCounter = (uint)e.Value;
}