<Путаница с терминологией проистекает из- за того, что STRING - на самом деле unsigned char*, но CoDeSys не позволяет работать с типом STRING как с указателем, а использует встроенные функции работы со строками, к-е обрезают строку по нулевому символу. Из-за этого есть небольшие неудобства.>
Тип 'unsigned char*' в мануале на CoDeSys не описан. Есть 'BYTE' и 'USINT'. Вы, видимо, библиотеки пишите на Си и документируете в этом ключе. И получается мешанина.
И, всё-таки, ситуация с нулевым символом не прояснилась. Позволяет ли потенциально чудесная библиотека 'UNM' посылать в сеть нулевые символы? Строка "$00$00$00" (три нулевых символа подряд) пройдёт в порт? И зачем нужен 'Len'?

<Спасибо за комплимент. Написание документации - на самом деле сложная штука, т.к. один обидится на подробнейшее описание всего, что он знал с пеленок, а другому надо разжевать всё до положения битов в байте.>
Сравните обиду нескольких особо одарённых и тяжесть, а порой и невозможность для многих сотен нормальных найти нужную информацию по конкретным вопросам. Ваша цель ведь большие обьёмы продаж, а не удовлетворение самолюбия одиночек? Опять ссылка на Siemens - если Вы изучали их документацию, то обратили, наверное, внимание, что всё написаное ориентировано на людей невысокой подготовки. А обьём излагаемой информации весьма велик. По документации Siemens можно вообще учиться программировать контроллеры с нуля. А у Вас даже не оформлено описание памяти, принципов формирования адресного пространства в отдельный параграф. А ведь положение битов в байте имеет ещё какое значение! И положение байтов в многобайтовых типах! Какой байт лежит в памяти первым? Старший или младший? Мне нужно работать с участком памяти контроллера обращаясь к битам, затем считать этот участок двойными словами, передать их по сети, положить в память и опять считывать отдельными битами. Причём, на контроллере я адресую биты как часть байта (BYTE.BIT), а на удалённой машине - как часть двойного слова (DWORD.BIT). Чтобы выполнить такую работу без ошибок, я должен чётко представлять себе положение битов в байте и байтов в DWORD на обеих платформах. У Вас RISC процессор. Я ничего не знаю о нем и о Вашей платформе. И нужную мне для работы информацию рассчитываю найти в документации.
IMHO - в документации НЕ ДОЛЖНО БЫТЬ такого понятия, как "само собой разумеется".