TcXaeMgmt.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <!-- Cmdlet: Restart-AdsComputer -->
  <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>Restart-AdsComputer</command:name>
      <command:verb>Restart</command:verb>
      <command:noun>AdsComputer</command:noun>
      <maml:description>
        <maml:para>Restarts ("reboots") the operating system on local and remote TwinCAT computers.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Restart-AdsComputer cmdlet restarts the operating system on the local and remote TwinCAT computers. You can use the parameters of Restart-AdsComputer to specify available ADS target systems to restart. The restart can be done delayed if Users are logged into the target system (existant Session UI) or forced immediatly. You can wait for the restart to complete before you run the next command and specify a waiting time-out. This feature makes it practical to use Restart-AdsComputer in scripts and functions.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Restart-AdsComputer</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.167.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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WaitTimeout</maml:name>
          <maml:description>
            <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Route -->
      <command:syntaxItem>
        <maml:name>Restart-AdsComputer</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 ADS routes to shutdown/reboot.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WaitTimeout</maml:name>
          <maml:description>
            <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: AddressStr -->
      <command:syntaxItem>
        <maml:name>Restart-AdsComputer</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="true" 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. 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: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WaitTimeout</maml:name>
          <maml:description>
            <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Session -->
      <command:syntaxItem>
        <maml:name>Restart-AdsComputer</maml:name>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session(s) to use for addressing the target systems.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WaitTimeout</maml:name>
          <maml:description>
            <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: SessionId -->
      <command:syntaxItem>
        <maml:name>Restart-AdsComputer</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 Sessions (with unique ID) to use for addressing the target systems.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Wait -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Wait</maml:name>
          <maml:description>
            <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>WaitTimeout</maml:name>
          <maml:description>
            <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Wait -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Wait</maml:name>
        <maml:description>
          <maml:para>Activates a wait until the rebooted system is available again. The parameter -WaitTimeout specifies how long the script waits for the reboot.</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: WaitTimeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>WaitTimeout</maml:name>
        <maml:description>
          <maml:para>The Wait time for the reboot of the target system (default 120 Seconds). This parameter is used in conjunction with the -Wait 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>120</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Delay -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Delay</maml:name>
        <maml:description>
          <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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: 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.167.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 ADS routes to shutdown/reboot.</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 ADS routes to shutdown/reboot.</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 ADS routes to shutdown/reboot.</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="true" 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. 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>
      <command:parameter required="true" globbing="true" 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. This parameter supports wildcards.</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 (ByValue)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session(s) to use for addressing the target systems.</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 Sessions (with unique ID) to use for addressing the target systems.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 Shutdown/Reboot requests in parallel. 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 ADS routes to shutdown/reboot.</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(s) to use for addressing the target systems.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Restart-AdsComputer CX_1111,CX_2222 -force</dev:code>
        <dev:remarks>
          <maml:para>Restarts the computers CX_1111 and CX_2222 immediatly without warning logged in users on the target system and returns immediatly without waiting the finished reboot. The Force parameter supresses the ShouldProcess query.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>PS&gt; Restart-AdsComputer -netId '1.2.3.4.1.1', '1.2.3.5.1.1' -Delay 30 -Wait -WaitTimeout 240 -force</dev:code>
        <dev:remarks>
          <maml:para>Restarts the TwinCAT targets '1.2.3.4.1.1' and 1.2.3.5.1.1' without ShouldProcess query after a delay of 30 Seconds (if a user is logged in) and waits for the reboot before continuing. The Wait timeout is set to 240 Seconds.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Stop-AdsComputer -->
  <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>Stop-AdsComputer</command:name>
      <command:verb>Stop</command:verb>
      <command:noun>AdsComputer</command:noun>
      <maml:description>
        <maml:para>Stops (shuts down) local and remote TwinCAT computers.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Stop-AdsComputer cmdlet shuts the operating system on the local and remote TwinCAT computers down. You can use the parameters of Stop-AdsComputer to specify available ADS target systems to shutdown. The shutdown can be done delayed if Users are logged into the target system (existant Session UI) or forced immediatly.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPort -->
      <command:syntaxItem>
        <maml:name>Stop-AdsComputer</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.167.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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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>Stop-AdsComputer</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 ADS routes to shutdown/reboot.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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>Stop-AdsComputer</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="true" 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. 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: Async -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Async</maml:name>
          <maml:description>
            <maml:para>Starts the Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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>Stop-AdsComputer</maml:name>
        <!-- Parameter: Session -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named">
          <maml:name>Session</maml:name>
          <maml:description>
            <maml:para>The Session(s) to use for addressing the target systems.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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>Stop-AdsComputer</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 Sessions (with unique ID) to use for addressing the target systems.</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 Shutdown/Reboot requests in parallel. 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: Delay -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Delay</maml:name>
          <maml:description>
            <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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: Delay -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Delay</maml:name>
        <maml:description>
          <maml:para>The delay time for the reboot/shutdown of the target system(s) in seconds. The default is 120 Seconds. If no user is logged in the target system the reboot/shotdown occurs always immediatly without warning. In case of a log in, a Warning message with countdown will be presented to the user.</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: 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.167.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 ADS routes to shutdown/reboot.</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 ADS routes to shutdown/reboot.</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 ADS routes to shutdown/reboot.</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="true" 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. 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>
      <command:parameter required="true" globbing="true" 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. This parameter supports wildcards.</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 (ByValue)" position="named">
        <maml:name>Session</maml:name>
        <maml:description>
          <maml:para>The Session(s) to use for addressing the target systems.</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 Sessions (with unique ID) to use for addressing the target systems.</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 for sending the Shutdown/Reboot request. The Default is 5 Seconds.</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">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Suppress the 'ShouldProcess' message and forces Shutdown/Reboot.</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 Shutdown/Reboot requests in parallel. 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 ADS routes to shutdown/reboot.</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(s) to use for addressing the target systems.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Stop-AdsComputer CX_1111,CX_2222 -force</dev:code>
        <dev:remarks>
          <maml:para>Immediate shutdown of the computers CX_1111 and CX_2222. The Force parameter supresses the ShouldProcess query.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>PS&gt; Stop-AdsComputer -netId '1.2.3.4.1.1', '1.2.3.5.1.1' -Delay 30 -force</dev:code>
        <dev:remarks>
          <maml:para>Stops the TwinCAT targets '1.2.3.4.1.1' and 1.2.3.5.1.1' without ShouldProcess query after a delay of 30 Seconds (if a user is logged in).</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- 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.167.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="true" 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.167.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="true" 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: Register-AdsHandle -->
  <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>Register-AdsHandle</command:name>
      <command:verb>Register</command:verb>
      <command:noun>AdsHandle</command:noun>
      <maml:description>
        <maml:para>Registers and returns a symbol handle.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet registers a symbol handle at the connected system. The handle is returned as AdsHandleInfo.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPortSymbol -->
      <command:syntaxItem>
        <maml:name>Register-AdsHandle</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol.</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 (always in combination with the NetId). ArgumentCompleter is supported.</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</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.167.1.1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteSymbol -->
      <command:syntaxItem>
        <maml:name>Register-AdsHandle</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol.</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 (always in combination with the NetId). ArgumentCompleter is supported.</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.</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: AddressSymbol -->
      <command:syntaxItem>
        <maml:name>Register-AdsHandle</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol.</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="true" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address of the target system where to register the symbol handle. The Address can consist of RouteName, 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 (always in combination with the NetId). ArgumentCompleter is supported.</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: SessionSymbol -->
      <command:syntaxItem>
        <maml:name>Register-AdsHandle</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol.</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 (instead of addressing the target system).</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: SessionIdSymbol -->
      <command:syntaxItem>
        <maml:name>Register-AdsHandle</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path to the symbol.</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 instead of specifying the target address.</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>Register-AdsHandle</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.</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: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 address 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.167.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.</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>Specifies the target system.</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="true" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Address of the target system where to register the symbol handle. The Address can consist of RouteName, 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 (instead of addressing the target system).</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 instead of specifying the target address.</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 (always in combination with the NetId). ArgumentCompleter is supported.</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: Path -->
      <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The instance path to the symbol.</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.</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.</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>
    </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 (instead of addressing the target system).</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.</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; $handleInfo = $session | get-AdsHandle -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'
PS&gt; $handleInfo = register-AdsHandle -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName' -Session $s
PS&gt; $handleInfo
 
InstancePath Result Handle
------------ ------ ------
TwinCAT_SystemInfoVarList._AppInfo.ProjectName NoError 0x428000FC (1115685116)
 
PS&gt; Read-TcValue -Session $session -IndexGroup SymbolValueByHandle -IndexOffset $handleInfo.Handle -Type String
 
MyProject
 
PS&gt; $handle | Unregister-AdsHandle -Session $session
PS&gt; $session | Close-tcsession</dev:code>
        <dev:remarks>
          <maml:para>Opens a new device session, registers a Symbol Handle to the ProjectName of the running PLC Project, Reads the value by handle unregisters the handle and closes the session again.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Unregister-AdsHandle -->
  <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>Unregister-AdsHandle</command:name>
      <command:verb>Unregister</command:verb>
      <command:noun>AdsHandle</command:noun>
      <maml:description>
        <maml:para>Unregisters a symbol handle.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet unregisters an already registered symbol handle from the target system. The Cmdlet supports raw [uint] handles or AdsHandleInfo objects.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NetIdPortHandle -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: Handle -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Handle</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">uint[]</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32[]</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. ClearText names for the Port and ArgumentCompleter are supported.</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 part of the device 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.167.1.1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: NetIdPortInfo -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>AdsHandleInfo contains Handle information.</maml:para>
            </maml:description>
          </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. ClearText names for the Port and ArgumentCompleter are supported.</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 part of the device 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.167.1.1</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: RouteHandle -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: Handle -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Handle</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">uint[]</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32[]</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. ClearText names for the Port and ArgumentCompleter are supported.</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.</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: RouteInfo -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>AdsHandleInfo contains Handle information.</maml:para>
            </maml:description>
          </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. ClearText names for the Port and ArgumentCompleter are supported.</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.</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: AddressHandle -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: Handle -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Handle</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">uint[]</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32[]</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address of the system. The Address can consist of RouteName, NetId, IPAddress or HostName. Wildcards are permitted and ArgumentCompleter is supported.</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. ClearText names for the Port and ArgumentCompleter are supported.</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: AddressInfo -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>AdsHandleInfo contains Handle information.</maml:para>
            </maml:description>
          </dev:type>
        </command:parameter>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="named">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The target address of the system. The Address can consist of RouteName, NetId, IPAddress or HostName. Wildcards are permitted and ArgumentCompleter is supported.</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. ClearText names for the Port and ArgumentCompleter are supported.</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: SessionHandle -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: Handle -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Handle</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">uint[]</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32[]</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 (instead of specifieng the target system address).</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: SessionInfo -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>AdsHandleInfo contains Handle information.</maml:para>
            </maml:description>
          </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 (instead of specifieng the target system address).</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: SessionIdHandle -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: Handle -->
        <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
          <maml:name>Handle</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">uint[]</command:parameterValue>
          <dev:type>
            <maml:name>System.UInt32[]</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 (instead of specifying the address).</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: SessionIdInfo -->
      <command:syntaxItem>
        <maml:name>Unregister-AdsHandle</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          </maml:description>
          <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
            <maml:uri />
            <maml:description>
              <maml:para>AdsHandleInfo contains Handle information.</maml:para>
            </maml:description>
          </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 (instead of specifying the address).</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 device 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.167.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.</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>Specifies the target system.</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="true" pipelineInput="false" position="named">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The target address of the system. The Address can consist of RouteName, NetId, IPAddress or HostName. Wildcards are permitted and ArgumentCompleter is supported.</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 (instead of specifieng the target system address).</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 (instead of specifying the address).</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. ClearText names for the Port and ArgumentCompleter are supported.</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: Handle -->
      <command:parameter required="true" globbing="true" pipelineInput="false" position="1">
        <maml:name>Handle</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">uint[]</command:parameterValue>
        <dev:type>
          <maml:name>System.UInt32[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
        </maml:description>
        <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>AdsHandleInfo contains Handle information.</maml:para>
          </maml:description>
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="HandleInfo">
        <maml:name>HandleInfo</maml:name>
        <maml:description>
          <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle Cmdlet)</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">AdsHandleInfo[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
          <maml:uri />
          <maml:description>
            <maml:para>AdsHandleInfo contains Handle information.</maml:para>
          </maml:description>
        </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 (instead of specifieng the target system address).</maml:para>
        </maml:description>
      </command:inputType>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.Management.Automation.AdsHandleInfo[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The AdsHandleInfo object (produced by Register-AdsHandle 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; $session = New-TcSession -NetId '1.2.3.4.5.6' -Port 851
PS&gt; $handleInfo = $session | get-AdsHandle -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName'
PS&gt; $handleInfo = register-AdsHandle -Path 'TwinCAT_SystemInfoVarList._AppInfo.ProjectName' -Session $s
PS&gt; $handleInfo
 
InstancePath Result Handle
------------ ------ ------
TwinCAT_SystemInfoVarList._AppInfo.ProjectName NoError 0x428000FC (1115685116)
 
PS&gt; Read-TcValue -Session $session -IndexGroup SymbolValueByHandle -IndexOffset $handleInfo.Handle -Type String
 
MyProject
 
PS&gt; $handle | Unregister-AdsHandle -Session $session
PS&gt; $session | Close-tcsession</dev:code>
        <dev:remarks>
          <maml:para>Opens a new device session, registers a Symbol Handle to the ProjectName of the running PLC Project, Reads the value by handle unregisters the handle and closes the session again.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Add-AdsNatRoute -->
  <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-AdsNatRoute</command:name>
      <command:verb>Add</command:verb>
      <command:noun>AdsNatRoute</command:noun>
      <maml:description>
        <maml:para>Adds an AmsNAT Route to the destination system (obsolete).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet adds an AmsNAT Route to the destination system. It writes just the specified content to the StaticRoutes.xml and needs a TwinCAT Restart afterwards. Please be aware that the Route is not added bidirectionally. For TwinCAT Versions &gt;= 3.1.4024.11 (or newer), the Add-AdsRoute Cmdlet should be used with the -NAT Parameter as Replacement. Therefore, this 'Add-AdsNatRoute' Cmdlet is classified as 'obsolete' and of limitied use and could be removed in future.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Add-AdsNatRoute</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The Name of the AmsNAT Route to add.</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 to be added as route. This can be an 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: NATNetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>NATNetId</maml:name>
          <maml:description>
            <maml:para>The NATNetId. This is the NetID that is used as NetId Translation on the local/destination 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>
        </command:parameter>
        <!-- Parameter: NetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>NetId</maml:name>
          <maml:description>
            <maml:para>The NetId of the system to be added as Route. This will be the RemoteNetId.</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: 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 AmsNAT Route is added. This Parameter allows RouteName, 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>
          <dev:defaultValue></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: Name -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The Name of the AmsNAT Route to add.</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 to be added as route. This can be an 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: NetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>NetId</maml:name>
        <maml:description>
          <maml:para>The NetId of the system to be added as Route. This will be the RemoteNetId.</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: NATNetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>NATNetId</maml:name>
        <maml:description>
          <maml:para>The NATNetId. This is the NetID that is used as NetId Translation on the local/destination 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>
      </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 AmsNAT Route is added. This Parameter allows RouteName, 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>
        <dev:defaultValue></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: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>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Add-AdsNatRoute -Name MyRoute -NetId 1.2.3.4.1.1 -Address 1.2.3.4 -NATNetId 1.2.3.4.2.2 </dev:code>
        <dev:remarks>
          <maml:para>Adds a Route 'MyRoute' with RemoteNetId '1.2.3.4.1.1' and IPAddress '1.2.3.4' with AmsNAT translation '1.2.3.4.2.2' to the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>PS&gt; Add-AdsNatRoute -Name Client01 -NetId 1.2.3.4.1.1 -Address Client01 -NATNetId 1.2.3.4.2.2 -Destination CX_1234</dev:code>
        <dev:remarks>
          <maml:para>Adds a Route 'Client01' with RemoteNetId '1.2.3.4.1.1' and DnsName 'Client01' to 'CX_1234' with AmsNAT translation '1.2.3.4.2.2'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Register-AdsNatRoute -->
  <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>Register-AdsNatRoute</command:name>
      <command:verb>Register</command:verb>
      <command:noun>AdsNatRoute</command:noun>
      <maml:description>
        <maml:para>Changes an standard Route to an AmsNAT route on the target system (obsolete).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet Changes an standard Route to an AmsNAT route on the target system. The route must be preexisting and the cmdlet adds the RemoteNetId/AmsNAT information to the StaticRoutes.xml of the destination system. Afterwards the destination system needs a TwinCAT Restart. For TwinCAT Versions &gt;= 3.1.4024.11 (or newer), the Add-AdsRoute Cmdlet should be used with the -NAT Parameter as Replacement. Therefore, this 'Register-AdsNatRoute' Cmdlet is classified as 'obsolete' and of limitied use and could be removed in future.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Name -->
      <command:syntaxItem>
        <maml:name>Register-AdsNatRoute</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The Name of the Route where to add an AmsNAT entry.</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: NATNetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>NATNetId</maml:name>
          <maml:description>
            <maml:para>The NATNetId (the local representation of the remote 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>
        </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 system, where the AmsNAT translation is added. This Parameter allows RouteName, 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>
          <dev:defaultValue></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>Register-AdsNatRoute</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 which specifies the existing route where to add an AmsNAT entry. This NetId becomes the 'RemoteNetId' afterwards.</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: NATNetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>NATNetId</maml:name>
          <maml:description>
            <maml:para>The NATNetId (the local representation of the remote 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>
        </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 system, where the AmsNAT translation is added. This Parameter allows RouteName, 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>
          <dev:defaultValue></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: Name -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The Name of the Route where to add an AmsNAT entry.</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 which specifies the existing route where to add an AmsNAT entry. This NetId becomes the 'RemoteNetId' afterwards.</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: NATNetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>NATNetId</maml:name>
        <maml:description>
          <maml:para>The NATNetId (the local representation of the remote 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>
      </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 system, where the AmsNAT translation is added. This Parameter allows RouteName, 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>
        <dev:defaultValue></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: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>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Register-AdsNatRoute -Name MyRoute -NATNetId 1.2.3.4.2.2 </dev:code>
        <dev:remarks>
          <maml:para>Adds an AmsNAT address translation to the existing route 'MyRoute' on the local system (e.g. from '1.2.3.4.1.1' to '1.2.3.4.2.2').</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>PS&gt; Register-AdsNatRoute -NetId 1.2.3.4.1.1 -NATNetId 1.2.3.4.2.2 -Destination CX_1234</dev:code>
        <dev:remarks>
          <maml:para>Adds an AmsNAT address translation to the existing route with NetId '1.2.3.4.1.1' to NATNetId '1.2.3.4.2.2' on System 'CX_1234'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Remove-AdsNatRoute -->
  <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-AdsNatRoute</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>AdsNatRoute</command:noun>
      <maml:description>
        <maml:para>Removes an AmsNAT Route from the destination system (obsolete).</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet removes an AmsNAT Route from the destination system. It edits just the specified content of the destination system StaticRoutes.xml and needs a TwinCAT Restart. afterwards. Please be aware that the Route is not removed bidirectionally. This 'Remove-AdsNatRoute' Cmdlet is classified as 'obsolete' and of limitied use and could be removed in future. Please use the Remove-AdsRoute Cmdlet instead.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Name -->
      <command:syntaxItem>
        <maml:name>Remove-AdsNatRoute</maml:name>
        <!-- Parameter: Name -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The Name of the AmsNAT route to remove.</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="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination address, where to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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: Address -->
      <command:syntaxItem>
        <maml:name>Remove-AdsNatRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address of the AmsNAT route to delete. This can be the IPAddress or the Dns HostName of the route system.</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="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination address, where to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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-AdsNatRoute</maml:name>
        <!-- Parameter: NATNetId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>NATNetId</maml:name>
          <maml:description>
            <maml:para>The AmsNAT NetId (translation 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: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination address, where to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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: Name -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The Name of the AmsNAT route to remove.</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="0">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Address of the AmsNAT route to delete. This can be the IPAddress or the Dns HostName of the route system.</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: NATNetId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>NATNetId</maml:name>
        <maml:description>
          <maml:para>The AmsNAT NetId (translation 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: Destination -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Destination</maml:name>
        <maml:description>
          <maml:para>The destination address, where to Remove the specified Mqtt route. This can be the 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>
        <dev:defaultValue></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: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>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Remove-AdsNatRoute -Name MyRoute </dev:code>
        <dev:remarks>
          <maml:para>Removes the AmsNAT route 'MyRoute' from the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>PS&gt; Remove-AdsNatRoute -NATNetId 1.2.3.4.2.2 -Destination CX_1234</dev:code>
        <dev:remarks>
          <maml:para>Removes the AmsNAT Route with Translation NetId '1.2.3.4.2.2' from the system 'CX_1234'</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="true" pipelineInput="false" position="0" aliases="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="false" 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: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: RemotePersistance -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RemotePersistance</maml:name>
          <maml:description>
            <maml:para>The persistance type of the remmote route. None/Server means no remote route will be created. Other valid values are 'Static' or 'Temporary'</maml:para>
            <maml:para>Possible values: None, Server, Temporary, Static</maml:para>
          </maml:description>
          <command:parameterValue required="true">RoutePersistanceType</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RoutePersistanceType</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Static</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Server</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Temporary</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Static</command:parameterValue>
          </command:parameterValueGroup>
        </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="true" pipelineInput="false" position="0" aliases="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: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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="true" pipelineInput="false" position="0" aliases="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: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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="true" pipelineInput="false" position="0" aliases="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: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name of the route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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="false" 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: IPOrHostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IPOrHostName</maml:name>
          <maml:description>
            <maml:para>The HostName Address of the target route.</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 route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: RemotePersistance -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RemotePersistance</maml:name>
          <maml:description>
            <maml:para>The persistance type of the remmote route. None/Server means no remote route will be created. Other valid values are 'Static' or 'Temporary'</maml:para>
            <maml:para>Possible values: None, Server, Temporary, Static</maml:para>
          </maml:description>
          <command:parameterValue required="true">RoutePersistanceType</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.RoutePersistanceType</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Static</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Server</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Temporary</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Static</command:parameterValue>
          </command:parameterValueGroup>
        </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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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: IPOrHostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IPOrHostName</maml:name>
          <maml:description>
            <maml:para>The HostName Address of the target route.</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 route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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: IPOrHostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IPOrHostName</maml:name>
          <maml:description>
            <maml:para>The HostName Address of the target route.</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 route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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: IPOrHostName -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IPOrHostName</maml:name>
          <maml:description>
            <maml:para>The HostName Address of the target route.</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 route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: 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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: Nat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Nat</maml:name>
          <maml:description>
            <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
        </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: Name -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The name of the route(s) to add. If the Routes address is ambiguous and more than one route will be found online for adding then the route names will be numbered to be distinct. Without setting this parameter, the default route name will be its Computername / 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: Address -->
      <command:parameter required="true" globbing="true" pipelineInput="false" position="0" aliases="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="true" pipelineInput="false" position="0" aliases="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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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. If no further IPAddress or HostName is specified, a broadcast search is triggered to find an online device. If a single sided route should be added, specify the IPAddress or HostName Parameter in combination with -RemotePersistance:None.</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: IPOrHostName -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IPOrHostName</maml:name>
        <maml:description>
          <maml:para>The HostName Address of the target route.</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: RemotePersistance -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>RemotePersistance</maml:name>
        <maml:description>
          <maml:para>The persistance type of the remmote route. None/Server means no remote route will be created. Other valid values are 'Static' or 'Temporary'</maml:para>
          <maml:para>Possible values: None, Server, Temporary, Static</maml:para>
        </maml:description>
        <command:parameterValue required="true">RoutePersistanceType</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.RoutePersistanceType</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Static</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Server</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Temporary</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Static</command:parameterValue>
        </command:parameterValueGroup>
      </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: 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>
      <!-- Parameter: Nat -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Nat</maml:name>
        <maml:description>
          <maml:para>The 'Nat' parameter sets the local representation of the routes AmsNetId. All (local) addressing to this netId will be translated to the remote/network AmsAddress of the route. This Parameter can be used with TwinCAT Versions &gt;= 3.1.4024.11. If using the '-Nat' parameter, the 'Add-AdsRoute' Cmdlet is limited to single route additions. Multi-adding is not 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>
      </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>PS&gt; Get-AdsRoute -All -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>PS&gt; Get-AdsRoute -All -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:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>PS&gt; $cred = Get-Credential -Message "Get Credentials" -UserName "UserName"
 
PS&gt; Add-AdsRoute -Credential $cred -NetId 172.17.62.105 -Nat 1.2.3.4.1.1
 
Name NetId Address Sub TcVersion RTSystem
--------------- ----------- ------------- --- --------- ------------
TC3TestA1-CP67x 1.2.3.4.1.1 172.17.62.105 3.1.4024 Win10 (2004)</dev:code>
        <dev:remarks>
          <maml:para>Add a route with a local network address translation (NAT AmsNetId) to project a remote AmsNetId (RemoteNetId) locally to a different address.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>Add-AdsRoute -name "TestRoute" -NetId 1.2.3.4.1.1 -IPOrHostName 1.2.3.4 -Temporary -RemotePersistance None</dev:code>
        <dev:remarks>
          <maml:para>Adding a route 'TestRoute' single sided and temporary only to the local system. The remote device doesn't need to be online.</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="true" 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="true" 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="true" 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 -All
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 -All | 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="true" 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 address, where to Remove the specified route. This can be the 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>
          <dev:defaultValue></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 address, where to Remove the specified route. This can be the 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>
          <dev:defaultValue></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 address, where to Remove the specified route. This can be the 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>
          <dev:defaultValue></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 address, where to Remove the specified route. This can be the 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>
        <dev:defaultValue></dev:defaultValue>
      </command:parameter>
      <!-- Parameter: Address -->
      <command:parameter required="true" globbing="true" 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="true" 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: Name -->
        <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Address">
          <maml:name>Name</maml:name>
          <maml:description>
            <maml:para>The name(s) or address(es) 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="true" 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: Name -->
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Address">
        <maml:name>Name</maml:name>
        <maml:description>
          <maml:para>The name(s) or address(es) 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>
      <command:parameter required="false" globbing="false" pipelineInput="true (ByValue)" position="1" aliases="Address">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The name(s) or address(es) of the systems to test. These can consist of RouteName, NetID, HostName or IPAddress. Wildcards are permitted.</maml:para>
          <maml:para>This is an alias of the Name 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="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 name(s) or address(es) 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.167.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: StateOnly -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>StateOnly</maml:name>
          <maml:description>
            <maml:para>The StateOnly 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="true" 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: StateOnly -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>StateOnly</maml:name>
          <maml:description>
            <maml:para>The StateOnly 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: StateOnly -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>StateOnly</maml:name>
          <maml:description>
            <maml:para>The StateOnly 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.167.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="true" 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: StateOnly -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>StateOnly</maml:name>
        <maml:description>
          <maml:para>The StateOnly 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 State information (RouteStateInfo) from 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:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <maml:introduction>
          <maml:para>Getting AdsState information from all actual routes: PS&gt; &gt; get-adsroute | get-adsstate -port 10000 -stateOnly Invalid Config</maml:para>
        </maml:introduction>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <maml:introduction>
          <maml:para>Getting availability information from all actual routes: PS&gt; &gt; get-adsroute | get-adsstate -port 10000 -quiet false true</maml:para>
        </maml:introduction>
      </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.167.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="true" 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.167.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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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 -All -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: Add-MqttRoute -->
  <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-MqttRoute</command:name>
      <command:verb>Add</command:verb>
      <command:noun>MqttRoute</command:noun>
      <maml:description>
        <maml:para>Adds an MQTT route to the destination system.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This Cmdlet adds an MQTT route to the destination system. To add the route, the Address of a MQTT route must be specified.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Identity -->
      <command:syntaxItem>
        <maml:name>Add-MqttRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address of the MQTT Broker to add. This can be 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: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The TCP/IP Port of the MQTT Broker to add.</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: Topic -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Topic</maml:name>
          <maml:description>
            <maml:para>The MQTT Topic string under which this MQTT Consumer sends/receives data.</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: Credential -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
          <maml:name>Credential</maml:name>
          <maml:description>
            <maml:para></maml:para>
            <maml:para>Credentials of the Preshared Key Identity (PSK). This consists of Identity/UserName and the Password IMPORTANT: Please be aware, that in the current version, the 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 MQTT route is added remotely.</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: IdentityCaseSensitive -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IdentityCaseSensitive</maml:name>
          <maml:description>
            <maml:para>Key will be generated Sha256(Identity+Pwd), Identity in upper case if 'IdentityCaseSensitive' = false - UTF8</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' 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: Psk -->
      <command:syntaxItem>
        <maml:name>Add-MqttRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address of the MQTT Broker to add. This can be 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: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The TCP/IP Port of the MQTT Broker to add.</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: Topic -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Topic</maml:name>
          <maml:description>
            <maml:para>The MQTT Topic string under which this MQTT Consumer sends/receives data.</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: Identity -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Identity</maml:name>
          <maml:description>
            <maml:para>The identity name used to talk to the MQTT message broker (Preshared Key method).</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: PreSharedKey -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>PreSharedKey</maml:name>
          <maml:description>
            <maml:para>The Preshared key used togehter with the identity for MQTT message broker communication.</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="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The Destination Address, where the MQTT route is added remotely.</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: 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: SCA -->
      <command:syntaxItem>
        <maml:name>Add-MqttRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The Address of the MQTT Broker to add. This can be 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: Port -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The TCP/IP Port of the MQTT Broker to add.</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: Topic -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
          <maml:name>Topic</maml:name>
          <maml:description>
            <maml:para>The MQTT Topic string under which this MQTT Consumer sends/receives data.</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: CA -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>CA</maml:name>
          <maml:description>
            <maml:para>Path to the Certificate Authority file. Certificates of MQTT broker, signed by this CA will be accepted for connection. The file must be already located on the target system.</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: Cert -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Cert</maml:name>
          <maml:description>
            <maml:para>Path to the public key Certificate (X.509). The file must be already located on the target system.</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: Key -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Key</maml:name>
          <maml:description>
            <maml:para>Path of the private Key file of the X.509 Certifcate. The file must be already located on the target system.</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: 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 MQTT route is added remotely.</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: 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: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The Address of the MQTT Broker to add. This can be 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: Port -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="1">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The TCP/IP Port of the MQTT Broker to add.</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: Topic -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="2">
        <maml:name>Topic</maml:name>
        <maml:description>
          <maml:para>The MQTT Topic string under which this MQTT Consumer sends/receives data.</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: 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 MQTT route is added remotely.</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: Credential -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="TargetCredential">
        <maml:name>Credential</maml:name>
        <maml:description>
          <maml:para></maml:para>
          <maml:para>Credentials of the Preshared Key Identity (PSK). This consists of Identity/UserName and the Password IMPORTANT: Please be aware, that in the current version, the 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></maml:para>
          <maml:para>Credentials of the Preshared Key Identity (PSK). This consists of Identity/UserName and the Password IMPORTANT: Please be aware, that in the current version, the 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: IdentityCaseSensitive -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IdentityCaseSensitive</maml:name>
        <maml:description>
          <maml:para>Key will be generated Sha256(Identity+Pwd), Identity in upper case if 'IdentityCaseSensitive' = false - UTF8</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: Identity -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Identity</maml:name>
        <maml:description>
          <maml:para>The identity name used to talk to the MQTT message broker (Preshared Key method).</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: PreSharedKey -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>PreSharedKey</maml:name>
        <maml:description>
          <maml:para>The Preshared key used togehter with the identity for MQTT message broker communication.</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: CA -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>CA</maml:name>
        <maml:description>
          <maml:para>Path to the Certificate Authority file. Certificates of MQTT broker, signed by this CA will be accepted for connection. The file must be already located on the target system.</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: Cert -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Cert</maml:name>
        <maml:description>
          <maml:para>Path to the public key Certificate (X.509). The file must be already located on the target system.</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: Key -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Key</maml:name>
        <maml:description>
          <maml:para>Path of the private Key file of the X.509 Certifcate. The file must be already located on the target system.</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: 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>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>&gt; Add-MqttRoute -Address 1.2.3.4 -port 42</dev:code>
        <dev:remarks>
          <maml:para>Adds the MQTT route to an MQTT Broker system with the IPAddress '1.2.3.4' and Port '42' on the local system.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>&gt; Add-MqttRoute -Address MqttSystem -port 42 -Destination CX_1234</dev:code>
        <dev:remarks>
          <maml:para>Adds the MQTT route on the destination System 'CX_1234' to the MQTT Broker with Address '1.2.3.4' and Port '42'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Get-MqttRoute -->
  <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-MqttRoute</command:name>
      <command:verb>Get</command:verb>
      <command:noun>MqttRoute</command:noun>
      <maml:description>
        <maml:para>Remove a MQTT Route.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Removes a MQTT Route of the specified system.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Get-MqttRoute</maml:name>
        <!-- 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 to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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 address, where to Remove the specified Mqtt route. This can be the 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>
        <dev:defaultValue></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-MqttRoute -destination CX_1234
Address TcpPort Topic Qos Security
------- ------- ----- --- --------
192.168.2.1 44124 Topic1 TLS
192.200.2.2 44124 Topic2 PSK
192.200.3.3 44124 Topic3 None</dev:code>
        <dev:remarks>
          <maml:para>Gets the MQTT Routes registered on the destination System 'CX_1234'.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Remove-MqttRoute -->
  <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-MqttRoute</command:name>
      <command:verb>Remove</command:verb>
      <command:noun>MqttRoute</command:noun>
      <maml:description>
        <maml:para>Remove a MQQT Route.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>Removes a MQQT Route of the specified system.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: Address -->
      <command:syntaxItem>
        <maml:name>Remove-MqttRoute</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Address</maml:name>
          <maml:description>
            <maml:para>The IPAddress or HostName of the Mqtt broker system to remove.</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="1">
          <maml:name>Port</maml:name>
          <maml:description>
            <maml:para>The TCP/IP port specification.</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: Destination -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Destination</maml:name>
          <maml:description>
            <maml:para>The destination address, where to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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: RouteInfo -->
      <command:syntaxItem>
        <maml:name>Remove-MqttRoute</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="MqttRoute">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Mqtt routes to remove.</maml:para>
          </maml:description>
          <command:parameterValue required="true">MqttRoute[]</command:parameterValue>
          <dev:type>
            <maml:name>TwinCAT.SystemService.MqttRoute[]</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 to Remove the specified Mqtt route. This can be the 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>
          <dev:defaultValue></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: Address -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Address</maml:name>
        <maml:description>
          <maml:para>The IPAddress or HostName of the Mqtt broker system to remove.</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="1">
        <maml:name>Port</maml:name>
        <maml:description>
          <maml:para>The TCP/IP port specification.</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="named" aliases="MqttRoute">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The Mqtt routes to remove.</maml:para>
        </maml:description>
        <command:parameterValue required="true">MqttRoute[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.SystemService.MqttRoute[]</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="named" aliases="MqttRoute">
        <maml:name>MqttRoute</maml:name>
        <maml:description>
          <maml:para>The Mqtt routes to remove.</maml:para>
          <maml:para>This is an alias of the InputObject parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">MqttRoute[]</command:parameterValue>
        <dev:type>
          <maml:name>TwinCAT.SystemService.MqttRoute[]</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 to Remove the specified Mqtt route. This can be the 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>
        <dev:defaultValue></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: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>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>TwinCAT.SystemService.MqttRoute[]</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Mqtt routes to remove.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues />
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>PS&gt; Remove-MqttRoute -address 1.2.3.4 -port 42 -Destination CX_1234</dev:code>
        <dev:remarks>
          <maml:para>Removes the MQTT route on the destination System 'CX_1234' to MQTT Broker with Address '1.2.3.4' and Port '42'.</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="true" 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.167.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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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.167.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="true" 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="true" 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.167.1.1</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: OrderId -->
        <command:parameter required="false" globbing="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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.167.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="true" 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.167.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="true" 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.167.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="true" 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.167.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="true" 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 (ByValue)" 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.167.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="true" 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="true" 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 (ByValue)" 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 Result TotalMem(kb) AvailMem(kb) Ports Drivers Transports Mailbox Size(kb) Mailbox Queue
             ------ ------ ------------- ------------- ----- ------- ---------- ----------------- -------------
             CX_1234 Ok 32768 32759 31 4 11 0 0</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" aliases="SessionID">
          <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" aliases="SessionID">
        <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>
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named" aliases="SessionID">
        <maml:name>SessionID</maml:name>
        <maml:description>
          <maml:para>Specifies the ID of the session to get.</maml:para>
          <maml:para>This is an alias of the Id 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>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.167.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="true" 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.167.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="true" 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="true" 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="true" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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.167.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: AddressStr -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="true" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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="true" 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: Route -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="true" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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: Session -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="false" globbing="true" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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="true" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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>
      <!-- Parameter set: NetIdPortLiteral -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: LiteralPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>The literal instance path of the symbol.</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.167.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: AddressStrLiteral -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: Address -->
        <command:parameter required="true" globbing="true" 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: LiteralPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>The literal instance path of the symbol.</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: RouteLiteral -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: LiteralPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>The literal instance path of the symbol.</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: SessionLiteral -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- 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: LiteralPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>The literal instance path of the symbol.</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" 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: SessionIdLiteral -->
      <command:syntaxItem>
        <maml:name>Get-TcSymbol</maml:name>
        <!-- Parameter: LiteralPath -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>LiteralPath</maml:name>
          <maml:description>
            <maml:para>The literal instance path of the symbol.</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="true" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The instance path of the Symbol(s). Because wildcards are permitted with path, the wildcard parameters '[' and ']' must be escaped with a backtick.</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: LiteralPath -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>LiteralPath</maml:name>
        <maml:description>
          <maml:para>The literal instance path of the symbol.</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.167.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="true" 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:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>PS&gt; $s = New-TcSession -port 851
PS&gt; $s | Get-TcSymbol -path '.tc2vStructArray`[0`]','.tc2vStructArray`[1`]'
 
InstancePath Category DataType Size Static Persistant IG IO
------------ -------- -------- ---- ------ ---------- ---- ------
.tc2vStructArray[0] Struct ST_SimpleStruct 165 False False 4040 117942
.tc2vStructArray[1] Struct ST_SimpleStruct 165 False False 4040 1179E7</dev:code>
        <dev:remarks>
          <maml:para>Gets an ADS-Session/connection to the local system PLC (Port 851) and get two Array Elements. Because the -path parameter uses the wildcard paramater '[' and ']' these characters must be escaped with backtick '`'.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>PS&gt; $s = New-TcSession -port 851
PS&gt; $s | Get-TcSymbol -literalPath '.tc2vStructArray[0]','.tc2vStructArray[1]'
 
InstancePath Category DataType Size Static Persistant IG IO
------------ -------- -------- ---- ------ ---------- ---- ------
.tc2vStructArray[0] Struct ST_SimpleStruct 165 False False 4040 117942
.tc2vStructArray[1] Struct ST_SimpleStruct 165 False False 4040 1179E7</dev:code>
        <dev:remarks>
          <maml:para>Gets an ADS-Session/connection to the local system PLC (Port 851) and gets two Array Elements with their literal path.</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.167.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="true" 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 (ByValue)" 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.167.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="true" 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="true" 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 (ByValue)" 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.167.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.167.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="true" 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.167.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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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.167.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="true" 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="true" 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.167.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="true" 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.167.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="true" 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="true" 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="true" 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="true" 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="true" 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="true" 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.167.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="true" 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="true" 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.167.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="true" 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 (ByValue)" 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.167.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="true" 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="true" 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 (ByValue)" 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>