Страница 5 из 9 ПерваяПервая ... 34567 ... ПоследняяПоследняя
Показано с 41 по 50 из 81

Тема: МВ110-224.8А modbus

  1. #41

    По умолчанию

    Код:
    import minimalmodbus
    import serial
    import serial.rs485
    
    instrument = minimalmodbus.Instrument('COM5',slaveaddress=16) # port name, slave address (in decimal)
    instrument.mode = 'rtu' # rtu or ascii mode
    instrument.serial.baudrate = 115200 # Baud
    instrument.serial.rs485_mode = serial.rs485.RS485Settings()
    
    temperature = instrument.read_register(1, functioncode=3, signed=True, numberOfDecimals=1) # Registernumber, number of decimals
    print ('t= ', temperature)
    что тут искать? этот код сразу работает на винде и не работает в линуксе (с поправкой на имя порта естессно)
    вот на форуме разработчика говорят, что CP2102 не конфигурируется в eeprom в 485, но я все равно не понимаю почему под виндой все ок
    PS: настройки битов и четности опущены, тк они по дефолту совпадают с установленными в minimalmodbus
    Последний раз редактировалось danilk; 14.06.2017 в 00:47.

  2. #42
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    Цитата Сообщение от danilk Посмотреть сообщение
    код сразу работает на винде и не работает в линуксе (с поправкой на имя порта естессно)
    поправку тоже бы немешало показать, чтоб вопросов не возникало в различии кода и добавте в код instrument.debug = True чтоб искать проблему
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  3. #43

    По умолчанию

    В отладчике нет интересного, я его смотрел. Ошибка ioctl сразу вываливается как я уже писал, чтобы код начал хотя бы слать, приходится класс instrument переопределять в части порта, а это уже как сказка про белого бычка. Биты проверяются совсем просто: print instrument. Slabs тоже ничего внятного про эту железку не пишет. Все эти круги по нескольку раз обошёл.

  4. #44
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    переопределять это как, не совсем понимаю, еще раз ему задавать порт или что
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #45

    По умолчанию

    Нет. Это serial.Serial() внутри класса менять на serial.rs485.RS485()

  6. #46

    По умолчанию

    https://github.com/pyhys/minimalmodb...nimalmodbus.py

    было
    Код:
    class Instrument():
    def __init__(self, port, slaveaddress, mode=MODE_RTU):
            if port not in _SERIALPORTS or not _SERIALPORTS[port]:
                self.serial = _SERIALPORTS[port] = serial.Serial(port=port, baudrate=BAUDRATE, parity=PARITY, bytesize=BYTESIZE, stopbits=STOPBITS, timeout=TIMEOUT)
            else:
                self.serial = _SERIALPORTS[port]
                if self.serial.port is None:
                    self.serial.open()
    стало
    Код:
    import serial.rs485
    class Instrument():
    def __init__(self, port, slaveaddress, mode=MODE_RTU):
            if port not in _SERIALPORTS or not _SERIALPORTS[port]:
                self.serial = _SERIALPORTS[port] = serial.rs485.RS485(port=port, baudrate=BAUDRATE, parity=PARITY, bytesize=BYTESIZE, stopbits=STOPBITS, timeout=TIMEOUT)
            else:
                self.serial = _SERIALPORTS[port]
                if self.serial.port is None:
                    self.serial.open()
    Последний раз редактировалось danilk; 14.06.2017 в 12:17.

  7. #47
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,243

    По умолчанию

    а зачем так то, на сайте в примерах показано как это делать и извне
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  8. #48

    По умолчанию

    Я знаю, просто для теста сделал с копией библиотеки

  9. #49
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,649

    По умолчанию

    вы работаете с преобразователем usb - rs485 ? зачем лезете менять в библиотеке на 485 ? с ним работают в линукс как с обычным COM портом....

  10. #50

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    вы работаете с преобразователем usb - rs485 ? зачем лезете менять в библиотеке на 485 ? с ним работают в линукс как с обычным COM портом....
    вот с этого момента у меня и начались изыскания - прозрачно не заработало, пришлось искать причину. Я сначала тоже думал, что писать как в обычный порт. Получил таймаут. Потом методом тыка опустил setRTS в ноль после чтения и получил ответ.

Страница 5 из 9 ПерваяПервая ... 34567 ... ПоследняяПоследняя

Похожие темы

  1. МВ110-8А в режим Modbus RTU
    от gen30 в разделе Мх110
    Ответов: 5
    Последнее сообщение: 03.12.2015, 09:22
  2. МВ110-16Д Modbus ASCII
    от OHara в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 01.12.2014, 14:23
  3. МВ110-224.8А и S7-1200. Modbus
    от Alexandr17.02 в разделе Мх110
    Ответов: 0
    Последнее сообщение: 13.11.2014, 11:19
  4. ПЛК150+ МВ110-16Д+ПЛК Modbus
    от grr в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 13.12.2013, 19:02

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •