Про код знаю, меня больше всего волнует не его расшифровка, а отсутствие GetModbus.Exception = 0.
С чтением все нормально. Проблемы только с записью.
Про код знаю, меня больше всего волнует не его расшифровка, а отсутствие GetModbus.Exception = 0.
С чтением все нормально. Проблемы только с записью.
Либа стандартная Modbus.lib, та, которая идет на диске вместе с ПЛК73. Изменений в нее никаких не вносилось, и, честно сказать, как в ней образуется 254 Exception я не знаю, еще не озадачивался этим вопросом.
посмотрел начинку, 254й эксепнш - аппаратная ошибка применения. возникает, когда контроллер пытается отправить в порт данные но... ввиду технических ограничений - не может.
из за того что каждый байт данных разбивается на два байта ASCII символов приходится отправлять в 2 раза больше посылки. к сожалению, это аппаратное ограничение обойти не получится, упираемся в максимальный выделенный размер буфера, на 15 регистров хватает, а на 16й уже нет. Вам придётся ограничиться пачками до 15 регистров. в этом режиме всё должно быть стабильно. либо переходите на RTU и сможете передавать пачки до 30 регистров за раз
хм...
тогда видимо придётся оставаться на этом уровне , разбить пулинг данных на шаги и по почереди обрабатывать.
у Вас задача критичная к скорости обмен
Нет, не критичная. Нужно писать 21 регистр. Думал, что получится разом это делать, но и в 2 подхода вполне приемлемый вариант.у Вас задача критичная к скорости обмен
Не принят по какой причине?
В ПЛК63/73 есть ограничения на диапазон переменной. Допустим, в запросе записи 2-х переменных все регистры существуют, но значение для регистра А соответствует диапазону, а для регистра Б - не соответствует. Что должен сделать ПЛК?