Как уйти от медленного lpt-порта?
Столкнулся с такой проблемой – при обработке мелкого рельефа возникают торможения за счет того, что lpt-порт не успевает выдавать импульсы с необходимой частотой.
Как это???
ну вот так. хотелось бы абсолютно плавного движения на большой скорости.
ну не случайно промышленные системы не работают через LPT.
сдается мне медленным местом будет всетаки станок, который не в состоянии отрабатывать то что ему выплевывает лпт… сами подумайте - 45 килогерц… станок в состоянии отработать 45 тыщ импульсов в секунду … ???
А если микрошаг поставить 1/32 😃
У меня движек раскручивается в полушаге на 25кгц … это уже 3750 об/мин… в станке их применить особо некуда… Если только в шпинделе…
А если микрошаг поставить 1/32 😃
У меня движек раскручивается в полушаге на 25кгц … это уже 3750 об/мин… в станке их применить особо некуда… Если только в шпинделе…
нереальная цифра , это получатся 62 об в сек … 😵
если это и так, то это без нагрузки… 😃 потом посмотрите как он будет работать “в станке”
Столкнулся с такой проблемой – при обработке мелкого рельефа возникают торможения за счет того, что lpt-порт не успевает выдавать импульсы с необходимой частотой. Все-таки это довольно медленный порт. Порядка 45КГц.Если прицепить ncPod Motion Controller и перейти на USB-интерфейс, то можно добиться 75КГц. Вопрос такой – как можно выйти на частоты порядка 250КГц. Интересует аппаратное решение. Плата контроллера дополнительная или еще как-нибудь.
Imho, проблема здесь не в LPT, он достаточно быстрый и через него вполне можно без проблем передавать данные со скоростью 300-500 кБайт/сек. (еще в DOS на старых PC это делалось)
- Ограничение здесь накладывает в первую очередь CNC софт, почитайте в документации с какой частотой работает ядро вашего софта.
- Если используется Windows, то скорость ограничивается еще и ею (ограниченной возможностью программно формировать короткие временные интервалы в Windows).
Выход тут один: использование шустрого специализированного контроллера, интерпретирующего G-codes и самостоятельно формирующего сигналы DIR/STEP.
А уж как он будет получать G-codes - по USB, RS232, через флешку - дело десятое.
Такие решения не прижились в хобби из-за относительной дороговизны - чисто программное решение на PC куда дешевле.
Да и реально нужно ли Вам 250 кГц? Если считать, что двигатель сохранит приемлемый момент до 5000-6000 полных шагов в секунду, то 250 кГц дают дробление примерно 1/50.
Зачем оно такое мелкое?
Если встают такие вопросы, то нужно пересматривать целиком станок - механику + софт. Может, достаточно увеличить шаг винта, и ничего больше делать не нужно…
У меня движек раскручивается в полушаге на 25кгц …
Если 25 кГц - частота полушагов, верю, сам раскручивал до примерно таких скоростей. Если полных шагов - не очень. Какой двигатель (индуктивность. сопротивление, включение, габарит) и драйвер?
В любом случае, на этой скорости он будет останавливаться от чихания рядом.
ну вот так. хотелось бы абсолютно плавного движения на большой скорости.
ну не случайно промышленные системы не работают через LPT.
Промышленные системы не используют LPT только по причине его слабой защищенности. Продумайте внимательно цепочку в Вашем варианте - закончится она все равно параллельным выводом. Как еще Вы сможете дать двигателям инфу по шагам одновременно. Или ёлочкой будем двигаться?
Да и по времени выдать сигнал последовательно на 3 движка даже- дольше как то получается.
Если так хочется разогнать станок до визга - посмотрите настройки проги управления. Скорее всего работает режим “разгон - торможение”. При нем на коротких отрезках средняя скорость перемещения падает.
Вот только из жизни… не стал бы я этого делать. Вогнать порталы в режим резких толчков - мало приятное, да и не безопасное зрелище.
Прежде всего, нужно иметь очень жесткую конструкцию. На высокой скорости рывкимогут легко привести к “болтанке” фрезы. Да и нагрузка на узлы растет не хило.
А обижать LPT не стоит. Он очень полезен на станках. Все остальное - от необходимости. Кабель там, длинный воткнуть, от соседних станков защитится. Но совсем не для повышения скорости.
Скорее всего работает режим “разгон - торможение”.
Тоже согласен. При сложных рельефах скорость обработки очень зависит от ускорения установленного в настройках двигателя. LPT там не виноват.
вот-вот, я именно про шустрый спец. контроллер - может, посоветуете. естественно, я не буду раскручивать шаговики до таких оборотов. там дело в том, что я хочу на больших скоростях отрабатывать команды М3/М5, а вот они-то и тормозят порт и вызывают микроспотыкания при движении, так как порт занят перемещением осей. а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы.
так 45kГц - это типа Mach2, в версиях по новее там по-моему доходит до 100кГц
а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы.
Максимальная скорость перемещения всегда ограничивается механикой. Зависит она от масс порталов, от характеристик двигателей, даже от схемы приводов. Разогнать сами двигатели, задача не серьезная. Вот тут, во второй части, доводы против этого занятия.
Разгон
При настройке станка добиваются режимов в которых вся система работает устойчиво. Без пропуска шагов, рывков и … не дай бог, резонансных раскачек. Делается это в программе управления. Для компа любой из станков - всего лишь медленно работающее внешнее устройство. При чем: ну очень очень медленное.
Не забывайте - двигателю нужно не только дать какой то импульс, но и продержать этот импульс достаточное время. Иначе двигун просто не успеет шагнуть. И время это на порядки отлично от скорости смены инфы в регистре порта.
Если так уж надо - залезте в настройки проги управления и посмотрите что там прописано. В Маче менять можно все.
В частности - максимальные скорости рабочих проходов и масимум при переходе.
… а если бы поднять частоту на 1-2 порядка, то эта проблема пропала бы…
на 1-2 порядка - это в 10-100 раз. Боюсь так ускориться не получится никогда 😃
Заказал “игрушку” отсюда, приедет расскажу.
Под эту “игрушку” нужно обновление для Маха, а работает оно только с последними версиями.
И ещё, эта “игрушка” понимает далеко не всё что мах может.
Функционально обрежите Мах процентов на 50-70!
Только в последней версии имеется возможность регулировки оборотами и использования сенсора
для определения величины корректировки фрезы по высоте!
В дальнейшем будут доработки конечно, но пока на мой взгляд отношение цена/возможности
оставляют желать лутшего.
Под эту “игрушку” нужно обновление для Маха, а работает оно только с последними версиями.
И ещё, эта “игрушка” понимает далеко не всё что мах может.
Функционально обрежите Мах процентов на 50-70!
Только в последней версии имеется возможность регулировки оборотами и использования сенсора
для определения величины корректировки фрезы по высоте!
В дальнейшем будут доработки конечно, но пока на мой взгляд отношение цена/возможности
оставляют желать лутшего.
Это с прицелом на будующее, плагины обновляются, будем надеятся что его доведут до ума.
Ну а для лазера его хватает на все сто.
Ну а если так проставить вопрос: вот едет каретка по х со скоростью 2м/мин. Как сделать так, чтобы на середине пути при наезде на команду М3 шпиндель включился и при этом каретка в момент включения не останавливалась и не спотыкалась на этом, а как ехала так бы и продолжала ехать дальше.
… вот едет каретка по х со скоростью 2м/мин. Как сделать так, чтобы на середине пути при наезде на команду М3 шпиндель включился и при этом каретка в момент включения не останавливалась и не спотыкалась на этом, а как ехала так бы и продолжала ехать дальше.
Весьма своеобразное изречение: при наезде на команду М3 😂
На команду нельзя “наехать”.
В программном управлении существуют приоритеты.
М1/3/5 и т.д. имеют высший приоритет над G, по этому
выполняются сначала они, и ни с того ни сего просто так
на половине пути шпиндель или ещё чего не включится.
Если Вам надо на половине пути включить что либо командой М3,
то прописывается это в УП. Скорость при этом не играет абсолютно
никакой роли.
На практике это выглядит так:
…
G1 x-150 F2000
x-300 M3
…
И если у Вас на отработку команды М3 не установлена задержка,
то всё включится в положеном месте и практически без задержки.
спасибо за ответ, только непонятено пока.
а чем ваш пример отличается от обычного кода где будет задержка? вроде все как обычно.
и кстати - как убрать задержку программную (если она вдруг есть) в TurboCNС?
Про “турбу” не скажу, не знаю.
Наверное где-то в настройках.
…
G1 x-150 F2000
M3
G4 P1.5… задержка полторы секунды.
G1 x-300
…
Максимальная скорость перемещения всегда ограничивается механикой. Зависит она от масс порталов, от характеристик двигателей, даже от схемы приводов. Разогнать сами двигатели, задача не серьезная. Вот тут, во второй части, доводы против этого занятия.
Разгон
При настройке станка добиваются режимов в которых вся система работает устойчиво. Без пропуска шагов, рывков и … не дай бог, резонансных раскачек. Делается это в программе управления. Для компа любой из станков - всего лишь медленно работающее внешнее устройство. При чем: ну очень очень медленное.
Не забывайте - двигателю нужно не только дать какой то импульс, но и продержать этот импульс достаточное время. Иначе двигун просто не успеет шагнуть. И время это на порядки отлично от скорости смены инфы в регистре порта.
Если так уж надо - залезте в настройки проги управления и посмотрите что там прописано. В Маче менять можно все.
В частности - максимальные скорости рабочих проходов и масимум при переходе.
Программа задает станку обработку векторов. При этом каждый новый вектор исполняется так:-разгон с ускорением до некоторого времени, которое рассчитывается так, чтобы к завершению выполнения вектора станок мог остановиться в конечной точке вектора. Это если векторы короткие. Если векторы длинные, то разгон идет до максималой заданной скорости. Поэтому сложныая траектория,которая состоит из большого количества коротких векторов выполняется медленно, станок просто не успевает разогнаться на каждов отдельном векторе, как надо затормозить, закончить его и начать новый.
Программа задает станку обработку векторов. При этом каждый новый вектор исполняется так:-разгон с ускорением до некоторого времени, которое рассчитывается так, чтобы к завершению выполнения вектора станок мог остановиться в конечной точке вектора. Это если векторы короткие. Если векторы длинные, то разгон идет до максималой заданной скорости. Поэтому сложныая траектория,которая состоит из большого количества коротких векторов выполняется медленно, станок просто не успевает разогнаться на каждов отдельном векторе, как надо затормозить, закончить его и начать новый.
Если система управления с прогнозированием, то исполнение вектора перемещения заканчивается не полным остановом, а с максимальной остаточной скоростью, достаточной для перехода на новый вектор без потери шагов двигателями - такой вариант обработки заданий работает быстрее, чем с полным остановом…
Еще положительным моментом для минимизации скорости обработки является, если в системе управления задаются разгонные характеристики не по линейному закону (стартовая частота двигателя и ускорение), а как S-образная кривая, которая более точно соответствует реальным разгонным характеристикам шаговых двигателей (по мере роста частоты следования шаговых импульсов - вращающий момент у двигателей падает)…