Can you explain what exactly you want to do? Why do you need an unknown type and then "by convention" say its a byte? Is it really the type which is unknown?
This would be a perfect usecase for an interface or a baseclass, you could also extend the type struct and make your "own" structure.
So you have an interface like, "LogEntry" or "ILoggingSource" with a method "GetLogMessage". All the FB's and Functions which need to log implement this interface, and this interface would be the item in your list.
Here is some "sample" code:
s_arrDestination : ARRAY [0..10] of <ILoggingSource>
for each loggingItem in s_arrDestination
By the way, you use prefixes in your coding, this is called "Hungarian Notation" and it is a terrible style of coding. It makes your code unreadabale. Also, its scientifically proved that hungarian notation causes braindamage or even braindeath.
I know even in the PLC Open guidelines they use it, but its still eyecancer. Please avoid it never ever think of doing it again in your future.Linus Torvalds (against Systems Hungarian):
Encoding the type of a function into the name (so-called Hungarian notation) is brain damaged—the compiler knows the types anyway and can check those, and it only confuses the programmer.https://en.wikipedia.org/wiki/Hungarian_notation