Посылать координаты в LinuxCNC

Общие вопросы станкостроения и организиции труда.
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Посылать координаты в LinuxCNC

Сообщение sinys »

Требуется направить в какую сторону копать по теме:
требуется из своей (которую мне предстоит написать) программы перемещать каретку в заданные координаты и в этих координатах шевелить другими другими двигателями и подавать сигналы на релюшки.
Сейчас на компе стоит LinuxCNC (Debian).
Я так понимаю нужно как-то взаимодействовать с LinuxCNC из своей программы.
Какие в LinuxCNC существуют для этого возможности / интерфейсы?
За одно может подскажете на чем лучше писать под Debian (до этого писал под Windows на Delphi).
Аватара пользователя
verser
Мастер
Сообщения: 1895
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение verser »

sinys писал(а):требуется из своей (которую мне предстоит написать) программы перемещать каретку в заданные координаты и в этих координатах шевелить другими другими двигателями и подавать сигналы на релюшки.
LinuxCNC создана от рождения для этих возможностей :). Перечисленные действия можно выполнять прямо из g-code, настроив нужным образом .ini и .hal файлы настроек. Если этого окажется недостаточно, то есть шикарная возможность дополнять функциональность на python.
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение sinys »

verser писал(а):
sinys писал(а):требуется из своей (которую мне предстоит написать) программы перемещать каретку в заданные координаты и в этих координатах шевелить другими другими двигателями и подавать сигналы на релюшки.
LinuxCNC создана от рождения для этих возможностей :). Перечисленные действия можно выполнять прямо из g-code, настроив нужным образом .ini и .hal файлы настроек.
Посредством чего мне можно передать G-code в LinuxCNC?
Может есть какие-то демки?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7480
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3101
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение MX_Master »

Можно использовать компоненты linuxcncrsh и halrmt. С ними можно общаться через обычный stdin/stdout.

http://linuxcnc.org/docs/html/man/man1/ ... rsh.1.html
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Halrmt

Я с помощью них делал веб-интерфейс
http://www.cnc-club.ru/forum/viewtopic. ... 5&p=352004

Писать лучше на С. Ну и собирать c помощью gcc, который есть из коробки. Можно и на питоне, но будет работать чуть медленней.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение nkp »

sinys писал(а):Посредством чего мне можно передать G-code в LinuxCNC?Может есть какие-то демки?
запусти емс
F1,
F2,
Home
запусти отдельный терминал
в нем: затем

Код: Выделить всё

import linuxcnc
c = linuxcnc.command() 
c.mode(linuxcnc.MODE_MDI)
затем

Код: Выделить всё

c.mdi("G0 X10 Z30")
как видно из команды - уедем в X10 Z30
---------------
этот код (подобный конечно) вставляешь в свой скрипт
вот API
http://linuxcnc.org/docs/2.7/html/confi ... rface.html
там всё что нужно
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение sinys »

nkp писал(а):
sinys писал(а):Посредством чего мне можно передать G-code в LinuxCNC?Может есть какие-то демки?
запусти емс
А это обязательно?
То есть если я подключаю
import linuxcnc
то можно туда как-то передать ini (hal или что-то еще) чтобы инициализировать конфигурацию и начать передавать команды или так нельзя?

Если я хочу чтобы на компьютер моего робота человек вообще никак не заходил, а только посылал удаленные вызовы типа "делай раз", "делай два" итд., то
1) правильно ли я понимаю что мне в автозагрузку компьютера моего робота нужно не только мою программу добавить, но и emc? или есть способ его не запускать, а достаточно импортировать в питоне и там как-то передать настройки?

и еще когда я шлю команду у меня выдает ошибку что нельзя слать команды пока не настроены хомы для всех осей.
Собственно вопросы:
2) Как командой задать поиск хома?
3) при каждом включении станка нужно искать хомы?
Аватара пользователя
odekolon
Мастер
Сообщения: 1118
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение odekolon »

на самом деле, можно ВСЕ!
начните с подключения станочка (робота), научитесь им хоть как-то управлять, почитаете документацию, чего-то начнет проясняться, потом будете задавать КОНКРЕТНЫЕ вопросы.
вопрос по home на линуксцнц на форуме, сто раз обсуждался смотрите FAQ
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение sinys »

odekolon писал(а):на самом деле, можно ВСЕ!
начните с подключения станочка (робота), научитесь им хоть как-то управлять, почитаете документацию, чего-то начнет проясняться, потом будете задавать КОНКРЕТНЫЕ вопросы.
вопрос по home на линуксцнц на форуме, сто раз обсуждался смотрите FAQ
Так уже. Я пошел по инструкции, которую постом выше написал nkp и у меня возникли вопросы которые я описал чтобы двигаться дальше.
Аватара пользователя
odekolon
Мастер
Сообщения: 1118
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

Re: Посылать координаты в LinuxCNC

Сообщение odekolon »

вы пока ничего не понимаете в linuxCNC.
почитайте про hal компоненты, попробуйте понять что к чему.
любую задачу можно решить несколькими способами, например ту же команду, можно прописать в ini-файле, а питоном только пин дергать, а можно пин (выполнения команды) подключить к физическому разъему (кнопке) и выполнять команду без всякого питона, а можно подключить микроконтроллер (ардуину) по модбас, и дергать пины по модбасу. Короче вариантов море.
Никто точно не знает что вам нужно, а вы не знаете, что хотите. Учите hal а там видно будет... А тем временем пишите (для себя) четкое ТЗ.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Ответить

Вернуться в «Общие вопросы»