Commit f241c35
committed
fix: use correct sub_area (3736) for I/Q/M controller-area symbolic access
CONTROLLER_AREA_VALUE_ACTUAL was 2551, which is actually DB_InitialChanged,
not a controller-area sub-area. As a result the PLC rejected every symbolic
read/write to I/Q/M areas (read -> item ReturnValue error; write -> 0x4D0013).
ControllerArea_ValueActual is 3736 (0xE98). Correcting the constant fixes both
_build_symbolic_read_payload and _build_symbolic_write_payload, which select it
for access_area < 0x8A0E0000.
Verified on a real S7-1500 (CPU 1507S F soft-controller, FW V2.x) over TLS:
I/Q/M symbolic reads now succeed; values match an independent C# S7CommPlusDriver
dump. Same root cause as upstream #736.
Adds regression tests pinning the constant and the sub_area chosen by the
read/write payload builders for controller vs DB areas.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>1 parent f943844 commit f241c35
2 files changed
Lines changed: 35 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
152 | 152 | | |
153 | 153 | | |
154 | 154 | | |
155 | | - | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
156 | 160 | | |
157 | 161 | | |
158 | 162 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
| |||
357 | 358 | | |
358 | 359 | | |
359 | 360 | | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
360 | 390 | | |
361 | 391 | | |
362 | 392 | | |
| |||
0 commit comments