Концепция
У нас есть симулятор корабля (клиент) и контроллер Modbus (сервер). Наша цель - разработать эмулятор (например, контроллер) на моем ПК. Но у нас нет информации о клиенте (симуляторе).
Progress
- Сначала мы проверили фактические выходные данные контроллера (сервера). Существует 7 различных переменных, таких как телеграф двигателя, угол поворота руля и т. Д.
- Во-вторых, я проверил номера регистров контроллера, в которых хранятся значения команд. Было от 0 до 7.
Сервер опросов с установленным сервером программного обеспечения Modpoll:
Я проверил тип регистра. Это был регистр хранения
Я написал скрипт для разработки Сервера, похожего на контроллер с pymodbus Server. Я могу не только записать конкретные значения в регистр хранения от 0 до 7, но также есть правильное рукопожатие и ответы на симуляторе (клиент)
Задача
- Клиент отправляет запрос на чтение с номерами регистров от 256 . Это означает, что мой Сервер отвечает нулевыми значениями, а не значениями команд, записанными в регистрах от 0 до 7. Но проблема в том, что симулятор (клиент) показывает изменения параметров в своем графическом интерфейсе пользователя. .
Снимок экрана из wireshark - показывает, что клинлет (симулятор) отправляет запрос с регистрационным номером от 246:
- Клиентотправляет запрос не только на чтение, но и на запись, а запрос на запись перезаписывает значения, записанные сервером (ПК).
Вопрос
Как возможно, что симулятор получает командный сигнал, запрашивая разные номера регистров? клиент должен отправить запрос с номерами регистров от 0 до получения командных сигналов.
Я не могу понять, почему клиент пишет сначала перед чтением значений с сервера. Этот запрос на чтение перезаписывает значения, записанные сервером (ПК). Сервер (контроллер или ПК) должен послать командный сигнал на симулятор. Я понятия не имею, почему симулятор сначала записывает некоторые значения на сервер и читает их.
Пожалуйста, сообщите по этому вопросу.
С уважением, Сёнсу.