ethercat-linux/scripts/tc-ads-mismatch-delta.ps1
Tony Cao f0163d8d70 800B PDO variant + long-term stability evidence + analysis docs
- twin_layout_blob_sized generalized: multi-entry TwinCAT line format
  (1 real @240bit + N continuation + remainder entry); 1024B path kept
  byte-identical; 800B = 27 entries verified on hardware
- 800B constants (PAYLOAD/SM 800), deployed as el6695_rt_800b
- 10-min + 5h stability runs: 18M cycles, zero errors, zero mismatches,
  PLC nMismatch frozen over the whole run (monitor_5h.csv evidence)
- docs: 800B plan/design/verification/test-report chapters,
  jitter analysis (NFS rootfs stall primary cause), D2000 dev plan
- scripts: 800B deploy/relink/verify, mismatch-delta, 5h monitor
2026-08-06 01:10:50 +08:00

16 lines
701 B
PowerShell

#Requires -RunAsAdministrator
Add-Type -Path 'C:\Program Files (x86)\Beckhoff\TwinCAT\3.1\Components\Base\v170\TwinCAT.Ads.dll'
$c = New-Object TwinCAT.Ads.TcAdsClient
$c.Connect('169.254.176.217.1.1', 851)
$h = $c.CreateVariableHandle('GVL_Sync.nMismatch')
$h2 = $c.CreateVariableHandle('GVL_Sync.bSync')
$m1 = $c.ReadAny($h, [int]); $b1 = $c.ReadAny($h2, [bool])
Write-Host ("t+15s : bSync=$b1 nMismatch=$m1")
Start-Sleep 30
$m2 = $c.ReadAny($h, [int]); $b2 = $c.ReadAny($h2, [bool])
Write-Host ("t+45s : bSync=$b2 nMismatch=$m2 delta=$($m2-$m1)")
Start-Sleep 30
$m3 = $c.ReadAny($h, [int]); $b3 = $c.ReadAny($h2, [bool])
Write-Host ("t+75s : bSync=$b3 nMismatch=$m3 delta=$($m3-$m2)")
$c.Dispose()