Создаю новую тему. Предлагаю обсуждать её тут. А то она получилась по всему форуму "размазанной".
Для начала предлагаю обсудить предъявляемые требования к такому контроллеру и формат файла для последующей работы в автономном режиме.
Контроллер станка с ЧПУ на PIC с возможностью автономной работы
Сообщений 1 страница 30 из 237
Поделиться12008-03-15 18:17:01
Поделиться22008-03-15 18:30:09
давайте всеже не так резко, я предлагаю для начала сделать кантроллер на ПИК работающий от VRI, а затем постепенно будем наращивать, так и до автонома дойдем. Сделаем рабочую вещь и каждый сможет проверять свои усовершенствования на рабочих образцах. Давайте определимся с камнем, из мощных имею 16F877.
Поделиться32008-03-15 18:33:43
прочитайте правила форума. требую их соблюдения. т.е. разрабатываемый вами контроллер должен поддерживатся программой VRI-cnc. если нет то сообщения буду удалять. а пользователей банить!
Поделиться42008-03-15 18:40:48
Подготовку файла для ЕЕПРОМ и настройки я бы оставил программе. Она считает точнее и ошибка не накапливается.
Что именно считает? Всё перемещения, необходимые для изготовления изделия, уже присутствуют в файле, который получается на выходе из программы, в которой это изделие проектируется. Поправьте если заблуждаюсь.
Сброс в память и чтение по 3*2 байта. В первом ssrr rldd - скорость+резерв+право/лево+ось. Второй nnnn nnnn - число шагов. Получается в 24с65 влезет 256/(3*2)=чуть ли не 42к строк текста входного файла.
А чем не устраивают уже имеющиеся форматы? Достаточно сконвертировать ASCII символы в hex и можно скармливать напрямую в PIC.
Проги для ПИКов лучше сразу писать под int RC 4MHz. Asm с чтением из ЕЕПРОМ могу сбросить, но реальный от своего дверного звонка. Могу просто конспект по чтению 24хх.
По-поводу рабочей частоты пика - давайте определимся чего от него хотим для начала. У меня сейчас PIC16F628 читает из внешней памяти и данные и по ним крутит 3 движка через степ дир практически синхронно при int RC 1MHz.
А уже исходя из требований и станет ясно какая частота будет являться примлемой.
С чтением 24хх в протеусе я разобрался - всё читается.
Поделиться52008-03-15 18:43:57
давайте всеже не так резко, я предлагаю для начала сделать кантроллер на ПИК работающий от VRI, а затем постепенно будем наращивать, так и до автонома дойдем.
Естественно работающий от VRI.
Что касается автономной работы - я имел в виду просто предусмотреть такую возможность в железе.
Поделиться62008-03-15 18:45:16
прочитайте правила форума. требую их соблюдения. т.е. разрабатываемый вами контроллер должен поддерживатся программой VRI-cnc. если нет то сообщения буду удалять. а пользователей банить!
А кто говорит что он не будет поддерживаться? Здесь вроде сказано о контроллере с возможностью автономной работы, а каму как не Вам в будущем устроить переносимый формат данных? Другой вопрос если Вас не устраивает возможность автономной работы, так и скажите. Плюс ко всему Вы сделали поддержку степ/дир, по сути теперь вобще любой контроллер поддерживается Вашей программой, а Вы сразу банить
Поделиться72008-03-15 19:05:08
Давайте всеже решим с камнем, а то у меня уже воскресенье наступает а оно одно, охота с толком провести. Учитывая подключение к ЛПТ , 3 драйвера ШД, клавиатура, выход ШИМ, а в будущум память, LCD и т.д. мне все-же видится 877 с кварцем 20MHz. У него точно портов хватит и модули шим имеются и еще много чего.
Поделиться82008-03-15 19:10:16
прочитайте правила форума. требую их соблюдения. т.е. разрабатываемый вами контроллер должен поддерживатся программой VRI-cnc. если нет то сообщения буду удалять. а пользователей банить!
Если вы считаете, что данная ветка в этой теме не уместна, то может быть сообщения не удалять, пользователей не банить, а просто переместить данную ветку в ту тему, которая на ваш взгляд более подходит для этого? Ведь интерес к этой теме есть у многоих участников данного форума. Прошу прощения, если начал ветку не в той теме. Я не специально. В дальнейшем, если вдруг появится желание создавать новую ветку, обязуюсь предварительно консультироваться с администраторами данного форума во избежание подобных недоразумений.
Поделиться92008-03-15 20:49:43
Учитывая подключение к ЛПТ , 3 драйвера ШД, клавиатура, выход ШИМ, а в будущум память, LCD и т.д. мне все-же видится 877 с кварцем 20MHz.
А может быть всё-таки сделать модульную конструкцию? Степ дир с LPT (или уже имеющуюся схему на ТМ7)сразу на драйверы (их каждый сможет сделать по своему усмотрению - кто просто ключи, кто к ним ШИМ добавит, кто на PICе сделает...) и к этим же степ дир (или схеме на ТМ7)прицепить PIC с возможностью подключения внешней памяти и ком порта? Это позволить сделать конструкцию более гибкой в изготовлении и снять ограничение на частоту ШИМа.
Примерный вариант я уже приводил http://koolhatcker.pochta.ru/flashcard/memory.pdf
Отредактировано koolhatcker (2008-03-15 20:57:46)
Поделиться102008-03-15 21:43:01
Всё перемещения, необходимые для изготовления изделия, уже присутствуют в файле, который получается на выходе из программы
на LPT не файл а пошаговые команды, много
А чем не устраивают уже имеющиеся форматы?
Не очень удобны для последовательного чтения и записи. Загнать текст в ПИК не проблема, но его еще серьезно обработать надо.
давайте всеже не так резко, я предлагаю для начала сделать кантроллер на ПИК работающий от VRI,
Согласен, но тогда VRI должна уметь работать с СОМ. Тот объем, что выдается по ЛПТ и память не осилит, и пику он не нужен. Если Романа такое направление развития напрягает, то имеет смысл перенести обсуждение в другое место.
мне видится 877 с кварцем 20MHz.
Это порядка 250р, дешевле только 73 ~100p возможности примерно одинаковы.
Поделиться112008-03-15 22:24:27
на LPT не файл а пошаговые команLы, много
В файле - они же. Практически там импульсы с LPT порта оформленные в цифры
Не очень удобны для последовательного чтения и записи. Загнать текст в ПИК не проблема, но его еще серьезно обработать надо.
Там как раз последовательно всё идёт. Обработать можно на компе.
Согласен, но тогда VRI должна уметь работать с СОМ. Тот объем, что выдается по ЛПТ и память не осилит, и пику он не нужен. Если Романа такое направление развития напрягает, то имеет смысл перенести обсуждение в другое место.
Работать с COM для этого совсем не обязательно. См. моё предыдущее сообщение - там схема.
Это порядка 250р, дешевле только 73 ~100p возможности примерно одинаковы.
Очень уж примерно одинаковы. И ног в 2 раза больше.
Поделиться122008-03-16 01:45:08
А может быть всё-таки сделать модульную конструкцию? Степ дир с LPT (или уже имеющуюся схему на ТМ7)сразу на драйверы (их каждый сможет сделать по своему усмотрению - кто просто ключи, кто к ним ШИМ добавит, кто на PICе сделает...) и к этим же степ дир (или схеме на ТМ7)прицепить PIC с возможностью подключения внешней памяти и ком порта?
насчет модульной схемы согласен, но... Я смотрел Вашу схему. Под словом Драйвер у вас покоится полноценный контроллер ШД понимающий степ/дир, извените но это не просто ключи, и многие из них уже содержат шим, микрошаг и т.д. Чтобы повесить к пику просто ключи, необходимо в пик загнать степ/дир (либо формат Романа) а на выходе получить то что мы получаем с ТМ7(последовательность для ШД)
Вот это я и называю контроллер на PIC. А уже затем добовлять к нему навороты, поэтому и 877 чтобы место для тюнинга было.
Поделиться132008-03-16 01:49:03
Это порядка 250р, дешевле только 73 ~100p возможности примерно одинаковы.
Простите, Вы хотите автономный станок за 73рубля? А когда здесь речь пойдет о подключении LCD, Вы скажете давайте на сетодиодах за 5р?
Поделиться142008-03-16 02:02:26
Да, тот самый встроенный во все современные ПИКи, в крайнем случае можно навесить внешний. Тика в 1мкс вполне хватит для решения всех наших задач. А они исключительно просты. Нужно выдать заданное кол-во импульсов с заданной частотой и шириной шага (ШИМ). Что-то измерять и отрабатывать здесь не нужно.
Если Вы покажете программу которая при тике в 1мкс генерирует ШИМ частотой хотябы 5~7 KHz с переменной скважностью 50-80% которая меняется при подаче сигнала на вход, я к Вам с Камчатки с пивом прилечу! Но я так думаю не бывать этому.
Поделиться152008-03-16 02:11:04
Практически там импульсы с LPT порта оформленные в цифры
И появляются они там со скоростью ~1kb/s, прикинь объем памяти на 10мин работы. Много цифирь, которые при наличии МК не нужны. И вообще МК без поддержки программой больше похож на 5 колесо.
Вы хотите автономный станок за 73рубля
Хочу, но взять негде Не столь важно какие "крутые" детали будут задействованы для эксперимента. Практика показывает, что удачной оказывается лишь третья конструкция. А это http://www.ivica-novakovic.from.hr/Nokia Lcd Termometar.htm пример того, что к ПИКу за 30р, с 6 ножками можно прикрутить
Если Вы покажете программу которая при тике в 1мкс генерирует ШИМ частотой хотябы 5~7 KHz с переменной скважностью 50-80%
bsf PORTB,0
nop
nop
nop
bcf PORTB,0 ;step 1
Вот Вам шаг с возможностью изменять ширину от 1 до 4мкс (т.е 4 режима уже имеем), ну и частота ~250кГц.
Отредактировано bolt (2008-03-16 03:45:39)
Поделиться162008-03-16 05:57:46
Вот Вам шаг с возможностью изменять ширину от 1 до 4мкс (т.е 4 режима уже имеем), ну и частота ~250кГц.
Я надеюсь, это шутка? Ширину чего вы собираетесь менять?? Вместе с частотой? Извените, но мне кажется что вы не совсем понимаете что такое ШИМ. Есть понятие - скважность, отношение ширины импульса к периоду. Регулирование ШИМ - это изменение длительности импульса по отношению к периоду, период (ЧАСТОТА) остается НЕИЗМЕННОЙ!!! И регулироваться она должна как минимум от 20, до 80%. Вы что туда 60 nop хотите вставить?? Пожалуйста, изучите предмет. Трудоголик здесь кучу замечательного материала изложил.
Поделиться172008-03-16 08:35:35
насчет модульной схемы согласен, но... Я смотрел Вашу схему. Под словом Драйвер у вас покоится полноценный контроллер ШД понимающий степ/дир, извените но это не просто ключи, и многие из них уже содержат шим, микрошаг и т.д.
Я тоже поддерживаю идею модульной конструкции.
LIFE, именно так и надо понимать драйвер в контроллере модульной конструкции, как модуль воспринимающий сигналы степ/дир и желательно, даже более сложные по структуре - для микрошагового режима. Кулхацкер правильно заметил, каждый может поставить что то свое, в меру доступности. Дайте ему эту возможность.
Ведь не зря пользуются бОльшим спросом в основном компьютеры открытой архитектуры, то есть те, которые можно расширять, изменять, дополнять.
По входным данным. думайте, мне пока ничего в голову не лезет.
Писать СТЕП дир или шаговое управление геморойно, нужно записать каждый шаг и напрячь МК, чтобы он посчитал и записал длительность пауз между каждым шагом. Но при размере пробега 200 мм, и обычном шаге подачи 200 шагов на мм потребуется 80 000 записей
всего на 20 сантиметров пробега, а станок наматывает сотни метро, а то и километры пробега.
Можно просто записать шаги, а в процессоре предусмотреть установку скоростей, количество записанной информации сократится вдвое, но это все равно много.
Поделиться182008-03-16 08:50:09
Ширину чего вы собираетесь менять?? Вместе с частотой?
И все же измерять и менять частоту и длительность придется, если вы собираетесь ввести микрошаговый режим. Все видели ступенчатую синусоиду, характерную для микрошага. Но мало кто задумывался, что частота этой синусоиды и длительность каждой ступеньки меняется в зависимости от заданной скорости. ЕСли вы будете вводить микрошаг, то полезно ввести разгон, т.е сделать скорость плавающую.
Вот вам изменение длительности ступенек. А поскольку соотношение амплитуды ступенек должны быть строго фиксированы, их нужно будет контролировать, значит в контроллере нужно иметь как минимум 6 АЦП. ЦАП могут не применяться, поскольку драйверы микрошагового режима имеют цифровое управление. Или наоборот, можно иеть 6 ЦАП, но не иметь АЦП. ЕСить еще варианты, для этого надо изучатьи выбирать конкретные типы драйверов.
Отредактировано Трудоголик (2008-03-16 08:56:17)
Поделиться192008-03-16 11:05:20
Видать пиво не привезуть
Нам не ШИМ нужен, а 3 разных тока обмотки. Менять этот ток мы можем управлением напряжением питания или шириной импульса, иначе PWM называется. А частота определяет скорость вращения ШД. Их нужно всего две - для подвода и для работы. Полностью шаг выглядит так:
bsf portA,0 // это pin, которым управляем
call delay // это длительность импульса
bcf portA,0
call pause // это пауза между импульсами
При тактовой 4МГц можем выдавать от скока_надо_в_граммах до 500кГц меандра.
Необходимости в измерениях, точной стабилизации и сложных режимах пока не наблюдаю. Для наших ШД это не актуально, imho
ps У меня дверной звонок читает *.wav из EEPROM. Bitrate 8kHz. Т.е. при тактовой в 4МГц, простой pic16f84 вполне успевает считать по последовательной шине и выдать 8 bit в свой порт. Весьма похоже на тот модуль, что здесь изобретается.
Отредактировано bolt (2008-03-16 11:40:50)
Поделиться202008-03-16 12:33:39
У меня дверной звонок читает *.wav из EEPROM. Bitrate 8kHz. Т.е. при тактовой в 4МГц, простой pic16f84 вполне успевает считать по последовательной шине и выдать 8 bit в свой порт. Весьма похоже на тот модуль, что здесь изобретается.
Мой звонок в 1988 году читал WАV из ПЗУ всего одним 16-разрядным счетчиком, выдавал сигнал через 10 резисторов на УНЧ с тем же битрейтом. Звучание, гарантирую, было не хуже чем у вашего, на 16F84. НУ и что из этого?
Речь идет о контроллере, а не игрушке.
Если бы нужна была игрушка, я бы просто выдал в LPT весь цикл работы, записал в большую флешку все такты управления двигателями, а когда надо, считал из флешки теми же счетчиками, меняя скорость тактового генератора каждый раз, как на выходе флешки появится сигнал записи в соответствующую ось.
Получился бы тот же самый ваш контроллер. И мне бы хватило быстродействия 10 килогерц.
Отредактировано Трудоголик (2008-03-16 12:37:53)
Поделиться212008-03-16 14:00:57
я бы просто выдал в LPT весь цикл работы, записал в большую флешку все такты управления двигателями,
именно это здесь пока и предлагают. VRI-CNC удачное решение времен Win98. Для решения проблем с подключением, загрузкой CPU и автономной работой дешевле (время тоже деньги) и проще купить старый РС.
зы Дело не в звучании, а том, что 4МГц на все хватает. Да и надо то нам жалких 3 типовых шага иметь, повторяя их на одной из двух частот.
Поделиться222008-03-16 14:23:59
Я смотрел Вашу схему.
Похоже, невнимательно смотрели...
Под словом Драйвер у вас покоится полноценный контроллер ШД понимающий степ/дир
Так и есть.
извените но это не просто ключи, и многие из них уже содержат шим, микрошаг и т.д.
Да. Это позволит каждому выбрать наиболее удобный ему драйвер ЩД и разгрузить основной контроллер от работы с ШИМом.
Чтобы повесить к пику просто ключи, необходимо в пик загнать степ/дир (либо формат Романа) а на выходе получить то что мы получаем с ТМ7(последовательность для ШД)
А зчем загонять в пик степ/дир? Не нужно это. Ещё раз внимательно посмотрите на схему.
Поделиться232008-03-16 14:35:37
Писать СТЕП дир или шаговое управление геморойно, нужно записать каждый шаг и напрячь МК, чтобы он посчитал и записал длительность пауз между каждым шагом.
Может быть я вас не совсем правильно понял, но зачем писать какие-то длительности пауз?
Алгоритм примерно такой - считываем координаты, перемещаем и так по кругу...
Мои мысли с картинками - тут http://koolhatcker.pochta.ru/Index.html
Но при размере пробега 200 мм, и обычном шаге подачи 200 шагов на мм потребуется 80 000 записей
всего на 20 сантиметров пробега
Вот поэтому я и предлагаю для сверления использовать стандартный файл экселона(либо модифицировать его и указать координаты в шестнадцатиричной системе счисления) с относительными координатами. Размер будет копеечный...
Можно просто записать шаги, а в процессоре предусмотреть установку скоростей, количество записанной информации сократится вдвое, но это все равно много.
Для сверления - выше крыши...
Поделиться242008-03-16 14:36:01
именно это здесь пока и предлагают.
Просто никто четко не сформулировал, чего же он желает от такого контроллера. Если надо просто управлять движками, то хватит ТМ, если надо управлять движками и контролировать ток обмотки, то вариантов более чем достаточно и изобретать что либо бессмысленно.
Если надо помнить информацию,чтобы потом управлять движками, то могу предложить более простую для любителя схему на логике.
ЕСли хотите принять от компа команды в G-кодах, но чтобы МК все обработал и выдал нужное количество шагов на каждый движок, то это еще один вариант.
Если хотите, чтобы МК сннял инфу, хранил ее,
а при необходимости просчитал и выдал на движки это еще один вариант.
Или такой вариант, МК считывает с компа инфу в G-кодах или в PLT, HPGL, DRL,DXF,GBR, сохраняет это во флешке,(или работает напрямую с двигателями) рассчитывает движение, управляет движками в полношаговом, полушаговом или микрошаговом режиме, при необходимости производя все это в автономном режиме.
Кому что надо? Никто так толком и не объяснил!
А от того, что вы хотите, будет зависеть выбор камня, в основном
его архитектура и наличие периферии.
Определитесь сначала на начальном этапе.
Поделиться252008-03-16 14:39:08
И все же измерять и менять частоту и длительность придется, если вы собираетесь ввести микрошаговый режим.
Но ведь этим может заниматься драйвер. Или я вас не так понял. Суть моей идеи - просто железяка, выдающая кол-во степ в зависимости от расстояния. А там дальше - уже дело драйвера... Микрошаг или полушаг - кому как удобнее
Поделиться262008-03-16 14:44:46
Нам не ШИМ нужен, а 3 разных тока обмотки. Менять этот ток мы можем управлением напряжением питания или шириной импульса, иначе PWM называется. А частота определяет скорость вращения ШД. Их нужно всего две - для подвода и для работы.
3 разных тока - я так понимаю это перемещение, работа и удержание?
Не лучше ли сделать так - при перемещении - макс. ток и частота импульсов, при работе - макс ток и частота импульсов меняется в зав-ти от нужной подачи. Если драйвер делать на мелком пике, то можно в нём предусмотреть режим ожидания - например если в течение 2-х секунд импульсов степ не было, то оставляем ток только через одну катушку, а с остальных убираем. Удержит же?
ps У меня дверной звонок читает *.wav из EEPROM. Bitrate 8kHz. Т.е. при тактовой в 4МГц, простой pic16f84 вполне успевает считать по последовательной шине и выдать 8 bit в свой порт. Весьма похоже на тот модуль, что здесь изобретается.
Похоже. НО! Есть один ньюанс(с) анек про евреев.
Поделиться272008-03-16 14:47:34
Просто никто четко не сформулировал, чего же он желает от такого контроллера.
Вот именно. Кто в лес - кто по дрова
Давайте, озвучивайте свои мысли...
Поделиться282008-03-16 14:52:09
Может быть я вас не совсем правильно понял, но зачем писать какие-то длительности пауз?
Дело в том, что скорость движения инструмента определяется именно длительностью пауз между шагами, причем в любом случае хоть в режиме степ/дир, хоть в формате Романа.
Я и сказал, если паузы не писать, то контроллер должен иметь возможность установки скорости, тогда да, можно записать шаги,
а паузу между ними пусть сам контроллер устанавливает
Вот поэтому я и предлагаю для сверления использовать стандартный файл экселона(либо модифицировать его и указать координаты в шестнадцатиричной системе счисления) с относительными координатами.
С одной стороны согласен, но тогда контроллер должен будет уметь считать все форматы: PLT, HPGL, DRL,DXF,GBR, мало ли, может кто то захочет не только сверлить и выжигать.
Мое предложение другое, контроллер должен уметь считать данные только в формате G-кода(возможен другой вариант), выдаваемые по СОМ-порту программой Романа(в будущем) и сам производить все необходимые вычисления, управление и контроль. Преобразование данных из DRL, DXF, GBR в G-код вполне может взять на себя программа Романа, поскольку она и планируется для работы с G-кодом и уже работает с форматами DRL, DXF, GBR .
Поделиться292008-03-16 14:57:59
Но ведь этим может заниматься драйвер. Или я вас не так понял.
А как драйвер определит необходимую длительность каждого микрошага?
По идее контроллер должен рассчитать длительность каждого шага, поделить это время на нужное количество микрошагов и для каждого микрошага дать команду драйверу на установку необходимого соотношения токов в обмотках.
Дополню, возможен и вариант, когда драйвер сам меняет соотношение токов в обмотках, но тогда все равно, МК расчитывает
длительность шага, делит это на микрошаг и выдает драйверу тактовые сигналы(отдельным проводом) на совершение каждого микрошага.
Отредактировано Трудоголик (2008-03-16 15:07:23)
Поделиться302008-03-16 16:46:57
если в течение 2-х секунд импульсов степ не было, то ...
В удержание можно переходить сразу, поскольку момент окончания движения у нас ПИК и так отслеживает. Одного МК не менее чем с 16 рабочими ногами и АЦП вполне хватит.
почта не ходит, пока сюда брошу
> А вот тут не понял. Что за уклон?
Нюансы перевода координат в шаги. Если прямая под 45гр. то оба привода
синхронно делают шаг, а если 5..10гр., то надо между нескольких шагов по Х
втыкать шаг по У. РС позволяет это просчитать довольно точно со всеми
поправками на люфты и передачи, а ПИК не сможет.