Не удалось прочитать правильный регистр с сервера pymodbusrtu с помощью контроллера (в моем случае TEMCO)

Я создал сервер modbusrtu, используя библиотеку pymodbus на Pi4. Я пишу значения в контексте, используя функцию

      def write_data(context,address, value, slave_id_reader,reg_type):
        context = context
        print(" Adddress =",address,", value =",value,", slave_id :",slave_id_reader," ,reg_type ",reg_type)
        # while True:
        context[slave_id_reader].setValues(reg_type, address, value)

когда я читаю из программного обеспечения Qmodmaster в Windows, я получаю правильные значения (см. прикрепленное изображение). Но как только я использую другой пи или контроллер (TEMCO). Он не может получить правильные значения. Используя другой pi, который подключен через протокол modbusrtu, я использовал клиентский код, но иногда он считывает значение, а иногда происходит сбой и происходит тайм-аут. При чтении через TEMCO через rs485 или любой контроллер. иногда появляются значения, которые в основном неверны, и в большинстве случаев значений нет. Я проверил настройки сервера на всех из них.

                              timeout=1, 
                        baudrate=9600, 
                        parity='N',
                        bytesize=8,
                        stopbits=1)

Эти настройки одинаковы в контроллере и пи

Я пробовал увеличивать и уменьшать задержку чтения регистра, но ничего не получалось.

Я создал сервер modbus rtu, используя библиотеку pymodbus на python. Я пишу регистрацию с сервера. Во-вторых, на другом pi я сделал клиент, используя библиотеку pymodbus, которая читает с сервера. Оба pi подключены последовательно.

Это журналы, распечатываемые на стороне клиента. Часто происходит разрыв соединения между клиентом и сервером. Иногда читается, а иногда нет

      ReadRegisterResponse (65)
ReadRegisterResponse (65)
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 2 bytes (0 received)
ReadRegisterResponse (65)
ReadRegisterResponse (65)
ReadRegisterResponse (65)
Modbus Error: [Input/Output] Modbus Error: [Invalid Message] Incomplete message received, expected at least 2 bytes (0 received)
ReadRegisterResponse (65)
ReadRegisterResponse (65)

0 ответов

Другие вопросы по тегам