VCucumber 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба вот симуляшка, собранная из g-кода одной из моделей, идущих с mach3 сколько такое на fpga кодить будете ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvet C6 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба Есть два вопроса которые сейчас нужно выяснить: 1. Формат передачи информации в линукс-cnc. Как это выглядит при работе через платы PCI; для общего развития ещё через езернет/USB. 2. Форматы управления частотниками KEB и хитачи по rs-485. Имеются в виду частотники с датчиками обратной связи и возможностью позиционирования вала. Может кто-то знает другие фирмы, или конкретные модели, которые работают в таком режиме? На первое время нужен частотник, понимающий сигнал TTL на входе (такое как-бы дублирование вращения чего-то), а ещё лучше - понимающий сигнал шаг-направление (таких, боюсь, вообще нет). Покажите пример приводов, которые управляются по "витой паре". Сразу два примера: CAN и RS-485. В случае с CAN есть такая плата-заготовка, на базе которой можно начинать собирать привод, на плате есть CAN. Для одной оси даёт отличную скорость управления. В случае с RS-485 есть преобразователи частоты под таким управлением, да и еще много чего можно найти. Вопрос только в том, как это будет выглядеть: запихать на плату пару контроллеров RS-485 и сотню контроллеров CAN или же сделать выводы на витые пары с микросхемы ПЛИС и передавать данные по своему стандарту, а где нужно - подключать преобразователи в CAN - RS-485 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 18 апреля, 2017 Опубликовано 18 апреля, 2017 · Жалоба думаю, для начала можно даже не заморачиваться с fpga, а остановиться на rs232/422 - на 5 осей и несколько команд управления должно хватить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба вот и видосик созрел cross.wmv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба думаю, для начала можно даже не заморачиваться с fpga FPGA необходимо при использовании петли ОС по позиции от внешнего энкодера или оптической линейки. В этом случаеи петля замкнута через софт контроллера. Возможно конечно применнеие сервопривода с внутренней обратной связью, тогда вариант с FPGA может быть излишне усложненный. Также FPGA и DAC на дополнительной карте необходимы при использовании древних сервоприводов с аналоговым управлением, стандарт +/-10В сигнала управления скоростью ( а не позицией) сервопривода. Актуально для большинства промышленных ЧПУ советских станков, если задумаете прересадить станку "мозги" без замены сервоприводов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 (изменено) · Жалоба fpga необходимо при параллельных вычислениях одновременно по нескольким осям неортогональной кинематики в остальных случаях достаточно обычного stm32 Изменено 19 апреля, 2017 пользователем Огурцов Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба fpga необходимо при параллельных вычислениях одновременно по нескольким осям неортогональной кинематики Очень спорное утверждение. Во всех контролерах CNC что встречались, FPGA использовалось не в "мозгах", а в интерфейсе. Траекторию многоосевого движения типа хеликальной интерполяции считали специализированные процессоры или DSP, но это было лет 10 назад. Сейчас любой Cortex-M7 ( nbgf STM32F756) с double-FPU те древние DSP за пояс заткнет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 19 апреля, 2017 Опубликовано 19 апреля, 2017 · Жалоба stm32 вполне справится с одной осью, но несколько осей даже для 2.5d никак не потянет поэтому либо fpga и гоним через com команды, типо распарсенного g-кода либо считаем траекторию на pc и через com идет тактирование приводов по step/dir первый вариант более правильный, второй - более быстрый в реализации сейчас нужно определиться, насколько реально поднять разработку на fpga или забить и для начала считать на pc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvet C6 0 20 апреля, 2017 Опубликовано 20 апреля, 2017 · Жалоба Пошла параллельная разработка :) Все равно интересно наблюдать этот процесс. Я бы не стал связываться с COM портом. Он очень чувствителен к помехам, уже есть опыт в этом деле. Даже USB более помехоустойчив. Еще как вариант - воткнуть плату RS-485 http://www.nnz-ipc.ru/good/show/14821/10212/ Другой вариант- выше была предложена отладочная плата для PCI-E. Думаю, там можно даже обратную связь с датчика сделать. В случае с RS485 петля обратной связи (с датчика) будет замыкаться на отдельное устройство, т. е. привод, тот, что на одну ось. Ещё один вариант был представлен выше, рабочее название "100%". Жрать G-код и макрокоманды компьютером. Им же синхронизиовать работу осей между собой. Компьютер позволяет добавлять новые устройства в готовую систему, по мере возникновения необходимости. Например - кнопки, штурвалы, маховички, датчики и т. д. Программу можно сделать как с нуля - в самом простом исполнении, для получения навыков и понимания процесса, так и использовать готовые наработки. Здесь единственный вариант линукс CNC, с их открытым исходным кодом. Зы: неспешно ищется исполнитель для написания оной программы. Финансирование уже обеспечено. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCucumber 0 21 апреля, 2017 Опубликовано 21 апреля, 2017 · Жалоба сделал самую страшную и не понятную половину - математику вот это уже нужно выдавать на станок, чтобы понять, где ошибся или нет Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvet C6 0 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба Вырос до Arduino due :) Есть пример из интернета по опросу Lpt порта: Работа с LPT портом Вот тестовая программка: нигде не накосячил? #include <sys/io.h> #include <sys/perm.h> #include <stdio.h> #include <stdlib.h> main() { unsigned int x; int init = 0xff; if(ioperm(0x378,3,1)) { printf("error opening lpt"); exit(1); } outb(init, 0x378); outb(init, 0x37a); while(1) { x=inb(0x378); if(x != 255) { printf("%d\n", x); } } if(ioperm(0x378,3,0)) { printf("error closing lpt"); exit(1); } } Под линуксом выдаёт ошибку открытия лпт. Кто-нибудь может помочь разобраться с этой программой, чтобы она работала? Есть пример на Питоне, выставляет логические уровни на порте, работает. Не знаю, как там допрашивать порт, да и питон в конечном итоге будет работать медленнее, чем C. В примере испольховалась библиотека python.parallel. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 10 ноября, 2017 Опубликовано 10 ноября, 2017 · Жалоба Я бы не стал связываться с COM портом. Он очень чувствителен к помехам, уже есть опыт в этом деле. Даже USB более помехоустойчив. Еще как вариант - воткнуть плату RS-485 Вот это поворот, я смотрю. Вы точно с ком портом работали правильно, в смысле софта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvet C6 0 11 ноября, 2017 Опубликовано 11 ноября, 2017 · Жалоба Сейчас вопрос не в COM-порте. Пример на питоне: Робоферма Управление LPT портом из Debian Linux на языке python В манипуляциях, описанных в статье использовался дистрибутив debian-live-7.2-i386-xfce-desktop.iso Операционная система работала в режиме live-usb, то есть без инсталляции на компьютер. debian lpt.jpg От себя рекомендую именно этот способ. Банально проще иных вариантов, которые мне удалось попробовать. Приступим по этапам. Большая часть действий выполняется в программе "Эмулятор терминала". 1. Модуль Рython-Рarallel Данный модуль собственно и предназначен для управления параллельным (lpt) портом. 1.1 Создайте новую директорию, в которой будет вестись работа. 1.2 Скачайте и перенесите в неё пакет python-parallel_0.2-7_all.deb. 1.3 Запустите эмулятор терминала. Можно кликнуть правой кнопкой мыши по рабочей директории и в контекстном меню выбрать пункт "открыть в терминале". Тогда терминал будет сразу ориентирован на работу с её содержимым. Открыть в терминале 1.4 Устанавливаем пакет следующей командой: sudo dpkg -i python-parallel_0.2-7_all.deb 2. Подготовка управляющего скрипта на Python 2.1 Создаём пустой файл, например "lpt.py". 2.2 Открываем его в текстовом редакторе и переносим следующий код: import parallel; import time; p = parallel.Parallel() p.setData(1) time.sleep(1) p.setData(2) time.sleep(1) p.setData(4) time.sleep(1) p.setData(8) time.sleep(1) p.setData(16) time.sleep(1) p.setData(32) time.sleep(1) p.setData(64) time.sleep(1) p.setData(128) time.sleep(1) p.setData(0) В эмуляторе терминала откройте доступ к порту: sudo rmmod lp Запускается командой sudo lpt. py Работает. Теперь вопрос: как здесь опросник порт? На уровне программы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corvet C6 0 17 ноября, 2017 Опубликовано 17 ноября, 2017 · Жалоба Научился в Питоне считывать порт. Функция getInSelected() getInError() и т. д. Получил частоту обмена 22 КГц. Теперь нужно на C. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться