Подскажите пожалуйста никак не могу понять в чём проблема
Схема такая - контроллер DVP112-SE читает по modbus RTU значение из слейва ID3 (с этим проблем нет) и допустим он должен записать это значение в два регистра другого слейва ID4, но почему-то записывает только в один. Посылки разграничены по времени, для примера использовал пример отсюда https://totalkip.ru/articles/podklyuche ... ta_DVP_SS2
Не работает ни с MODWR ни с MODRW. Уже прикрутил счётчики к посылкам, не могу понять в чём дело.
Обмен по Modbus
Re: Обмен по Modbus
Вот что получаю на слейве
Re: Обмен по Modbus
Так вы и пишите в 1 регистр.
Re: Обмен по Modbus
У меня же две команды MODWR
MODWR K4 K6 K1 D802 K1
MODWR K4 K6 K3 D802 K1
пишу в 1 и 3 регистр слейва с ID=K4 командой записи K6 данные из D802 размером K1
MODWR K4 K6 K1 D802 K1
MODWR K4 K6 K3 D802 K1
пишу в 1 и 3 регистр слейва с ID=K4 командой записи K6 данные из D802 размером K1
Re: Обмен по Modbus
Попробуйте просто одной командой записать в тот регистр, который не пишется , что либо и анализируйте флаги окончания записи или таймаутов. У вас коммуникация продолжается независимо удачная запись или нет. Как вариант попробуйте сбрасывать порт при неудачной записи. Либо если есть возможность пробуйте сразу записывать три слова одной командой передачи.
Re: Обмен по Modbus
Добавил ещё несколько посылок на запись и они все работают. Получается только первая посылка на запись после чтения не работает. Может там буфер нужно чистить или типа того
Re: Обмен по Modbus
Попробуйте сбросить порт после чтения. М1125
Re: Обмен по Modbus
Спасибо за советы. Всё заработало с самописным слейвом на основе библиотеки NModbus что мне и нужно. С Modbus Slave v4.4.5 так и не заработало хз почему.