|
Разработка комплекса программа+железо LPT/USB для станков, Рабочее название "Конь В Вакууме" |
|
|
|
Jan 30 2017, 02:34
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698

|
"Конь в Вакууме" - это аппаратно - программный комплекс, умеющий работать как со всеми существующими, так и с перспективными интерфейсами и выполнять уже существующие и ещё нет задания. Собственно, нужно сделать контроллер для станка и программу для контроллера. В интерфейсе LPT есть 12 пинов, работающих на выход. Обычно управление станком с компьютера осуществляется сигналами шаг-направление и есть 6 осей, которые могут рабтать одновременно, или практически одновременно. На вход могут работать 5 пинов. Задача состоит в том, что бы расширить возможности станка путём последователиной передачи данных через LPT в контролер. Из 12-и пин выхода LPT, 6 пинов остаются работать в режиме "шаг". 4 пина задают адрес, 1-данные, 1-синхро импульс. Из 16-и адресов 6 задают смену направления оси, 1 начало и конец введения адреса, 1 предназначен для введения адреса, 1-команда " адрес + 1" с записью данных в ячейку памяти по каналу данных; 1 адрес - обнуление отсчёта "адрес + 1" Все данные изначально записываются в ячейки в 1-битном формате. Одна ячейка может быть предназначена для включения опроса концевика, включения/выключения реле, установления деления шага/кратности шагов для ускоренного режима серводвигателя. В случае когда 1-го бита не хватает, используется несколько с соседними адресами. Для разработки программы предполагается найти исходники чего-либо или заказать дополнения в программу разработчикам мач4. При этом вроде как раньше можно было купить исходники Mach 3, а в линуксе (для линукс ЦНЦ) вообще исходники должны быть открытыми. Выбор порта LPT, не в пользу остальных, обусловлен двумя факторами: высокой скоростью работы (на практике) и его простотой, пониманием его устройства. Со временем можно добавить возможность работы через USB 2-3, ethernet.  
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Feb 4 2017, 21:56
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Компромиссное предложение, между прямым управлением через LPT или управлением через микроконтроллер + какой-либо из интерфейсов. Предложение такое: LPT + FPGA. 5 проводков LPT порта для первоначальной загрузки прошивки FPGA, а остальные - для обмена данными с схемой контроля шаговиков, собранной внутри этой самой FPGA. К FPGA приделать собственный кварц, для внутреннего тактирования всех времянок. На пины общего назначения, связанные с LPT, вывести любой удобный для себя интерфейс, для опроса текущего состояния. Добавить туда сигнал экстренной остановки, и т.д. В схеме внутри FPGA сформировать примитивы резки: прямых на заданное число шагов, резку по загруженному в SRAM шаблону, и т.п. Касательно памяти для шаблона. Например, даже в самой "слабенькой" FPGA серии Cyclone I, EP1C3T100 - есть 6144 байт SRAM для данных. Чем "сильнее" микросхема, тем в ней SRAM объёмнее. FPGA позволит управлять шаговиками в реальном времени, с опорой на нормальный тактовый сигнал. И при этом рапортовать о состоянии процесса управления без малейших задержек. Также FPGA можно сколько угодно раз загружать новыми конфигурациями внутренней схемы, для разных вариантов управления.
Сообщение отредактировал controller_m30 - Feb 4 2017, 22:22
Эскизы прикрепленных изображений
 РЈРСВеньшено Р В РўвЂР  С• 82%
955 x 478 (13.09 килобайт)
|
|
|
|
|
|
Feb 5 2017, 15:32
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698

|
Это и есть то, что нужно было. Где можно достать эту систему? В развитие темы: было предложение через PCI - E вывести сигнал на контроллеры (сервоприводы, концевики и т.д.) и втыкать их в систему неограниченное количество. Картина получается примерно такая: дешёвый контроллер работает на частоте 16 МГц. Частота шины должна составлять 1/16 = 1 МГц. Оптимальный вариант использования шины: Сигнал делится по 10 байт (80 бит). Первый байт - стартовый (11111111) для синхронизации всех устройств в системе. Далее следует 3 байта для управления шаговыми двигателями и сервоприводами сигналами "шаг вперед - шаг назад", по 2 бита на 1 двигатель. Таким образом, 12 двигателей управляются в режиме реального времени, без дополнительных переключений между осями. Далее следует 1 бит для запроса прерывания ведомым устройством, 15 бит адреса, 14 бит данных и 18 бит пауза для обратной связи. 
|
|
|
|
|
Feb 5 2017, 15:58
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698

|
Без кварца здесь конечно тоже не обойдётся, но он и так стоит в любом устройстве, работающем с последовательной шиной. Хотя, изначально шина PCI или PCI-E обладает какой-то частотой. Её не кварцем получают? Может быть там синхро-импульс с мать. платы проходит?
Ответ чем не устраивает... Будем пробовать. Пока есть сомнения, что это будет работать, в частности в нарезании резьбы. Мне больше симпатизирует вариант без внешнего контроллера с буферизацией, что бы система работала в режиме реального времени. А то что там винда на ней крутитца или линукс - там процессор с 4 ядрами по 4 ГГц. Не дорогой, от AMD.
Сообщение отредактировал Леонид Григорьевич - Feb 5 2017, 16:00
|
|
|
|
|
Feb 5 2017, 17:48
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(Леонид Григорьевич @ Feb 5 2017, 18:32)  Это и есть то, что нужно было. Где можно достать эту систему? Если это о моём предложении, то лучше всего - взять готовую отладочную плату, на которой установлена FPGA, и минимальная обвязка, достаточная для работы. Например вот такая, без наворотов, плата (картинка 1) - содержит всю нужную обвязку для данного применения. Есть кварц, стабилизаторы питания, разъёмы для загрузки конфигурации схемы (те что по 10 pin), и 4 "гребёнки" по 28 pin для сопряжения с внешними устройствами. Т.е. ножек, с помощью которых можно расширить LPT-порт более чем достаточно. Имеется ещё и микросхема памяти, из которой FPGA может автоматически загружать конфигурацию при включении. Для микросхем этого производителя (Altera) есть среда разработки Quartus II. Практически вся разработка может делаться только мышкой. Самый простой способ: из микросхем стандартной логики собирается схема, компилируется в файл для прошивки FPGA, загружается и испытывается. Имеется временной графический анализатор, в котором можно посмотреть временные диаграммы работы схемы. Т.е. что будет на выходе и с какими задержками, в зависимости от того что подаётся на вход. На второй картинке, триггер типа 555ТМ2 (74HC74), а ниже - временная диаграмма работы этой схемы, с точностью до 10 ns. На вход подан меандр, а на выходах будет получен вот такой сигнал. Можно и что-то гораздо более навороченное анализировать, и смотреть как оно себя ведёт в зависимости от входных сигналов. PS. Данная конкретная платка называется " ALTERA FPGA CycloneII EP2C5T144 Mini Development Board". Продаётся и на AliExpress, и в местных инет-магазинах тоже.
Сообщение отредактировал controller_m30 - Feb 5 2017, 18:44
Эскизы прикрепленных изображений
 РЈРСВеньшено Р В РўвЂР  С• 78%
760 x 550 (311.33 килобайт)
|
 РЈРСВеньшено Р В РўвЂР  С• 78%
787 x 409 (16.07 килобайт)
|
|
|
|
|
|
Feb 5 2017, 22:07
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 10-10-16
Пользователь №: 93 698

|
По всем параметрам это то, что я хотел; с ячейками и можно подключить по LPT. https://m.habrahabr.ru/post/274829/ По поводу всей критики - принимается если станок будет в реальном времени работать и резьбу резать. Хоть по Blutus.
|
|
|
|
|
Feb 6 2017, 08:30
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 5-05-10
Из: Гомель, Беларусь
Пользователь №: 57 090

|
Это для себя/хобби, или попытка в серию поставить? Т.к. готовых красивых решений уже масса, и конкурировать с ними будет не просто... В частности есть куча плат MESA для LinuxCNC, в частности у меня отлично работает MESA 7i92 - интерфейс ethernet, соответственно гальванически отвязана от ПК, кабель любой разумной длины и нет проблем с помехами, есть варианты и PCI и PCI-E. Для Mach тоже куча всего есть... Даже если хочется делать свое - посмотрите как сделано у них. А от LPT все потихоньку уходят, т.к. там и джиттер при генерации шагов, из-за отсутствия реалтайма нормального, и низкая частота шагов и т.д. и т.п.
|
|
|
|
|
Feb 6 2017, 14:10
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(AndyBig @ Feb 6 2017, 12:49)  И генерация шагов силами компьютера - тоже тупиковый путь. Автор непоколебим Цитата(AndyBig @ Feb 6 2017, 12:49)  Тогда и контроллер получится сравнительно несложным и недорогим, и можно будет уйти от всех недостатков софтовой генерации шагов. Разработка своего контроллера на ПЛИС с обменом с ПК и прочими примудростями займет не меньше полугода-года. Не знаю есть ли у ТС такое время и столько запала..
|
|
|
|
|
Feb 6 2017, 17:54
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата(Александр77 @ Feb 6 2017, 17:10)  Разработка своего контроллера на ПЛИС с обменом с ПК и прочими примудростями займет не меньше полугода-года. Не знаю есть ли у ТС такое время и столько запала..  Обмен с ПК и прочие высокоуровневые вещи можно сделать на микроконтроллере. Можно и генерацию шагов сделать на нем же, хотя гораздо более эффективным будет отдать эту задачу ПЛИС, с этим согласен  За PCI-E он же вроде почти готов взяться, а там проблем, мне кажется, будет побольше  При том, что проблема LPT никуда не уходят - все та же непредсказуемость во временных интервалах между порциями вывода, все-таки ни Windows ни Linux не являются ОСРВ. А шаговики очень не любят неравномерность между шагами, и реагируют на нее весьма нервно - от повышенной шумности вплоть до полного срыва вращения
|
|
|
|
|
Feb 6 2017, 19:44
|
Знающий
   
Группа: Свой
Сообщений: 608
Регистрация: 10-07-09
Из: Дубна, Московская область
Пользователь №: 51 111

|
Цитата(AndyBig @ Feb 6 2017, 20:54)  Обмен с ПК и прочие высокоуровневые вещи можно сделать на микроконтроллере. Можно и генерацию шагов сделать на нем же, хотя гораздо более эффективным будет отдать эту задачу ПЛИС, с этим согласен  Ну тот же UART давно реализуем в рамках ПЛИС без использования всяких софтовых контроллеров. Цитата(AndyBig @ Feb 6 2017, 20:54)  За PCI-E он же вроде почти готов взяться, а там проблем, мне кажется, будет побольше За любой интерфейс люди готовы ухватиться, если им скажут что он - спасительная нить. А отсутствие опыта, помноженное на непонимание сложностей в реализации задачи приведет к ложному ощущению простоты с итогом "я послушался советов от вас и теперь имею кучу проблем, в то время как вы спокойно спите".
|
|
|
|
|
Feb 6 2017, 20:27
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата(Александр77 @ Feb 6 2017, 22:44)  Ну тот же UART давно реализуем в рамках ПЛИС без использования всяких софтовых контроллеров. Да я не спорю, в рамках ПЛИС реализуется практически любой интерфейс, но разбираться с протокольной частью проще все-же контроллером  Цитата(Александр77 @ Feb 6 2017, 22:44)  отсутствие опыта, помноженное на непонимание сложностей в реализации задачи Это в данном случае и есть главная проблема  Тут только по верхнему софту задача далеко не на пару недель.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|