Twincat 3 PLC: кадр данных UDP обрезан по сравнению с его первоначальной длиной - PullRequest
0 голосов
/ 28 июня 2018

мы пытаемся обработать 152-байтовый фрейм данных UDP от удаленного сервиса. Следуя примеру с информацией PeerToPeer Beckhoff (https://infosys.beckhoff.com/content/1033/tf6310_tc3_tcpip/18014398593720075.html?id=9052404215823027436), мы не можем увидеть все сообщение размером 152 байта, только пару байтов.

Возможно ли, что переменная String будет отображать только символы до первых 00 байтов или аналогичных (нулевой разделитель)?

На изображении ниже вы можете увидеть полный кадр UDP и то, что мы получаем в качестве сообщения.

Заранее спасибо.

enter image description here

1 Ответ

0 голосов
/ 28 июня 2018

Вы правы, пример Beckhoff PeerToPeer не будет работать с двоичными данными, поскольку он использует строки, которые обрезаются при нулевом значении. Так что ему не нравятся данные UDP, которые у вас есть для него.

Вместо этого вы должны использовать функциональные блоки, например, такие как ReceiveData, который будет работать с массивом данных и указателями, что позволяет получать любое значение байта. Вы можете выполнить поиск в Google по запросу «Beckhoff ReceiveData», чтобы получить точную информацию.

...