Auto: s7-a5 — LOGO!/S7-200 V-memory parser
Add CPU-aware overload S7AddressParser.Parse(string, CpuType?) that accepts the V area letter for S7-200 / S7-200 Smart / LOGO! 0BA8 and maps it to DataBlock DB1. V is rejected on S7-300/400/1200/1500 and on the legacy CPU-agnostic Parse(string) overload. Width suffixes mirror M/I/Q (VB/VW/VD/V0.0). S7Driver passes _options.CpuType so live tag config picks up family-aware parsing. Tests cover S7200/S7200Smart/Logo0BA8 positive cases, modern-family rejection, and CPU-agnostic rejection. Closes #291
This commit is contained in:
@@ -102,7 +102,9 @@ public sealed class S7Driver(S7DriverOptions options, string driverInstanceId)
|
||||
_parsedByName.Clear();
|
||||
foreach (var t in _options.Tags)
|
||||
{
|
||||
var parsed = S7AddressParser.Parse(t.Address); // throws FormatException
|
||||
// Pass CpuType so V-memory addresses (S7-200 / S7-200 Smart / LOGO!) resolve
|
||||
// against the device's family-specific DB mapping.
|
||||
var parsed = S7AddressParser.Parse(t.Address, _options.CpuType); // throws FormatException
|
||||
if (t.ElementCount is int n && n > 1)
|
||||
{
|
||||
// Array sanity: cap at S7 PDU realistic limit, reject variable-width
|
||||
|
||||
Reference in New Issue
Block a user