PDA

Просмотр полной версии : Работка с портом RS-232 на ПЛК 160[М02]



dariga5
25.01.2022, 08:06
Здравствуйте, в ходе работы возникла необходимость в подключении HMI к Овну по 232 интерфейсу. Линия TX работает относительно нормально, команды отправляются и исполняются, хоть и при отправки их в terminal.exe приходят они в "довольно странном виде". Основная проблема в линии RX, Овен не читает то, что ему приходит в ответ ни с компьютера, ни с HMI. Основания работа происходила с библиотекой SysLibCom, но и UNM тоже пробовал, результат не оправдал ожиданий.

dariga5
25.01.2022, 09:12
P.S. Починил некорректную отправку 58910

dariga5
25.01.2022, 10:08
Неа, RX как не работал, так и не работает

dariga5
26.01.2022, 07:16
Спасибо, разобрался. Просто я думал, если задам длину строки в блоке VAR, то LEN вернет это значение.

Cs-Cs
26.01.2022, 10:21
dariga5 Возможно (я могу протупить) ты путаешь LEN (возвращает длину строки) и SIZEOF (возвращает размер объекта в байтах).
Вот если будет объявлено sBuffer : STRING(10), то LEN вернёт 0, так как строка пустая, а SIZEOF - 11.

Евгений Кислов
26.01.2022, 10:35
dariga5 Возможно (я могу протупить) ты путаешь LEN (возвращает длину строки) и SIZEOF (возвращает размер объекта в байтах).
Вот если будет объявлено sBuffer : STRING(10), то LEN вернёт 0, так как строка пустая, а SIZEOF - 10.

11, а не 10 - в CODESYS нуль-терминированные строки.

Cs-Cs
26.01.2022, 10:42
Евгений Кислов Поправил! И ведь помнил же.
По мне - проще буфер в виде массива байт объявить, а потом MemCpy/MemMove на него натравить куда надо.

dariga5
26.01.2022, 12:29
Спасибо! Помогло, осталось разобраться почему в порт ничего не приходит.