Перейти к содержанию
    

Разработка комплекса программа+железо LPT/USB для станков

"Конь в Вакууме" - это аппаратно - программный комплекс, умеющий работать как со всеми существующими, так и с перспективными интерфейсами и выполнять уже существующие и ещё нет задания.

Собственно, нужно сделать контроллер для станка и программу для контроллера.

В интерфейсе 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.

14857431569233534072.jpg

 

lpt.jpg

 

14857434188881769636187.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем так усложнять, если есть USB?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возможно и не стоит усложнять.

При вращении стандартного шагового двигателя 200 имп/об в полушаговом режиме со скоростью 50 об/с частота импульсов составит 50*200*2=20 000 имп/с.

Вопрос: USB выдаст стабильно 20 000 имп/с по 6-и осям одновременно? Обеспечит ли USB обработку 1000 ячеек памяти по 1-му биту? На сколько стабильно это будет работать? Может там обратную связь получится сделать и обрабатывать её в реальном времени? Как это в железе реализовать? Есть плата rs485, может через неё можно управление станком сделать?

Изменено пользователем Леонид Григорьевич

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Вообще-то, импульсы микроконтроллер выдавать должен, а USB нужно только для его общения с ПК.

2) Где вы видели шаговик, который умеет 50*200=10000 шагов в секунду? Пределом, который я встречал (на потере мощности в 50%) было 600-800 шагов в секунду! Даже при делении шага на 16 это достаточно мало, чтобы одновременно можно было 3-5 шаговиками с одного МК управлять. Справится даже копеечный STM8S003. Хоть я больше STM32 уважаю, но и для STM8 делал управлялку шаговиками.

В случае станка помех может быть очень много, поэтому — да, там предпочтительней RS-485 или CAN для связи с компутером. Ну или сразу компутер в станок пихать, благо, какие-нибудь убогие "малинки" стоят рублей 600!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Компьютер нужен для обеспечения линейной/круговой интерполяции одновременно по 3-м осям. Пример- нарезание конусной резьбы. Если это будет делать контроллер, он будет почти полностью дублировать функции компьютера. На практике такие устройства стоят порядка 100-200 тыс. руб. Типа НЦ201-НЦ400

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Компьютер нужен для обеспечения линейной/круговой интерполяции одновременно по 3-м осям. Пример- нарезание конусной резьбы. Если это будет делать контроллер, он будет почти полностью дублировать функции компьютера. На практике такие устройства стоят порядка 100-200 тыс. руб. Типа НЦ201-НЦ400

посмотрите платы управления для 3D принтеров, порядок цен от 2 до 10 тыр, линейная и круговая интерполяция по 2 осям + подача по еще 2 осям + стабилизация температуры двух нагревателей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Расчёт 20 000 шагов в секунду сделан для обозначения предельных параметров системы. Были американские программы, которые не выдавали достаточной частоты, и на этом фоне Mach начал заметно выигрывать. Возможно, в станке будут стоять серводвигатели, и они будут управляться так же сигналом шаг/направление. Может быть с разными коэффициентами - 100, 1000, 10 000 имп/оборот.

 

3. Перечисленные контроллеры буду изучать. Сомнения в быстродействии системы на USB связано ещё с тем фактом, что прошивка контроллеров через порт LPT проходит в 2 раза быстрее, чем по USB. По этому было бы хорошо обеспечить возможность работы как по USB, так и по LPT. Начать лучше с LPT.

Вопрос по rs485 наверное придётся выделить в отдельную тему. Пока нет программы для работы станка через rs485 и ответных устройств, таких как серводвигатели rs485, реле rs485, концевики rs485. В природе возможно это есть, нужно искать. Или создавать.

 

4. Можно подробнее про "малинки" по 600 р?

 

Плата от 3d принтера даёт ограниченные возможности. Суть вопроса о создании контроллера с расшимяемыми возможностями. Например, плата с двумя rs485 обеспечивает обмен информацией с 254 устройствами, из них 64 физических.

 

Был станок, который работал через rs232 (com порт). Работать он начал после устранения всех контакторов и замены на тиристоры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сомнения в быстродействии системы на USB связано ещё с тем фактом, что прошивка контроллеров через порт LPT проходит в 2 раза быстрее, чем по USB

Это еще что за фантастика? USB даже в режиме CDC обеспечивает как минимум мегабит в секунду! А уж если полноценный FS поднять, так совсем хорошо будет. А LPT — жутко тормозящий интерфейс.

Не говоря уже о том, что параллельные порты уже давно вымирают. Все меньше шансов встретить материнку с аппаратным LPT.

В природе возможно это есть, нужно искать. Или создавать.

Ничего сложного. И совсем недорого будет по железу.

Можно подробнее про "малинки" по 600 р?

aliexpress, ebay

 

И вообще, лучше начать с реального чего-то, а потом расширять функционал. Если сразу строить наполеоновские планы, так можно и закончить ни с чем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну у меня станина уже готова и посадочные места под двигатели и ШВП

http://www.16b16t1.ru

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

Есть супер-интерфейс EtherCAT. 10 КГц частота тактирования сервы по 100 осям. Но мне все таки кажется реальные сделать устройство на базе LPT, потому что проще LPT нет ничего. А по ресурсам - 6 одновременно работающих осей хватает за глаза. С частотой шагов тоже справляется, даже под Winds.

Про малинки так и не понял, это нетбуки малинового цвета или что искать нужно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Малинки" ­— это "raspberry pi" и им подобные армовские одноплатники. Довольно компактные и недорогие. В самый раз, чтобы внутрь прибора засунуть — наружу только ethernet разъем торчит (а то и вообще по wifi). Запускаешь браузер, выходишь на веб-морду и дергаешь что нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть супер-интерфейс EtherCAT. 10 КГц частота тактирования сервы по 100 осям.

Сделали-бы сначала на том что есть и отлажено, а потом-бы мечтали.

http://purelogic.ru/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Компьютер нужен для обеспечения линейной/круговой интерполяции одновременно по 3-м осям. Пример- нарезание конусной резьбы. Если это будет делать контроллер, он будет почти полностью дублировать функции компьютера.

А где гарантия что вовремя рассчитанное компьютером новое значение попадет на исполнительное устройство (т.е. пройдет весь путь от ПК до двигателя) без задержек? Если на ПК вертится операционка типа винды или линукса - то время между тем когда команда была послана и тем когда она физически уйдет в МК может плыть с большущей вариантностью.

Так что может пусть МК дублирует полностью работу ПК - в таком случае шансы получить неожиданную деталь снизятся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это еще что за фантастика? USB даже в режиме CDC обеспечивает как минимум мегабит в секунду! А уж если полноценный FS поднять, так совсем хорошо будет. А LPT — жутко тормозящий интерфейс.

Ну, вообще-то LPT вовсе не тормозящий, особенно в сравнении с USB LS и даже FS. И особенно для задач, где важно время отклика удаленной системы (пример - любой JTAG адаптер или, скажем, SPI программатор, в общем, любая задача с BitBang'ом). Время чтения или записи регистра данных LPT - порядка длительности цикла ISA-шины, а это порядка 1 мкс в худшем случае. Считая время формирования реакции на запись в подключенном устройстве =0 (чтобы получить крайнюю оценку), имеем время отклика

tResponse = 2 * 1us = 2 us,

что дает оценку теоретического предела частоты воздействий

fControl = 1 / 2us = 0.5 MHz.

 

Теперь учтем время реакции управляемого объекта - пусть это будет еще 2 мкс (что, согласитесь, весьма расслабленно для современной электроники). В результате имеем:

tResponse = 2 us + 2 us = 4 us

fControl = 1/tResponse = 1/(4E-6) = 250 kHz

 

А что у нас в USB системе? Воздействия/отклики USB device привязаны к хождению по USB их фреймов, период следования которых для LS/FS 1 ms. В результате имеем :

tResponse = 1ms + 1 ms = 2 ms

fControl = 1 / 2 ms = 500 Hz

И в любом случае частота считывания параметра, на который мы воздействуем, будет не лучше 1000 Hz (=1/1ms).

 

Вывод: если подключать через USB - надо хотя бы часть функционала, ту, которая требует быстрого отклика на воздействие, переносить на устройство, локализовывать. С LPT (если он есть еще под рукой :-), конечно) - можно попробовать чем-то поуправлять, вычисляя все необходимое на PC.

 

Не говоря уже о том, что параллельные порты уже давно вымирают. Все меньше шансов встретить материнку с аппаратным LPT.

Это да. С перспективной точки зрения надо смотреть на варианты с локализованной частью функционала, который может бегать на, скажем, подходящем контроллере с USB интерфейсом.

 

Но если ТС имеет LPT под рукой, и он ему ближе и понятнее, то первую реализацию можно и на LPT сделать. Только декомпозировать фунционал надо сразу с оглядкой на будущую локализацию процедур быстрой реакции на устройстве непосредственного управления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

LPT окончательно умер 10 лет назад, 232 готовится следом.

Нет никакого смысла гальванизировать.

Ещё через несколько лет отомрут последние динозавры, и встретить LPT можно будет только в музее.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...