Страница 7 из 7
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 22:09
Ворон226
Вот что меня напрягает: Программа, описанная в первом посту работает. Идёт запись битов, включаются и выключаются реле... И всё было бы в норме, если бы весь этот процесс не прерывался непонятными сбоями. Сбои периодические. 4-5 перещёлкиваний каждые 9-10 секунд.
Эти перещёлкивания начинаются при загрузке Debian-а. До запуска программы питоновской. И не прекращаются после выхода из питоновской программы.
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 22:14
Kost_irk
Я же говорю, это какая-то системная хрень специфическая, причем именно для аппаратных портов, с usb-com такого нет. Пробуйте слушать, может поймем, чего она там хочет.
А ваша программа открывается, пишет и закрывается?
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 22:18
Kost_irk
Либо пробуйте lsof | grep /dev/ttyS заворачивать в цикл, чтобы отловить именно этот момент, когда какая-то программа туда ломится
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 22:35
Ворон226
Kost_irk писал(а): ↑09 дек 2021, 22:14
Я же говорю, это какая-то системная хрень специфическая, причем именно для аппаратных портов, с usb-com такого нет. Пробуйте слушать, может поймем, чего она там хочет.
А ваша программа открывается, пишет и закрывается?
Хм... Я не умею слушать порт...
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 22:42
Ворон226
Kost_irk писал(а): ↑09 дек 2021, 22:14
А ваша программа открывается, пишет и закрывается?
У меня прописана конфигурация в LinuxCNC с компонентом на Python, который получает на входные пины из LinuxCNC сигналы и передаёт их через COM-порт на плату PLA-001 (8 реле). Я включаю комп. Начинают щёлкать реле... Запускается конфигурация LinuxCNC. Я могу прописывать биты и передавать их на реле. Но весь процесс продолжает прерываться. Могу выйти из конфигурации (автоматом отключится и компонент передачи сигналов на плату реле. А перещёлкивания продолжаются...
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 09 дек 2021, 23:15
Kost_irk
Ворон226 писал(а): ↑
Я не умею слушать порт...
Берете другой порт, открываете терминалом, minicom подойдет. Соединяете его rx с пином tx прослушиваемого порта. Пробуете менять скорость.
Ворон226 писал(а): ↑
У меня прописана конфигурация в LinuxCNC с компонентом на Python
Еще раз повторю, эксклюзивно порт откройте в своей программе.
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 09:51
Ворон226
Kost_irk писал(а): ↑09 дек 2021, 23:15
Еще раз повторю, эксклюзивно порт откройте в своей программе.
Сделал так:
ser = serial.Serial(port='/dev/ttyS0', baudrate=19200, parity=serial.PARITY_ODD, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=1, exclusive=False)
и варианты:
exclusive=True
exclusive=None
Ничего не изменилось...
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 11:23
Kost_irk
А если просто открыть этот порт в minicom, подозрительная активность прекращается?
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 11:32
alex_sar
а что показывает вывод
systemctl list-units --all --type=service --no-pager | grep tty
или вот
systemctl list-units --all | grep ttyS
куда то сюда надо копать. systemd чёго там запускает
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 12:10
Ворон226
Kost_irk писал(а): ↑10 дек 2021, 11:23
А если просто открыть этот порт в minicom, подозрительная активность прекращается?
Нет. Продолжается
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 12:13
Ворон226
alex_sar писал(а): ↑10 дек 2021, 11:32
а что показывает вывод
systemctl list-units --all --type=service --no-pager | grep tty
systemctl list-units --all --type=service --no-pager | grep tty
getty-static.service loaded inactive dead getty on tty2-tty6 if dbus and logind are not available
getty@tty1.service
alex_sar писал(а): ↑10 дек 2021, 11:32или вот
systemctl list-units --all | grep ttyS
куда то сюда надо копать. systemd чёго там запускает
systemctl list-units --all | grep ttyS
dev-ttyS0.device loaded active plugged /dev/ttyS0
dev-ttyS1.device loaded active plugged /dev/ttyS1
dev-ttyS2.device loaded active plugged /dev/ttyS2
dev-ttyS3.device loaded active plugged /dev/ttyS3
sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2
sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3
sys-devices-pnp0-00:02-tty-ttyS0.device loaded active plugged /sys/devices/pnp0/00:02/tty/ttyS0
sys-devices-pnp0-00:03-tty-ttyS1.device loaded active plugged /sys/devices/pnp0/00:03/tty/ttyS1
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 13:40
Kost_irk
Странно, minicom точно блокирует доступ к порту другим программам.
Я так понимаю, у вас 2 com порта? На втором то же самое?
Ну тогда остается только аппаратная прослушка порта. Осциллограф какой есть?
Дополнение: я так понял, что проблемы начались с новой мат.платой. А диск с системой на нее старый переехал?
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 14:20
Ворон226
Kost_irk писал(а): ↑10 дек 2021, 13:40
Осциллограф какой есть?
Дополнение: я так понял, что проблемы начались с новой мат.платой. А диск с системой на нее старый переехал?
Точно! Может на материнку поставить прежний диск и посмотреть? (система заново установленная на новой материнке)
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 10 дек 2021, 14:40
Ворон226
материнка со старым винтом не запустилась
Re: Управление из LinuxCNC через COM-порт (РЕШЕНО)
Добавлено: 11 дек 2021, 12:18
Ворон226
Провел следующую проверку:
Подключил старую материнку с винтом и системой Ubuntu 10.04 и... всё заработало!!!
Выходит нужно отловить какой-то системный процесс в Debian?
Но как?
Перечитал уже кучу ссылок в инете, но по COM-порту практически ничего нет...