PDA

Просмотр полной версии : Передача данных типа STRING по Modbus TCP



mgoriainov
27.03.2026, 17:57
Добрый день.
Столкнулся с проблемой передачи данных типа STRING по Modbus TCP. ПЛК210-4G - слейв, возникает проблема, что можно передавать данные только типа WORD. Можно ли как-то переда886308863188632ть данные типа STRING?

Попробовал сделать через структуру объединение, разбив STRING[60] на массив из 31 элемента типа WORD (см. скрин 1). Но при попытке передать элементы данные, привязав к регистрам временного хранения, возникает ошибка - приходят 0, хотя фактически вижу, что в элементах массива числа (см. скрин 3).

Прошу помочь с этим вопросом

kondor3000
27.03.2026, 18:13
Добрый день.
Столкнулся с проблемой передачи данных типа STRING по Modbus TCP. ПЛК210-4G - слейв, возникает проблема, что можно передавать данные только типа WORD. Можно ли как-то передать данные типа STRING?

Попробовал сделать через структуру объединение, разбив STRING[60] на массив из 31 элемента типа WORD (см. скрин 1). Но при попытке передать элементы данные, привязав к регистрам временного хранения, возникает ошибка - приходят 0, хотя фактически вижу, что в элементах массива числа (см. скрин 3).

Прошу помочь с этим вопросом

Вам не числа надо передавать, а буквы латинницы и цифры. Каждому элементу соответствует свой код. Массив не нужен. 88634
Резервируете в слейве 31 регистр, например адрес 0 длина 31 регистр, получили например начальный адрес %QW10
Объявляете sValue AT%QW10 : STRING(60); и присваиваете туда ваше слово, например 'Test 4235'.
читать надо как STRING, по адресу 0.

На скрине мастер читает из слейва sValue AT%QW16:STRING(19):='Test12345Test12345'; всего 10 регистров или 20 символов

mgoriainov
30.03.2026, 15:07
Большое спасибо!