Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
minimalmodbus тоже это умеет, но это не помогает в достижении результата)
https://github.com/pyhys/minimalmodb...munication.rst называет адаптер, который работает. Все-таки я склоняюсь, что cp2102 не для линукс или плата аппаратно кривая
Код:minimalmodbus.Instrument<id=0x7697e850, address=16, mode=ascii, close_port_after_each_call=0, precalculate_read_size=True, debug=True, serial=Serial<id=0x76982350, open=True>(port='/dev/ttyUSB0', baudrate=57600, bytesize=8, parity='N', stopbits=1, timeout=0.05, xonxoff=False, rtscts=False, dsrdtr=False)> 0 MinimalModbus debug mode. Writing to instrument (expecting 15 bytes back): ':100300010001EB\r\n' (3A 31 30 30 33 30 30 30 31 30 30 30 31 45 42 0D 0A) MinimalModbus debug mode. No sleep required before write. Time since previous read: 1497469293988.4 ms, minimum silent period: 0.67 ms. MinimalModbus debug mode. Response from instrument: '' () (0 bytes), roundtrip time: 50.4 ms. Timeout setting: 50.0 ms. 0 ('t= ', 0) Process finished with exit code 0
Последний раз редактировалось danilk; 14.06.2017 в 23:00.
у меня уже написано графическое приложение приложение в питоне под 17 дюймов тач интерфейс, с логами, графопостроителями, удаленным доступом по VNC к машине
плату делал сам - 6 АЦП по spi через мультиплексор по микрочиповскому аппноуту для Pt100 + 2 аппаратных ШИМ канала+4 линии GPIO на прочие дела
все шикарно работало, пока небольшое ЧП не пожгло выходные каналы. Решил не чинить, а поставить связку овеновских модулей ввода вывода. Откопал старый адаптер 7 летней давности, которым когда-то настраивал ТРМ251 и начал внедрять в код модбас или овен (не вижу для себя пока разницы).
Последний раз редактировалось danilk; 14.06.2017 в 22:35.
вообщем с ftdi заработало прозрачно, но код нужно сильно разбавлять ловлей Exception для исключения ошибок
на распбиане толком не пашет. какие-то проблемы с таймингами
это не преобразователи плохие, это проблемы скорее всего библиотек или кода питона.
У меня scada в Mono пашет через любые преобразователи без проблем на Raspbian, а вот в IOT как раз не хватает дров для преобразователей и только как раз CP2102 заработал у товарища...
Попробуйте разобраться с udev, например запретить ему подхватывать устройство, возможно тут причина всех бед. Либо поискать, как при его помощи выставить нужные вам параметры порта, когда udev срабатывает....
Последний раз редактировалось melky; 20.06.2017 в 11:08.
библиотеку питона я смотрел, криминала в ней нет. под убунтой кол-во ошибок в разы меньше, чем под распбианом
с udev что делать?
разбираться, смотреть как и что он делает при загрузке модуля драйвера
Для начала поискать инфу, можно ли при помощи udev изменить настройки порта по умолчанию как делает команда
stty 9600 cs8 -parenb -cstopb -F /dev/ttyS0
Если можно, то прописать нужное и при подключении железки оно подхватится.
Еще как вариант не хватает прав на устройство, это вот точно можно при помощи udev сделать.
https://blablacode.ru/linux/522
Ну а сами настройки запихнуть как-то в скрипт
http://www.opennet.ru/tips/info/757.shtml
Последний раз редактировалось melky; 20.06.2017 в 16:18.
с правами точно ок.
просто через несколько операций устройство не отвечает, отлавливаю исключение и закрыть/окрыть порт.
утром в 8-20 поставил счетчик ошибок на операцию чтения раз в 1с 6 датчиков. Показывает в 19-15 308 раз таких закрыть/открыть
это все может и проканало бы на 1м устройстве на порту, но если их 2 и более, то алгоритм управления и отслеживания дюже усложняется