SumHandleWriteRaw Class

Write any (primitive) values by Handle SumCommandBase.

Inheritance Hierarchy

SystemObject
  SumCommandBase
    SumCommandEntityBase
      SumWrite
        TwinCAT.Ads.SumCommandSumHandleWriteRaw

Namespace: TwinCAT.Ads.SumCommand
Assembly: TwinCAT.Ads (in TwinCAT.Ads.dll) Version: 7.0.0+e56d35ccc4675faac24789a4aab60071fc61d470

Syntax

C#

public class SumHandleWriteRaw : SumWrite

The SumHandleWriteRaw type exposes the following members.

Methods

 

Name

Description

CreateSumEntityInfos

Creates the information list.
(Overrides SumWrite.CreateSumEntityInfos)

Equals

Determines whether the specified object is equal to the current object.
(Inherited from Object)

Finalize

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)

GetHashCode

Serves as the default hash function.
(Inherited from Object)

GetType

Gets the Type of the current instance.
(Inherited from Object)

MemberwiseClone

Creates a shallow copy of the current Object.
(Inherited from Object)

ToString

Returns a string that represents the current object.
(Inherited from Object)

Write

Writes the values to the Symbols.

WriteAsync

Write the values asynchronously.

Remarks

This is an ADS Sum Command to access values by handle information. It is always used in combination with and . By design (and in contrast to the symbolic access in SumRead, SumSymbolWrite) this access method can act only with ADS ANY Type (Primitive) values (disadvantage). The Advantage is, that no symbolic information must be loaded before accessing the values, see samples:

Example

Usage of Sum commands with handles (CreateHandles, Read, Write, ReleaseHandles)

/// <summary>
/// Defines the entry point of the application.
/// </summary>
/// <param name="args">The arguments.</param>
static async void Main(string[] args)
{
    Console.WriteLine("");
    Console.WriteLine("Press [Enter] for start:");
    Console.ReadLine();

    // Parse the command-line arguments
    AmsAddress address = ArgParser.Parse(args);

    CancellationTokenSource cancelSource = new CancellationTokenSource();
    CancellationToken cancel = cancelSource.Token;

    using (AdsClient client = new AdsClient())
    {
    // Connect the AdsClient to the device target.
    client.Connect(address);

    string[] instancePathList = {
        "GVL.bVar",
        "GVL.iCount",
        "TwinCAT_SystemInfoVarList._AppInfo.ProjectName"
    };
    SumCreateHandles createHandlesCommand = new SumCreateHandles(client,instancePathList);

    var resultCreateHandles = await createHandlesCommand.CreateHandlesAsync(cancel);

    if (resultCreateHandles.Succeeded)
    {
        uint[] handles = resultCreateHandles.Handles;
        Type[] valueTypes = new Type[]
        {
        typeof(bool),
        typeof(short),
        typeof(string)
        };
        SumHandleReadAnyType readCommand = new SumHandleReadAnyType(client, handles, valueTypes, SumFallbackMode.All);
        var resultRead = await readCommand.ReadAsync(cancel);

        if (resultRead.Succeeded)
        {
        object[] readValues = resultRead.Values;

        for (int i = 0; i < instancePathList.Length; i++)
        {
            Console.WriteLine("Symbol: {0} (Value: {1}, Type: {2})", instancePathList[i], readValues[i].ToString(), valueTypes[i].Name);
        }

        // Sum Command Write
        SumHandleWriteAnyType writeCommand = new SumHandleWriteAnyType(client, handles, valueTypes);
        object[] writeValues = new object[] { true, (short)42, "MyNewProjectName" };

        await writeCommand.WriteAsync(writeValues,cancel);
        }

        SumReleaseHandles releaseCommand = new SumReleaseHandles(client, handles);
        await releaseCommand.ReleaseHandlesAsync(cancel);
    }
    }

    Console.WriteLine("");
    Console.WriteLine("Press [Enter] for leave:");
    Console.ReadLine();
}

Reference

TwinCAT.Ads.SumCommand Namespace SumCreateHandles SumReleaseHandles ISumCommand SumReleaseHandlesBase SumHandleReadAnyType

Beckhoff Automation GmbH & Co. KG 2001-2026