Если вы делаете SIZEOF от строки - то отправляется и "завершающий символ с кодом 0".
Потому что в CODESYS строки нуль-терминированные.
https://ru.wikipedia.org/wiki/%D0%9D...BE%D0%BA%D0%B0
Более того - отправляется ровно столько байт, сколько выделено под строку (потому что вы используете SIZEOF).
Т.е. если в вашей STRING(10000) реально всего 100 символов - то будут отправлены эти 100 символов и еще 9901 нулевых байт следом.
Буфер не будет "на один символ длиннее".Буфер будет на один символ длиннее, а там 0 (см. п1.).
Вы просто пытаетесь убедить блок в том, что размер вашей переменной на один байт больше, чем на самом деле.
Результат вы уже видели.




Ответить с цитированием