"Мозги" cnc-контроллеров, драйверы, совместимость

Vitaly

Не надо выяснять отношения.

to Художник:

  1. Научитесь пользоваться цитатами. В форуме есть хелп, ваши сообщения читать неудобно.

  2. Давайте предполагать, что здесь собрались не идиоты, а разработчики, поэтому базовые представления у всех есть. Я не просил комментировать мои отдельные фразы, тем более информацией, которой навалом в свободном доступе, и которую я и так знаю. Перед тем как задавать вопросы, я вообще-то что-то почитал, и спрашиваю не просто так. Не хочется, чтобы данная тема перемежалась огромным количеством воды, как на sapr-овском сайте. Пожалуйста, если у вас есть идеи по другим направлениям, создайте отдельную тему.

Пожалуйста, читайте мои вопросы более внимательно, я трачу время не для того, чтобы просто поболтать по душам, а чтобы выяснить вполне конкретные вещи.

Суть вопросов сводится к тому, чтобы узнать, есть ли какие-нибудь широко поддерживаемые СТАНТАРТЫ обмена, которые ПОДДЕРЖИВАЮТСЯ большинством производителей софта. Или к которым хотя-бы несложно дописать драйверы, обеспечив необходимую совместимость.

Стандарты интересуют более “низкоуровневые”, чем G-Code, чтобы можно было сделать относительно простой и недорогой контроллер для hobby-CNC. Зачем вообще делать если есть LPT - чтобы в виндах было меньше требований к железу.

Я особо подчеркиваю, что меня не интересует создание целиком законченного ни с чем не совместимого комплекса, и разглагольствования на эту тему. Надо дешево, сердито, но СОВМЕСТИМО хотя бы с некоторым количеством имеющегося хорошего софта.

Художник
Sergei-md:

Как ты думаешь, кому надо всё то, что ты здесь написал?

Тебе точно не надо.

Добавлено

Vitaly,

«Научитесь пользоваться цитатами. В форуме есть хелп, ваши сообщения читать неудобно.»

Цитатами я пользоваться умею. (См. предыдущий топик) но они много места занимают, и мне с ними работать неудобно.

«Давайте предполагать, что здесь собрались не идиоты, а разработчики, поэтому базовые представления у всех есть. Я не просил комментировать мои отдельные фразы, тем более информацией, которой навалом в свободном доступе, и которую я и так знаю.»

Извините, если задела форма подачи информации. Я искренне пытался поделиться своим личным опытом, по мере возможности ответить на вопросы. Если знаешь ответ, зачем задавать вопрос?

«Надо дешево, сердито, но СОВМЕСТИМО хотя бы с некоторым количеством имеющегося хорошего софта.»

Удачи.

Добавлено

Sergei-md:

Без обид, просто надоело читать этот трёп.
А здесь ты очень сильно ошибаешся. Не только получиться, а реально работает и очень качественно.

Интересно, поделитесь опытом, как у вас под виндой с LPT управление непосредственно приводами по нескольким координатам получается. Покажите, расскажите, как сие удалось?

monkeypaw
Художник

Интересно, поделитесь опытом, как у вас под виндой с LPT управление непосредственно приводами по нескольким координатам  получается. Покажите, расскажите, как сие удалось?

а в чем тут проблема?
нормальная простейшая связка l297-l298 на входе хотит направление и шаг, тобишь два бита. одновременно получить на порту их 6 для 3 координат соответсвенно - непроблема. даже еще немножко остается для прочих более других действий.
проблемы могут быть лишь только со скоростью и задержками при перемещении инструмента в целом, сразу по всем координатам.
но насколько я понимаю, медленно - не быстро. инструмент вне опасности. замедление может быть действительно вредным лишь тогда, когда нужно четко соблюсти параметры реза, например, материал попадется какой хитрый, который вдруг наплавляться начнет или еще там чего…
тем более, что это будет существенно, если компьютер не замедлится на пару шагов из-за какого-нить стандартного прерывания, а тормознет по полной, на секунду - другую, что случается нечасто и в исключиетельных ситуациях.
этого можно легко избежать, правильно настроив систему и отключив ненужные программы. что сделать гораздо проще, нежели городить шибко интеллектуальные контроллеры с usb или даже rs.
даже если проблема или влом постоянно менять профили загрузки , то цена подержанного компьютера все одно приближается цене контроллера, (ну или времени потраченного на его разработку и т.п.).
т.о. основной практический смысл контроллера для хобби cnc - удовольствие от его мастерения.
если неправ - бейте подсвечниками, все на пользу пойдет 😉

toxa
monkeypaw

этого можно легко избежать, правильно настроив систему и отключив ненужные программы. что сделать гораздо проще, нежели городить шибко интеллектуальные контроллеры с usb или даже rs.

шибко умный никто делать не собирается. задача лишь сделать так, чтобы система работала вне зависимости от того, тормознул компьютер или нет, успевают шаговые двигатели за тем, что выдает компьютер в lpt или нет. а винды настраивать - это же шаманство, все равно нельзя избежать этих проблем, такая уж технология. cлишком примитивно - тоже плохо.

sergios
Sergei-md:

Уважаемый Художник!

Чесно говоря, у меня такое впечетление, что здесь на форуме, и не только в этой теме, у тебя одна задача:
ПОКАЗАТЬ КАКОЙ ТЫ УМНЫЙ И ЗАПУДРИТЬ ВСЕМ МОЗГИ СВОЕЙ ОБРАЗОВАНОСТЬЮ.

Как ты думаешь, кому надо всё то, что ты здесь написал?

Здесь стараються многие на практике собрать HOBBY CNC, Подчёркиваю “HOBBY”!!!

И кому нужны все эти USB и RS 232 114 Кбод/с и другая мозготрёпка с быстродействием,  когда уже свё отлично работает на LPT порту.

За бугром многие проф контролеры делают на LPT и не собираются переходить на другой стандарт, а ты грузишь всёх разной х…й.

LPT - Просто, надёжно, доступно а главное дёшего!!!

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

Без обид, просто надоело читать этот трёп.
А здесь ты очень сильно ошибаешся. Не только получиться, а реально работает и очень качественно.

ПОДДЕРЖИВАЮ!!! НЕ НАДО УСЛОЖНЯТЬ ТО, ЧТО ВСЕ ПЫТАЮТСЯ СДЕЛАТЬ ПРОЩЕ
😈

Добавлено

всётаки решил взяться и разработать "человеческий " вариант на l297-298. но хотел бы убрать ненужные перемычки, что бы не усложнять pcb. 😃
поэтому кто может поделиться опытом (реальным) эксплуатации подобного драйвера прошу ответить на пару вопросов.

  1. в каком режиме эксплуатируете: полно - или полушаговом? почему?

  2. на вход “CONTROL” l297 подаёте высокий или низкий уровень сигнала? и вообще изменяется ли что-то в работе при том или ином уровне сигнала. (этот вход определяет как проходит шим модуляция по фазам или разрешающим сигналам самих мостов.)
    буду очень признателен, хотя бы за частичную информацию. разведённую pcb и схему выложу потом на форуме. 😎

monkeypaw

toxa, ну сорри, но я в любом случае не вижу в упор проблемы.

в виндоус шаманить не надо особо.
достаточно из стартап меню и из регистри запуск всяких хитроумных программ, которые будут вешать машину надолго. ну или убить их в списке процессов.
если эти программы неспециальные, и не работают с нестандартными устройстванми то их и убирать сособо не понадобится.
также, соблюдать такие простейшие вещи, как не работать с дискетками или лазерным приводом (особенно со сбойными дисками) и не звонить по винмодему когда запущен станок.
ну на вирусов может провериться… все. что еще кроме собоев в аппаратной части может тормознуть машину, не представляю.
все описанное в любом случае проще, чем платы паять и программировать микропроцессоры.

успевают шаговые двигатели за тем, что выдает компьютер в lpt или нет

  • контроллер плюсов тут не даст. это, вообщето, забота компьютера и здравого смысла. без обратной связи с декодером все равно придется тот же контроллер настраивать под тип и экземпляр шд. а то еще смазочка просохнет или пара винтовая засорится, скользить хуже начнет…
    а вот то, что тормознется все немножко - ну скажите, кто видит в этом серьезную проблему, если на обработку потратится времени на пару процентов больше чем (ээ… ктото чтото планировал? 😉) )? минута туда - минута сюда…
    насчет небольших отклонений в параметре реза при изменении скорости - будет ли это играть роль при хоббийных то точности, люфтах, шпинделе и жесткости конструкции.

насчет примитивности. какраз даже просто связка 297-298 хоть и примитивна, но может проблем доставить, с той же помехозащишенностью. мой вон макетный контроллер работать работает, но если к некоторым цепям палец приложить, то двигатель начианет крутиться, думаю шагов 50 в секунду гдето. 😉
опять же программы, те что я видел, вроде как работают сразу на порт и дают направление-шаг. какраз под эту связку. и даже, по слухам, есть какието драйвера которые переводят работу с портом в реалтайм. но я в этом направлении не копал, честно говоря, и было это год-два назад. а сейчас в связи популярностью темы, может еще чего эдакого придумали.

кстати , вопрос. какие идеи есть на предмет необходимости ручного управления с пульта кроме кнопок направлений? ну и еще парочки, скажем, задать скорость перемещения. для таких элементарных вещей собственно и схему почти не нужно усложнять, все делается на коммутаторе из кнопок.
в каких случаях может потребоваться чтото более сложное?

вобщем каждый, ессно, делает как ему нравится, пока я для себя решил так. вначале делается все максимально просто. главное чтоб работало.
если что-то вдруг по каким-то причинам не будет устраивать, тогда уже можно и переделать или собрать новый контроллер. хотя буржуи давно понаделали себе станков на L29x, режут всякую галантерею и не жужжат. 😉

sergios, а что, ни один готовый не устроил? даже пару лет назад в интеренете их вроде как десятки лежали…

sergios
monkeypaw:

toxa, ну сорри, но я в любом случае не вижу в упор проблемы.

в виндоус шаманить не надо особо.
достаточно из стартап меню и из регистри запуск всяких хитроумных программ, которые будут вешать машину надолго. ну или убить их в списке процессов.
если эти программы неспециальные, и не работают с нестандартными устройстванми то их и убирать сособо не понадобится.
также, соблюдать такие простейшие вещи, как не работать с дискетками или лазерным приводом (особенно со сбойными дисками) и не звонить по винмодему когда запущен станок.
ну на вирусов может провериться… все. что еще кроме собоев в аппаратной части может тормознуть машину, не представляю.
все описанное в любом случае проще, чем платы паять и программировать микропроцессоры.

успевают шаговые двигатели за тем, что выдает компьютер в lpt или нет

  • контроллер плюсов тут не даст. это, вообщето, забота компьютера и здравого смысла. без обратной связи с декодером все равно придется тот же контроллер настраивать под тип и экземпляр шд. а то еще смазочка просохнет или пара винтовая засорится, скользить хуже начнет…
    а вот то, что тормознется все немножко - ну скажите, кто видит в этом серьезную проблему, если на обработку потратится времени на пару процентов больше чем (ээ… ктото чтото планировал? 😉) )? минута туда - минута сюда…
    насчет небольших отклонений в параметре реза при изменении скорости - будет ли это играть роль при хоббийных то точности, люфтах, шпинделе и жесткости конструкции.

насчет примитивности. какраз даже просто связка 297-298 хоть и примитивна, но может проблем доставить, с той же помехозащишенностью. мой вон макетный контроллер работать работает, но если к некоторым цепям палец приложить, то двигатель начианет крутиться, думаю шагов 50 в секунду гдето. 😉
опять же программы, те что я видел, вроде как работают сразу на порт и дают направление-шаг. какраз под эту связку. и даже, по слухам, есть какието драйвера которые переводят работу с портом в реалтайм. но я в этом направлении не копал, честно говоря, и было это год-два назад. а сейчас в связи популярностью темы, может еще чего эдакого придумали.

кстати , вопрос. какие идеи есть на предмет необходимости ручного управления с пульта кроме кнопок направлений? ну и еще парочки, скажем, задать скорость перемещения. для таких элементарных вещей собственно и схему почти не нужно усложнять, все делается на коммутаторе из кнопок.
в каких случаях может потребоваться чтото более сложное?

вобщем каждый, ессно, делает как ему нравится, пока я для себя решил так. вначале делается все максимально просто. главное чтоб работало.
если что-то вдруг по каким-то причинам не будет устраивать, тогда уже можно и переделать или собрать новый контроллер. хотя буржуи давно понаделали себе станков на L29x, режут всякую галантерею и не жужжат. 😉

sergios, а что, ни один готовый не устроил? даже пару лет назад в интеренете их вроде как десятки лежали…

нет, не устроил 😃 , я привык , что бы всё было красиво, а платы с кучей перемычек мне не нравятся, уже собирал, только до железа станка не дошёл, потому и спрашиваю какие в реале лучше режимы заранее задать, что бы перемычки не ставить… 😃

toxa
monkeypaw

также, соблюдать такие простейшие вещи, как не работать с дискетками или лазерным приводом (особенно со сбойными дисками) и не звонить по винмодему когда запущен станок. ну на вирусов может провериться… все. что еще кроме собоев в аппаратной части может тормознуть машину, не представляю.

А пример такой: запустить в фоне резку а самому сидеть чертить в механикле или инвенторе. Можно не запускать никаких программ, но режет иногда очень долго, что, к компу не подходить теперь?

А вообще это напоминает старый анекдот:

  • Папа, покажи мне самую прогрессивную многозадачную операционную систему windows!
  • Сейчас, сынок, дискетку отформатирую…
monkeypaw

все описанное в любом случае проще, чем платы паять и программировать микропроцессоры.

Ну… Относительно. Можно ради станка сменить операционку на win95 и работать в ней, но это не всегда выход. Можно и отдельный ноутбук для станка выделить… Только это не всегда проще и не всегда дешевле.

monkeypaw

успевают шаговые двигатели за тем, что выдает компьютер в lpt или нет - контроллер плюсов тут не даст. это, вообщето, забота компьютера и здравого смысла.

Даст. Пока устройство предыдущую порцию данных через последовательный порт не съела, программа новые данные послать не может и ждет. А в lpt - выдаем как придется и надеемся что устройство успевает за компьютером и все это работает синхронно. Плюс временные интервалы сигналов измеряются программно…

monkeypaw

без обратной связи с декодером все равно придется тот же контроллер настраивать под тип и экземпляр шд.

Одно дело делать станок у которого его плата подходит под его же шд, а другое дело - подгонять то же самое с помощью изготовления профилей загрузки виндов, выключением программ и так далее.

monkeypaw

вобщем каждый, ессно, делает как ему нравится, пока я для себя решил так. вначале делается все максимально просто.

Согласен. Конечно. И излишне усложнать тоже не стоит. Просто интересно понизить требования к связке компьютер-станок. У LPT (в том режиме, в котором он используется в станках) только одно преимущество - простота. Остальное - недостатки.

Добавлено

Когда первые писалки дисков cd-r только появились, запись диска была целым ритуалом: нужно было вырубить все программы, возможно, даже перезагрузиться в другой профиль. Исключить большое количество мелких файлов, и так далее, и так далее… Запустить и ждать несколько часов, когда на 2 скорости зальется 640М, при этом желательно до этого выполнить симуляцию, чтобы все прогнать и не попортить заранее болванку.

А сейчас я когда пишу dvd даже не задумываюсь о том, что и как у меня запущено и какая загрузка процессора: burn-proof все вытянет.

С хоббийным CNC ситуация очень похожая.

monkeypaw

toxa, ну не знаю, может для вас это и аргументы, для меня както этот вопрос не стоит, пока железо валяется по коробкам а многих важных частей просто даже еще и нет.

и еще немножко поспорю 😉 просто так. может у кого - нибудь еще идеи появятся. найти подводный камень лучше пока еще не приступил к работе.

подержанный компьютер сейчас стоит столько, что его покупка будет выгоднее чем затраты на разработку и изготовление контроллера. плюс останется больше времени на изучение кадов-камов, г-кодов и т.п.
да и компьютеры нонче уже не те что раньше. они нормально тянут и кино и песенку поют, и уж пару кило байт в секунду через лпт как нибудь пересунут между делом. 😉

Одно дело делать станок у которого его плата подходит под его же шд, а другое дело - подгонять то же самое с помощью изготовления профилей загрузки виндов, выключением программ и так далее.

написание профиля - дело минут 20 максимиум 1 раз. затем просто при загрузке выбирается нужный пункт меню или входим под нужным пользователем. делов то. 😉

а если именно интересно поразрабатывать и именно конроллер - то дело уважаемое и благое. никто не говорил что он вообще не нужен. 😃

sergios, не, перемычки имхо нужны.
если меются ввиду те, которые снимаются-одеваются. всетаки это сделает устройство более управляемым и универсальным. добиваться их уменьшения стоит разве что в масспродукции. потом вдруг выяснится что в какомто режиме что-то работает гораздо луче, и что дорожки скальперелем резать?

вот грамотно развести у меня так и не получилось. разводчик из меня никакой 😉

в идеале хотелось бы один слой и так чтобы 298 стояла попой к радиатору на краю платы. вообще, хорошо бы сделать модульную конструкцию с общей шиной, типа добавляется координата - поставил следующую платку в разъем. надо тот же интеллектуальный контроллер добавить - всунул его между блоком буфферных оптопар для порта и L29x. чуть больше поморочиться на начальном этапе, зато обслуживать и апгрейдить приятно.
плюс дома по утюжной технологии гораздо легче делать маленькие платки.
минус - разъемы+вибрация. но это, вобщем, решаемо. тем более, немногие крепят управление прямо к станку.

Vitaly

monkeypaw, не надо уводить вопрос в сторону. Перечитайте первое сообщение. Есть вопрос, спрашивается, можно ли сделать красивае решение. Если вы красивого решения не знаете, зачем тему прописными истинами заваливать? Не вы один в курсе, сколько железки стоят, как LPT работает, что такое Windows и т.д.

toxa

Вот NINOS, например, понимает COM ISEL. Кто-нибудь видел спецификацию, где ее можно нарыть? Что это вообще такое, и насколько это проще или сложнее (или это совсем другое) чем g-код? NINOS 3.0 вышел, кстати.

monkeypaw

Vitaly, сорри, я думал что тут также обсуждаются и вопросы целесообразности, а из прописных истин все делют разные выводы.
но раз нет - значит нет.

Vitaly

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

А насчет того, как сейчас большинство делает, я примерно в курсе, чай не полный дурак 😃 . Не вижу с мысла обсуждать то, что и так известно всем грамотным людям.

sergios
Vitaly:

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

А насчет того, как сейчас большинство делает, я примерно в курсе, чай не полный дурак 😃 . Не вижу с мысла обсуждать то, что и так известно всем грамотным людям.

спасибо за понимание (про красивое решение), действительно хочется. я уже развел плату одностороннюю!, почти без перемык. основной фокус оказался в том, что-бы поменять местами управляющие сигналы с выхода l297 по отношению к входам l298 (наоборот по отношению к даташиту). идею подсмотрел на одном из-забугорных сайтов. к тому-же ввёл в схему компенсацию тока в полушагавом режиме (чего ни в одной схеме здесь не предлагалось). конструкция модульная. а вопрос у меня был действительно конкретный к практикам, тк перемычки выбора режимов хочу тоже убрать (делаю то под конкретные двигатели дши-200). в ответ хотел бы получить не пространственные рассуждения, а четкий опыт эксплуатации.

Художник

Vitaly,

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

А насчет того, как сейчас большинство делает, я примерно в курсе, чай не полный дурак . Не вижу с мысла обсуждать то, что и так известно всем грамотным людям."

Тогда можно вообще ничего не обсуждать, в крайнем случае, только красивые решения.

Vitaly
Художник

Тогда можно вообще ничего не обсуждать, в крайнем случае, только красивые решения.

Это было бы очень конструктивно. Собственно, в настоящий момент, я собираю ответы на конкретные вопросы (свои), и не вижу смысла перескакивать на обсуждения, которые могут и не понадобиться.

Художник

Насчёт красивого решения. Пожалуй самое красивое - это как раз прямое управление с компьютера через параллельный порт. Никаких дополнительных контроллеров не надо, частота порядка 30 КГц без проблем. Под DOS без проблем. Под виндой генерить частоту по LPT это фокус. Захват по таймеру с высшим приоритетом, под виндой, реализуемый в Mach2, нестабилен. Поэтому она и виснет. Вот как обеспечить прямое управление программно или аппаратно, чтобы корректно и стабильно, это и есть красивое решение.

Vitaly

Вот для того, чтобы его обдумать, я и задаю вопросы. Обсуждать считаю несколько преждевременным, так как ничего именно “красивого”, с моей точки зрения, пока в голове не сформировалось.

monkeypaw

Художник
есть пару вопросов, если можно.
максимальная частота на lpt официально известна?
ато недавно задался вопросом, перекопал поисковики и ничего не нашел в спецификациях. там единственно чтото было про параметры кабеля и фронты импульсов. из этого заключение о частоте сделать тяжеловато.

и вопрос как к практику. встеки, так ли важна стабильность частоты на порту?
ну, будет инструмент подтормаживать. вызовет ли это хоть сколь нибудь существенные проблемы при реальной работе?
если быстрее - понятно - перегрузка на инструмент, потеря шагов или поломка. но этого, как я понимаю, не случится. возможно только замедление.
и что если медленнее? на качестве обработки хоть както сказывается?
чтобы упростить ответ: в увеличении времени обработки на несколько процентов, даже на 10, серьезной проблемы не видится.

зы. навскидку придумал еще проблему. если двигатели работают на пределе приемистости и происходит разгон, то в этот момент прекращение подачи имульсов на некоторое время пожет привести к потере шагов.
но вероятность такой ситуации тоже вроде не велика (при выделенном компьютере, занимающемся только обработкой, скорее невозможна), темболее предельных режимов, наверное, стоит просто избегать.

toxa
monkeypaw

зы. навскидку придумал еще проблему. если двигатели работают на пределе приемистости и происходит разгон, то в этот момент прекращение подачи имульсов на некоторое время пожет привести к потере шагов.

Если компьютер для станка не отдельный, то проблем может быть множество, самое простое - из-за черезчур “умных” драйверов принтера.

Художник

monkeypaw,

“максимальная частота на lpt официально известна?
ато недавно задался вопросом, перекопал поисковики и ничего не нашел в спецификациях. там единственно чтото было про параметры кабеля и фронты импульсов. из этого заключение о частоте сделать тяжеловато.”

Проблемка в том, что порты PC не предназначены частоту генерить, они предназначены данные передавать. Поэтому в данном случае корректно говорить о передаче данных. Но для прямого управления станком интересна частота. Короче, из практики, по LPT 20 КГц из под DOS без проблем, выше зависит от софта, материнки и портов, в теории до 100 Кгц возможно.

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

Да если бы только замедление 😃

Вы правильно написали:

“если двигатели работают на пределе приемистости … то в этот момент прекращение подачи имульсов на некоторое время пожет привести к потере шагов.”

Не только к потере, а к зарезу детали и накапливающейся погрешности.

Также toxa правильно пишет, что проблем много, например, при интерполяции мы просто в координату не попадём. И соответственно, вместо круга овал получим, со ступенькой на конце, а вместо Ливерпуль Манхеттен нарисуем. 😉

«что если медленнее? на качестве обработки хоть как то сказывается?
чтобы упростить ответ: в увеличении времени обработки на несколько процентов, даже на 10, серьезной проблемы не видится.»

А вот это другой вопрос. Точнее два.

Как правило, снижение скорости повышает качество обработки.

Увеличение времени обработки единичного элементарного отрезка на единицы процента при обработке детали по сложной программе линейной интерполяции может привести к увеличению времени обработки в десятки раз.