Написание проги для упраления чпу
Приветствую, всех Вас друззья, хоббисты. У меня вот кака тема назрела.
Хочу вот написать програмулину для управления простеньким станочком на 4 ДШИ-200 для резки пенопласта горячей ниточкой. Но… Вот это НО меня и беспокоит 😃 . Интересно как это все реализовать в практическом виде? Каков принцип управления шаговыми движками через ЛПТ, на чем прогу ваять. Вобшем хочу рисунок закинуть, в G-код перевести, на станочке резать (это в обшем, может что упустил, поправьте). Може хто подмогнет советом, сылочкой и др. инфой. Только не надо предлагать готовые програмные решения типа Mach2 CKam и др. Хочется так сказать самому познать всю суть данной проблемы ☕ Буду рад любой помощи. Заранее спасибочки.
Приветствую, всех Вас друззья, хоббисты. У меня вот кака тема назрела.
Хочу вот написать програмулину для управления простеньким станочком на 4 ДШИ-200 для резки пенопласта горячей ниточкой. Но… Вот это НО меня и беспокоит 😃 . Интересно как это все реализовать в практическом виде? Каков принцип управления шаговыми движками через ЛПТ, на чем прогу ваять. Вобшем хочу рисунок закинуть, в G-код перевести, на станочке резать (это в обшем, может что упустил, поправьте). Може хто подмогнет советом, сылочкой и др. инфой. Только не надо предлагать готовые програмные решения типа Mach2 CKam и др. Хочется так сказать самому познать всю суть данной проблемы ☕ Буду рад любой помощи. Заранее спасибочки.
Первая помощь в этом вопросе такова-пожалейте себя ради бога и не беритесь за это.Угрохаете
два года труда и получите за это 1 раз 50 (ПЯТДЕСЯТ) долларов.После чего Ваша программа будет крякнута(Если она вообще чего-то стоит) и выставлена МЕЖДУНАРОДНЫМИ пиратами по 100 рублей
за пучок на всех развалах страны.Все возможные и невозможные способы защиты помогут Вам также,как помогли всем остальным разработчикам софта.
Первая помощь в этом вопросе такова-пожалейте себя ради бога и не беритесь за это.Угрохаете
два года труда и получите за это 1 раз 50 (ПЯТДЕСЯТ) долларов.После чего Ваша программа будет крякнута(Если она вообще чего-то стоит) и выставлена МЕЖДУНАРОДНЫМИ пиратами по 100 рублей
за пучок на всех развалах страны.Все возможные и невозможные способы защиты помогут Вам также,как помогли всем остальным разработчикам софта.
Да не в том дело. Я совершенно не преследую коммерческие цели. Никому ничего продавать не собираюсь. Я хочу познать. Самосовершенствование превыше денег, вот и все 😒
Похвальное дело. Примерно затем же для чего у меня токарный станок.
На первый взгляд (хотя я очень отстал в программировании):
-
Управлять двигателем через порт очень просто - в порт (по определенному адресу) записывается байт, каждый бит которого соответствует проводочку в ЛПТ. Соответственно собираем нужный байт из битов, описывающих направление вращения, затем то же + биты “шаг”, затем “шаг” убираем - двигатель вращается на один шаг. Только не знаю как Винды относятся к прямой записи в порт.
-
Я думаю, что превращение картинки в Ж-коды - надо сделать отдельно, а Ж-коды в импульсы на ЛПТ-отдельно.
-
Если не гнаться за скоростью, все можно сделать в удобном для себя языке, сейчас это наверное Си
-
Если знать язык программирования, то главная проблема - это алгоритм превращения картинки в Ж-коды. Начиная например с того, в каком виде должна быть исходная картинка…
-
Все остальное после нескольких экспериментов - вязание - однообразный, времязанимающий, бездумный процесс написания программы. Ну конечно если мы говорим о приметивной программе.
В.Р.
Наверное, есть смысл изучить исходники turbocnc. Это очень хороший старт для написания собственного софта.
Наверное, есть смысл изучить исходники turbocnc. Это очень хороший старт для написания собственного софта.
А ссылочка есть на исходник? Было бы здорово посмотреть.
Похвальное дело. Примерно затем же для чего у меня токарный станок.
На первый взгляд (хотя я очень отстал в программировании):
- Управлять двигателем через порт очень просто - в порт (по определенному адресу) записывается байт, каждый бит которого соответствует проводочку в ЛПТ. Соответственно собираем нужный байт из …
Спастбо огромное за информацию. С языком С я не очень знаком, а вот VB лучше освоил, поэтому я хочу писать именно на нем.
А ссылочка есть на исходник? Было бы здорово посмотреть.
Исходники продают всем желающим по 60$. Я купил. Программа написана на borland pascal…
Вот снова вопрос назрел. Итак я решил писать прогу на VB. Как я понял VB не работает на прямую с ЛПТ портом, а через драйвер? Так вот кто поведает как это скажется на скорости работы станка, если для управления ШД (ДШИ-200-2)используется связка L297,298?
И вот еше, если допустим подаем на 2 вывод ЛПТ 1, то как ведет себя ШД, и если сбрасываем, тобишь 0, надеюсь вопрос задал корректно, если нет поправьте плиз 😒
Вот снова вопрос назрел. Итак я решил писать прогу на VB. Как я понял VB не работает на прямую с ЛПТ портом, а через драйвер? Так вот кто поведает как это скажется на скорости работы станка, если для управления ШД (ДШИ-200-2)используется связка L297,298?
Связка тут не при чем. Под мультизадачными ОС существует проблема организации малых периодов задержки. В любой момент ваша программа может быть прервана для исполнения другой программы, при этом момент формирования импульса будет задержан. Таким образом, импульсы идут не ровно. Вот степень этой “неровности” зависит от выбранной операционной системы, быстродействия компьютера и особенностей самой программы. Проще всего формировать импульсы под досом.
Связка тут не при чем. Под мультизадачными ОС существует проблема организации малых периодов задержки. В любой момент ваша программа может быть прервана для исполнения другой программы, при этом момент формирования импульса будет задержан. Таким образом, импульсы идут не ровно. Вот степень этой “неровности” зависит от выбранной операционной системы, быстродействия компьютера и особенностей самой программы. Проще всего формировать импульсы под досом.
Уважаемые, а можно поступить иначе!!!
Забрать управление (во времени) других пограмм, в многозадачных ОС под контроль Вашей программы, и позволять им выполнятся только нужное Вам время!!! Затем управление переходит опять под Ваши нужды. И не каких временных отклонений!
Забрать управление (во времени) других пограмм, в многозадачных ОС под контроль Вашей программы, и позволять им выполнятся только нужное Вам время!!! Затем управление переходит опять под Ваши нужды.
Вы не можете это сделать в nt/2000/xp. Хотя и существуют т.н. realtime extention’ы для линейки nt, все это достаточно сложно. Они не бесплатные и недешевые. Софт должен быть заточен на использование этих расширений.
Ни одна из существующих программ под windows не использует этих расширений, максимум - работа через драйвер, который генерирует нужные последовательности импульсов.
Вот как раз о драйвере и идет речь.
Как говорят мои друзья менты - Не важно каким способом, важен результат!
Вот как раз о драйвере и идет речь.
Драйвер - не панацея. Если бы все было так просто, не нужны бы были RTX, а мач работал бы идеально.
Кстати сказать XP не позволяет напрямую обращатся к портам и системнному таймеру (пробовал на Assemblere), но в режиме эмуляции WIN95-98 не ругается и все работает на ура. Но нужно предпринять особые меры, чтобы OS не выполняла свои задачи в тот момент пока идет работа с портом.
Mach - хорошо работает с микрошаговым режимом (8) и та ничтожно малая неравномерность практически не сказывается на шаговый двигатель, а вот сервомотор с энкодерами ошибается при высокой частоте вращения. даже при средней.
Но нужно предпринять особые меры, чтобы OS не выполняла свои задачи в тот момент пока идет работа с портом.
Какие подразумеваются “особые” меры? Мне таковые не известны. Тем более, когда программа dos и работает в режиме эмуляции это вдвойне сложнее, чем просто win32 приложение.
С портами под xp работать можно, при чем возможны разные варианты. Либо обращаться к ним из ring0 в своем (чужом, универсальном) драйвере, либо из того же ring0 разрешить приложению, запущенному в ring3, обращаться к нужному порту. Дальше можно работать напрямую. Но драйвер по-любому нужен.
но в режиме эмуляции WIN95-98 не ругается и все работает на ура
если не считать того неприятного факта, что этот таймер виртуальный и эти порты виртуальные. 😃 или вы о режиме, в который надо перезагружаться? чем это тогда отличается от доса?
Они не бесплатные и недешевые. Софт должен быть заточен на использование этих расширений.
А неужели можно сделать CNC, я имею ввиду готовый результат (софт и хард) бесплатно или дешево? Да еще и работало чтоб!
Да я про существование DOSа уже давно забыл, как о кошмарном сне!
Mach - хорошо работает с микрошаговым режимом (8) и та ничтожно малая неравномерность практически не сказывается на шаговый двигатель, а вот сервомотор с энкодерами ошибается при высокой частоте вращения.
Чем “больше” микрошаг, тем ниже скорость. Чтобы сохранить скорость, требуется более высокая частота. Чем больше частота, тем меньше интервалы, которые необходимо точно замерять. Чем меньше интервалы, тем больше погрешность.
Чем “больше” микрошаг, тем ниже скорость. Чтобы сохранить скорость, требуется более высокая частота. Чем больше частота, тем меньше интервалы, которые необходимо точно замерять. Чем меньше интервалы, тем больше погрешность.
Я согласен с Вами, НО для тех систем где имеется обратная связь по углу поворота вала двигателя. Вот только тогда и будет заметна эта неравномерность. А например при использовании скажем A3770 не о какой неравномерности не может быть и речи! Все крутится ровно. проверено! Важно иметь шустрый компьютер.
А неужели можно сделать CNC, я имею ввиду готовый результат (софт и хард) бесплатно или дешево? Да еще и работало чтоб!
Да я про существование DOSа уже давно забыл, как о кошмарном сне!
А зря забыли. Если хочется сделать грамотно и качетвенно, то подходить надо с другой стороны - со стороны станка а не со стороны домашнего компьютера.
Вот по этому и ставят вместе с контроллером для шаговых моторов плату простенького компьютера, который только и умеет что принять по сети G-код и подать в контроллер шаговых двигателей нужные последовательности импульсов. И все это железнобетонно-стабильно, в ДОС-е!
Городить сложную программу и занимать шустрый компьютер выпиливанием – путь тупиковый.
Под винду писать не серьезно.
Пробовал выдавать импульсы на LTP под XP, неравномерность была дикая, написал драйвер под нулевое кольцо, стало получше, но не намного. Поставил защелку (Lock, функция есть в DriverStudio от Numega), стало хорошо 😃 4мкс минимальная ширина импульса которую я достиг, может можно и меньше, мне хватало. Но при использовании этой защелки система не реагирует ни на какие раздражители. 😃 Т.е. экран остается в том же состоянии, мышка и клава не работают, как и все остальное - проц выполняет только одну задачу - вашего драйвера.
В принципе почти как под ДОСом.