What i'm doing is this in pictures. Trying Protected T or F, trying to play with ExcecTimeOut with no success. Seems that every messages are absorbed from controller and only first or last are visibles. If it's so i think is a very bad limit for plu+1 controllers.
this is what's in the POU (a very easy test) :
FUNCTION_BLOCK GGA_Decoder
VAR_INPUT
Data : ARRAY[0..7] OF USINT;
Length : USINT;
END_VAR
VAR_OUTPUT
Arr0 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr1 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr2 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr3 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr4 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr5 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
Arr6 : ARRAY[0..7] OF USINT := [0, 0, 0, 0, 0, 0, 0, 0];
END_VAR
VAR
Index : USINT;
END_VAR
// Extract Identifier
Index := Data[0];
CASE Index OF
160, 192, 32, 0, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240:
Arr0 := Data;
161, 193, 33, 1, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241:
Arr1 := Data;
162, 194, 34, 2, 66, 82, 98, 114, 130, 146, 162, 178, 194, 210, 226, 242:
Arr2 := Data;
163, 195, 35, 3, 67, 83, 99, 115, 131, 147, 163, 179, 195, 211, 227, 243:
Arr3 := Data;
164, 196, 36, 4, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244:
Arr4 := Data;
165, 197, 37, 5, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245:
Arr5 := Data;
166, 198, 38, 6, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246:
Arr6 := Data;
END_CASE
in the recent past I struggled badly with Danfoss displays trying to acceptably capture an NMEA string on RS232,but ExcTimeout always effect the result, now we can't get the positioning data correctly read even on Can.
Once again I'm afraid we should change Hardware. But in 2023, almost 2024, with many blocks for Autonomous Guide developed, at least something to manage the data of a standard GNSS would have expected. It's a real shame, because the displays and controllers are
very good.