Как уйти от медленного lpt-порта?

Александр=

Столкнулся с такой проблемой – при обработке мелкого рельефа возникают торможения за счет того, что lpt-порт не успевает выдавать импульсы с необходимой частотой. Все-таки это довольно медленный порт. Порядка 45КГц.Если прицепить ncPod Motion Controller и перейти на USB-интерфейс, то можно добиться 75КГц. Вопрос такой – как можно выйти на частоты порядка 250КГц. Интересует аппаратное решение. Плата контроллера дополнительная или еще как-нибудь.

Jen
Александр=:

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

Как это???

Александр=

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

hanter

сдается мне медленным местом будет всетаки станок, который не в состоянии отрабатывать то что ему выплевывает лпт… сами подумайте - 45 килогерц… станок в состоянии отработать 45 тыщ импульсов в секунду … ???

Magelan

А если микрошаг поставить 1/32 😃
У меня движек раскручивается в полушаге на 25кгц … это уже 3750 об/мин… в станке их применить особо некуда… Если только в шпинделе…

STEPMOTOR
Magelan:

А если микрошаг поставить 1/32 😃
У меня движек раскручивается в полушаге на 25кгц … это уже 3750 об/мин… в станке их применить особо некуда… Если только в шпинделе…

нереальная цифра , это получатся 62 об в сек … 😵
если это и так, то это без нагрузки… 😃 потом посмотрите как он будет работать “в станке”

ATLab
Александр=:

Столкнулся с такой проблемой – при обработке мелкого рельефа возникают торможения за счет того, что lpt-порт не успевает выдавать импульсы с необходимой частотой. Все-таки это довольно медленный порт. Порядка 45КГц.Если прицепить ncPod Motion Controller и перейти на USB-интерфейс, то можно добиться 75КГц. Вопрос такой – как можно выйти на частоты порядка 250КГц. Интересует аппаратное решение. Плата контроллера дополнительная или еще как-нибудь.

Imho, проблема здесь не в LPT, он достаточно быстрый и через него вполне можно без проблем передавать данные со скоростью 300-500 кБайт/сек. (еще в DOS на старых PC это делалось)

  1. Ограничение здесь накладывает в первую очередь CNC софт, почитайте в документации с какой частотой работает ядро вашего софта.
  2. Если используется Windows, то скорость ограничивается еще и ею (ограниченной возможностью программно формировать короткие временные интервалы в Windows).

Выход тут один: использование шустрого специализированного контроллера, интерпретирующего G-codes и самостоятельно формирующего сигналы DIR/STEP.
А уж как он будет получать G-codes - по USB, RS232, через флешку - дело десятое.

Такие решения не прижились в хобби из-за относительной дороговизны - чисто программное решение на PC куда дешевле.
Да и реально нужно ли Вам 250 кГц? Если считать, что двигатель сохранит приемлемый момент до 5000-6000 полных шагов в секунду, то 250 кГц дают дробление примерно 1/50.
Зачем оно такое мелкое?

Если встают такие вопросы, то нужно пересматривать целиком станок - механику + софт. Может, достаточно увеличить шаг винта, и ничего больше делать не нужно…

Magelan:

У меня движек раскручивается в полушаге на 25кгц …

Если 25 кГц - частота полушагов, верю, сам раскручивал до примерно таких скоростей. Если полных шагов - не очень. Какой двигатель (индуктивность. сопротивление, включение, габарит) и драйвер?
В любом случае, на этой скорости он будет останавливаться от чихания рядом.

Soling
Александр=:

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

Промышленные системы не используют LPT только по причине его слабой защищенности. Продумайте внимательно цепочку в Вашем варианте - закончится она все равно параллельным выводом. Как еще Вы сможете дать двигателям инфу по шагам одновременно. Или ёлочкой будем двигаться?
Да и по времени выдать сигнал последовательно на 3 движка даже- дольше как то получается.
Если так хочется разогнать станок до визга - посмотрите настройки проги управления. Скорее всего работает режим “разгон - торможение”. При нем на коротких отрезках средняя скорость перемещения падает.
Вот только из жизни… не стал бы я этого делать. Вогнать порталы в режим резких толчков - мало приятное, да и не безопасное зрелище.
Прежде всего, нужно иметь очень жесткую конструкцию. На высокой скорости рывкимогут легко привести к “болтанке” фрезы. Да и нагрузка на узлы растет не хило.
А обижать LPT не стоит. Он очень полезен на станках. Все остальное - от необходимости. Кабель там, длинный воткнуть, от соседних станков защитится. Но совсем не для повышения скорости.

valmet
Soling:

Скорее всего работает режим “разгон - торможение”.

Тоже согласен. При сложных рельефах скорость обработки очень зависит от ускорения установленного в настройках двигателя. LPT там не виноват.

Александр=

вот-вот, я именно про шустрый спец. контроллер - может, посоветуете. естественно, я не буду раскручивать шаговики до таких оборотов. там дело в том, что я хочу на больших скоростях отрабатывать команды М3/М5, а вот они-то и тормозят порт и вызывают микроспотыкания при движении, так как порт занят перемещением осей. а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы.

banzayy

так 45kГц - это типа Mach2, в версиях по новее там по-моему доходит до 100кГц

Soling
Александр=:

а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы.

Максимальная скорость перемещения всегда ограничивается механикой. Зависит она от масс порталов, от характеристик двигателей, даже от схемы приводов. Разогнать сами двигатели, задача не серьезная. Вот тут, во второй части, доводы против этого занятия.
Разгон
При настройке станка добиваются режимов в которых вся система работает устойчиво. Без пропуска шагов, рывков и … не дай бог, резонансных раскачек. Делается это в программе управления. Для компа любой из станков - всего лишь медленно работающее внешнее устройство. При чем: ну очень очень медленное.
Не забывайте - двигателю нужно не только дать какой то импульс, но и продержать этот импульс достаточное время. Иначе двигун просто не успеет шагнуть. И время это на порядки отлично от скорости смены инфы в регистре порта.
Если так уж надо - залезте в настройки проги управления и посмотрите что там прописано. В Маче менять можно все.
В частности - максимальные скорости рабочих проходов и масимум при переходе.

ATLab
Александр=:

… а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы…

на 1-2 порядка - это в 10-100 раз. Боюсь так ускориться не получится никогда 😃

Creolka

Под эту “игрушку” нужно обновление для Маха, а работает оно только с последними версиями.
И ещё, эта “игрушка” понимает далеко не всё что мах может.
Функционально обрежите Мах процентов на 50-70!
Только в последней версии имеется возможность регулировки оборотами и использования сенсора
для определения величины корректировки фрезы по высоте!
В дальнейшем будут доработки конечно, но пока на мой взгляд отношение цена/возможности
оставляют желать лутшего.

mura
Creolka:

Под эту “игрушку” нужно обновление для Маха, а работает оно только с последними версиями.
И ещё, эта “игрушка” понимает далеко не всё что мах может.
Функционально обрежите Мах процентов на 50-70!
Только в последней версии имеется возможность регулировки оборотами и использования сенсора
для определения величины корректировки фрезы по высоте!
В дальнейшем будут доработки конечно, но пока на мой взгляд отношение цена/возможности
оставляют желать лутшего.

Это с прицелом на будующее, плагины обновляются, будем надеятся что его доведут до ума.
Ну а для лазера его хватает на все сто.

Александр=

Ну а если так проставить вопрос: вот едет каретка по х со скоростью 2м/мин. Как сделать так, чтобы на середине пути при наезде на команду М3 шпиндель включился и при этом каретка в момент включения не останавливалась и не спотыкалась на этом, а как ехала так бы и продолжала ехать дальше.

Creolka
Александр=:

… вот едет каретка по х со скоростью 2м/мин. Как сделать так, чтобы на середине пути при наезде на команду М3 шпиндель включился и при этом каретка в момент включения не останавливалась и не спотыкалась на этом, а как ехала так бы и продолжала ехать дальше.

Весьма своеобразное изречение: при наезде на команду М3 😂
На команду нельзя “наехать”.

В программном управлении существуют приоритеты.
М1/3/5 и т.д. имеют высший приоритет над G, по этому
выполняются сначала они, и ни с того ни сего просто так
на половине пути шпиндель или ещё чего не включится.
Если Вам надо на половине пути включить что либо командой М3,
то прописывается это в УП. Скорость при этом не играет абсолютно
никакой роли.
На практике это выглядит так:


G1 x-150 F2000
x-300 M3

И если у Вас на отработку команды М3 не установлена задержка,
то всё включится в положеном месте и практически без задержки.

Александр=

спасибо за ответ, только непонятено пока.
а чем ваш пример отличается от обычного кода где будет задержка? вроде все как обычно.
и кстати - как убрать задержку программную (если она вдруг есть) в TurboCNС?

Creolka

Про “турбу” не скажу, не знаю.
Наверное где-то в настройках.


G1 x-150 F2000
M3
G4 P1.5… задержка полторы секунды.
G1 x-300

Ax0n
Soling:

Максимальная скорость перемещения всегда ограничивается механикой. Зависит она от масс порталов, от характеристик двигателей, даже от схемы приводов. Разогнать сами двигатели, задача не серьезная. Вот тут, во второй части, доводы против этого занятия.
Разгон
При настройке станка добиваются режимов в которых вся система работает устойчиво. Без пропуска шагов, рывков и … не дай бог, резонансных раскачек. Делается это в программе управления. Для компа любой из станков - всего лишь медленно работающее внешнее устройство. При чем: ну очень очень медленное.
Не забывайте - двигателю нужно не только дать какой то импульс, но и продержать этот импульс достаточное время. Иначе двигун просто не успеет шагнуть. И время это на порядки отлично от скорости смены инфы в регистре порта.
Если так уж надо - залезте в настройки проги управления и посмотрите что там прописано. В Маче менять можно все.
В частности - максимальные скорости рабочих проходов и масимум при переходе.

Программа задает станку обработку векторов. При этом каждый новый вектор исполняется так:-разгон с ускорением до некоторого времени, которое рассчитывается так, чтобы к завершению выполнения вектора станок мог остановиться в конечной точке вектора. Это если векторы короткие. Если векторы длинные, то разгон идет до максималой заданной скорости. Поэтому сложныая траектория,которая состоит из большого количества коротких векторов выполняется медленно, станок просто не успевает разогнаться на каждов отдельном векторе, как надо затормозить, закончить его и начать новый.

3D-BiG
Ax0n:

Программа задает станку обработку векторов. При этом каждый новый вектор исполняется так:-разгон с ускорением до некоторого времени, которое рассчитывается так, чтобы к завершению выполнения вектора станок мог остановиться в конечной точке вектора. Это если векторы короткие. Если векторы длинные, то разгон идет до максималой заданной скорости. Поэтому сложныая траектория,которая состоит из большого количества коротких векторов выполняется медленно, станок просто не успевает разогнаться на каждов отдельном векторе, как надо затормозить, закончить его и начать новый.

Если система управления с прогнозированием, то исполнение вектора перемещения заканчивается не полным остановом, а с максимальной остаточной скоростью, достаточной для перехода на новый вектор без потери шагов двигателями - такой вариант обработки заданий работает быстрее, чем с полным остановом…

Еще положительным моментом для минимизации скорости обработки является, если в системе управления задаются разгонные характеристики не по линейному закону (стартовая частота двигателя и ускорение), а как S-образная кривая, которая более точно соответствует реальным разгонным характеристикам шаговых двигателей (по мере роста частоты следования шаговых импульсов - вращающий момент у двигателей падает)…

Soling
Ax0n:

Программа задает станку обработку векторов.

Картина именно такая. Происходит, как бы подстройка средней скорости к профилю пути. Желающие получить головную боль, могут или отключить этот режим или выставить очень крутую характеристику разгона - торможения. Как правило это делают забыв о том, что имеют дело не с виртуальным станком а с вполне реальной железкой. Железка обладает массой, которую надо разогнать и затормозить, учитывая ее инерцию. Несоблюдение условия приводит к фатальным последствиям. Далеко не все станки могут похвастать жесткостью конструкции. Суммарные колебания фрезы в случае жесткого разгона становятся весьма заметными. И если фреза, скажем, 3 - 6 мм диаметром, еще способна выдержать этот экстрим, то для мелкого инструмента, граверов, мелких фреэ, аттракцион со скачками, чаще всего, кончается в мусорном ведре. Да и на качество обработки все это влияет не в лучшую сторону.
Так что винить LPT совершенно не в чем. Границы скорости задает не он. Между ним и заготовкой есть еще вполне реальные замедлители.
😃

Zarko
3D-BiG:

Если система управления с прогнозированием, то исполнение вектора перемещения заканчивается не полным остановом, а с максимальной остаточной скоростью, достаточной для перехода на новый вектор без потери шагов двигателями - такой вариант обработки заданий работает быстрее, чем с полным остановом…

Эта функция называется Look Ahead. Из хобби софта есть у Mach. Вот тут отлично описан принцип работы
www.instankoservis.ru/index.php?option=com_content…

ACB
Zarko:

Эта функция называется Look Ahead. Из хобби софта есть у Mach. Вот тут отлично описан принцип работы
www.instankoservis.ru/index.php?option=com_content…

Тут соверешенно неправильно описан так называемый Look-a-head, в конце каждого кадра ни одна из современных программ (и даже устаревших) не тормозит до нулевой скорости…