Контроллер под LinuxCNC

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

Контроллер под LinuxCNC

Сообщение sinys »

Подскажите, пожалуйста, недорогой контроллер (под 3-4 шаговика) под LinuxCNC с большим количеством пинов на input (нужно хотя бы 4-5) и output (нужно хотя бы 4). В идеале сразу с драйверами на шаговики.
Наверное правильно многоканальный драйвер назвать.

Или быть может существуют какие-то платы расширений для контроллеров где мало i/o пинов?
Последний раз редактировалось sinys 11 сен 2016, 19:01, всего редактировалось 1 раз.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер под LinuxCNC с большим количеством I/O пинов

Сообщение Serg »

Стандартный LPT - это 12 выходов и 5 входов, т.е. 4 шаговика + 4 выхода + 5 входов, т.е. что-то вроде обычной красной/синей платы.
Допонительно можно COM порты задействовать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Контроллер под LinuxCNC с большим количеством I/O пинов

Сообщение torvn77 »

sinys писал(а): недорогой контроллер
"Не дорого" это какая сумма в вашем понимании?
15500 руб за 7i76E будет нормально?
http://www.cnc-box.ru/content/Mesa_7i76%D0%95
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение sinys »

torvn77 писал(а):
sinys писал(а): недорогой контроллер
"Не дорого" это какая сумма в вашем понимании?
15500 руб за 7i76E будет нормально?
http://www.cnc-box.ru/content/Mesa_7i76%D0%95
А LinuxCNC умеет с Ethernet работать? Я просто думал что только с LPT.

Пересмотрел свои требования по 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

Сообщение slooter »

sinys писал(а):Подскажите, пожалуйста, по input: обычно пишут типа: 5 входов для концевых датчиков, но ведь туда не обязательно концевые датчики подключать? можно любой датчик подключить, в том числе оптические датчики?
Еще интересно, если датчик концевой, то кто обрабатывает остановку движения? программа или контроллер
-"Концевой датчик" это назначение датчика, оптический, механический (хоть лазерный или гидравлический) -это принцип работы датчика. На выходе концевика дискретный сигнал (0 или 1), т.е. есть контакт, или его нет. Контроллер он же ПЛК (PLC) сам по себе ничего не обрабатывает без прошивки (программы) следовательно все обрабатывает прошивка, в которой настроены реакции на входные импульсы/каналы/сигналы. (концевик можно эмитировать простым замыканием и размыканием проводков подключенных к соответствующим входам).
sinys писал(а):И как в случае с E-stop кнопкой?
-то же что и с концевиком, только ПЛК рубит весь процесс.
sinys писал(а):Просто не понятно: если контроллер сам все останавливает от концевых датчиков, так ведь там могут быть и не концевые датчики, а другие обрабатываемые программой и не нужно останавливать ничего, а если нажали E-stop и программа обрабатывает его, а не контроллер то может и не случиться аварийной остановки.
-мутно написано, отвечу как понял вопрос. Можно не ставить концевики, и при этом задавать размеры стола, позицию "дом", прописывать их в прошивке, настраивать постоянный мониторинг координат, если шпиндель дойдет до критичной координаты, все встает. Можно вообще их не ставить и ничего не прописывать, просто следить за процессом резки. Кнопка "Стоп" по любому все остановит, если правильно подключена.
sinys писал(а):Можно ли подключить несколько концевых датчиков на 1 вход для экономии входов? С механическими параллельно наверное можно? А с индуктивными?
-зависит от ПЛК, на моем можно, на 3х осях стоит 6концевиков, и все запараллелены на 1вход и gnd.
sinys писал(а):И еще вопрос: если мне нужно 2-3 движка подключить, то можно ли оставшиеся выходы под движки в качестве output использовать как реле?
какие движки? если ШД, то как они будут работать без дров???, если движки на обдув то можно. Выходные сигналы для этого и нужны (для управления внешними устройствами). Логику включения нужно программировать.
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение sinys »

slooter писал(а):[
-"Концевой датчик" это назначение датчика, оптический, механический (хоть лазерный или гидравлический) -это принцип работы датчика. На выходе концевика дискретный сигнал (0 или 1), т.е. есть контакт, или его нет. Контроллер он же ПЛК (PLC) сам по себе ничего не обрабатывает без прошивки (программы) следовательно все обрабатывает прошивка, в которой настроены реакции на входные импульсы/каналы/сигналы. (концевик можно эмитировать простым замыканием и размыканием проводков подключенных к соответствующим входам).
Насколько я себе представлял это работает так.
LinuxCNC шлет одну команду в ПЛК, та её выполняет, дальше опять и так по кругу. Я знаю что есть ПЛК, которые буферезуют команды, но тогда не понятно как реагировать на экстренные сробатывания если они не предусмотрены в программе, соответственно это должно решаться на хардварном уровне. Если программа передается в ПЛК целиком (у ПЛК вроде нет памяти, а программа может быть очень большой), то опять не понятно как оно реагирует на не предусмотренные ситуации. Или я не правильно понимаю и что касается датчиков, то это отдельные под-программы триггеры и они обрабатываются сразу как только наступает срабатывание?

И еще подскажите, как-то реализуется распараллеливание выполнения? типа я говорю одной оси едь медленно, другой едь как можешь скорее (в разных командах то есть) и чтобы не было такого что сначала выполняется одна вещь, а потом другая. Или типа делай то и то последовательно, но вот если сработал датчик, то сценарий теперь другой и нужно прервать основной сценарий. Или это реализуется через постоянный опрос датчиков через каждую строчку основного сценария? (это я уже про софтварную LinuxCNC часть залез).
slooter писал(а):
sinys писал(а):Можно ли подключить несколько концевых датчиков на 1 вход для экономии входов? С механическими параллельно наверное можно? А с индуктивными?
-зависит от ПЛК, на моем можно, на 3х осях стоит 6концевиков, и все запараллелены на 1вход и gnd.
У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?
slooter писал(а): какие движки? если ШД, то как они будут работать без дров???, если движки на обдув то можно. Выходные сигналы для этого и нужны (для управления внешними устройствами). Логику включения нужно программировать.
Там где ШД там понятно через драва, вопрос про использование выходов для дров ШД не для ШД, а для отдачи сигнала во вне (на реле например).
Аватара пользователя
РЕКЛАМА
Почётный участник
Почётный участник
Сообщения: 736
Зарегистрирован: 11 дек 2012, 21:46
Репутация: 80
Откуда: Брянск
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение РЕКЛАМА »

Теоретически, вы можете непосредственно на сам ЛПТ вешать и драйверы, и датчики , и что захотите.
Платы коммутации ничем сами собой управлять не умеют, а служат только чем то вроде фильтра и предохранителя + некоторые удобства типа реле и преобразователей для управления шпинделем. Им вообще по барабану что вы через них будете подключать.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение N1X »

sinys писал(а):LinuxCNC шлет одну команду в ПЛК
Ребят, вы применяете понятия, значений которых не понимаете до конца, отсюда путаница. ПЛК - программируемый логический контроллер. В системе LinuxCNC это ClassicLadder.
То что между станком и компом - либо просто тупая интерфейсная плата, в которой нет вообще никакой программы, либо какая-нибудь программно-апаратная платформа вроде Mesa, которая берет на себя часть низкоуровневых функций LinuxCNC (генераторы шагов, пиды), но функции ПЛК сюда не входят (ну на Мезе можно и их наворотить, там вообще возможностей гора, но в данном случае думаю об этом речи нет)
По входам концевиков - важно понять, что они просто транслируются в управляющую системы, в компьютер, не важно, а дальше полностью его дело как реагировать. Плата - просто почтальон. Единственное что у нее есть физические параметры - напряжение, ток, задержка распространения сигнала, а логика ей пофигу.
Аватара пользователя
slooter
Мастер
Сообщения: 212
Зарегистрирован: 24 авг 2016, 12:23
Репутация: 16
Настоящее имя: Виталий К
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение slooter »

sinys писал(а):Насколько я себе представлял это работает так.
LinuxCNC шлет одну команду в ПЛК, та её выполняет, дальше опять и так по кругу. Я знаю что есть ПЛК, которые буферезуют команды, но тогда не понятно как реагировать на экстренные сробатывания если они не предусмотрены в программе, соответственно это должно решаться на хардварном уровне. Если программа передается в ПЛК целиком (у ПЛК вроде нет памяти, а программа может быть очень большой), то опять не понятно как оно реагирует на не предусмотренные ситуации. Или я не правильно понимаю и что касается датчиков, то это отдельные под-программы триггеры и они обрабатываются сразу как только наступает срабатывание?
зачем тебе эти дебри??? Давай по порядку: в
sinys писал(а):У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?
Зачем тебе эти дебри? Давай по порядку: Верхний уровень - это твой комп, на котором установлена прога управления (не важно какая), средний уровень -это плата управления и дрова, нижний уровень это ШД, концевики и прочая лабула. Входящие сигналы в приоритете (Стоп и концевики уж точно).
sinys писал(а):У тебя какие датчики? механические или индуктивные? И как это зависит от ПЛК? какой там фактор? питание / логика или что? Как узнать вот моя плата будет это поддеживать или нет?
У меня обычные микрики за 15рублей (получается механические). Как узнать? посмотреть схему платы /распиновку платы/.
sinys писал(а):Там где ШД там понятно через драва, вопрос про использование выходов для дров ШД не для ШД, а для отдачи сигнала во вне (на реле например).
ты меня вообще запутал :) повторяю, выходные сигналы нужны для отдачи сигнала "во вне", в большинстве случаем именно через реле. опять же нужно смотреть схему.
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение sinys »

N1X писал(а):
sinys писал(а):LinuxCNC шлет одну команду в ПЛК
По входам концевиков - важно понять, что они просто транслируются в управляющую системы, в компьютер, не важно, а дальше полностью его дело как реагировать. Плата - просто почтальон. Единственное что у нее есть физические параметры - напряжение, ток, задержка распространения сигнала, а логика ей пофигу.
Я не понимаю тогда: цель концевика, как я себе её представляю, не дать разрушить конструкцию. Но если мы говорим движку "ехай очень далеко" (то есть это одна команду), а датчик стоит ближе этого "далеко", то либо мы сшибаем датчик так как у нас еще не выполнилась команда езды, либо команды от датчиков должны обрабатываться отдельным триггером, который остановит основную программу "ехай очень далеко". Вот тут у меня не понимание.
Аватара пользователя
slooter
Мастер
Сообщения: 212
Зарегистрирован: 24 авг 2016, 12:23
Репутация: 16
Настоящее имя: Виталий К
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение slooter »

Вот такая схема нужна, но на твою плату.
Вложения
Electric Wiring Diagram.jpg (5435 просмотров) <a class='original' href='./download/file.php?id=89898&mode=view' target=_blank>Загрузить оригинал (304.9 КБ)</a>
Аватара пользователя
slooter
Мастер
Сообщения: 212
Зарегистрирован: 24 авг 2016, 12:23
Репутация: 16
Настоящее имя: Виталий К
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение slooter »

sinys писал(а):Я не понимаю тогда: цель концевика, как я себе её представляю, не дать разрушить конструкцию. Но если мы говорим движку "ехай очень далеко" (то есть это одна команду), а датчик стоит ближе этого "далеко", то либо мы сшибаем датчик так как у нас еще не выполнилась команда езды, либо команды от датчиков должны обрабатываться отдельным триггером, который остановит основную программу "ехай очень далеко". Вот тут у меня не понимание.
Цель понимаешь правильно, логику работы нет :) ты говоришь ШД -ехай далеко, на пути он встречает концевик, концевик отрабатывает и говорит ШД стой, жди дальнейшие указания, как то так. Друг, не лезь в дебри софта, выбери для себя плату, собери все по схеме, настрой по мануалу и будет счастье :)
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение sinys »

slooter писал(а):концевик отрабатывает и говорит ШД стой
То есть концевик говорит это напрямую в ШД? В обход компа? А если там не концевик, а другой датчик? или должно как-то настраиваться что делать по сигналу от этого входа? и для концевиков мы строго забиваем остановить все в не зависимости от того что делает программа. Так?
slooter писал(а): Друг, не лезь в дебри софта, выбери для себя плату, собери все по схеме, настрой по мануалу и будет счастье :)
Просто не хочется накупить дорогих индуктивных датчиков, а потом чтобы оказалось что у меня применимы только механические ну или наоборот.
Аватара пользователя
slooter
Мастер
Сообщения: 212
Зарегистрирован: 24 авг 2016, 12:23
Репутация: 16
Настоящее имя: Виталий К
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение slooter »

sinys писал(а):То есть концевик говорит это напрямую в ШД? В обход компа? А если там не концевик, а другой датчик? или должно как-то настраиваться что делать по сигналу от этого входа? и для концевиков мы строго забиваем остановить все в не зависимости от того что делает программа. Так?
не все не так, или почти так, общение периферии (ШД, дрова, концевики и др) происходит через верхний уровень, через комп. Ты слишком заморочился на типе концевика. Цель концевика передать инфу на верхний уровень о том, что ШД экстремально близок к раме. Какой тип выбирать дело твое. Еще раз, концевик передает дискретный (0/1, есть/нет) сигнал в комп, а комп останавливает ШД соотвсетствующей оси, либо все ШД по всем осям.
sinys писал(а):Просто не хочется накупить дорогих индуктивных датчиков, а потом чтобы оказалось что у меня применимы только механические ну или наоборот.
лично я не люблю индуктивные/оптические концевики. чаще всего они активные, т.е. их нужно питать.
sinys
Кандидат
Сообщения: 92
Зарегистрирован: 05 сен 2016, 15:43
Репутация: 0
Настоящее имя: Иван Петров
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение sinys »

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

Сообщение slooter »

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

Re: Контроллер под LinuxCNC

Сообщение sinys »

slooter писал(а):sinys » Стопе :) ты сам пишешь код???
Я вообще программистом работаю, но с ЧПУ дело не имел, поэтому надо понимать как это работает там.

Думаю, что мне придется либо самому писать какой-то генератор g-кода для моего станка либо модифицировать, то что другие нагенерили, так как это не классический ЧПУ.
Аватара пользователя
N1X
Мастер
Сообщения: 3653
Зарегистрирован: 16 фев 2015, 21:19
Репутация: 1646
Настоящее имя: Владимир
Откуда: Беларусь, Гомель
Контактная информация:

Re: Контроллер под LinuxCNC

Сообщение N1X »

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

Сообщение slooter »

N1X: +10 за героев!
sinys: что значит не классический? (компоновка осей? механика?) опиши свой станок. И что ты программишь по работе, раз такие траблы с алгоритмом? Я думаю тебе нужно отпустить ситуацию, выбрать платку, найти под нее мануал, и сделать все по чертежу.
Ответить

Вернуться в «Электроника»