#Requires -RunAsAdministrator $ErrorActionPreference = 'Continue' $dte = New-Object -ComObject TcXaeShell.DTE.17.0 $dte.MainWindow.Visible = $true try { $dte.SuppressUI = $false } catch {} $dte.Solution.Open('C:\Users\tonycao\work\twincat3-auto-cli\TwinCAT_EL6695_Primary_2kHz\TwinCATProject1.sln') Start-Sleep 25 $proj = $dte.Solution.Projects.Item(1) try { Write-Host "loaded tsproj: $($proj.Properties.Item('ProjectFilePath').Value)" } catch {} $sm = $null for ($i = 0; $i -lt 20; $i++) { try { $sm = $proj.Object; if ($sm) { break } } catch {} Start-Sleep 3 } if (-not $sm) { Write-Host 'no sysmgr'; exit 1 } $node = $sm.LookupTreeItem('TIRR') Write-Host "TIRR node: $($node.Name) cc=$($node.ChildCount)" $xml = $node.ProduceXml($false) [System.IO.File]::WriteAllText('C:\Users\tonycao\work\ethercat-linux\tmp_tirr.xml', $xml, [System.Text.Encoding]::UTF8) Write-Host "saved ($($xml.Length) bytes)"