#python #raspberry-pi #modbus #rs485 #minimalmodbus
#python #raspberry-pi #modbus #rs485 #minimalmodbus
Вопрос:
Я пытаюсь подключить экран RS485 от Seeed Studio для Raspberry Pi вместе с библиотекой Python Minimalmodbus на Raspberry Pi 2B — НЕ РАБОТАЕТ !!!
экран: https://www.seeedstudio.com/RS-485-Shield-for-Raspberry-Pi.html
Я протестировал следующее на Raspberry Pi:
- Все работало нормально, если я отправлял данные с помощью последовательной библиотеки Python. Он включает реле на ведомом устройстве и отвечает правильно.
ser.write('xffx05x00x00xffx00x99xe4')
- Он не работает, если я использую библиотеку Minimalmodbus для Python
instrument.write_bit(0,1,5)
ошибка: minimalmodbus.Ошибка NoResponseError: нет связи с прибором (нет ответа)
примечание: я использовал тот же код python Minimalmodbus, используя другой конвертер USB в RS485 на том же RPi, и он работал нормально.
Pyhton Код:
import minimalmodbus
import time
import serial
instrument = minimalmodbus.Instrument('/dev/ttyAMA0', 255)
instrument.serial.baudrate = 9600
instrument.serial.bytesize = 8
instrument.serial.stopbits = 1
instrument.serial.timeout = 1
instrument.mode = minimalmodbus.MODE_RTU
instrument.clear_buffers_before_each_transaction = True
instrument.debug = True
while 1:
instrument.write_bit(0,1,5)
time.sleep(5)
ошибка: minimalmodbus.Ошибка NoResponseError: нет связи с прибором (нет ответа)
Может кто-нибудь помочь, если я могу использовать этот конкретный rs485-shield с библиотекой Minimalmodbus? Заранее благодарю вас
С уважением,
Комментарии:
1. Эй, Мондо, ты когда-нибудь заставлял это работать? У меня точно такая же проблема
Ответ №1:
write_bit
Функция считывает ответ после отправки сообщения. И Seeed RS-485 Shield должен переключать GPIO18
контакт для переключения между чтением и записью. Как показано в примере кода в документации https://wiki .seeedstudio.com/RS-485_Shield_for_Raspberry_Pi/#communication-test-code .
Проверяя код write_bit
функции, я не думаю, что есть простой способ переключить этот вывод как между serial.write
ними, и serial.read
в них нет места для регистрации собственного хук и переключения вывода там (https://github.com/pyhys/minimalmodbus/blob/c08208523b729d178a9f662725a69195924f7c34/minimalmodbus.py#L1379).