Как управлять AXIS из сторонней программы

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Как управлять AXIS из сторонней программы

Сообщение VVN » 05 май 2020, 02:00

Здравствуйте.
На данный момент задача реализована и все работает, нужно было сделать быстро и делал по принципу, что знаю то и делаю.
Суть задачи, нужно массово программировать устройства на станке.
Вместо шпинделя стоит программатор.
Программа управления программатором на Qt.
Программатор мой у него есть дополнительные порты, которыми я без проблем управляю.
Сейчас, все работает, следующем образом.

С выводами LPT порта связаны пины управления halui
halui.program.run - запускаем программу на исполнение
halui.program.resume — снять программу с паузы
и пины состояния станка
halui.program.is-pause – встали на паузу
halui.program.is-idle - не работаем

Это все заведено на плату программатора, который может запустить станок и считывает текущее состояние программы.
В AXIS загружается примитивная УП, которая работает по принципу.
Поехали в точку, опустили иголки программатора, встали на паузу.
Программатор считал состояние, halui.program.is-pause, делает свои дела.
Затем выдает сигнал, halui.program.resume, программа идет дальше.
И так по кругу.
Еще раз говорю, что сделал так как описал ибо, нужно было быстро и я знал это будет работать, сейчас хочу восполнить пробелы знаний.

Можно ли каким либо образом избавиться от дерганья пинами на LPT.
Как программно, из моей программы, сказать AXIS, сделать какие либо действия.
Самое главное, как считать состояние исполнения программы.
Подскажите направление.
VVN
Новичок
 
Сообщения: 16
Зарегистрирован: 10 мар 2019, 22:57
Откуда: Энергодар, Украина
Репутация: 0
Настоящее имя: Вадим

Re: Как управлять AXIS из сторонней программы

Сообщение UAVpilot » 05 май 2020, 02:28

В комплекте есть библиотека, которой можно пользоваться из C, python и т.п.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 20268
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4854
Заслуга: c781c134843e0c1a3de9
Медальки:
Настоящее имя: Сергей

Re: Как управлять AXIS из сторонней программы

Сообщение VVN » 05 май 2020, 10:17

UAVpilot писал(а):В комплекте есть библиотека, которой можно пользоваться из C, python и т.п.


Если не трудно ткните носом.
Как называется сия библиотека?
Есть ли где примеры?

И еще вопросец.
Где исходники того начального, main, с которого происходит запуск.
Другими словами где парситься запускаемый файл *.ini
Вот это - linuxcnc '/*.ini'

Ковыряюсь в исходниках, но пока туго с пониманием.
VVN
Новичок
 
Сообщения: 16
Зарегистрирован: 10 мар 2019, 22:57
Откуда: Энергодар, Украина
Репутация: 0
Настоящее имя: Вадим

Re: Как управлять AXIS из сторонней программы

Сообщение MX_Master » 05 май 2020, 12:37

Аватара пользователя
MX_Master
Мастер
 
Сообщения: 5833
Зарегистрирован: 27 июн 2015, 19:45
Откуда: Алма-Ата
Репутация: 2602
Медальки:
Настоящее имя: Миша

Re: Как управлять AXIS из сторонней программы

Сообщение UAVpilot » 05 май 2020, 15:16

VVN писал(а):Как называется сия библиотека?

liblinuxcnc
liblinuxcnchal
liblinuxcncini

VVN писал(а):Есть ли где примеры?

Да, сам LinuxCNC. :) Начать можно с python.

VVN писал(а):Где исходники того начального, main, с которого происходит запуск.

Их там несколько, LinuxCNC - это несколько параллельных процессов.

VVN писал(а):Другими словами где парситься запускаемый файл *.ini

В библиотеке, см. выше. :)

VVN писал(а):Ковыряюсь в исходниках, но пока туго с пониманием.

Это трудный и неправильный способ. Сначала нужно понять сам LinuxCNC, доки этому хорошо способствуют.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 20268
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4854
Заслуга: c781c134843e0c1a3de9
Медальки:
Настоящее имя: Сергей

Re: Как управлять AXIS из сторонней программы

Сообщение VVN » 05 май 2020, 21:52

UAVpilot писал(а):
VVN писал(а):Ковыряюсь в исходниках, но пока туго с пониманием.

Это трудный и неправильный способ. Сначала нужно понять сам LinuxCNC, доки этому хорошо способствуют.

Мы, не ищем, легких путей. ;)
Читаю, и уже есть некоторое понимание.
Общий принцип понятен, механизмы взаимодействия тоже, но там же очень много нюансов. Нельзя прочитав одни доки на столь обширную систему сразу все понять. Нужно смотреть как это сделано, благо исходники есть. Изучая подобные системы все равно остается много неясностей, иногда одна вскользь брошенная фраза ставит в голове все на места. Поэтому и спрашиваю здесь.

UAVpilot писал(а):
VVN писал(а):Есть ли где примеры?

Да, сам LinuxCNC. :) Начать можно с python.


Эхе хе питон, а как без питона, как на С.
У меня основная программа на Qt, из нее вроде можно вызвать питоновский скрипт, но не разу такого не делал.
Да и питоном разбираться особо не хочется.

UAVpilot писал(а):
VVN писал(а):Где исходники того начального, main, с которого происходит запуск.

Их там несколько, LinuxCNC - это несколько параллельных процессов.

Не но есть же начальная точка отсчета, откуда все остальное строиться.

UAVpilot писал(а):liblinuxcnc
liblinuxcnchal
liblinuxcncini


Это наверное может помочь "отцу русской демократии", нужны примеры.

Рассматривал сегодня файл halui.cc.

В принципе это шаблон для создания своего компонента.
Через halui пины, у меня сейчас все работает.
Вопрос за малым, как дернуть за пин из сторонней программы, причем без питона, на С.
VVN
Новичок
 
Сообщения: 16
Зарегистрирован: 10 мар 2019, 22:57
Откуда: Энергодар, Украина
Репутация: 0
Настоящее имя: Вадим

Re: Как управлять AXIS из сторонней программы

Сообщение aekhv » 06 май 2020, 03:39

VVN писал(а):Да и питоном разбираться особо не хочется.

Не реклама! Вот недавно прикупил себе, изучаю: https://www.litres.ru/pol-berri/izuchae ... -25562287/

Для начинающих чайников (таких как я) очень доходчиво и интересно написано. Но КьюТи всё равно не брошу, потому что он хороший. :hehehe: :good:
Аватара пользователя
aekhv
Мастер
 
Сообщения: 338
Зарегистрирован: 17 окт 2014, 15:03
Откуда: г.Хабаровск
Репутация: 189
Медальки:
Настоящее имя: Александр


Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: Antony_, Александр_, Bing [Bot], daemon78, Enot_1, evgenymcp, ex71, Gestap, Google [Bot], kens, MGG, Nikomas, niksooon, pegas13, sima8520, uralpt, Yandex [bot], yurayerz, ДмитрийП, Леонид Владимирович, шпиндель

Reputation System ©'