Я сделал приложение с C#, в этом приложении я должен читать каждые 20 секунд 840 регистров PLC через Modbus TCP. Я использую эту библиотеку http://www.codeproject.com/Tips/16260/Modbus-TCP-class. Когда я использую методC# Modbus получает много регистра каждые 20 секунд
Master.ReadHoldingRegister(ushort id, byte unit, ushort startAddress, ushort numInputs)
Он возвращает массив байтов длиной 144 и не 1680, у вас есть какие-либо идеи?
Я уверен, что в ModbusTCP существует ограничение размера пакета. Вам просто нужно прочитать его в кусках, увеличивая startAddress каждый раз. –
Я попытался использовать этот метод, я сделал 10 раз эту функцию, а в симуляторе Modbus все нормально, но в физическом ПЛК он «видит» первые 2 вызовы функции – chianta
Я использовал другую библиотеку и столкнулся с аналогичной проблемой, мое решение заключалось в том, чтобы добавить небольшую задержку между вызовами – VeNoMiS