<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <!-- Cmdlet: Copy-AdsFile -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Copy-AdsFile</command:name>
      <command:verb>Copy</command:verb>
      <command:noun>AdsFile</command:noun>
      <maml:description>
        <maml:para>Uploads / Downloads files from/to TwinCAT target.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet implements ADS file transfer operations with TwinCAT Systems.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetId -->
      <command:syntaxItem>
        <maml:name>Copy-AdsFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Directory -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Directory</maml:name>
          <maml:description>
            <maml:para>The Directory specifier on the remote system. The Default is "Generic".</maml:para>
            <maml:para>Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9</maml:para>
          </maml:description>
          <command:parameterValue required="true">PathSpecifier</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.PathSpecifier</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>Generic</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Generic</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">BootDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">TargetDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ConfigDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">InstallDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepositoryDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath9</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces to create the Directory on the target side (and overwrites any preexisting file).</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The address (AmsNetId) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Upload -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Upload</maml:name>
          <maml:description>
            <maml:para>Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Copy-AdsFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Route">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
          </maml:description>
          <command:parameterValue required="true">IRoute</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.IRoute</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Directory -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Directory</maml:name>
          <maml:description>
            <maml:para>The Directory specifier on the remote system. The Default is "Generic".</maml:para>
            <maml:para>Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9</maml:para>
          </maml:description>
          <command:parameterValue required="true">PathSpecifier</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.PathSpecifier</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>Generic</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Generic</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">BootDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">TargetDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ConfigDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">InstallDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepositoryDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath9</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces to create the Directory on the target side (and overwrites any preexisting file).</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Upload -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Upload</maml:name>
          <maml:description>
            <maml:para>Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Copy-AdsFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address of the system where the file is Downloaded from / Uploaded to (Default: Local) This can be the RouteName, NetId, the HostName or the IPAddress.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Directory -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Directory</maml:name>
          <maml:description>
            <maml:para>The Directory specifier on the remote system. The Default is "Generic".</maml:para>
            <maml:para>Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9</maml:para>
          </maml:description>
          <command:parameterValue required="true">PathSpecifier</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.PathSpecifier</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>Generic</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Generic</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">BootDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">TargetDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ConfigDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">InstallDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepositoryDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath9</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces to create the Directory on the target side (and overwrites any preexisting file).</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Upload -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Upload</maml:name>
          <maml:description>
            <maml:para>Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Copy-AdsFile</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Directory -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Directory</maml:name>
          <maml:description>
            <maml:para>The Directory specifier on the remote system. The Default is "Generic".</maml:para>
            <maml:para>Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9</maml:para>
          </maml:description>
          <command:parameterValue required="true">PathSpecifier</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.PathSpecifier</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root.</maml:para>
            </maml:description>
          </dev:type>
          <dev:defaultValue>Generic</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Generic</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">BootDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">TargetDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ConfigDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">InstallDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepositoryDir</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath1</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath2</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath3</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath4</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath5</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath6</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath7</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath8</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">UserPath9</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces to create the Directory on the target side (and overwrites any preexisting file).</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Upload -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Upload</maml:name>
          <maml:description>
            <maml:para>Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The source path specifier, where the file is taken from. If this Cmdlet is in Download mode, this is the specifier or FullPath of the (remote) file, dependant of the StandardFolder Parameter. In case of 'Uploading' this is the FullPath of the file to be transferred.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Destination -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The Destination path/specifier, where the file is stored. If the Cmdlet is in Download mode, this has to be the FullPath of the target location. In case of 'Uploading' this can be the FileName or a FullPath dependent of the StandardDirectory Parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Directory -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Directory</maml:name>
        <maml:description>
          <maml:para>The Directory specifier on the remote system. The Default is "Generic".</maml:para>
          <maml:para>Possible values: Generic, BootDir, TargetDir, ConfigDir, InstallDir, RepositoryDir, UserPath1, UserPath2, UserPath3, UserPath4, UserPath5, UserPath6, UserPath7, UserPath8, UserPath9</maml:para>
        </maml:description>
        <command:parameterValue required="true">PathSpecifier</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Management.Automation.PathSpecifier</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>The PathSpecifier is specifying "Special Folders" on the target system, within the [TwinCAT] Root.</maml:para>
          </maml:description>
        </dev:type>
        <dev:defaultValue>Generic</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Generic</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">BootDir</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">TargetDir</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ConfigDir</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">InstallDir</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RepositoryDir</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath1</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath2</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath3</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath4</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath5</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath6</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath7</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath8</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">UserPath9</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Upload -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Upload</maml:name>
        <maml:description>
          <maml:para>Switches the Cmdlet to Upload mode. If not set, the Cmdlet is in 'Download' mode.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Forces to create the Directory on the target side (and overwrites any preexisting file).</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The address (AmsNetId) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Route">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Route">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address of the system where the file is Downloaded from / Uploaded to (Default: Local) This can be the RouteName, NetId, the HostName or the IPAddress.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>The target system address is derived from the Session Information where the file is Downloaded from / Uploaded to.</maml:para>
          <maml:para>This is an alias of the SessionId parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The address (Route) of the system where the file is Downloaded from / Uploaded to (Default: Local)</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>PS &gt; Copy-AdsFile -address  CX_00001 -path CurrentConfig.xml -Destination c:\tmp\Config1.xml -Directory BootDir</dev:code>
        <dev:remarks>
          <maml:para>Downloads the the CurrentConfig.xml from the BootDir of the target system to 'c:\tmp\Config1.xml'</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>PS &gt; Copy-AdsFile -address CX_00001 -upload -path c:\tmp\Config1.xml -destination CurrentConfig.xml -Directory BootDir</dev:code>
        <dev:remarks>
          <maml:para>Uploads the file "c:\tmp\Config1.xml" on local system to the Target BootFolder of system CX_00001</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>PS &gt; Copy-AdsFile -address CX_0001 -path c:\ReadMe.txt -destination d:\tmp\</dev:code>
        <dev:remarks>
          <maml:para>Downloads the File "C:\ReadMe.txt" form System CX_0001 to the local system and store it under d:\tmp\ReadMe.txt</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Add-AdsRoute -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-AdsRoute</command:name>
      <command:verb>Add</command:verb>
      <command:noun>AdsRoute</command:noun>
      <maml:description>
        <maml:para>Cmdlet for adding TwinCAT Routes.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Adds a Route to the destination target System (Temporary or static).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Address -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TC3PasswordEncryption -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TC3">
          <maml:name>TC3PasswordEncryption</maml:name>
          <maml:description>
            <maml:para>Gets or sets the the TC3 Password encryption</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(Broadcast) Search Timeout for searching the unregistered target (Default 5000).</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressPSK -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PreSharedKey -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="PSK">
          <maml:name>PreSharedKey</maml:name>
          <maml:description>
            <maml:para>Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: BinaryKey -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>BinaryKey</maml:name>
          <maml:description>
            <maml:para>The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings.</maml:para>
          </maml:description>
          <command:parameterValue required="true">byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(Broadcast) Search Timeout for searching the unregistered target (Default 5000).</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressSCA -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SharedCertAuth -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SCA">
          <maml:name>SharedCertAuth</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreCN -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreCN</maml:name>
          <maml:description>
            <maml:para>Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route.</maml:para>
            <maml:para>The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(Broadcast) Search Timeout for searching the unregistered target (Default 5000).</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressSSC -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SelfSigned -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SSC">
          <maml:name>SelfSigned</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SelfSigned (SSC) mode for adding the route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(Broadcast) Search Timeout for searching the unregistered target (Default 5000).</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetId -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The AmsNetID for the ADS route to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TC3PasswordEncryption -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TC3">
          <maml:name>TC3PasswordEncryption</maml:name>
          <maml:description>
            <maml:para>Gets or sets the the TC3 Password encryption</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdPSK -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The AmsNetID for the ADS route to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PreSharedKey -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="PSK">
          <maml:name>PreSharedKey</maml:name>
          <maml:description>
            <maml:para>Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: BinaryKey -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>BinaryKey</maml:name>
          <maml:description>
            <maml:para>The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings.</maml:para>
          </maml:description>
          <command:parameterValue required="true">byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdSCA -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The AmsNetID for the ADS route to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SharedCertAuth -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SCA">
          <maml:name>SharedCertAuth</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreCN -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreCN</maml:name>
          <maml:description>
            <maml:para>Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route.</maml:para>
            <maml:para>The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdSSC -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The AmsNetID for the ADS route to add.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SelfSigned -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SSC">
          <maml:name>SelfSigned</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SelfSigned (SSC) mode for adding the route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Routes -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The input Ads Routes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TC3PasswordEncryption -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TC3">
          <maml:name>TC3PasswordEncryption</maml:name>
          <maml:description>
            <maml:para>Gets or sets the the TC3 Password encryption</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RoutesPSK -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The input Ads Routes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PreSharedKey -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="PSK">
          <maml:name>PreSharedKey</maml:name>
          <maml:description>
            <maml:para>Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: BinaryKey -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>BinaryKey</maml:name>
          <maml:description>
            <maml:para>The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings.</maml:para>
          </maml:description>
          <command:parameterValue required="true">byte[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Byte[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RoutesSCA -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The input Ads Routes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SharedCertAuth -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SCA">
          <maml:name>SharedCertAuth</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreCN -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreCN</maml:name>
          <maml:description>
            <maml:para>Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route.</maml:para>
            <maml:para>The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RoutesSSC -->
      <command:syntaxItem>
        <maml:name>Add-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The input Ads Routes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para>Credentials of the route to be added to the destination system.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SelfSigned -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SSC">
          <maml:name>SelfSigned</maml:name>
          <maml:description>
            <maml:para>Gets or sets the SelfSigned (SSC) mode for adding the route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the route is added.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: DestinationCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DestinationCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: HostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>HostName</maml:name>
          <maml:description>
            <maml:para>If set, the route will be registered as HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Temporary -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Temporary</maml:name>
          <maml:description>
            <maml:para>If set, the Route will be registered as temporary route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Unidirectional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Unidirectional</maml:name>
          <maml:description>
            <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name,TargetAddress">
        <maml:name>TargetAddress</maml:name>
        <maml:description>
          <maml:para>The address for the ADS route. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The AmsNetID for the ADS route to add.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="TargetNetId">
        <maml:name>TargetNetId</maml:name>
        <maml:description>
          <maml:para>The AmsNetID for the ADS route to add.</maml:para>
          <maml:para>This is an alias of the NetId parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>(Broadcast) Search Timeout for searching the unregistered target (Default 5000).</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>5000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The input Ads Routes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The input Ads Routes.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0" aliases="Route,TargetRoute">
        <maml:name>TargetRoute</maml:name>
        <maml:description>
          <maml:para>The input Ads Routes.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Destination -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The Destination Address, where the route is added.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue></dev:defaultValue>
      </command:parameter>
      <!-- Parameter: DestinationCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DestinationCredential</maml:name>
        <maml:description>
          <maml:para>The credentials of the destination system, where to add the route. Local system by default.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Credential -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para>Credentials of the route to be added to the destination system.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
        <maml:name>TargetCredential</maml:name>
        <maml:description>
          <maml:para>Credentials of the route to be added to the destination system.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that in the current version, tha password is transferred as clear text through the network. Use this only in safe subnetworks.</maml:para>
          <maml:para>This is an alias of the Credential parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: BinaryKey -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>BinaryKey</maml:name>
        <maml:description>
          <maml:para>The BinaryKey can be used instead of the credential Password on SecureSettings.PreSharedKeys (PSK). There is no function for this parameter on other security settings.</maml:para>
        </maml:description>
        <command:parameterValue required="true">byte[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Byte[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: HostName -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>HostName</maml:name>
        <maml:description>
          <maml:para>If set, the route will be registered as HostName</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Temporary -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Temporary</maml:name>
        <maml:description>
          <maml:para>If set, the Route will be registered as temporary route.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: TC3PasswordEncryption -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TC3">
        <maml:name>TC3PasswordEncryption</maml:name>
        <maml:description>
          <maml:para>Gets or sets the the TC3 Password encryption</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TC3">
        <maml:name>TC3</maml:name>
        <maml:description>
          <maml:para>Gets or sets the the TC3 Password encryption</maml:para>
          <maml:para>This is an alias of the TC3PasswordEncryption parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SelfSigned -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SSC">
        <maml:name>SelfSigned</maml:name>
        <maml:description>
          <maml:para>Gets or sets the SelfSigned (SSC) mode for adding the route.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SSC">
        <maml:name>SSC</maml:name>
        <maml:description>
          <maml:para>Gets or sets the SelfSigned (SSC) mode for adding the route.</maml:para>
          <maml:para>This is an alias of the SelfSigned parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: PreSharedKey -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="PSK">
        <maml:name>PreSharedKey</maml:name>
        <maml:description>
          <maml:para>Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="PSK">
        <maml:name>PSK</maml:name>
        <maml:description>
          <maml:para>Gets or sets the PreSharedKey (PSK) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          <maml:para>This is an alias of the PreSharedKey parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SharedCertAuth -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SCA">
        <maml:name>SharedCertAuth</maml:name>
        <maml:description>
          <maml:para>Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SCA">
        <maml:name>SCA</maml:name>
        <maml:description>
          <maml:para>Gets or sets the SharedCertificateAuthority (SCA) mode for adding the route. Because a valid certificate is expected at the target, it is not necessary to enter credentials.</maml:para>
          <maml:para>This is an alias of the SharedCertAuth parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IgnoreCN -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreCN</maml:name>
        <maml:description>
          <maml:para>Gets or sets the 'Ignore Common Name' mode for SharedCertificateAuthority (SCA) while adding the route.</maml:para>
          <maml:para>The "CommonName" of the certificate must correspond to the name used when establishing the connection in the certificate. This behavior can be deactivated by this option.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Unidirectional -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Unidirectional</maml:name>
        <maml:description>
          <maml:para>Gets or sets the unidirectional setting. The Unidirectional setting registers the ADS Route as 'one-way' channel. That means that the engineering/source system (thats where the route request is initiated) can send requests to the remote target, but not in the opposite direction.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Quiet -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
        <maml:name>Quiet</maml:name>
        <maml:description>
          <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
        <maml:name>Silent</maml:name>
        <maml:description>
          <maml:para>The Quiet parameter suppresses the 'ShouldProcess' message and the ADSRoute will be added without further question.</maml:para>
          <maml:para>This is an alias of the Quiet parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The input Ads Routes.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          &gt; Get-AdsRoute -Broadcast -name "Tc3*"

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105     3.1.4021  Win7
          TC3Test13-C6650 172.17.60.239.1.1 172.17.62.156     2.11.2246 Win7


          PS&gt; $cred = Get-Credential -Message "Get Credentials" -UserName "UserName"

          PS&gt; Add-AdsRoute -Credential $cred -name "TC3TestA1-CP67x" -temporary

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105     3.1.4021  Win7

          PS&gt; Get-AdsRoute -name "TC3TestA1-CP67x" | Test-AdsRoute
        </dev:code>
        <dev:remarks>
          <maml:para>Search for Systems that start with the name "TC3*", then asks the user for Credentials and adds the Route as 'temporary' (with TC2 compatible security, clear text password). Afterwards, the connection is checked.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          &gt; Get-AdsRoute -Broadcast -name "Tc3*"

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105     3.1.4021  Win7
          TC3Test13-C6650 172.17.60.239.1.1 172.17.62.156     2.11.2246 Win7


          PS&gt; $cred = Get-Credential -Message "Get Credentials" -UserName "UserName"

          PS&gt; Add-AdsRoute -Credential $cred -name "TC3TestA1-CP67x" -selfSigned

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105     3.1.4021  Win7

          PS&gt; Get-AdsRoute -name "TC3TestA1-CP67x" | Test-AdsRoute
        </dev:code>
        <dev:remarks>
          <maml:para>Search for Systems that start with the name "TC3*", then asks the user for Credentials and adds the Route with 'SelfSigned' AdsSecure settings. Afterwards, the connection is checked.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; Add-AdsRoute -Address 172.17.62.105 -sca

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          TC3TestA1-CP67x 172.17.62.105.1.1 172.17.62.105     3.1.4021  Win7
        </dev:code>
        <dev:remarks>
          <maml:para>Search for the system with the specified IPAddress, and add the Route with Shared Certification Authority settings without password. The precondition is, that valid certificates are already established on both (engineering and remote) systems, within their StaticRoutes.xml files.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AdsRoute -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AdsRoute</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdsRoute</command:noun>
      <maml:description>
        <maml:para>List routes on a TwinCAT System / Broadcast search.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet can list the routes configured on a TwinCAT local/remote system, or start determining all TwinCAT Systems within the current subnet.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: GetRoutes -->
      <command:syntaxItem>
        <maml:name>Get-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: All -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Broadcast">
          <maml:name>All</maml:name>
          <maml:description>
            <maml:para>Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: StaticRoutes -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Static">
          <maml:name>StaticRoutes</maml:name>
          <maml:description>
            <maml:para>Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(Broadcast) Search Timeout (Default 5000 ms)</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: LocalSystem -->
      <command:syntaxItem>
        <maml:name>Get-AdsRoute</maml:name>
        <!-- Parameter: Local -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Self">
          <maml:name>Local</maml:name>
          <maml:description>
            <maml:para>If set, the local system route will be returned. By default a list of the actual registered routes will be returned.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: All -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Broadcast">
        <maml:name>All</maml:name>
        <maml:description>
          <maml:para>Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Broadcast">
        <maml:name>Broadcast</maml:name>
        <maml:description>
          <maml:para>Broadcast switch. If activated a broadcast search is triggered within the local network. The search can be constrained additionally by the -Address/-Name parameter. Searching by Address (direct access of targets if no wildcards, otherwise using Broadcast search): - HostName: Searching the target by dns resolution and then via IP (fallback broadcast search filtering DeviceName/Hostname, not working over subnets!) - IPAddress: Directly accessing via IP (works also over subnets) - AmsNetId: Working via Broadcast search (not working over subnet segments!) Searching by Name: Works always via Broadcast search, wildcards permitted</maml:para>
          <maml:para>This is an alias of the All parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>(Broadcast) Search Timeout (Default 5000 ms)</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>5000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The Name / Address of the route to get. The address of the route can be coded as NetId, the HostName or the IPAddress in string representation. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The Destination address specifies the target, where the the routes are determined. Use this to get the registered routes of a remote system. The Destination system can be specified by RouteName (route name on local system), AmsNetId, IPAddress or HostName</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: StaticRoutes -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Static">
        <maml:name>StaticRoutes</maml:name>
        <maml:description>
          <maml:para>Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Static">
        <maml:name>Static</maml:name>
        <maml:description>
          <maml:para>Indicates that only static routes will be returned. By default this Cmdlet returns the actual registered routes.</maml:para>
          <maml:para>This is an alias of the StaticRoutes parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Local -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Self">
        <maml:name>Local</maml:name>
        <maml:description>
          <maml:para>If set, the local system route will be returned. By default a list of the actual registered routes will be returned.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Self">
        <maml:name>Self</maml:name>
        <maml:description>
          <maml:para>If set, the local system route will be returned. By default a list of the actual registered routes will be returned.</maml:para>
          <maml:para>This is an alias of the Local parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; Get-AdsRoute

          Name            NetId             Address       Sub TcVersion   RTSystem
          ----            -----             -------       --- ---------   ---------
          CP-15ECA0       172.17.62.128.1.1 172.17.62.178     [UNKNOWN]   [UNKNOWN]
          CP-15ECA1       172.17.62.105.1.1 172.17.62.105     [UNKNOWN]   [UNKNOWN]
        </dev:code>
        <dev:remarks>
          <maml:para>Lists all registered local routes. Because only the local port 10000 is addressed, the TcVersion and RTSystem is unknown (the Cmdlet doesn't contact the targets and doesn't produce additional roundtrips.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS&gt; get-AdsRoute -Broadcast
          Name            NetId               Address       Sub Version   RTSystem
          ----            -----               -------       --- -------   --------
          CX-1CEEDA       5.16.136.222.1.1    172.17.62.139     3.1.4020  Win7
          CX-20BC62       5.32.188.98.1.1     172.17.62.90      3.1.4020  CE6.0
          CX-10A87B       5.16.168.123.1.1    172.17.62.140     2.11.2254 CE7.0
          CP-15ECA0       172.17.62.128.1.1   172.17.62.178     3.1.4021  Win7
          CX-0A7F60       5.10.127.96.1.1     172.17.62.148     3.1.4020  XP
          CX2030-B4018    172.17.60.157.1.1   172.17.60.159     2.11.2256 Win7
          CP_11BB16       5.17.187.22.1.1     172.17.60.180     2.11.2038 CE6.0
          CX-128CE5       172.17.60.165.1.1   172.17.62.191     2.11.2237 CE7.0
          CX-124218       5.18.66.24.1.1      172.17.60.192     3.1.4021  Win7
          CX-1D82AA       172.17.62.180.1.1   172.17.62.180     3.1.4021  Win8
          CX_0AB4F0       5.10.180.240.1.1    172.17.60.195     2.11.2243 XP
          CP-1DFA0A       172.17.62.118.1.1   172.17.62.118     3.1.4021  Win7
          CX-AF0001       172.17.62.75.1.1    172.17.62.70      3.1.4020  Win10
        </dev:code>
        <dev:remarks>
          <maml:para>Start a Broadcast search from the local system and lists the devices within the connected network.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; Get-AdsRoute -Name "Tc3*"

          Name            NetId             Address       Sub Version RTSystem
          ----            -----             -------       --- ------- --------
          TC3TESTA1-CP67X 172.17.62.105.1.1 172.17.62.105     0.0     Unknown
        </dev:code>
        <dev:remarks>
          <maml:para>Get the (actual) route assigned to the local system that has the name pattern "Tc3*"</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 4  ----------</maml:title>
        <dev:code>
          PS&gt; Get-AdsRoute -Broadcast | where TcVersion -lt "3.1.0.0"
          Name            NetId              Address       Sub Version   RTSystem
          ----            -----              -------       --- -------   --------
          TC3Test17-C6930 172.17.62.98.1.1   172.17.62.98      2.11.2234 Win7
          CX2030-B4018    172.17.60.157.1.1  172.17.60.159     2.11.2256 Win7
          CX-10A87B       5.16.168.123.1.1   172.17.62.140     2.11.2254 CE7.0
          TC3Test13-C6650 172.17.60.239.1.1  172.17.62.156     2.11.2246 Win7
          ECATTest01      172.17.61.6.1.1    172.17.61.31      2.11.2239 Win7
          CX-128CE5       172.17.60.165.1.1  172.17.62.191     2.11.2237 CE7.0
          CX_0AB4F0       5.10.180.240.1.1   172.17.60.195     2.11.2243 XP
          CP_11BB16       5.17.187.22.1.1    172.17.60.180     2.11.2038 CE6.0
          Find out all TwinCAT Systems within the network with Version numbers lower than '3.1.0.0'
        </dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Remove-AdsRoute -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Remove-AdsRoute</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>AdsRoute</command:noun>
      <maml:description>
        <maml:para>Remove an ADS Route.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Removes static or temporary routes from the local system or from remote systems. If access is available, the route is removed on both endpoints of the Route.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Address -->
      <command:syntaxItem>
        <maml:name>Remove-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credentials -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Credentials</maml:name>
          <maml:description>
            <maml:para>Destination system route credentials (only if removing remotely).</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Management.Automation.PSCredential</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination route, where to Remove the specified route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Local</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetId -->
      <command:syntaxItem>
        <maml:name>Remove-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetID of the route to remove.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credentials -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Credentials</maml:name>
          <maml:description>
            <maml:para>Destination system route credentials (only if removing remotely).</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Management.Automation.PSCredential</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination route, where to Remove the specified route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Local</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Remove-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>A collection of routes to remove (Pipeline support).</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Credentials -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Credentials</maml:name>
          <maml:description>
            <maml:para>Destination system route credentials (only if removing remotely).</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Management.Automation.PSCredential</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination route, where to Remove the specified route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Local</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Destination -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The destination route, where to Remove the specified route.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTarget</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTarget</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Local</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The address for the ADS route to remove. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetID of the route to remove.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>A collection of routes to remove (Pipeline support).</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Quiet -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
        <maml:name>Quiet</maml:name>
        <maml:description>
          <maml:para>The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Silent">
        <maml:name>Silent</maml:name>
        <maml:description>
          <maml:para>The Quiet parameter suppresses the 'ShouldProcess' messsage and the routes will be removed without further question.</maml:para>
          <maml:para>This is an alias of the Quiet parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Credentials -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Credentials</maml:name>
        <maml:description>
          <maml:para>Destination system route credentials (only if removing remotely).</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>System.Management.Automation.PSCredential</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>A collection of routes to remove (Pipeline support).</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; Get-AdsRoute
          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          CP-15ECA0       172.17.62.128.1.1 172.17.62.178     0.0       Unknown
          TC3TESTA1-CP67X 172.17.62.105.1.1 172.17.62.105     0.0       Unknown

          PS&gt; Remove-AdsRoute -Name "CP-15ECA0","TC3TESTA1*"
        </dev:code>
        <dev:remarks>
          <maml:para>Removes the Routes "CP-15ECA0" and "TC3TESTA1-CP67X" from the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>PS&gt; Get-AdsRoute | Remove-AdsRoute -silent</dev:code>
        <dev:remarks>
          <maml:para>Removes all registered routes from the local system.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Test-AdsRoute -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Test-AdsRoute</command:name>
      <command:verb>Test</command:verb>
      <command:noun>AdsRoute</command:noun>
      <maml:description>
        <maml:para>Test the specified route connection.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet establishes a connection to the specified target system and tests if the connection is working. A Port scan can be executed.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Test-AdsRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port(s) of the target system to test.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DefaultPorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DefaultPorts</maml:name>
          <maml:description>
            <maml:para>Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Mode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Mode</maml:name>
          <maml:description>
            <maml:para>The Ping Strategy (PingStrategy.Ads by default)</maml:para>
            <maml:para>Possible values: IP, HostName, IPOrHostName, Ads</maml:para>
          </maml:description>
          <command:parameterValue required="true">PingStrategy</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.PingStrategy</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Ads</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">IP</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">HostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IPOrHostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Ads</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: OnlinePorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OnlinePorts</maml:name>
          <maml:description>
            <maml:para>Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TimeToLive -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TTL">
          <maml:name>TimeToLive</maml:name>
          <maml:description>
            <maml:para>The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetId -->
      <command:syntaxItem>
        <maml:name>Test-AdsRoute</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId(s) of the target system to test (AmsNetId.Local by default)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port(s) of the target system to test.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DefaultPorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DefaultPorts</maml:name>
          <maml:description>
            <maml:para>Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Mode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Mode</maml:name>
          <maml:description>
            <maml:para>The Ping Strategy (PingStrategy.Ads by default)</maml:para>
            <maml:para>Possible values: IP, HostName, IPOrHostName, Ads</maml:para>
          </maml:description>
          <command:parameterValue required="true">PingStrategy</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.PingStrategy</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Ads</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">IP</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">HostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IPOrHostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Ads</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: OnlinePorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OnlinePorts</maml:name>
          <maml:description>
            <maml:para>Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TimeToLive -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TTL">
          <maml:name>TimeToLive</maml:name>
          <maml:description>
            <maml:para>The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Test-AdsRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The routes targets to test with this Cmdlet.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port(s) of the target system to test.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DefaultPorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DefaultPorts</maml:name>
          <maml:description>
            <maml:para>Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Mode -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Mode</maml:name>
          <maml:description>
            <maml:para>The Ping Strategy (PingStrategy.Ads by default)</maml:para>
            <maml:para>Possible values: IP, HostName, IPOrHostName, Ads</maml:para>
          </maml:description>
          <command:parameterValue required="true">PingStrategy</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.PingStrategy</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Ads</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">IP</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">HostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">IPOrHostName</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Ads</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: OnlinePorts -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OnlinePorts</maml:name>
          <maml:description>
            <maml:para>Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: TimeToLive -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TTL">
          <maml:name>TimeToLive</maml:name>
          <maml:description>
            <maml:para>The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetId(s) of the target system to test (AmsNetId.Local by default)</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The Port(s) of the target system to test.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The routes targets to test with this Cmdlet.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The routes targets to test with this Cmdlet.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Mode -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Mode</maml:name>
        <maml:description>
          <maml:para>The Ping Strategy (PingStrategy.Ads by default)</maml:para>
          <maml:para>Possible values: IP, HostName, IPOrHostName, Ads</maml:para>
        </maml:description>
        <command:parameterValue required="true">PingStrategy</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.SystemService.PingStrategy</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Ads</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">IP</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">HostName</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">IPOrHostName</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Ads</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: TimeToLive -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TTL">
        <maml:name>TimeToLive</maml:name>
        <maml:description>
          <maml:para>The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>2</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="TTL">
        <maml:name>TTL</maml:name>
        <maml:description>
          <maml:para>The TimeToLive value. The is the timeout how long the Cmdlet waits for the answer.</maml:para>
          <maml:para>This is an alias of the TimeToLive parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>2</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: DefaultPorts -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DefaultPorts</maml:name>
        <maml:description>
          <maml:para>Tests all default ports. The following ports will be tested: 10000, 300, 301, 302, 303, 501, 801, 811, 821, 831, 850, 851, 852, 853, 854, 855, 19200 The 'DefaultPorts' switch overrides the 'Port' parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: OnlinePorts -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OnlinePorts</maml:name>
        <maml:description>
          <maml:para>Determines all active/online ports from the target and tests them. The 'OnlinePorts' switch overrides the 'DefaultPorts' and 'Port' parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Quiet -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Quiet</maml:name>
        <maml:description>
          <maml:para>The Quiet mode. Returns a boolean only ($true, if one ping succeeded and $false if all failed)</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Target names/addresses of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The NetId(s) of the target system to test (AmsNetId.Local by default)</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The routes targets to test with this Cmdlet.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <maml:introduction>
          <maml:para>Test the Port 851 of the local system (PLC 1):</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Test-AdsRoute -Port 851</dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-AdsState -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-AdsState</command:name>
      <command:verb>Get</command:verb>
      <command:noun>AdsState</command:noun>
      <maml:description>
        <maml:para>Gets the Ads State of a TwinCAT Target.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This command let gets the ADS state of a TwinCAT target.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-AdsState</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetID of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force Mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The quiet mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-AdsState</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address(es) where to get the State. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force Mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The quiet mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-AdsState</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="1" aliases="Destination,Source">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The target systems, where to get the AdsState from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force Mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>The quiet mode</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetID of the target system.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The AmsPort of the target system.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address(es) where to get the State. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="1" aliases="Destination,Source">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The target systems, where to get the AdsState from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="1" aliases="Destination,Source">
        <maml:name>Destination,Source</maml:name>
        <maml:description>
          <maml:para>The target systems, where to get the AdsState from.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Quiet -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Quiet</maml:name>
        <maml:description>
          <maml:para>The quiet mode</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Force Mode</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>Communication timeout in ms.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The target systems, where to get the AdsState from.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <maml:introduction>
          <maml:para>Getting the actual AdsState from target with NetId 1.2.3.4.5.6:</maml:para>
        </maml:introduction>
        <dev:code>
          PS &gt; Get-AdsState 1.2.3.4.5.6

          Name   State  OK   Time (ms) Address
          ----   -----  --   --------- -------
          WORK01 Config True 0         1.2.3.4.5.6
        </dev:code>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <maml:introduction>
          <maml:para>Getting the AdsState from the Local system:</maml:para>
        </maml:introduction>
        <dev:code>
          PS &gt; Get-AdsState

          Name   State  OK   Time (ms) Address
          ----   -----  --   --------- -------
          WORK01 Config True 0         1.2.3.4.5.6    ///
        </dev:code>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <maml:introduction>
          <maml:para>Getting the AdsState of target system at IPAddress 1.2.3.4 and Route name 'CX_0130C7':</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Get-AdsState 1.2.3.4,CX_0130C7</dev:code>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 4  ----------</maml:title>
        <maml:introduction>
          <maml:para>Get the current target state from all registered routes:</maml:para>
        </maml:introduction>
        <dev:code>
          PS &gt; get-route | get-adsState

          Name      State  OK   Time (ms) Address
          ----      -----  --   --------- -------
          WORK01    Config True 0         1.2.3.4.5.6
          CX_0130C7 Config True 0         5.1.48.199.1.1    ///
        </dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Set-AdsState -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Set-AdsState</command:name>
      <command:verb>Set</command:verb>
      <command:noun>AdsState</command:noun>
      <maml:description>
        <maml:para>Set the ADS State of a TwinCAT Target.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet sets the ADS State of the specified TwinCAT Targets (E.g. Start / Stop / Config / Reconfig)</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Set-AdsState</maml:name>
        <!-- Parameter: State -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>State</maml:name>
          <maml:description>
            <maml:para>The state/value to set.</maml:para>
            <maml:para>Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsState</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AdsState</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Invalid</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Idle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reset</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Init</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Run</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SaveConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">LoadConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerFailure</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerGood</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Error</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Shutdown</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Suspend</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Resume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Config</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reconfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stopping</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Incompatible</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exception</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Maxstates</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId address where to set the state (Local system by default)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort where to set the state (Port 1000, SystemService by default)</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces the command (no questions asked, ResetFailFastHandler)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Reinitialize -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Reinitialize</maml:name>
          <maml:description>
            <maml:para>Reinitializes the target system before it is set to the target state (goes over STOP)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Set-AdsState</maml:name>
        <!-- Parameter: State -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>State</maml:name>
          <maml:description>
            <maml:para>The state/value to set.</maml:para>
            <maml:para>Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsState</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AdsState</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Invalid</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Idle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reset</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Init</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Run</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SaveConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">LoadConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerFailure</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerGood</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Error</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Shutdown</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Suspend</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Resume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Config</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reconfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stopping</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Incompatible</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exception</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Maxstates</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>Target route(s), where to set the state.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces the command (no questions asked, ResetFailFastHandler)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Reinitialize -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Reinitialize</maml:name>
          <maml:description>
            <maml:para>Reinitializes the target system before it is set to the target state (goes over STOP)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Set-AdsState</maml:name>
        <!-- Parameter: State -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>State</maml:name>
          <maml:description>
            <maml:para>The state/value to set.</maml:para>
            <maml:para>Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsState</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AdsState</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Invalid</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Idle</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reset</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Init</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Run</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">SaveConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">LoadConfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerFailure</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">PowerGood</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Error</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Shutdown</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Suspend</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Resume</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Config</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Reconfig</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Stopping</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Incompatible</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Exception</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Maxstates</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address of the system where to set the state. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces the command (no questions asked, ResetFailFastHandler)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Quiet -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Quiet</maml:name>
          <maml:description>
            <maml:para>Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Reinitialize -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Reinitialize</maml:name>
          <maml:description>
            <maml:para>Reinitializes the target system before it is set to the target state (goes over STOP)</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication timeout in ms.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: State -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>State</maml:name>
        <maml:description>
          <maml:para>The state/value to set.</maml:para>
          <maml:para>Possible values: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception, Maxstates</maml:para>
        </maml:description>
        <command:parameterValue required="true">AdsState</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AdsState</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Invalid</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Idle</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Reset</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Init</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Start</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Run</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Stop</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">SaveConfig</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">LoadConfig</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">PowerFailure</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">PowerGood</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Error</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Shutdown</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Suspend</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Resume</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Config</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Reconfig</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Stopping</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Incompatible</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Exception</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Maxstates</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetId address where to set the state (Local system by default)</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The AmsPort where to set the state (Port 1000, SystemService by default)</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>Target route(s), where to set the state.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>Target route(s), where to set the state.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address of the system where to set the state. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Reinitialize -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Reinitialize</maml:name>
        <maml:description>
          <maml:para>Reinitializes the target system before it is set to the target state (goes over STOP)</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Quiet -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Quiet</maml:name>
        <maml:description>
          <maml:para>Sets the Quiet mode of the command. The Cmdlet then returns a $true or $false but not the actual states of the targets. The return value will be $true if at least one SetState operations succeed and it will be $false if have failed.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Forces the command (no questions asked, ResetFailFastHandler)</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>Communication timeout in ms.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Target route(s), where to set the state.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <maml:introduction>
          <maml:para>Setting the local TwinCAT System to 'Config' mode. Also when the target is already in 'Config' mode, the target will be reinitialize via the 'Stopped' state:</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Set-AdsState Config -Reinitialize</dev:code>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <maml:introduction>
          <maml:para>Sets the target systems with IPAddress '1.2.3.4' and Route named 'CX_0130C7' to run:</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Set-AdsState Run 1.2.3.4,CX_0130C7</dev:code>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <maml:introduction>
          <maml:para>The example command gets the actual routes of the local system, and sets then (after requesting User confirmation) the state of theses targets to the 'Config' mode.:</maml:para>
        </maml:introduction>
        <dev:code>
          PS &gt; get-AdsRoute | set-AdsState Config
          Name      State  OK   Time (ms) Address
          ----      -----  --   --------- -------
          work-nb2  Config True 0         172.17.242.54.1.1
          CX_0130C7 Config True 0         5.1.48.199.1.1
        </dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Add-AdsSubRoute -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Add-AdsSubRoute</command:name>
      <command:verb>Add</command:verb>
      <command:noun>AdsSubRoute</command:noun>
      <maml:description>
        <maml:para>Adds a SubRoute to a target via a Gateway system.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>If two logical ADS Devices are in different (Sub)Networks of an heterogeneous network they can communicate via gateway system that connects both network segments. The gateway must be reachable from each of the ADS Devices. To enable communication via gateway the concept of so called ADS SubRoutes is used. A common user scenario is that this service engeneering system should be connected to machine devices via a gateway PC. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway PC (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX). Several communication channels must be announced here on the different devices of the subnetworks. - SourceDevice and TargetDevice must be registered as Route at the Gateway System - SourceDevice has a SubRoute to the TargetDevice (with gateway address) and vice versa. SourceDevice --&gt; Gateway (Route) --&gt; TargetDevice (SubRoute via Gateway) Gateway --&gt; SourceDevice --&gt; TargetDevice TargetDevice --&gt; Gateway (Route) --&gt; SourceDevice (SubRoute via Gateway) Only when this scenario of 6 Routes are registered routes poperly, SourceDevice can contact the TargetDevice and in the opposite direction. The 'AddSubRoute' Cmdlet helps in creating these registration. The Precondition is that the SourceDevice is already registered with the gateway (both directions). From this status on, this Cmdlet help to create the Route Registration from the Gateway to the target device and the registration of the SubRoutes on both ends of the communication channel (SourceDevice, TargetDevice).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Default -->
      <command:syntaxItem>
        <maml:name>Add-AdsSubRoute</maml:name>
        <!-- Parameter: Source -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>Source</maml:name>
          <maml:description>
            <maml:para>Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Gateway -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
          <maml:name>Gateway</maml:name>
          <maml:description>
            <maml:para>Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: GatewayCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>GatewayCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TargetCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SourceCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>SourceCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: GatewayRoute -->
      <command:syntaxItem>
        <maml:name>Add-AdsSubRoute</maml:name>
        <!-- Parameter: Source -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>Source</maml:name>
          <maml:description>
            <maml:para>Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: GatewayRoute -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
          <maml:name>GatewayRoute</maml:name>
          <maml:description>
            <maml:para>The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: GatewayCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>GatewayCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TargetCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SourceCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>SourceCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SourceRoute -->
      <command:syntaxItem>
        <maml:name>Add-AdsSubRoute</maml:name>
        <!-- Parameter: SourceRoute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>SourceRoute</maml:name>
          <maml:description>
            <maml:para>The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Gateway -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
          <maml:name>Gateway</maml:name>
          <maml:description>
            <maml:para>Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: GatewayCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>GatewayCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TargetCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SourceCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>SourceCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteOnly -->
      <command:syntaxItem>
        <maml:name>Add-AdsSubRoute</maml:name>
        <!-- Parameter: SourceRoute -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
          <maml:name>SourceRoute</maml:name>
          <maml:description>
            <maml:para>The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: GatewayRoute -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
          <maml:name>GatewayRoute</maml:name>
          <maml:description>
            <maml:para>The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTarget</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTarget</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: GatewayCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>GatewayCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TargetCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SourceCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>SourceCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: GetRoutes -->
      <command:syntaxItem>
        <maml:name>Add-AdsSubRoute</maml:name>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue></dev:defaultValue>
        </command:parameter>
        <!-- Parameter: GatewayCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>GatewayCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TargetCredential -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>TargetCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SourceCredential -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>SourceCredential</maml:name>
          <maml:description>
            <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
          </maml:description>
          <command:parameterValue required="true">PSCredential</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.PSCredential</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>(BroadCast) Search Timeout timout for searching the unregistered target system (Default 5000ms)</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>5000</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Source -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>Source</maml:name>
        <maml:description>
          <maml:para>Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SourceRoute -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="0">
        <maml:name>SourceRoute</maml:name>
        <maml:description>
          <maml:para>The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTarget</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTarget</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Gateway -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
        <maml:name>Gateway</maml:name>
        <maml:description>
          <maml:para>Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: GatewayRoute -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="1">
        <maml:name>GatewayRoute</maml:name>
        <maml:description>
          <maml:para>The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTarget</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTarget</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Target -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="2">
        <maml:name>Target</maml:name>
        <maml:description>
          <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue></dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SourceCredential -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>SourceCredential</maml:name>
        <maml:description>
          <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: GatewayCredential -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>GatewayCredential</maml:name>
        <maml:description>
          <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TargetCredential -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>TargetCredential</maml:name>
        <maml:description>
          <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
        <command:parameterValue required="true">PSCredential</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>(BroadCast) Search Timeout timout for searching the unregistered target system (Default 5000ms)</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>5000</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Address of the Source of the SubRoute. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTarget</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Source Route of the SubRoute. The Source system is the system that builds up the (Sub)Route-Connection to the Target System via the gateway. By default this is the Local system that builds up the SubRoute and must exist as Registered route on the current system or be the local system itself. A common user scenario is that this system is the Service Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>Gets or sets the Gateway System address. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTarget</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Gateway system route. The Gateway describes the ADS Device that acts as gateway between two (sub-)networks. This system must be reachable from the source and the target system which means that it is registered as route on the source system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The name / address of the target system. The Address can consist of NetId, IPAddress or HostName. Wildcards are allowed. The Target system is the system to which the source system builds up the (Sub)Route-Connection via the gateway. A common user scenario is that this system is the Machine Device. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The credentials of the source system (e.g. the Service Device) By default the Local system is used as source system. With this default no credentials are necessary. But if the source system is different from the local system (system where this Cmdlet runs), the credentials of that system must be specified. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX)</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The credentials of the gateway system. SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This Parameter is mandatory.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.Management.Automation.PSCredential</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The credentials of the target system (e.g. the Machine Device) SourceDevice (e.g Service System, engineering) &lt;--&gt; Gateway device (Connects Networks) &lt;--&gt; TargetDevice (e.g. Machine device CX) This parameter is mandatory.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          &gt; $gatewayTemp = Get-AdsRoute -Broadcast -name "GatewayPlant1" # Search for GatewaySystem
          &gt; $gatewayCred = Get-Credential -User "EngineeringDomain\UserName" -Message "Password Gateway" # Credentials of the Gateway
          &gt; $gateway = Add-AdsRoute -Credential $gatewayCred -temporary # Add the Gateway route temporary to the Service PC

          &gt; $target = "CX_1234" # Host Name of the Machine Controller / Device
          &gt; $targetCred = Get-Credential -User "MachineParkDomain\UserName" -Message "Password Target System" # Credentials of the Gateway

          &gt; Add-AdsSubRoute -GatewayRoute $gateway -GatewayCredential $gatewayCred -Target $target -TargetCredential $targetCred # Add the subroute

          Name            NetId             Address       Sub TcVersion RTSystem
          ----            -----             -------       --- --------- --------
          CX_1234         172.17.1.2.1.1    172.17.1.2     X  2.11.2246 Win7
        </dev:code>
        <dev:remarks>
          <maml:para>Search for the gateway system from local service PC, add its route temporarily and add a network segment crossing SubRoute connection to the target system CX_1234.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcDataType -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcDataType</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcDataType</command:noun>
      <maml:description>
        <maml:para>Get the DataTypes from a TwinCAT target system / Device.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet get the DataTypes from a target system if symbolic information is provided by the device (Symbol Server running). The DataTypes can be determined via different Providers (e.g. ADS, MQTT, OPC, see the '-Provider' parameter.)</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcDataType</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port where to load the datatype descriptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetID address of the target system where to load the datatypes (Local by default).</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcDataType</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port where to load the datatype descriptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The Route object where to load the datatypes from (RouteTarget.Local by default).</maml:para>
          </maml:description>
          <command:parameterValue required="true">IRoute</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.IRoute</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcDataType</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address where to load the datatype descriptions. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port where to load the datatype descriptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcDataType</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The session object to use for datatype upload.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcDataType</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The unique session Identifier that represents the session to ose for the datatype upload.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Name -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The data type name(s) to get. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetID address of the target system where to load the datatypes (Local by default).</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The Route object where to load the datatypes from (RouteTarget.Local by default).</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The Route object where to load the datatypes from (RouteTarget.Local by default).</maml:para>
          <maml:para>This is an alias of the Route parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address where to load the datatype descriptions. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The Port where to load the datatype descriptions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The session object to use for datatype upload.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The session object to use for datatype upload.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The unique session Identifier that represents the session to ose for the datatype upload.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>The unique session Identifier that represents the session to ose for the datatype upload.</maml:para>
          <maml:para>This is an alias of the SessionId parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session object to use for datatype upload.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; Get-TcDataType -port 851
          Name                      Size     Category   BaseType
          ----                      ----     --------   --------
          BYTE                      1        Primitive
          WORD                      2        Primitive
          DINT                      4        Primitive
          UDINT                     4        Primitive
          DWORD                     4        Primitive
          E_ByteEnum                1        Enum       BYTE
          FB_Test                   12424    Struct
          PLC.PlcAppSystemInfo      256      Struct
          PLC.PlcTaskSystemInfo     128      Struct
          POINTER TO BYTE           4        Pointer    BYTE
          R_Range                   2        Alias      INT (-6..12)
          REFERENCE TO BOOL         4        Reference  BOOL
          ST_SimpleStruct           166      Struct
          STRING(80)                81       String
          ...
        </dev:code>
        <dev:remarks>
          <maml:para>Get the data types from the local system (Port 851):</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>PS&gt; $types = Get-TcDataType -Name 'ST_*' -NetId 1.2.3.4.5.6 -Port 851</dev:code>
        <dev:remarks>
          <maml:para>Gets the DataTypes with name pattern 'ST_*' from the NetId / Port address symbol server.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; $session = New-TcSession -Name 'CX_123456' -port 851
          PS&gt; Get-TcDataType -Session $session | where ByteSize -gt 1KB
        </dev:code>
        <dev:remarks>
          <maml:para>Gets an ADS-Session/Connection to the target system CX_123456 on port 851, downloads the datatype information and returns all the DataTypes that are larger than 1KB of Size.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcLicense -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcLicense</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcLicense</command:noun>
      <maml:description>
        <maml:para>Get TwinCAT License information.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet gets information about TwinCAT licenses from the target system. To contact the target system, it must be available as actual route or the local system.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcLicense</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetID address of the target system where to load the licenses (Local by default).</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OrderId</maml:name>
          <maml:description>
            <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Status -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Status</maml:name>
          <maml:description>
            <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
            <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">LicenseStatus</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcLicense</maml:name>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The Route object where to load the licenses from (RouteTarget.Local by default).</maml:para>
          </maml:description>
          <command:parameterValue required="true">IRoute</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.IRoute</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OrderId</maml:name>
          <maml:description>
            <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Status -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Status</maml:name>
          <maml:description>
            <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
            <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">LicenseStatus</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcLicense</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OrderId</maml:name>
          <maml:description>
            <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Status -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Status</maml:name>
          <maml:description>
            <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
            <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">LicenseStatus</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcLicense</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer).</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OrderId</maml:name>
          <maml:description>
            <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Status -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Status</maml:name>
          <maml:description>
            <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
            <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">LicenseStatus</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcLicense</maml:name>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The unique session Identifier that represents the session to use for the license upload.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OrderId</maml:name>
          <maml:description>
            <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Status -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Status</maml:name>
          <maml:description>
            <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
            <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
          </maml:description>
          <command:parameterValue required="true">LicenseStatus</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>All</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Name -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The name of the license to get. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: OrderId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OrderId</maml:name>
        <maml:description>
          <maml:para>The OrderID of the license. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetID address of the target system where to load the licenses (Local by default).</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Destination">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The Route object where to load the licenses from (RouteTarget.Local by default).</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The Route object where to load the licenses from (RouteTarget.Local by default).</maml:para>
          <maml:para>This is an alias of the Route parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer).</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer).</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The unique session Identifier that represents the session to use for the license upload.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>The unique session Identifier that represents the session to use for the license upload.</maml:para>
          <maml:para>This is an alias of the SessionId parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Status -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Status</maml:name>
        <maml:description>
          <maml:para>The Status parameter selects the Licenses to return. Available is 'Valid' (the valid licenses), 'Invalid' (the invalid licenses) and 'All' ('Valid' + 'Invalid') licenses. The Default is 'All'</maml:para>
          <maml:para>Possible values: None, Valid, Invalid, All</maml:para>
        </maml:description>
        <command:parameterValue required="true">LicenseStatus</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.SystemService.Commands.LicenseStatus</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>All</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Valid</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Invalid</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">All</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The NetID address of the target system where to load the licenses (Local by default).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Route object where to load the licenses from (RouteTarget.Local by default).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The address where to load the licenses. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session object to use for license upload. This must target port 30 (AmsPort.R0_LicenseServer).</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>PS&gt; Get-TcLicense</dev:code>
        <dev:remarks>
          <maml:para>Get the the valid licenses from the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS&gt; $session = New-TcSession -Route TC3TESTA1-CP67X -Port 30
          PS&gt; $session | Get-TcLicense -Status All -name *scope*

          Name                        Valid ValidityCode ExpireTime   Available Used VolumeNo
          ----                        ----- ------------ ----------   ---------   ---- --------
          TC3 Scope Server                X        Valid            CPU License      0        0
          TC3 Scope View Professional     X        Valid            CPU License      0        0
        </dev:code>
        <dev:remarks>
          <maml:para>Create a session to the License Server on target 'TC3TESTA1-CP67X' and return all valid and invalid licenses that contain 'scope' in their name.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; Get-TcLicense -Route TC3TESTA1-CP67X -Status Valid

          Name                             Valid ValidityCode ExpireTime   Available Used VolumeNo
          ----                             ----- ------------ ---------- ---------   ---- --------
          TC3 C++ / MatSim                     X        Valid            CPU License    0        0
          TC3 CNC                              X        Valid            CPU License    0        0
          TC3 Target For Matlab Simulink       X        Valid            CPU License    0        0
          TC3 CNC Axis                         X        Valid            CPU License    0        0
          TC3 Serial-Communication             X        Valid            CPU License    0        0
          TC3 NC PTP Axes Pack unlimited       X        Valid            CPU License    0        0
          TC3 PLC / C++ / MatSim               X        Valid            CPU License    0        0
          TC3 Kinematic Transformation L4      X        Valid            CPU License    0        0
          TC3 NC Camming                       X        Valid            CPU License    0        0
          TC3 PLC-HMI Web                      X        Valid            CPU License    0        0
          TC3 NC Flying Saw                    X        Valid            CPU License    0        0
          TC3 CNC Spline                       X        Valid            CPU License    0        0
          TC3 SMS-SMTP                         X        Valid            CPU License    0        0
          TC3 Hydraulic Positioning            X        Valid            CPU License    0        0
          TC3 Kinematic Transformation L1      X        Valid            CPU License    0        0
          ...
        </dev:code>
        <dev:remarks>
          <maml:para>Connect to the License Server on target 'TC3TESTa1-CP67X' and return all valid licenses.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 4  ----------</maml:title>
        <dev:code>
          &gt; Get-TcLicense -NetId 172.17.60.153.1.1 -Status Invalid | format-list


          Id                : 4c256767-e6e6-4af5-bd68-9f7abad0c200
          Name              : TC3 ADS
          ExpireTime        : 8/17/2017 12:00:00 AM
          ValidityCode      : Expired
          Valid             : False
          AvailableLicenses : 0
          UsedLicenses      : 0
          VolumeNo          : 0

          Id                : 66689887-ccbd-452c-ac9a-039d997c6e66
          Name              : TC3 PLC
          ExpireTime        : 8/17/2017 12:00:00 AM
          ValidityCode      : Expired
          Valid             : False
          AvailableLicenses : 0
          UsedLicenses      : 0
          VolumeNo          : 0

          Id                : 3ff18e97-7754-401b-93fb-70544de28a13
          Name              : TC3 IO
          ExpireTime        : 8/17/2017 12:00:00 AM
          ValidityCode      : Expired
          Valid             : False
          AvailableLicenses : 0
          UsedLicenses      : 0
          VolumeNo          : 0
        </dev:code>
        <dev:remarks>
          <maml:para>Connect to NetId 172.17.60.153.1.1, determine all invalid licenses and format the result into a list.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 5  ----------</maml:title>
        <dev:code>
          &gt; Get-TcLicense -OrderId TE*

          OrderID Name                             Valid ValidityCode ExpireTime   Available   Used VolumeNo
          ------- ----                             ----- ------------ ----------   ---------   ---- --------
          TE1400 TC3 Target For Matlab Simulink        X        Valid            CPU License      0        0
          TE1500 TC3 Valve-Diagram-Editor              X        Valid            CPU License      0        0
          TE1120 TC3 XCAD Interface                    X        Valid            CPU License      0        0
          TE1510 TC3 Cam-Design-Tool                   X        Valid            CPU License      0        0
          TE1110 TC3 Simulation Manager                X        Valid            CPU License      0        0
          TE1111 TC3 EtherCAT Simulation               X        Valid            CPU License      0        0
          TE1410 TC3 Interface For Matlab Simulink     X        Valid            CPU License      0        0
          TE1300 TC3 Scope View Professional           X        Valid            CPU License      0        0
        </dev:code>
        <dev:remarks>
          <maml:para>Get the valid licenses from local system and filter them for OrderIds starting with TE*.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Send-TcReadWrite -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Send-TcReadWrite</command:name>
      <command:verb>Send</command:verb>
      <command:noun>TcReadWrite</command:noun>
      <maml:description>
        <maml:para>Sends a Read/Write access to ADS Server / TwinCAT Devices.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet Read/Writes values from/to TwinCAT Devices and works with different ValueProviders. Because this is a low level data access, only IndexGroup/IndexOffset addressing is available.</maml:para>
      <maml:para>IMPORTANT: Sending Read/Write commands should be done with highest care because it could destabilize the TwinCAT System when the write operation is not addressed properly. To enhance secure operation, the user is enforced to use Length parameters in conjunction with the in/out values which will be checked by the Cmdlet. The highest attention should also be taken with the IndexGroup/IndexOffset because that represents the Address in the Process Image and cannot be checked by principle. To prevent that process image overwrites important data by accident please use the -WhatIf and -Confirm parameters whenever it is appropriate and inform about the $ConfirmPreference settings ( PS&gt; get-help about_Preference_Variables) before usage of the Send-TcReadWrite Cmdlet.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPortIndexed -->
      <command:syntaxItem>
        <maml:name>Send-TcReadWrite</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The ADS target NetID(s) of the system(s) where to read/write the Value. More than one target will be supported. When not specified, this argument defaults to AmsNetId.Local.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be read from the process image.</maml:para>
            <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadType</maml:name>
          <maml:description>
            <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
            <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Byte[]</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteValue -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteValue</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressIndexed -->
      <command:syntaxItem>
        <maml:name>Send-TcReadWrite</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address where to read/write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be read from the process image.</maml:para>
            <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadType</maml:name>
          <maml:description>
            <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
            <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Byte[]</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteValue -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteValue</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteIndexed -->
      <command:syntaxItem>
        <maml:name>Send-TcReadWrite</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The target system (as Route) where to read/write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be read from the process image.</maml:para>
            <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadType</maml:name>
          <maml:description>
            <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
            <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Byte[]</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteValue -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteValue</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIndexed -->
      <command:syntaxItem>
        <maml:name>Send-TcReadWrite</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The session object represents the target session where to read/write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be read from the process image.</maml:para>
            <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadType</maml:name>
          <maml:description>
            <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
            <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Byte[]</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteValue -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteValue</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdIndexed -->
      <command:syntaxItem>
        <maml:name>Send-TcReadWrite</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The session ID represents the target session where to read/write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be read from the process image.</maml:para>
            <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ReadType -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>ReadType</maml:name>
          <maml:description>
            <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
            <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Byte[]</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteLength -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteLength</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: WriteValue -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WriteValue</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: IndexGroup -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
        <maml:name>IndexGroup</maml:name>
        <maml:description>
          <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="IG">
        <maml:name>IG</maml:name>
        <maml:description>
          <maml:para>IndexGroup of the Value to ReadWrite, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset can overwrite data in the ProcessImage and posibly destabilizes the system. No validity check is done for the symbol alignment and therefore this should be done with highest care!</maml:para>
          <maml:para>This is an alias of the IndexGroup parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IndexOffset -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
        <maml:name>IndexOffset</maml:name>
        <maml:description>
          <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="IO">
        <maml:name>IO</maml:name>
        <maml:description>
          <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          <maml:para>This is an alias of the IndexOffset parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: WriteValue -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>WriteValue</maml:name>
        <maml:description>
          <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshals this value to its appropriate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: WriteLength -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>WriteLength</maml:name>
        <maml:description>
          <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
          <maml:para>By default the marshal size of the object used in the -WriteValue parameter is taken. This parameter is used to override the marshal size and can be helpful to secure the write operation - to not overwrite more data then expected.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ReadLength -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ReadLength</maml:name>
        <maml:description>
          <maml:para>The Length of the data that will be read from the process image.</maml:para>
          <maml:para>By default, when not specifiying this parameter the marshalling size of the -ReadType parameter will be taken. This -ReadLength parameter is only helpful when the marshalling size cannot be determined from the read type (e.g. byte[])</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ReadType -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>ReadType</maml:name>
        <maml:description>
          <maml:para>Use the ReadType parameter to specify the Read/Return type of the data.</maml:para>
          <maml:para>If not used, this cmdlet returns the raw byte[] as result.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Type</command:parameterValue>
        <dev:type>
          <maml:name>System.Type</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>System.Byte[]</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The ADS target NetID(s) of the system(s) where to read/write the Value. More than one target will be supported. When not specified, this argument defaults to AmsNetId.Local.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The target system (as Route) where to read/write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The target system (as Route) where to read/write the value.</maml:para>
          <maml:para>This is an alias of the Route parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The target address where to read/write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The session object represents the target session where to read/write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The session ID represents the target session where to read/write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The Port, where to read/write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Encoding -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
        </maml:description>
        <command:parameterValue required="true">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>System.Text.Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session object represents the target session where to read/write the value.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          &gt; Send-TcReadWrite -NetId 1.2.3.4.5.6 -Port 851 -IndexGroup SymbolValueByName -IndexOffset 0 -WriteValue "TwinCAT_SystemInfoVarList._AppInfo.ProjectName" -ReadType string -ReadLength 1024

          ReadWrite access of process image on target '1.2.3.4.5.6:851':
          Start ReadWrite operation WriteData: 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'(IG:0xf004,IO:0x0000,Len:47),
          Read: Type 'System.String' (Len:'1024) on target '1.2.3.4.5.6:851'?
          [Y] Yes[A] Yes to All[N] No[L] No to All[S] Suspend[?] Help(default is "Y"): y
          ADS_DynSymbols
        </dev:code>
        <dev:remarks>
          <maml:para>Sends a Read/Write request with index group 0xf004 (SymbolValueByName) and offset 0. The write data will be initialized with the project symbol path and an returned (read) string (Default encoded) returned.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          &gt; Send-TcReadWrite -NetId 1.2.3.4.5.6 -Port 851 -IndexGroup SymbolValueByName -WriteValue "TwinCAT_SystemInfoVarList._AppInfo.ProjectName" -ReadLength 64 | format-hex

          ReadWrite access of process image on target '1.2.3.4.5.6:851':
          Start ReadWrite operation WriteData: 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'(IG:0xf004,IO:0x0000,Len:47),
          Read: Type 'System.Byte[]' (Len:'64) on target '1.2.3.4.5.6:851'?
          [Y] Yes[A] Yes to All[N] No[L] No to All[S] Suspend[?] Help(default is "Y"): y


          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

          00000000   41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 00 00  ADS_DynSymbols..
          00000010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
        </dev:code>
        <dev:remarks>
          <maml:para>Sends a Read/Write request with index group 0xf004 (SymbolValueByName) and offset 0. The write data will be initialized with the project symbol path and the returned (read) data is by default a byte array of 64 bytes. The result value will be formatted as hex code.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; $route = Get-AdsRoute -Name 'CX-123456'
          PS&gt; $session = $route | New-TcSession -Port 851
          PS&gt; $handle = $session | Send-TcReadWrite -IndexGroup SymbolHandleByName -WriteValue "GVL.vgInt" -ReadType Int32 -force
          PS&gt; $session | Read-TcValue -IndexGroup SymbolValueByHandle -IndexOffset $handle -ValueType Int16
          42
        </dev:code>
        <dev:remarks>
          <maml:para>Create a session to the PLC (Port 851) of a target system, determine the SymbolHandle by InstancePath and use this handle to read its 'Int16' Value (INT on PLC System).</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcRouterInfo -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcRouterInfo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcRouterInfo</command:noun>
      <maml:description>
        <maml:para>Gets the router status information of the specified target system.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet gets status information from the specified target system. To contact the target system, it must be available as actual route or must be the local system. The status information contains the amout of overall router memory and the used memory. Furthermore the number of active connections and the size of the actual router mailbox will be shown.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcRouterInfo</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>NetId(s) of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Timeout of the seperata ADS Read operations</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2500</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcRouterInfo</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The route object where to get the Target information from..</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Timeout of the seperata ADS Read operations</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2500</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcRouterInfo</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Timeout of the seperata ADS Read operations</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2500</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcRouterInfo</maml:name>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Timeout of the seperata ADS Read operations</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2500</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcRouterInfo</maml:name>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Timeout of the seperata ADS Read operations</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>2500</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>NetId(s) of the target system.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>Timeout of the seperata ADS Read operations</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>2500</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS &gt; Get-TcRouterInfo

          Target          Version     Level OS   Image Device CPUArch
          ------          -------     ----- --   ----- ------ -------
          TC3TESTA1-CP67X 3.1.4021.54 CP    Win7              IntelX86
        </dev:code>
        <dev:remarks>
          <maml:para>Get router information from the local system.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Close-TcSession -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Close-TcSession</command:name>
      <command:verb>Close</command:verb>
      <command:noun>TcSession</command:noun>
      <maml:description>
        <maml:para>Closes the specified session object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet closes the specified Point-To-Point Connection to the TwinCAT Target that is represented by the returned session object. All registered SessionProvider types of Sessions can be used here (e.g. ADS, MQTT, OPC).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Default -->
      <command:syntaxItem>
        <maml:name>Close-TcSession</maml:name>
        <!-- Parameter: Id -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Id</maml:name>
          <maml:description>
            <maml:para>The session object to close is specified by this session ID.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Close-TcSession</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Session object to close.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Id -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>The session object to close is specified by this session ID.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The Session object to close.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="Session">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session object to close.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Session object to close.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <maml:introduction>
          <maml:para>Closes the ADS Session:</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Close-AdsSession $session</dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcSession -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcSession</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcSession</command:noun>
      <maml:description>
        <maml:para>List the currently established Sessions.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet lists all actually Point-To-Point connections to TwinCAT Targets in form of their session representation. Different types of Sessions can be accessed via the registered types of SessionProviders (e.g. ADS, MQTT, OPC).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Id -->
      <command:syntaxItem>
        <maml:name>Get-TcSession</maml:name>
        <!-- Parameter: Id -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Id</maml:name>
          <maml:description>
            <maml:para>Specifies the ID of the session to get.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Forces the Cmdlet to determine also the internal used sessions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Id -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>Specifies the ID of the session to get.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Forces the Cmdlet to determine also the internal used sessions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <maml:introduction>
          <maml:para>List all actual sessions:</maml:para>
        </maml:introduction>
        <dev:code>PS &gt; Get-TcSession</dev:code>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: New-TcSession -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-TcSession</command:name>
      <command:verb>New</command:verb>
      <command:noun>TcSession</command:noun>
      <maml:description>
        <maml:para>Create a new session to a TwinCAT Target.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Creates a new Point-To-Point Connection to a TwinCAT Target that is represented by the returned session object. Different types of Sessions can be accessed by the registered types of SessionProviders (e.g. ADS, MQTT, OPC).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>New-TcSession</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetID Address</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort Address of the new session.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>New-TcSession</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The route target object.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IRoute</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.IRoute</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort Address of the new session.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>New-TcSession</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The AmsPort Address of the new session.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Provider -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Provider</maml:name>
          <maml:description>
            <maml:para>Selects the session provider registered on the System (ADS by default)</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetID Address</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The route target object.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The route target object.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The route target object.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Provider -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Provider</maml:name>
        <maml:description>
          <maml:para>Selects the session provider registered on the System (ADS by default)</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The target address of the new session. This can be the NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="2">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The AmsPort Address of the new session.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The route target object.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; $route = Get-AdsRoute -Name "Tc3*"
          PS&gt; $session = New-TcSession -Route $route -Port 851
          PS&gt; $session

          ID Address               IsConnected EstablishedAt
          -- -------               ----------- -------------
          5  172.17.62.105.1.1:851 True        12/12/2016 12:22:02 PM
        </dev:code>
        <dev:remarks>
          <maml:para>Establishes a new ADS Session/Connection to the specified route destination that has the name pattern "tc3*" via port 851 (PLC1)</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS&gt; New-TcSession -NetId '172.17.62.105.1.1' -port 851

          ID Address               IsConnected EstablishedAt
          -- -------               ----------- -------------
          5  172.17.62.105.1.1:851 True        12/12/2016 12:22:02 PM    ///
        </dev:code>
        <dev:remarks>
          <maml:para>Establishes a new Ads Session/Connection to the specified NetId/Port address.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; New-TcSession -Name 'CX_123456' -port 851

          ID Address               IsConnected EstablishedAt
          -- -------               ----------- -------------
          5  172.17.62.105.1.1:851 True        12/12/2016 12:22:02 PM    ///
        </dev:code>
        <dev:remarks>
          <maml:para>Establishes a new Ads Session/Connection to the target system with the Name/HostName 'CX_123456' (Port 851).</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcSymbol -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcSymbol</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcSymbol</command:noun>
      <maml:description>
        <maml:para>Get the symbols from a TwinCAT target system / Device.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet get the symbolic information from a target system if symbols are provided. The information can be determined via different Providers (e.g. ADS, MQTT, OPC).</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The target system port.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The target system NetId.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The target system port.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The target system route.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IRoute</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.IRoute</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The address for the target system where to get the symbol.. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The target system port.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The session object that is used to get the symbols.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The unique id of the session object that is used to get the symbols.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Recurse -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Recurse</maml:name>
          <maml:description>
            <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The instance path of the Symbol(s). Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The target system NetId.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The target system route.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IRoute</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.IRoute</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The address for the target system where to get the symbol.. This can be the RouteName, NetId, the HostName or the IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The target system port.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The session object that is used to get the symbols.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The unique id of the session object that is used to get the symbols.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Id">
        <maml:name>Id</maml:name>
        <maml:description>
          <maml:para>The unique id of the session object that is used to get the symbols.</maml:para>
          <maml:para>This is an alias of the SessionId parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Recurse -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Recurse</maml:name>
        <maml:description>
          <maml:para>Gets the symbol recursively. Often used in conjunction with Wildcards in -Path</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="ArrayElements">
        <maml:name>ArrayElements</maml:name>
        <maml:description>
          <maml:para>Active only in recursive mode - ignored otherwise. This parameter forces the Cmdlet to output all symbols - even Array Elements. Please take care because the output can be very lengthy dependent on the Size of the Array.</maml:para>
          <maml:para>This is an alias of the Force parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session object that is used to get the symbols.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; Get-TcSymbol -port 851
          InstanceName              DataType Size InstancePath
          ------------              -------- ---- ------------
          tc2vBool                  BOOL     1    .tc2vBool
          tc2vInt                   INT      2    .tc2vInt
          Constants                          0    Constants
          GVL                                0    GVL
          MAIN                               0    MAIN
          Slow                               0    Slow
          TwinCAT_SystemInfoVarList          0    TwinCAT_SystemInfoVarList
        </dev:code>
        <dev:remarks>
          <maml:para>Get the root symbolic information from the local system (Port 851):</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS&gt;$session = New-TcSession -NetId 1.2.3.4.5.6 -Port 851
          PS&gt;$session | Get-TcSymbol "TwinCAT_SystemInfoVarList._AppInfo" -recurse

          InstanceName       DataType             Size InstancePath
          ------------       --------             ---- ------------
          _AppInfo           PLC.PlcAppSystemInfo 256  TwinCAT_SystemInfoVarList._AppInfo
          ObjId              OTCID                4    TwinCAT_SystemInfoVarList._AppInfo.ObjId
          TaskCnt            UDINT                4    TwinCAT_SystemInfoVarList._AppInfo.TaskCnt
          OnlineChangeCnt    UDINT                4    TwinCAT_SystemInfoVarList._AppInfo.OnlineChangeCnt
          Flags              DWORD                4    TwinCAT_SystemInfoVarList._AppInfo.Flags
          AdsPort            UINT                 2    TwinCAT_SystemInfoVarList._AppInfo.AdsPort
          BootDataLoaded     BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.BootDataLoaded
          OldBootData        BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.OldBootData
          AppTimestamp       DT                   4    TwinCAT_SystemInfoVarList._AppInfo.AppTimestamp
          KeepOutputsOnBP    BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.KeepOutputsOnBP
          ShutdownInProgress BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.ShutdownInProgress
          LicensesPending    BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.LicensesPending
          BSODOccured        BOOL                 1    TwinCAT_SystemInfoVarList._AppInfo.BSODOccured
          TComSrvPtr         ITComObjectServer    4    TwinCAT_SystemInfoVarList._AppInfo.TComSrvPtr
          AppName            STRING(63)           64   TwinCAT_SystemInfoVarList._AppInfo.AppName
          ProjectName        STRING(63)           64   TwinCAT_SystemInfoVarList._AppInfo.ProjectName
        </dev:code>
        <dev:remarks>
          <maml:para>Create a session to the target system '1.2.3.4.5.6' Port: 851 and get the symbol 'TwinCAT_SystemInfoVarList._AppInfo' and its subsymbols recursively.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; $session = New-TcSession -Name 'CX_123456' -port 851
          PS&gt; $session | Get-TcSymbol -recurse | where InstanceName -like 'Project*'

          InstanceName DataType   Size InstancePath
          ------------ --------   ---- ------------
          ProjectName  STRING(63) 64   TwinCAT_SystemInfoVarList._AppInfo.ProjectName
        </dev:code>
        <dev:remarks>
          <maml:para>Gets an ADS-Session/Connection to the target system CX_123456 on port 851, downloads the symbol information recursively and returns all Instances where the instance name is like the pattern 'Project*'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcTargetInfo -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcTargetInfo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcTargetInfo</command:noun>
      <maml:description>
        <maml:para>Get TwinCAT Device Target information.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet gets information from the specified target system. To contact the target system, it must be available as actual route. The information contains the TargetName, TwinCAT Version, Running Operating system, CPU Architecture and Image Information.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcTargetInfo</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>NetId(s) of the target system.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The ADS timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcTargetInfo</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The route object where to get the Target information from..</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The ADS timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcTargetInfo</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The ADS timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcTargetInfo</maml:name>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The ADS timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcTargetInfo</maml:name>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The ADS timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>NetId(s) of the target system.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Target names/addresses. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>The ADS timeout in milliseconds.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The route object where to get the Target information from..</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS &gt; Get-TcTargetInfo

          Target          Version     Level OS   Image Device CPUArch
          ------          -------     ----- --   ----- ------ -------
          TC3TESTA1-CP67X 3.1.4021.54 CP    Win7              IntelX86
        </dev:code>
        <dev:remarks>
          <maml:para>Get the target information of th localSystem system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS &gt;  get-adsRoute | Get-TcTargetInfo

          Target          Version     Level OS     Image Device CPUArch
          ------          -------     ----- --     ----- ------ -------
          CP-15ECA0       3.1.4021.50 CP    Win7                IntelX86
          TC3TESTA1-CP67X 3.1.4021.54 CP    Win7                IntelX86
        </dev:code>
        <dev:remarks>
          <maml:para>Get the target information of the actual connected routes.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Read-TcValue -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Read-TcValue</command:name>
      <command:verb>Read</command:verb>
      <command:noun>TcValue</command:noun>
      <maml:description>
        <maml:para>Reads values from TwinCAT devices.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet read values from TwinCAT Devices. The devices can be accessed via different ValueProviders.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPortIndexed -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId part of the AmsAddress for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdPortIndexedTyped -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ValueType -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
          <maml:name>ValueType</maml:name>
          <maml:description>
            <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId part of the AmsAddress for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdPortSymbol -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Extended -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
          <maml:name>Extended</maml:name>
          <maml:description>
            <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId part of the AmsAddress for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteIndexed -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>Specifies the target system(s) to read value from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteIndexedTyped -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ValueType -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
          <maml:name>ValueType</maml:name>
          <maml:description>
            <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>Specifies the target system(s) to read value from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteSymbol -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>Specifies the target system(s) to read value from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Extended -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
          <maml:name>Extended</maml:name>
          <maml:description>
            <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressIndexed -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressIndexedTyped -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ValueType -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
          <maml:name>ValueType</maml:name>
          <maml:description>
            <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressSymbol -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The address Port to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Extended -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
          <maml:name>Extended</maml:name>
          <maml:description>
            <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIndexed -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIndexedTyped -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ValueType -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
          <maml:name>ValueType</maml:name>
          <maml:description>
            <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionSymbol -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Extended -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
          <maml:name>Extended</maml:name>
          <maml:description>
            <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdIndexed -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdIndexedTyped -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: ValueType -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
          <maml:name>ValueType</maml:name>
          <maml:description>
            <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          </maml:description>
          <command:parameterValue required="true">Type</command:parameterValue>
          <dev:type>
            <maml:name>System.Type</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdSymbol -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Extended -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
          <maml:name>Extended</maml:name>
          <maml:description>
            <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: InputObject -->
      <command:syntaxItem>
        <maml:name>Read-TcValue</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The symbol object to read value from.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISymbol</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>Communication Timeout in milliseconds</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetId part of the AmsAddress for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>Specifies the target system(s) to read value from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>Specifies the target system(s) to read value from.</maml:para>
          <maml:para>This is an alias of the Route parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Address(es) of the system(s) where to read the value. The Address can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>Specifies the Session (with unique ID) to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The address Port to use for the value read.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IndexGroup -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
        <maml:name>IndexGroup</maml:name>
        <maml:description>
          <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
        <maml:name>IG</maml:name>
        <maml:description>
          <maml:para>The IndexGroup of the Symbol to read from target system. Only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>This is an alias of the IndexGroup parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IndexOffset -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
        <maml:name>IndexOffset</maml:name>
        <maml:description>
          <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
        <maml:name>IO</maml:name>
        <maml:description>
          <maml:para>The IndexOffset of the Symbol to read from the target system. Only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>This is an alias of the IndexOffset parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: ValueType -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
        <maml:name>ValueType</maml:name>
        <maml:description>
          <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Type</command:parameterValue>
        <dev:type>
          <maml:name>System.Type</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
        <maml:name>Type</maml:name>
        <maml:description>
          <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          <maml:para>This is an alias of the ValueType parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Type</command:parameterValue>
        <dev:type>
          <maml:name>System.Type</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="Type,ReadType">
        <maml:name>ReadType</maml:name>
        <maml:description>
          <maml:para>The dataType of the Value for a 'ReadAny' access. Only usable with IndexGroup/IndexOffset access.</maml:para>
          <maml:para>This is an alias of the ValueType parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">Type</command:parameterValue>
        <dev:type>
          <maml:name>System.Type</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Size -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
        <maml:name>Size</maml:name>
        <maml:description>
          <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
        <maml:name>ReadSize</maml:name>
        <maml:description>
          <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          <maml:para>This is an alias of the Size parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="3" aliases="ReadSize,Length">
        <maml:name>Length</maml:name>
        <maml:description>
          <maml:para>The 'Size' of Value (in bytes) to read. This parameter is available only when Indexed Group without ValueType parameter is performed.</maml:para>
          <maml:para>This is an alias of the Size parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The instance path of the symbol to read (symbolic access). This parameter supports wildcards.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The symbol object to read value from.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISymbol</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
        <maml:name>Symbol</maml:name>
        <maml:description>
          <maml:para>The symbol object to read value from.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISymbol</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Extended -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
        <maml:name>Extended</maml:name>
        <maml:description>
          <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="FullMetadata">
        <maml:name>FullMetadata</maml:name>
        <maml:description>
          <maml:para>Switch on 'ExtendedMode', what means that primitive values are not resolved to their primitive managed (powershell) counterparts, but still contain rich metadata as DynamicValues.</maml:para>
          <maml:para>This is an alias of the Extended parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the read on different threads. Only for test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Force reading value. This flag bypasses the FailFastInterceptor to retry communication in every case.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>Communication Timeout in milliseconds</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Encoding -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
        </maml:description>
        <command:parameterValue required="true">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>System.Text.Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Session to use for the value read.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The symbol object to read value from.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; $session = New-TcSession -NetId '1.2.3.4.5.6' -Port 851
          PS&gt; $symbol = $session | get-TcSymbol -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'
          PS&gt; $symbol | Read-TcValue

          ADS_DynSymbols
        </dev:code>
        <dev:remarks>
          <maml:para>Create an ADS Session/Connection, determine the 'ProjectName' Symbol from the running PLC Project, read the current value of the symbol and print it to the console.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS&gt; Read-TcValue -IndexGroup 0x4040 -IndexOffset 0x1247a8 -NetId 172.17.62.105.1.1 -port 851 -size 0xff | format-hex


          00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
          00000000   41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 00 00  ADS_DynSymbols..
          00000010   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000020   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000030   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000040   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000050   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000070   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          00000080   11 00 01 01 A0 86 01 00 14 00 5E 01 21 C2 15 00  .... ?....^.!A..
          00000090   00 7F F1 57 3B 83 6C 07 1E 00 00 00 00 00 00 00  .⌂ñW;?l.........
          000000A0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          000000B0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          000000C0   41 44 53 5F 44 79 6E 53 79 6D 62 6F 6C 73 5F 50  ADS_DynSymbols_P
          000000D0   6C 63 54 61 73 6B 00 00 00 00 00 00 00 00 00 00  lcTask..........
          000000E0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
          000000F0   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ...............
        </dev:code>
        <dev:remarks>
          <maml:para>Reads 256 Bytes via IndexGroup/IndexOffset from the specified target system and prints the out formatted as hexdump.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 3  ----------</maml:title>
        <dev:code>
          PS&gt; Read-TcValue -session $session -IndexGroup 0x4040 -IndexOffset 0x1247A8 -ValueType String
          ADS_DynSymbols
        </dev:code>
        <dev:remarks>
          <maml:para>Reads a string typed value from IndexGroup / IndexOffset. In this example the ProjectName of the running PLC Project resides at that ProcessImage Address.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 4  ----------</maml:title>
        <dev:code>
          PS&gt; $route = Get-AdsRoute -Name 'CX-123456'
          PS&gt; $session = $route | New-TcSession -Port 851
          PS&gt; $handle = $session | Send-TcReadWrite -IndexGroup SymbolHandleByName -WriteValue "GVL.vgInt" -ReadType Int32 -force
          PS&gt; $session | Read-TcValue -IndexGroup SymbolValueByHandle -IndexOffset $handle -ValueType Int16
          42
        </dev:code>
        <dev:remarks>
          <maml:para>Create a session to the PLC (Port 851) of a target system, determine the SymbolHandle by InstancePath and use this handle to read its 'Int16' Value (INT on PLC System).</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Write-TcValue -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Write-TcValue</command:name>
      <command:verb>Write</command:verb>
      <command:noun>TcValue</command:noun>
      <maml:description>
        <maml:para>Write values to TwinCAT devices.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet writes values to TwinCAT Devices. The devices can be accessed via different ValueProviders. All sorts of ADS-addressing will be supported by this Cmdlet: Addressing by IndexGroup / IndexOffset (see IndexGroup, IndexOffset paramters) Addressing by Instance Path (see path parameter) Addressing by Symbol (see InputObject / Symbol parameter)</maml:para>
      <maml:para>IMPORTANT: Writing values should be done with highest care because it could destabilize the TwinCAT System when the write operation is not addressed properly. While writing with available symbol information is not critical and should be preferred the size and position of symbol data is known within the process image), the access via Instance path is less secure. The size of the overwritten data is not known and therefore not checked by the Cmdlet. The highest attention should be taken with write IndexGroup / IndexOffset write operations because beneath the unknown data size even the position of the data is not checked. The data is written directly into the process image.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPortIndexed -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdPortSymbol -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteIndexed -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The target system (as Route) where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteSymbol -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Route -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
          <maml:name>Route</maml:name>
          <maml:description>
            <maml:para>The target system (as Route) where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressIndexed -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressSymbol -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>10000</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIndexed -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The session object represents the target session where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionSymbol -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The session object represents the target session where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdIndexed -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: IndexGroup -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
          <maml:name>IndexGroup</maml:name>
          <maml:description>
            <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IndexOffset -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
          <maml:name>IndexOffset</maml:name>
          <maml:description>
            <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">uint</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The session ID represents the target session where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Size -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
          <maml:name>Size</maml:name>
          <maml:description>
            <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
            <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionIdSymbol -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>The session ID represents the target session where to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: InputObject -->
      <command:syntaxItem>
        <maml:name>Write-TcValue</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The symbol object on which to write the value.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISymbol</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Encoding -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Encoding</maml:name>
          <maml:description>
            <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
          </maml:description>
          <command:parameterValue required="true">Encoding</command:parameterValue>
          <dev:type>
            <maml:name>System.Text.Encoding</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Value -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Value</maml:name>
          <maml:description>
            <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The ADS target NetID(s) of the system(s) where to write the Value. More than one target will be supported.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Route -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The target system (as Route) where to write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="Destination">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The target system (as Route) where to write the value.</maml:para>
          <maml:para>This is an alias of the Route parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The target address where to write the Value. The Address can consist of RouteName, NetId, HostName or IPAddress. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue, ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The session object represents the target session where to write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>The session ID represents the target session where to write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The Port, where to write the value. This Parameter is used in combination with the NetId, Route or Address input parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>10000</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Value -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Value</maml:name>
        <maml:description>
          <maml:para>The value to write. If no additional Length parameter is set, the Write-TcValue Cmdlet marshalls this value to its appropiate size. To not overwrite data of other symbols within the process image, special attention must be taken (see the Confirm and Whatif parameters).</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IndexGroup -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
        <maml:name>IndexGroup</maml:name>
        <maml:description>
          <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="IG">
        <maml:name>IG</maml:name>
        <maml:description>
          <maml:para>IndexGroup of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          <maml:para>This is an alias of the IndexGroup parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IndexOffset -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
        <maml:name>IndexOffset</maml:name>
        <maml:description>
          <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2" aliases="IO">
        <maml:name>IO</maml:name>
        <maml:description>
          <maml:para>IndexOffset of the Value to write, only for IndexGroup/IndexOffset access.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and can destabilize the system. No validity check is done for the symbol alignment and therefore this should be done with highest care! If applicable writing data via symbolic information should be preferred!</maml:para>
          <maml:para>This is an alias of the IndexOffset parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">uint</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Size -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
        <maml:name>Size</maml:name>
        <maml:description>
          <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
        <maml:name>Length</maml:name>
        <maml:description>
          <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          <maml:para>This is an alias of the Size parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named" aliases="Length,WriteSize">
        <maml:name>WriteSize</maml:name>
        <maml:description>
          <maml:para>The Length of the data that will be overwritten within the process image.</maml:para>
          <maml:para>IMPORTANT: Please be aware, that writing data via IndexGroup/IndexOffset simply overwrites data in the ProcessImage and could destabilize the system. No further validity check is done for the symbol alignment and therefore this should be done with highest care (best with use of the -Confirm and -Whatif Cmdlet arguments). If applicable writing data via symbolic information should be preferred!</maml:para>
          <maml:para>This is an alias of the Size parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The instance path to the symbol to write (Symbolic access). Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The symbol object on which to write the value.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISymbol</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Symbol">
        <maml:name>Symbol</maml:name>
        <maml:description>
          <maml:para>The symbol object on which to write the value.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISymbol</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Encoding -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Encoding</maml:name>
        <maml:description>
          <maml:para>Specifies the Encoding for strings. The Default is Encoding.Default (ANSI with actual code page)</maml:para>
        </maml:description>
        <command:parameterValue required="true">Encoding</command:parameterValue>
        <dev:type>
          <maml:name>System.Text.Encoding</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>System.Text.SBCSCodePageEncoding</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Suppress the 'ShouldProcess' message and forces the write.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The session object represents the target session where to write the value.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.TypeSystem.ISymbol</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The symbol object on which to write the value.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS&gt; $session = New-TcSession -NetId 1.2.3.4.5.6 -Port 851
          PS&gt; $projectNameSymbol = $session | Get-TcSymbol -path "*ProjectName"
          PS&gt; $projectNameSymbol

          InstanceName DataType   Size InstancePath
          ------------ --------   ---- ------------
          ProjectName  STRING(63) 64   TwinCAT_SystemInfoVarList._AppInfo.ProjectName

          PS&gt; $projectNameSymbol | Read-TcValue

          OldProjectName

          PS&gt; $projectNameSymbol | Write-TcValue -Value "NewProjectName" -force
          PS&gt; $projectNameSymbol | ReadTcValue

          NewProjectName
        </dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create a session, determining the Symbol 'ProjectName within the _AppInfo Struct on a running PLC project and reading its value. After that, the Value will be overwritten with 'NewProjectName'.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>Write-TcValue -session $session -IndexGroup 0x4040 -IndexOffset 0x1247A8 -Value "NewProjectName"</dev:code>
        <dev:remarks>
          <maml:para>Writes a string typed Value to the specified IndexGroup/IndexOffset Address.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-TcVersion -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Get-TcVersion</command:name>
      <command:verb>Get</command:verb>
      <command:noun>TcVersion</command:noun>
      <maml:description>
        <maml:para>Get the TwinCAT Version of a target system.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet gets the TwinCAT version of the specified target version and returns the version object.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Get-TcVersion</maml:name>
        <!-- Parameter: NetId -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The target address.</maml:para>
          </maml:description>
          <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The Ads timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcVersion</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The target routes where to determine the Version information.</maml:para>
          </maml:description>
          <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RouteTargetCollection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The Ads timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcVersion</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string[]</command:parameterValue>
          <dev:type>
            <maml:name>System.String[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The Ads timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcVersion</maml:name>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session to use for the Cmdlet.</maml:para>
          </maml:description>
          <command:parameterValue required="true">ISession[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.ISession[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The Ads timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Get-TcVersion</maml:name>
        <!-- Parameter: SessionId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>SessionId</maml:name>
          <maml:description>
            <maml:para>Specifies the Session (with unique ID) to use for the Cmdlet.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int[]</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Timeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Timeout</maml:name>
          <maml:description>
            <maml:para>The Ads timeout in milliseconds.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>-1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: NetId -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="1">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The target address.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AmsNetId[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Ads.AmsNetId[]</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>172.17.60.215.1.1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Timeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Timeout</maml:name>
        <maml:description>
          <maml:para>The Ads timeout in milliseconds.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>-1</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The target routes where to determine the Version information.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The target routes where to determine the Version information.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Destination,Route">
        <maml:name>Route</maml:name>
        <maml:description>
          <maml:para>The target routes where to determine the Version information.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">RouteTargetCollection</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1" aliases="Name">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>Addresses where to determine the Version information. The Addresses can consist of NetId, IPAddress or HostName. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Address parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string[]</command:parameterValue>
        <dev:type>
          <maml:name>System.String[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Session -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByPropertyName)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session to use for the Cmdlet.</maml:para>
        </maml:description>
        <command:parameterValue required="true">ISession[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SessionId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>SessionId</maml:name>
        <maml:description>
          <maml:para>Specifies the Session (with unique ID) to use for the Cmdlet.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int[]</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Async -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Async</maml:name>
        <maml:description>
          <maml:para>Starts the write on different threads. Only for internal use and test purposes.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.RouteTargetCollection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The target routes where to determine the Version information.</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.ISession[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Session to use for the Cmdlet.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>----------  EXAMPLE 1  ----------</maml:title>
        <dev:code>
          PS &gt; Get-TcVersion

          Major  Minor  Build  Revision
          -----  -----  -----  --------
          3      1      4021   50
        </dev:code>
        <dev:remarks>
          <maml:para>Get the TwinCAT version of the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>----------  EXAMPLE 2  ----------</maml:title>
        <dev:code>
          PS &gt; Get-AdsRoute | Get-TcVersion

          Major  Minor  Build  Revision
          -----  -----  -----  --------
          3      1      4021   50
          3      1      4021   54
        </dev:code>
        <dev:remarks>
          <maml:para>Get the TwinCAT version actual routes.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
</helpItems>