Перейти к публикации

Научная задача( Ваши мысли на данную проблему.


ivandenga

Рекомендованные сообщения

Задача 1: при перемещение на определённое расстояние необходимо изменять обороты шпинделя с заданным интервалом времени.

Например: необходимо переместиться на расстояние 600мм с подачей 60мм/мин, и при выполнении перемещения менять каждые 60 секунд кол-во оборотов шпинделя (уменьшать или увеличивать на 100).

Задача 2: при перемещение на определённое расстояние необходимо изменять обороты шпинделя с заданным интервалом перемещений.

Например: необходимо переместиться на расстояние 600мм с подачей 60мм/мин, и при выполнении перемещения менять через каждые 100мм кол-во оборотов шпинделя (уменьшать или увеличивать на 100).

Есть предположение на примере постоянной скорости резания только изменение обротов шп происходит при перемещении по оси Z (по длинне заготовки) в токарном станке, а не по диаметру.

Как реализовать данные вещи в программе стандартно или через макропеременные, может с помощью таймеров определённых?

Просто описание тойже G04 таково из мануала:

G65P9101 T(время ожидания)

O9101

#3001=0;

while[#3001le#20]do1;

end1;

m99;

Может даст кто намётку как чтонибудь наподобие сваять. Буду очень благодарен.

Ещёбы примерный макрос на цикл g83 прирывистого сверления заиметь в арсинал, может там чтонить додумаю...

Читая талмут и имея минимальный опыт работы с макропеременными покачто никчему не пришел(((

"Даная функция может применяться например для устранения вибрации при токарной обработке валов..."

Я понимаю, что всё это никому не нужно, но веяния в головах преподователей таковы - "я заню что так можно, но ты сам подумай и сделай проект"

Зарание благодарен.

Изменено пользователем ivandenga
Ссылка на сообщение
Поделиться на других сайтах


Задача 1: при перемещение на определённое расстояние необходимо изменять обороты шпинделя с заданным интервалом времени.

Например: необходимо переместиться на расстояние 600мм с подачей 60мм/мин, и при выполнении перемещения менять каждые 60 секунд кол-во оборотов шпинделя (уменьшать или увеличивать на 100).

Задача 2: при перемещение на определённое расстояние необходимо изменять обороты шпинделя с заданным интервалом перемещений.

Например: необходимо переместиться на расстояние 600мм с подачей 60мм/мин, и при выполнении перемещения менять через каждые 100мм кол-во оборотов шпинделя (уменьшать или увеличивать на 100).

Есть предположение на примере постоянной скорости резания только изменение обротов шп происходит при перемещении по оси Z (по длинне заготовки) в токарном станке, а не по диаметру.

Как реализовать данные вещи в программе стандартно или через макропеременные, может с помощью таймеров определённых?

Просто описание тойже G04 таково из мануала:

G65P9101 T(время ожидания)

O9101

#3001=0;

while[#3001le#20]do1;

end1;

m99;

Может даст кто намётку как чтонибудь наподобие сваять. Буду очень благодарен.

Ещёбы примерный макрос на цикл g83 прирывистого сверления заиметь в арсинал, может там чтонить додумаю...

Читая талмут и имея минимальный опыт работы с макропеременными покачто никчему не пришел(((

"Даная функция может применяться например для устранения вибрации при токарной обработке валов..."

Я понимаю, что всё это никому не нужно, но веяния в головах преподователей таковы - "я заню что так можно, но ты сам подумай и сделай проект"

Зарание благодарен.

"Совершенно оболванен

От таких серьезных тем,

Тихо ахнул поселянин:

«Вот же круто! А зачем?» © Д.Быков

Интересует выделенное :)

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

"А чтобы было"...еслиб я умел читать мысли преподов)))хотя мы все к этому стремимся)

А так задача поставлена надо решать.......................................

Может есть у кого книжечка Parametric programming for computer numerical control machine tools and ... Авторы: Mike Lynch в pdf? а может и на русском))))

<noindex>http://books.google.ru/books?id=jetkY1J7Xn...p;q&f=false</noindex>

Изменено пользователем ivandenga
Ссылка на сообщение
Поделиться на других сайтах

По первой задаче очень приблизительно и на неудобной коленке - как-то так:

#600 = 600 (Общий путь - L)

#602 = 60 (подача - f)

#603 = 1000 (номинальные обороты - S)

#604 = 100 (изменение оборотов - delta S)

#605 = 1 (промежуток времени - delta t в мин)

M3 S[#603]

#606 = #602 * #605 (участок пути)

#607 = #600 / #606 (кол-во этих участков)

WHILE[#607GT0]DO 1

G91 X[#606] S[#603+#604] F[#602]

#607=#607-1

END1

Тут только принцип изложен - это никак не готовая программа или подпрограмма. Для второй задачи - все по аналогии

Есть еще одно НО, насколько мне память не изменяет команда S выполняется не в течение кадра, а либо в начале, либо в конце (чесслово не знаю). Поэтому если идея плавно менять обороты (о чем четко в задаче не сказано), то тогда это все надо еще разбивать на мелкие перемещения с изменениями оборотов...

А еще забыл сказать, что надо еще кое-что с логикой ваять, если количество участков получается нецелым, но там, я думаю уже тоже мозгов хватит - что с этим делать :)

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

о гуру спасибо огромное!...сижу сейчас тоже чтото наподобие состряпал...есть один вопросик по количеству участвов как раз какая функция отвечает за преобразование в целое значение так и немогу наути в мануале по типу если по Вашим переменным #607 = #600 / #606, #607 - дробное, как из него выделить целую часть и например присвоит переменную #608 и использовать в дальнейшем #608=#608-1...

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

Про остаток чуть позже...

Кстати внутри While я забыл добавить что то типа #603=#603+#604, а то унас обороты только в первый раз увеличатся на сто...

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

Итак, как это могет выглядеть с учетом остатку

#600 = 600 (Общий путь - L)

#602 = 60 (подача - f)

#603 = 1000 (номинальные обороты - S)

#604 = 100 (изменение оборотов - delta S)

#605 = 1 (промежуток времени - delta t в мин)

M3 S[#603]

#606 = #602 * #605 (участок пути)

#607 = #600 / #606 (кол-во этих участков)

#608 = ROUND[#607] (це округление до целого)

#609 = #607 - #608 (це мы находим остаток)

WHILE[#608GT0]DO 1 (теперь тут все на 608 переменную поменял, то есть ходим по кратным участкам)

G91 X[#606] S[#603+#604] F[#602]

#608=#608-1

#603=#603+#604

END1

G91 X[#609] S[#603+#604] F[#602] (а тут мы добиваем остаток)

Вроде так. Вопрос как проходить остаток - с увеличением оборотов или без решается просто либо как я выше написал, либо S[#603]

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

Как-то так...

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

Понятно! Спасибо большое!!! По времени анологично сам забацал и даже на станке прогнал - всё работает)))))

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

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

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

Гость
Ответить в тему...

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

  Разрешено не более 75 эмодзи.

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

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

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

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




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