Контроллер под LinuxCNC
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Контроллер под LinuxCNC
Подскажите, пожалуйста, недорогой контроллер (под 3-4 шаговика) под LinuxCNC с большим количеством пинов на input (нужно хотя бы 4-5) и output (нужно хотя бы 4). В идеале сразу с драйверами на шаговики.
Наверное правильно многоканальный драйвер назвать.
Или быть может существуют какие-то платы расширений для контроллеров где мало i/o пинов?
Наверное правильно многоканальный драйвер назвать.
Или быть может существуют какие-то платы расширений для контроллеров где мало i/o пинов?
Последний раз редактировалось sinys 11 сен 2016, 19:01, всего редактировалось 1 раз.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Контроллер под LinuxCNC с большим количеством I/O пинов
Стандартный LPT - это 12 выходов и 5 входов, т.е. 4 шаговика + 4 выхода + 5 входов, т.е. что-то вроде обычной красной/синей платы.
Допонительно можно COM порты задействовать.
Допонительно можно COM порты задействовать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- torvn77
- Мастер
- Сообщения: 2442
- Зарегистрирован: 02 июн 2012, 22:12
- Репутация: 215
- Откуда: Россия,Санкт-Петербург
- Контактная информация:
Re: Контроллер под LinuxCNC с большим количеством I/O пинов
"Не дорого" это какая сумма в вашем понимании?sinys писал(а): недорогой контроллер
15500 руб за 7i76E будет нормально?
http://www.cnc-box.ru/content/Mesa_7i76%D0%95
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
А LinuxCNC умеет с Ethernet работать? Я просто думал что только с LPT.torvn77 писал(а):"Не дорого" это какая сумма в вашем понимании?sinys писал(а): недорогой контроллер
15500 руб за 7i76E будет нормально?
http://www.cnc-box.ru/content/Mesa_7i76%D0%95
Пересмотрел свои требования по output до 2х.
Подскажите, пожалуйста, по input: обычно пишут типа: 5 входов для концевых датчиков, но ведь туда не обязательно концевые датчики подключать? можно любой датчик подключить, в том числе оптические датчики?
Еще интересно, если датчик концевой, то кто обрабатывает остановку движения? программа или контроллер?
И как в случае с E-stop кнопкой?
Просто не понятно: если контроллер сам все останавливает от концевых датчиков, так ведь там могут быть и не концевые датчики, а другие обрабатываемые программой и не нужно останавливать ничего, а если нажали E-stop и программа обрабатывает его, а не контроллер то может и не случиться аварийной остановки.
Можно ли подключить несколько концевых датчиков на 1 вход для экономии входов? С механическими параллельно наверное можно? А с индуктивными?
И еще вопрос: если мне нужно 2-3 движка подключить, то можно ли оставшиеся выходы под движки в качестве output использовать как реле?
Пока что прикид такой у меня получился:
Драйвера и плата отдельно:
плата
https://www.aliexpress.com/item/6-Axis- ... 052307c5a7
драйвер
https://www.aliexpress.com/item/TB6600- ... 269.vTqEOF
под вот такие двигатели
http://ivcnc.ru/index.php/kategorii/product/view/95/58
из плат еще варианты
http://www.purelogic.ru/files/downloads ... /plc5x.pdf
http://www.npoatom.ru/katalog/kontrollery/gb4/
Знаю что драйвера бывают гораздо лучше, но мне для домашних поделок надеюсь пойдет? Лишбы не пропускали сигналы и не дергались.
По плате пока склоняюсь к варианту с али, так как дешевле и 3 реле, но я не разбераюсь, может у Purelogic или нпо атом есть какие-то плюсы перед китайской? Расскажите, пожалуйста.
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
-"Концевой датчик" это назначение датчика, оптический, механический (хоть лазерный или гидравлический) -это принцип работы датчика. На выходе концевика дискретный сигнал (0 или 1), т.е. есть контакт, или его нет. Контроллер он же ПЛК (PLC) сам по себе ничего не обрабатывает без прошивки (программы) следовательно все обрабатывает прошивка, в которой настроены реакции на входные импульсы/каналы/сигналы. (концевик можно эмитировать простым замыканием и размыканием проводков подключенных к соответствующим входам).sinys писал(а):Подскажите, пожалуйста, по input: обычно пишут типа: 5 входов для концевых датчиков, но ведь туда не обязательно концевые датчики подключать? можно любой датчик подключить, в том числе оптические датчики?
Еще интересно, если датчик концевой, то кто обрабатывает остановку движения? программа или контроллер
-то же что и с концевиком, только ПЛК рубит весь процесс.sinys писал(а):И как в случае с E-stop кнопкой?
-мутно написано, отвечу как понял вопрос. Можно не ставить концевики, и при этом задавать размеры стола, позицию "дом", прописывать их в прошивке, настраивать постоянный мониторинг координат, если шпиндель дойдет до критичной координаты, все встает. Можно вообще их не ставить и ничего не прописывать, просто следить за процессом резки. Кнопка "Стоп" по любому все остановит, если правильно подключена.sinys писал(а):Просто не понятно: если контроллер сам все останавливает от концевых датчиков, так ведь там могут быть и не концевые датчики, а другие обрабатываемые программой и не нужно останавливать ничего, а если нажали E-stop и программа обрабатывает его, а не контроллер то может и не случиться аварийной остановки.
-зависит от ПЛК, на моем можно, на 3х осях стоит 6концевиков, и все запараллелены на 1вход и gnd.sinys писал(а):Можно ли подключить несколько концевых датчиков на 1 вход для экономии входов? С механическими параллельно наверное можно? А с индуктивными?
какие движки? если ШД, то как они будут работать без дров???, если движки на обдув то можно. Выходные сигналы для этого и нужны (для управления внешними устройствами). Логику включения нужно программировать.sinys писал(а):И еще вопрос: если мне нужно 2-3 движка подключить, то можно ли оставшиеся выходы под движки в качестве output использовать как реле?
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
Насколько я себе представлял это работает так.slooter писал(а):[
-"Концевой датчик" это назначение датчика, оптический, механический (хоть лазерный или гидравлический) -это принцип работы датчика. На выходе концевика дискретный сигнал (0 или 1), т.е. есть контакт, или его нет. Контроллер он же ПЛК (PLC) сам по себе ничего не обрабатывает без прошивки (программы) следовательно все обрабатывает прошивка, в которой настроены реакции на входные импульсы/каналы/сигналы. (концевик можно эмитировать простым замыканием и размыканием проводков подключенных к соответствующим входам).
LinuxCNC шлет одну команду в ПЛК, та её выполняет, дальше опять и так по кругу. Я знаю что есть ПЛК, которые буферезуют команды, но тогда не понятно как реагировать на экстренные сробатывания если они не предусмотрены в программе, соответственно это должно решаться на хардварном уровне. Если программа передается в ПЛК целиком (у ПЛК вроде нет памяти, а программа может быть очень большой), то опять не понятно как оно реагирует на не предусмотренные ситуации. Или я не правильно понимаю и что касается датчиков, то это отдельные под-программы триггеры и они обрабатываются сразу как только наступает срабатывание?
И еще подскажите, как-то реализуется распараллеливание выполнения? типа я говорю одной оси едь медленно, другой едь как можешь скорее (в разных командах то есть) и чтобы не было такого что сначала выполняется одна вещь, а потом другая. Или типа делай то и то последовательно, но вот если сработал датчик, то сценарий теперь другой и нужно прервать основной сценарий. Или это реализуется через постоянный опрос датчиков через каждую строчку основного сценария? (это я уже про софтварную LinuxCNC часть залез).
У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?slooter писал(а):-зависит от ПЛК, на моем можно, на 3х осях стоит 6концевиков, и все запараллелены на 1вход и gnd.sinys писал(а):Можно ли подключить несколько концевых датчиков на 1 вход для экономии входов? С механическими параллельно наверное можно? А с индуктивными?
Там где ШД там понятно через драва, вопрос про использование выходов для дров ШД не для ШД, а для отдачи сигнала во вне (на реле например).slooter писал(а): какие движки? если ШД, то как они будут работать без дров???, если движки на обдув то можно. Выходные сигналы для этого и нужны (для управления внешними устройствами). Логику включения нужно программировать.
- РЕКЛАМА
- Почётный участник

- Сообщения: 736
- Зарегистрирован: 11 дек 2012, 21:46
- Репутация: 80
- Откуда: Брянск
- Контактная информация:
Re: Контроллер под LinuxCNC
Теоретически, вы можете непосредственно на сам ЛПТ вешать и драйверы, и датчики , и что захотите.
Платы коммутации ничем сами собой управлять не умеют, а служат только чем то вроде фильтра и предохранителя + некоторые удобства типа реле и преобразователей для управления шпинделем. Им вообще по барабану что вы через них будете подключать.
Платы коммутации ничем сами собой управлять не умеют, а служат только чем то вроде фильтра и предохранителя + некоторые удобства типа реле и преобразователей для управления шпинделем. Им вообще по барабану что вы через них будете подключать.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Контроллер под LinuxCNC
Ребят, вы применяете понятия, значений которых не понимаете до конца, отсюда путаница. ПЛК - программируемый логический контроллер. В системе LinuxCNC это ClassicLadder.sinys писал(а):LinuxCNC шлет одну команду в ПЛК
То что между станком и компом - либо просто тупая интерфейсная плата, в которой нет вообще никакой программы, либо какая-нибудь программно-апаратная платформа вроде Mesa, которая берет на себя часть низкоуровневых функций LinuxCNC (генераторы шагов, пиды), но функции ПЛК сюда не входят (ну на Мезе можно и их наворотить, там вообще возможностей гора, но в данном случае думаю об этом речи нет)
По входам концевиков - важно понять, что они просто транслируются в управляющую системы, в компьютер, не важно, а дальше полностью его дело как реагировать. Плата - просто почтальон. Единственное что у нее есть физические параметры - напряжение, ток, задержка распространения сигнала, а логика ей пофигу.
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
зачем тебе эти дебри??? Давай по порядку: вsinys писал(а):Насколько я себе представлял это работает так.
LinuxCNC шлет одну команду в ПЛК, та её выполняет, дальше опять и так по кругу. Я знаю что есть ПЛК, которые буферезуют команды, но тогда не понятно как реагировать на экстренные сробатывания если они не предусмотрены в программе, соответственно это должно решаться на хардварном уровне. Если программа передается в ПЛК целиком (у ПЛК вроде нет памяти, а программа может быть очень большой), то опять не понятно как оно реагирует на не предусмотренные ситуации. Или я не правильно понимаю и что касается датчиков, то это отдельные под-программы триггеры и они обрабатываются сразу как только наступает срабатывание?
Зачем тебе эти дебри? Давай по порядку: Верхний уровень - это твой комп, на котором установлена прога управления (не важно какая), средний уровень -это плата управления и дрова, нижний уровень это ШД, концевики и прочая лабула. Входящие сигналы в приоритете (Стоп и концевики уж точно).sinys писал(а):У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?
У меня обычные микрики за 15рублей (получается механические). Как узнать? посмотреть схему платы /распиновку платы/.sinys писал(а):У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?
ты меня вообще запуталsinys писал(а):Там где ШД там понятно через драва, вопрос про использование выходов для дров ШД не для ШД, а для отдачи сигнала во вне (на реле например).
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
Я не понимаю тогда: цель концевика, как я себе её представляю, не дать разрушить конструкцию. Но если мы говорим движку "ехай очень далеко" (то есть это одна команду), а датчик стоит ближе этого "далеко", то либо мы сшибаем датчик так как у нас еще не выполнилась команда езды, либо команды от датчиков должны обрабатываться отдельным триггером, который остановит основную программу "ехай очень далеко". Вот тут у меня не понимание.N1X писал(а):По входам концевиков - важно понять, что они просто транслируются в управляющую системы, в компьютер, не важно, а дальше полностью его дело как реагировать. Плата - просто почтальон. Единственное что у нее есть физические параметры - напряжение, ток, задержка распространения сигнала, а логика ей пофигу.sinys писал(а):LinuxCNC шлет одну команду в ПЛК
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
Цель понимаешь правильно, логику работы нетsinys писал(а):Я не понимаю тогда: цель концевика, как я себе её представляю, не дать разрушить конструкцию. Но если мы говорим движку "ехай очень далеко" (то есть это одна команду), а датчик стоит ближе этого "далеко", то либо мы сшибаем датчик так как у нас еще не выполнилась команда езды, либо команды от датчиков должны обрабатываться отдельным триггером, который остановит основную программу "ехай очень далеко". Вот тут у меня не понимание.
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
То есть концевик говорит это напрямую в ШД? В обход компа? А если там не концевик, а другой датчик? или должно как-то настраиваться что делать по сигналу от этого входа? и для концевиков мы строго забиваем остановить все в не зависимости от того что делает программа. Так?slooter писал(а):концевик отрабатывает и говорит ШД стой
Просто не хочется накупить дорогих индуктивных датчиков, а потом чтобы оказалось что у меня применимы только механические ну или наоборот.slooter писал(а): Друг, не лезь в дебри софта, выбери для себя плату, собери все по схеме, настрой по мануалу и будет счастье![]()
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
не все не так, или почти так, общение периферии (ШД, дрова, концевики и др) происходит через верхний уровень, через комп. Ты слишком заморочился на типе концевика. Цель концевика передать инфу на верхний уровень о том, что ШД экстремально близок к раме. Какой тип выбирать дело твое. Еще раз, концевик передает дискретный (0/1, есть/нет) сигнал в комп, а комп останавливает ШД соотвсетствующей оси, либо все ШД по всем осям.sinys писал(а):То есть концевик говорит это напрямую в ШД? В обход компа? А если там не концевик, а другой датчик? или должно как-то настраиваться что делать по сигналу от этого входа? и для концевиков мы строго забиваем остановить все в не зависимости от того что делает программа. Так?
лично я не люблю индуктивные/оптические концевики. чаще всего они активные, т.е. их нужно питать.sinys писал(а):Просто не хочется накупить дорогих индуктивных датчиков, а потом чтобы оказалось что у меня применимы только механические ну или наоборот.
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
У меня просто диссонанс между инфой.slooter писал(а): не все не так, или почти так, общение периферии (ШД, дрова, концевики и др) происходит через верхний уровень, через комп. Ты слишком заморочился на типе концевика. Цель концевика передать инфу на верхний уровень о том, что ШД экстремально близок к раме. Какой тип выбирать дело твое. Еще раз, концевик передает дискретный (0/1, есть/нет) сигнал в комп, а комп останавливает ШД соотвсетствующей оси, либо все ШД по всем осям.
Вот пример псевдокода:
строка 1: Ехай по X очень далеко
строка 2: проверь датчики
строка 3: ехай в другое место
датчик срабатывает еще когда выполняется строка 1, соответственно когда дойдем до строки 2 уже будет авария.
Либо датчики должны обрабатываться в другом потоке чтобы тот поток мог прервать основной поток программы. - так?
Или выполнение программы происходит по другому: типа отправили строку 1 на выполнение, переходим к строке 2, в цикле ждем пока отработает строка и мониторим датчики с этим и потом переходим к строке 3. - так?
Последний раз редактировалось sinys 12 сен 2016, 09:24, всего редактировалось 1 раз.
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
sinys » Стопе
ты сам пишешь код???
-
sinys
- Кандидат
- Сообщения: 92
- Зарегистрирован: 05 сен 2016, 15:43
- Репутация: 0
- Настоящее имя: Иван Петров
- Контактная информация:
Re: Контроллер под LinuxCNC
Я вообще программистом работаю, но с ЧПУ дело не имел, поэтому надо понимать как это работает там.slooter писал(а):sinys » Стопеты сам пишешь код???
Думаю, что мне придется либо самому писать какой-то генератор g-кода для моего станка либо модифицировать, то что другие нагенерили, так как это не классический ЧПУ.
- N1X
- Мастер
- Сообщения: 3653
- Зарегистрирован: 16 фев 2015, 21:19
- Репутация: 1646
- Настоящее имя: Владимир
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Контроллер под LinuxCNC
Ты просто сам придумал свою логику, которая не имеет ничего общего с реальностью, отсюда проблемыsinys писал(а): У меня просто диссонанс между инфой.
Вот пример псевдокода:
строка 1: Ехай по X очень далеко
строка 2: проверь датчики
строка 3: ехай в другое место
ЧПУ ничего не говорит движку. ЧПУ состоит из интерпретатора кода, планировщика траектории, генератора шагов, может я еще чего-то пропустил. Так вот это планировщик скажет генератору, что "я хочу туда". Генератор не дурак, он знает текущую координату, знает текущую скорость, знает допустимое ускорение, знает, да дохера он знает. Запускается модуль генератора как и все в системе реального времени по очереди, каждому модулю отведен квант времени. И когда генератору отдается процессорное время он считает все свои входные данные и решит, пора уже шагать, или не пора. Если пора и можно (а можно - это значит есть сигнал разрешения работы), то он выдаст сигнал на шаг. Один шаг (у нас же как в героях меча и магии - за один квант времени нелзя шагнуть два раза (да, там бывает можно, но упростим), можно только либо шагнуть, либо нет). Квант времени -миллисекунда, может чутка больше, вот простому тормозному человеку и кажется, что станок "едет далеко", на самом деле он двигается мааааленькими шажочками. Если в очередной квант времени генератор шагов увидит, что разрешение работы для него отсутствуют - суши весла. Ему уже плевать что говорит планировщик траектории. Дальше никуда не поедем. Даже если не доехали - генераация шагов прекращается.
Кое-где упростил, но суть на пальцах...
Не знаю только зачем тебе это, если ты тип концевика выбираешь? Как уже сказали - главное, чтобы он сигнал выдал.
Последний раз редактировалось N1X 12 сен 2016, 09:42, всего редактировалось 1 раз.
- РЕКЛАМА
- Почётный участник

- Сообщения: 736
- Зарегистрирован: 11 дек 2012, 21:46
- Репутация: 80
- Откуда: Брянск
- Контактная информация:
Re: Контроллер под LinuxCNC
Перед работой, при запуске станок едет медленно до датчиков "home", наезжает на них, съезжает, и запоминает что дальше ехать нельзя. И он дальше и не поедет, какие-бы вы ему координаты "далеко" не задали.
- slooter
- Мастер
- Сообщения: 212
- Зарегистрирован: 24 авг 2016, 12:23
- Репутация: 16
- Настоящее имя: Виталий К
- Контактная информация:
Re: Контроллер под LinuxCNC
N1X: +10 за героев!
sinys: что значит не классический? (компоновка осей? механика?) опиши свой станок. И что ты программишь по работе, раз такие траблы с алгоритмом? Я думаю тебе нужно отпустить ситуацию, выбрать платку, найти под нее мануал, и сделать все по чертежу.
sinys: что значит не классический? (компоновка осей? механика?) опиши свой станок. И что ты программишь по работе, раз такие траблы с алгоритмом? Я думаю тебе нужно отпустить ситуацию, выбрать платку, найти под нее мануал, и сделать все по чертежу.