docs(#755): TC/BSD fixture reachable but PLC runtime in Config (trial licence expired 2026-05-01)
v2-ci / unit-tests (push) Has been cancelled
v2-ci / unit-tests (push) Has been cancelled
Read-only ADS gate from WW_DEV_VM: port 10000 Config, port 851 absent (error 6). Boot project is the committed OtOpcUaTwinCatFixture without GVL_Perf/FB_PerfChurn. Member writes, coalescing and #761 array writes remain blocked; no multi-hop hardware. Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# TwinCAT TC/BSD fixture state: 10.100.0.128, 2026-11-12
|
||||
|
||||
Gitea #755 items that need the fixture: discovered struct/FB member writes, notification coalescing
|
||||
under load and the multi-hop AMS route. The #761 TwinCAT array-write residual also needs it.
|
||||
|
||||
**Result: none of them can run yet. The fixture's network and ADS system service are up, but its PLC
|
||||
runtime is in Config because the only licence on it, a 7-day trial, expired on 2026-05-01. AMS port
|
||||
851 does not exist until the runtime reaches Run, so every PLC symbol read, write and notification
|
||||
fails with ADS error 6 ("target port not found").** No driver code or tests changed. All access in
|
||||
this run was read-only: ReadState plus ADS file-service reads (FFILEFIND, FOPEN read-only, FREAD,
|
||||
FCLOSE). There were no WriteControl calls, route changes or file writes.
|
||||
|
||||
## Target
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| Host | TC/BSD ESXi VM `PC-A9A32B`, 10.100.0.128 (UniFi DHCP reservation, see project memory) |
|
||||
| AmsNetId / PLC port | `41.169.163.43.1.1` : 851 |
|
||||
| Network | ping OK (about 5 ms); TCP 48898 open from the Mac |
|
||||
| ADS path used | WW_DEV_VM (10.100.0.48). Its TwinCAT XAR 4024 router holds the static route `PC-A9A32B → 10.100.0.128 / 41.169.163.43.1.1` (read back from `StaticRoutes.xml`; not modified). The Mac has no route of its own on the fixture: UDP AddRoute with the factory login is refused (0x704), so a Mac route needs the real fixture password. |
|
||||
|
||||
## Observed
|
||||
|
||||
```
|
||||
port 10000: AdsState=Config DeviceState=1
|
||||
port 851: AdsErrorException Target port could not be found. (AdsErrorCode: 6, 0x6)
|
||||
GVL_Fixture.nCounter / GVL_Primitives.vWord / GVL_Plant...Motor.Temperature: AdsErrorCode 6
|
||||
```
|
||||
|
||||
Licence. `/usr/local/etc/TwinCAT/3.1/Target/License/TrialLicense.tclrs` (1,372 bytes, read over ADS) is the
|
||||
only licence file:
|
||||
|
||||
```
|
||||
IssueTime 2026-04-23T05:23:00
|
||||
ExpireTime 2026-05-01T00:00:00
|
||||
```
|
||||
|
||||
Boot project. `/usr/local/etc/TwinCAT/3.1/Boot/Plc/Port_851.app` (84,140 bytes, SHA-256 `80894edf…17fd4f`,
|
||||
with `Port_851.autostart` present) and `CurrentConfig.xml` (`CreateTime="2026-04-23T09:07:08"`). The `.app`
|
||||
strings name the committed fixture project `OtOpcUaTwinCatFixture`: `GVL_Fixture`, `GVL_Primitives`,
|
||||
`GVL_Arrays`, `GVL_Enums`, `GVL_Plant`, `MAIN`, `FB_LineSim`, `FB_AxisSim` and the `ST_*` DUTs from
|
||||
`tests/.../TwinCatProject/PLC/`. **`GVL_Perf` and `FB_PerfChurn` are absent.** Those come from the
|
||||
stranded `origin/auto/driver-gaps` branch and are not on master.
|
||||
|
||||
## Per-item status
|
||||
|
||||
| #755 item | Status | What unblocks it |
|
||||
|---|---|---|
|
||||
| Discovered struct/FB member writes | **Blocked: runtime in Config** | Renew the trial licence, then put the runtime in Run. The boot project already has the needed shapes (`GVL_Plant.Line1` structs; FB instances `MAIN.lineSim` (`FB_LineSim`) and its `axisSim[1..3,1..4]` (`FB_AxisSim`)), so no PLC deploy is needed. |
|
||||
| Notification coalescing under a saturated cycle | **Blocked: licence, and a PLC deploy** | The licence as above. `GVL_Perf`/`FB_PerfChurn` are not in the boot project, so a saturated-cycle test means building and activating a project that includes them (owner action in XAE). Without it, only an unsaturated proxy is possible: many notifications on the `FB_LineSim` churn. |
|
||||
| Multi-hop AMS route | **No second hop exists** | No IPC-gateway topology is in reach. The only chain (Mac → WW_DEV_VM XAR → TC/BSD) would need a new route for the Mac on WW_DEV_VM's router, which is outside this run's write scope. It is also a routed router-to-router path, not a target behind an EtherCAT/IPC gateway. The driver itself has no multi-hop logic: routing is entirely the AMS router's job. |
|
||||
| Test Connect happy path | Done 2026-11-11 (see `twincat-z35474-testconnect-2026-11-11.md` and #863) | n/a |
|
||||
| Stale `oee-tagdump-mac` routes on Z34834 | Not done: needs an ADS write on a production press | Owner approval |
|
||||
| XAR/TC-BSD trial licence rotation | Manual ops item. The expired licence above is why the fixture is in Config. | A paid runtime licence, or a renewal every 7 days |
|
||||
| #761 array-write residual | **Blocked: runtime in Config** | Same as member writes. `GVL_Arrays` is in the boot project. |
|
||||
|
||||
## How to unblock (owner actions)
|
||||
|
||||
1. From a Windows box with **TwinCAT XAE** that has a route to `41.169.163.43.1.1`, renew the 7-day trial on the
|
||||
target: SYSTEM → License → "7 Days Trial License" (captcha). WW_DEV_VM has the route but only XAR, not XAE.
|
||||
2. Restart TwinCAT into Run. The `Port_851` boot project autostarts.
|
||||
3. Re-run with `TWINCAT_TARGET_HOST`/`TWINCAT_TARGET_NETID` set, from WW_DEV_VM (it has .NET SDK 10.0.204 and the
|
||||
route). The member-write, array-write and unsaturated-load gates can then run within the 7-day window.
|
||||
4. For the saturated-cycle coalescing gate, also add `GVL_Perf`/`FB_PerfChurn` from `origin/auto/driver-gaps` to the
|
||||
project and activate it.
|
||||
|
||||
## Tools
|
||||
|
||||
Scratch tools, not in the repo: `adsprobe.exe` (ReadState + fixture reads) and `adsfile.exe` (read-only ADS
|
||||
file service) are in `C:\Users\dohertj2\` on WW_DEV_VM, built against Beckhoff.TwinCAT.Ads 7.0.172. A note on
|
||||
the TC/BSD file service: FOPEN takes mode `0x1` (read). `0x5` (read|binary) is refused with 1803.
|
||||
Reference in New Issue
Block a user