Цитата:
Сообщение от New
А что это у вас за тестер? Очень уж похож на давно "скончавшийся" Terring Modbus Tools.
|
Раньше была такая программа от ModbusTester by Vadim A. Abramov
Пользовался ей более 10 лет. Но в основном я работал с Modbus RTU, замечательно с ним работает утилита.
А реализация Modbus TCP у нее наверное немного специфическая.
Т.е. получается она в Modbus TCP также как и в Modbus RTU сохраняет CRC сумму, и не добавляет MBAP заголовок.
Из просторов интернета вычитал что в Modbus TCP добавляется заголовок (MBAP Header) в виде нулей и адрес узла в сети.
Просмотрел формат пакета данных в MasterOPC при обращении к Slave устройству с номером 1, почему то адрес узла указывается 6, а ответ получает уже с цифрой 7.
К примеру если послать такой пакет:
00 00 00 00 00 06 01 04 00 02 00 02
В ответ получаешь :
00 00 00 00 00 07 01 04 04 00 00 41 30
где в запросе
00 00 00 00 00 - Резерв
00 06 - Похоже что адрес узла.. Что за адрес пока не пойму
01 04 - это номер устройства в сети Modbus и запрашиваемой функции...
00 02 - адрес ячейки памяти из которой нужно прочитать данные
00 02 - количество запрашиваемых для чтения байт
а в ответе адрес узла уже почему то = 7..
Если запросить другую переменную там почему то в запросе также 6, а вот в ответе уже 5 - ка.. Пока не пойму..