Генерация Step на LPT (L297 + L298)

контроллеры на L297-298 и прочих микросхемах. формат команд Step/DIR

Модераторы: Ruz_and, Master-VRI, al-drw

Willik
Сообщения: 6
Зарегистрирован: Вт июл 30, 2013 21:21

Генерация Step на LPT (L297 + L298)

Сообщение Willik » Вт июл 30, 2013 21:50

Привет всем, в общем собрал я себе фрезерный с ЧПУ, схему сделал стандартную на L297 + L298, софт написал для МК, вернее даже для Arduino, 3 независимо регулируемые оси, т.е. каждая на своей скорости может ездить, все отлично работает, в компе программа(тоже сам писал, G-Code, анализатор нескольких графических форматов, ну и так по мелочам) общается "туда-сюда" с ардуиной и раздает той задачи для выполнения. Все ок

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

Итак в чем вся проблема, а проблема лишь в том, как мне генерировать частоту на LPT чтобы мои моторы хотябы вменяемо могли вращаться, а вот частота > 1 килогерца нужна, пытался программировать и в турбо паскале и в турбо си - это, что касается досовские функции проверял, и в более современных языках писал ассемблера вставлял, для задержки... нагло и жестоко вешается комп, ну и естественно не добился я нужных мне скоростей, да и если комп по разному загружен так и по разному задержка генерировалась, в общем получается не хорошо, т.е. не получается вообще таким макаром ничего сделать. Тут видел я в программе Mach3, сам с программой не разбирался еще, там тактовая частота под 30 килогерц....

вот и вопрос как мне реализовать в компе такую задержку для главного цикла программы, чтобы все было как надо? Или если я не в те степи забрался, вытащите меня из них и покажите в какие степи мне нужно идти, чтобы добраться до нужного мне :) Заранее спасибо

Аватара пользователя
Ruz_and
Сообщения: 510
Зарегистрирован: Вс ноя 09, 2008 00:00
Откуда: РТ г. Лениногорск
Контактная информация:

Re: Генерация Step на LPT (L297 + L298)

Сообщение Ruz_and » Вт июл 30, 2013 22:06

в масh3 программисты написали собственный драйвер для лпт порта с алгоритмами временных задержек. А самому это сделать очень трудно но не невозможно. но придется работать на уровне драйверов и уйти от стандартных решений временных задержек. Я в свое время тоже пытался выжать из лпт порта частоту в 10 кгц, но пик получился всего около 2-3 кгц дальнейшие повышения вешало порт намертво и восстановить его работоспособность получалось только после перезагрузки или сбросов флагов ошибки порта что не всегда помогала. Поэтому я использовал в итоге COM порт и обычный мк.
Не стреляйте из пушки по комарам (Конфуций)

Willik
Сообщения: 6
Зарегистрирован: Вт июл 30, 2013 21:21

Re: Генерация Step на LPT (L297 + L298)

Сообщение Willik » Вт июл 30, 2013 22:25

Ну я вот о том же...
Вообще сегодня на работе в голову мысль пришла, такая наверно нехорошая :), из компа скажем пенька 3 сделать мощный МК... ну это фантазии такие с одной стороны, а с другой стороны научиться программировать дрова под любые устройства которые есть на компе и попробовать что-то сделать, ну пока такую мыслю я отложу куда-то подальше.

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

igvv
Сообщения: 349
Зарегистрирован: Вс июл 14, 2013 15:44

Re: Генерация Step на LPT (L297 + L298)

Сообщение igvv » Вт июл 30, 2013 23:50

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

ВлкВова
Сообщения: 221
Зарегистрирован: Чт июл 12, 2012 21:19

Re: Генерация Step на LPT (L297 + L298)

Сообщение ВлкВова » Ср июл 31, 2013 00:16

Willik …как мне реализовать в компе такую задержку для главного цикла программы

На основании вышеизложенного видно, что ты слабо сечешь в программировании и совсем не сечешь в операционных системах. Здесь тебе никто ничего «за бытовым уровнем» не подскажет.
Итак «НАЧАЛЫ»: Главный цикл программы - ХА-ХА, 8O - таких главных циклов в Винде, (этом вселенском поносе человечества) столько сколько ты увидишь «задач» в диспетчере задач и еще столько же, которые ты не видишь. Самые глубокие процессы в БИОСЕ имеют и самые высокие приоритеты - на этом уровне работают драйверы, но и они выстроены в каком-то кольце приоритетов, вернее «выстроены» их прерывания.
И так по «большому гамбургскому счету», что бы добиться "голубой мечты" в диспетчере задач винды должны остаться: твоя программа, драйвер дисплея, драйвер принтера, драйвер таймера какой-то элементарный ввод (только клавиатура), ну и драйвер диска или флэшки. В прочем диспетчера задач тоже не должно быть, вот тогда, как говорит Задорнов - ты и будешь «Главнюк» с «наносекундными правами».
Причем элементарным подходом - чистка винды, манипуляция с приоритетеми программ ни хрена не дает, а если попытаешься залесть здесь чуть поглубже будешь переустанавливать…
Оптимум - перейти на ОСРВ, не плохо на Ubuntu, тем более, что там есть встроенный пакет управления станком с ЧПУ (LinuxCNC )
:idea: А вообще тебе конечно не сюда, вообще на форум по программированию… :oops:
Основное правило русского языка (не я сказал): если вы не знаете, как написать — “сдесь” или “здесь”, пишите “тут”.

Willik
Сообщения: 6
Зарегистрирован: Вт июл 30, 2013 21:21

Re: Генерация Step на LPT (L297 + L298)

Сообщение Willik » Ср июл 31, 2013 07:28

Ну тут умом сильно и не надо блистать, что я не шарю в низкоуровневом программировании, я сам это выше и написал
ВлкВова писал(а):Итак «НАЧАЛЫ»: Главный цикл программы - ХА-ХА, 8O - таких главных циклов в Винде,

ну и при чем тут смесь такая интересная??? Вроде бы про программу начали, а дальше почему-то про потоки пошли в винде :o
ВлкВова писал(а)::idea: А вообще тебе конечно не сюда, - вообще на форум по программированию… :oops:


в общем КПД от этого совета приблизительно равен нулю, если почти переписать в ответ то, что я и спрашивал :|
ну если мне надо было бы на линукс, я бы сюда не написал бы наверно даже.. А вообще доброжелательные люди на форуме, в общем, спасибо за дельные советы.

Аватара пользователя
invincible
Сообщения: 95
Зарегистрирован: Сб май 05, 2012 07:14

Re: Генерация Step на LPT (L297 + L298)

Сообщение invincible » Чт авг 01, 2013 02:07

А собственно чем вызвана необходимость столь сложного ПО? MACH вроде справляется неплохо со своими функциями и если залезть поглубже, то его можно настроить полностью под себя... На счет приоритетов Я спокойно ползаю в нете пока работает станок, станок работает адекватно, хотя я еще не все проверял, например не знаю что будет если кинцо запустить...
Но конечно с другой стороны неплохо иметь конкуренцию и среди отечественных разработчиков, но вот только для этого нужна команда разработчиков как минимум.....

ВлкВова
Сообщения: 221
Зарегистрирован: Чт июл 12, 2012 21:19

Re: Генерация Step на LPT (L297 + L298)

Сообщение ВлкВова » Чт авг 01, 2013 13:38

Willik КПД от этого совета...

Да какой это совет - это такой же вопль отчаяния от работы в винде и махе, только закамуфлированный под бравурный марш! :cry:
Вот примеры: в "корзине", когда я рядовой пользователь, есть две папки, которые не удаляются. Перехожу в «Админ», а в корзине ничего нет и удалять нечего, иду обратно - сидят. Или в махе - при старте с базы идет в начальную точку с подъемом до уровня безопасности - естественно по пути налетает на крепления изделия к столу. Кого-то это так достало, что даже тему такую открыл - как бороться… Оказалось очень просто - перед стартом сам выйди на уровень безопасности, или поправь G-коды, или…, - но почему Мах-то сам не поднимет шпиндель перед стартом…
Invincible А собственно чем вызвана необходимость столь сложного ПО…

И конечно сразу хочется…- нет, не только материться, как будто получил молотком по пальцу, но и сделать чего-то хорошее для людей. Поостыв немного, понимаешь, что в этой системе ничего хорошего сделать нельзя. Например, запускаешь тест драйвера Маха и видишь…, что на отдельной машине, с процем 1,7 ГГц, в предельно почищенной винде длительность цикла вывода меняется более чем в три раза (на самой низкой частоте). Ну как тут можно говорить о оптимальном использовании станка, когда на глаз видно, что скорость движения на базу раза в три выше рабочей. Причем деталь предельно «квадратная», т.е. движения в основном по одной оси, а инструмент в предельно облегченном режиме - что Мах не просматривает код вперед, что так боится повысить скорость - тоже бы поправить…
Но «поостыв», просто нажимаешь кнопку старт и идешь спать - если все пройдет нормально получишь изделие, или… не получишь ничего кроме испорченного материала или, что конечно гораздо хуже, сломанную фрезу, которая пробила двойную раму и «ушла» на улицу… :(
Основное правило русского языка (не я сказал): если вы не знаете, как написать — “сдесь” или “здесь”, пишите “тут”.

Аватара пользователя
zou-ma-lai
Сообщения: 31
Зарегистрирован: Пт июн 14, 2013 06:14
Откуда: Taiwan R.O.C.

Re: Генерация Step на LPT (L297 + L298)

Сообщение zou-ma-lai » Чт авг 01, 2013 16:52

Willik, я имел данную проблему на первых своих программах которые работали с моим ЛПТ портом. дело в том что давать прямой сигнал на управление ШД с ЛПТ порта (через МК) не надежно. так как действительно операционка имеет много лишнего. Выход : использовать МК как буфер программы. Программа сливает в МК код ходов шаговых двигателей после ждет завершение работы МК. Преимущества данной схемы то что во время работы ЧПУ от Windows ему ничего не нужно. Пример-обычный принтер.
Работать с микроконтроллерами очень забавно. частота гораздо выше чем у ЛПТ и нет лишних задач, только работа на благо обществу (а не на благо Microsoft). В каких целях вы используете МК в данный момент?
1 раскладушка+ 1 полка полотенца+ 1 карниз, 1CD-ROM, + 2 шд+ 8 подшипников = http://www.youtube.com/watch?v=JL_TQAT4 ... e=youtu.be

Аватара пользователя
Carcass3535
Сообщения: 351
Зарегистрирован: Вс июл 31, 2011 20:34
Откуда: Донецк

Re: Генерация Step на LPT (L297 + L298)

Сообщение Carcass3535 » Чт авг 01, 2013 19:36

Красиво сказано..., а как насчет вывода сигнала от 0,1 до 0,5 мксек ? Подчеркиваю, - мксек. ? Напишу прописью - от 0,1 микросекунд - до 0,5 микросекунд. Имеется ввиду длина рабочего импульса. Скважность такая - же ...
Слабо ? Для меня тоже- ...... :(
Цифровой аэрограф - уже реальность, а не мечта.

Аватара пользователя
invincible
Сообщения: 95
Зарегистрирован: Сб май 05, 2012 07:14

Re: Генерация Step на LPT (L297 + L298)

Сообщение invincible » Чт авг 01, 2013 22:09

ВлкВова писал(а):но почему Мах-то сам не поднимет шпиндель перед стартом…

Правьте постпроцессор, например при старте выходить в самую верхнюю точку, либо подрубать скрипты, в маче можно самому задавать технологические команды, но я в этом нуб, но знаю о возможности например добавить в программу код и прописать его на старт программы в постпроцессоре и по этому коду шпиндель например поднимется в самую верхнюю точку до концевика. Ну или учитывать это в кам-системе изначально
ВлкВова писал(а):И конечно сразу хочется…- нет, не только материться, как будто получил молотком по пальцу, но и сделать чего-то хорошее для людей. Поостыв немного, понимаешь, что в этой системе ничего хорошего сделать нельзя. Например, запускаешь тест драйвера Маха и видишь…, что на отдельной машине, с процем 1,7 ГГц, в предельно почищенной винде длительность цикла вывода меняется более чем в три раза (на самой низкой частоте). Ну как тут можно говорить о оптимальном использовании станка, когда на глаз видно, что скорость движения на базу раза в три выше рабочей. Причем деталь предельно «квадратная», т.е. движения в основном по одной оси, а инструмент в предельно облегченном режиме - что Мах не просматривает код вперед, что так боится повысить скорость - тоже бы поправить…
Но «поостыв», просто нажимаешь кнопку старт и идешь спать - если все пройдет нормально получишь изделие, или… не получишь ничего кроме испорченного материала или, что конечно гораздо хуже, сломанную фрезу, которая пробила двойную раму и «ушла» на улицу… :(

Хм, не замечал такого, разве что у вас скорость выхода на базы действительно стоит в три раза выше рабочей.
....
zou-ma-lai писал(а):Willik, я имел данную проблему на первых своих программах которые работали с моим ЛПТ портом. дело в том что давать прямой сигнал на управление ШД с ЛПТ порта (через МК) не надежно. так как действительно операционка имеет много лишнего. Выход : использовать МК как буфер программы. Программа сливает в МК код ходов шаговых двигателей после ждет завершение работы МК. Преимущества данной схемы то что во время работы ЧПУ от Windows ему ничего не нужно. Пример-обычный принтер.
Работать с микроконтроллерами очень забавно. частота гораздо выше чем у ЛПТ и нет лишних задач, только работа на благо обществу (а не на благо Microsoft). В каких целях вы используете МК в данный момент?

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

Willik
Сообщения: 6
Зарегистрирован: Вт июл 30, 2013 21:21

Re: Генерация Step на LPT (L297 + L298)

Сообщение Willik » Чт авг 01, 2013 22:34

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

на вопросы почему я не возьму Mach3 или LinuxCNC.. сам хочу свое иметь, вот ради принципа... и пусть меня тут нубом считают некоторые во всем этом деле, но все же.. есть свои принципы которых я придерживаюсь !

Willik
Сообщения: 6
Зарегистрирован: Вт июл 30, 2013 21:21

Re: Генерация Step на LPT (L297 + L298)

Сообщение Willik » Чт авг 01, 2013 22:47

zou-ma-lai писал(а): В каких целях вы используете МК в данный момент?


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

На вход мк подаются команды из компа, МК парсит их и выполняется нужная задача, задача выполнилась мк шлет в комп, что он завершил задачу, комп дает новое задание, ну и так далее пока не закончится вся программа, естественно не каждый мини-кусочек пересылается в мк, написаны функции для работы с геометрией и пересылается только информация, что нужно будет сделать

Аватара пользователя
invincible
Сообщения: 95
Зарегистрирован: Сб май 05, 2012 07:14

Re: Генерация Step на LPT (L297 + L298)

Сообщение invincible » Чт авг 01, 2013 23:15

Willik писал(а): и пусть меня тут нубом считают некоторые во всем этом деле, но все же.. есть свои принципы которых я придерживаюсь !

Сам факт того, что ты шаришь в микроконтроллерах и не на уровне лампочки позажигать а организовать внутреннюю логику и алгоритмы - уже достойно. Я например так и не въехал в МК, логику понимаю, а вот написать не получается, но у меня просто не возникало острой необходимости....
Тем более когда ты завершишь рабочий вариант вполне сможешь создать коммерческую основу. =)

ВлкВова
Сообщения: 221
Зарегистрирован: Чт июл 12, 2012 21:19

Re: Генерация Step на LPT (L297 + L298)

Сообщение ВлкВова » Чт авг 01, 2013 23:32

Willik вот ради принципа...

Да и не только ради принципа хотелось бы своего, а именно своего да и общественного, чтоб не только было легко врубаться, но и легко дорабатывать, модернизировать. Автономный контроллер давно бьется в мозгах наших соотечественников, многие и много сил положили на это. Мы тут тоже задумали опенсорц, но не поддержал нас народ, а посчитав каков объем работы нужно выполнить, чтоб выйти на уровень хотя бы Маха и поделив его на двоих втихаря сдулись и заткнулись. Многие чего-то пишут, а объединиться… гонор что ли не позволяет или тайная мечта на этом зарабатывать… гложет - не знаю, но считаю, что зарабатывать надо не на информации, а с помощью информации, а затраты на производство информации должны компенсироваться из общественных ресурсов, например в штатах государство финансово поддерживает опенсорцы, а информация (и ПО вчастности) должна быть свободна (понятнее - бесплатна) - пока мы поняли это только на уровне общеобразовательной школы.
Так что с МК я тебя поддерживаю :bravo: но одному...
Основное правило русского языка (не я сказал): если вы не знаете, как написать — “сдесь” или “здесь”, пишите “тут”.


Вернуться в «контроллер Step/DIR»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей

cron