andrysir1

синхронізація чпу
Синхронізація сепвоприводів, або як це працює?

21 повідомлення у цій темі

Всім привіт! Довго думав чи створювати такого роду тему, бо більшість відправить до вивчення основ ЧПУ і взаємодії різних систем і способів управління приводами. 

Скажу так, читав доволі багато, поняття базові розумію, способи регулювання знаю,навіть кілька фрезерних станків на 3 і 4 осі настроював,  проте немає базової освіти в даній галузі, щоб внятно поставити правильні запитання на які хотів би отримати відповіді.

Хотів би правильно розібратись в роботі самої системи синхронізації роботи різних приводів. Як я зрозумів роботу будь-якої стойки, то вона працює по принципу "самого слабого звена"?, то так чи ні? Тобто, якщо уявити роботу двох осей в одній площині, одна важить наприклад тонну, а друга 10 кг.. Від чого залежить межа "розсогласования траектории"( не знаю як це буде українською, бо більшість мануалів на інших мовах), коли наприклад на прискоренні 300мм/ с2 осі не вилітають в помилку по току, проте видно на деталі переліт позиції важчої осі. 

Тобто питання стоїть в тому, з чого власне починати настройку синхронізації? Як я розумію то треба починати з самого нижнього( тобто з току), далі швидкість, а аж в самому кінці позиція? Тоді виникає інше питання, управління по аналогу(ток, або швидкість) тобто синхронізація по позиції в такому випадку вже стойкою не проводиться, і точність положення треба контролювати через сервопривід, я правильно розумію? Але спершу хотілося б вияснити логіку роботи чпу(траекиорії руху) в одній площині, де дві осі, і яка вісь має пріритет, тобто по чому інтерполятор орієнтується при видачі сигналів на осі? В токарці орієнтація по обертах шпінделя( наприклад при нарізці різьби), так як інерційність шпінделя більша за інерційність осі зет. А як в цьому випадку "думає" інтерполятор фрезера?  По швидкості руху інструменту? Ну є параметр макс. "розсогласования" . Як він впливає на систему в реалтаймі при заданій подачі? В мому випадку (стойка NCT), то є лише межа, коли система вийде в аварію при перевищенні даного параметра на будь-якій осі і все. Він сам по собі ніяк не впливає на інтерполятор. 

Питання стоїть не в тому, як настроїти привода, а в тому, як настроїти роботу(з чого власне почати) при високих швидкостях руху осей(8-10 м/хв в режимі G1) і частій зміні прискорень і напрямку, щоб попасти в поле допуску, незважаючи на подачу і оберти? Тобто хочеться мені задати макс. відхилення траекторії, тоді система розраховує макс. подачу, яка можлива на осях, щоб пройти траекторію з заданою точністю, якщо оберти інструмента завеликі для даної подачі, то вони автоматично зменшуються, для тоги, щоб забеспечити встановлений зєм на один зуб. Питання потужності шпінделя упускаєм, враховуючи, що він завідома забеспечує потрібну силу після певної нижньої межі обертів. Чи можна настроїти систему таким чином? Чи я може зайшов не з того "краю" і шпіндель не зможе адекватно реагувати на частоту зміни заданих обертів?

 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

а що за верстат із стойкою нст і швидкостями  ж1 10метрів?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, aegis написав:

а що за верстат із стойкою нст і швидкостями  ж1 10метрів?

Станків є кілька. Силове фрезерування мдф, двп, лдсп, дерево в режимі 2Д. Задача попасти в поле допуску 0.08мм при швидкості подачі 6 м/хв. Задачу таку прставив сам собі. Стойку ставим NCT( умовна модернізація старих ЧПУ)  і хотілося б відмовитись від режимів G61, щоб траекторія попадала в поле допуску зменшуючи пропорційно подачу на кутах та малих радіусах, бо програм як і станків різних доволі багато, а корегувати УП під кожен станок то є доволі довга процедура якщо УП має кілька сотень рядків.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 час назад, andrysir1 сказал:

і хотілося б відмовитись від режимів G61, щоб траекторія попадала в поле допуску зменшуючи пропорційно подачу на кутах та малих радіусах,

думаю, ви розумієте, що це все упирається в прискорення?

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, aegis написав:

думаю, ви розумієте, що це все упирається в прискорення?

Так. Я розумію, що прискорення відіграють важливу роль. Маса осі зет порядка тонна. Станки в основному з рухомими столами.

І теж не легкими. Але привода стоять потужні порядку 25- 50 Нм, в залежності від конструктиву, швп крок 32, через редуктора 1:2 . На даний момент осі можу спокійно розганяти до 20-35 м/хв без вібрацій( чисто по відчуттях) на прискоренні 400 мм/с2. 

Питання стоїть в логіці роботи інтерполятора, параметрів для настройки динаміки є багато, і я не повністю розумію її. Щоб правильно настроїти, потрібна якась точка від якої відштовхуватись. З чого починати правильну настройку? Управління чпу йде через аналог.  

Робота осей по G1 повністю влаштовує, вібрацій нема, чистота і точність переходу між кадрами хороша і швидка, а на переходах між кадрами по G2 чи G3 появляється вібрація при автоматичному скиданні подачі на переходах. Але не при гальмуванні, а на початку виконання наступного кадру. В стойці є осцилоскоп, та його функціонал дуже скупий, і я ніяк не можу зррзуміти, як ним користуватись, щоб побачити скачки і зрозуміти природу їх винекнення. Чи то вплив маси і інерції чи перерегулювання системи. Є параметр FoldError, його настроїв в відповідності до мануалу, який говорить, що Folderr= F/ 60*K, де К(гейн)- підсилювач контура регулювання позиції, який в свою чергу має бути по мануалу в залежності від часу сервоциклу. Тобто час сервоциклу=1/4*К. А є ще PosErr- позиція зчитана від енкодера. А от який звязок вона має з FoldErr не розумію. Найкраща робота станка в динаміці, якщо одночасно працювати обома осями тоді, коли FoldErr=-PosErr, або навпаки і прискорення та Гейн однаковий для всіх осей. Але думаю що це неправильно. Настройками можу змінювати кожен з них в ту чи іншу сторону, але йде викривлення траекторії, якщо поставити різний коефіцієнт підсилення контуру регулювання для осей. 

Тому хотілося б розібратись в самій логіці роботи інтерполятора. Є принципова схема його роботи, але вона виключно окрема на кожну вісь. А як настроїти синхронізацію роботи на перехідних режимах, коли наприклад одна вісь прискорюється, а інша сповільнюється ? Ніяк не дожену на що орієнтуватись і від чого відштовхуватись. 

Якщо комусь буде цікаво, то можу викласти мануал по параметрах настройки стойки на російській мові. 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Фото одного з станків для розуміння масогабаритів і кінематики

хаян вигляд.jpg

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

почекай. я задав наводяще питання про прискорення. прискорення, похибка та швидкість пов'язані між собою. певен що прискорення замале, щоб уживатися з такою похибкою і такою швидкістю

це просто фізика, її не обманути

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
11 година назад, aegis написав:

. певен що прискорення замале, щоб уживатися з такою похибкою і такою швидкістю

це просто фізика, її не обманути

От тому і не хочу прив'язуватись до швидкості, а до точності, щоб станок сам скидав швидкість з заданим прискоренням/сповільненням автоматом перед різкою зміною траекторії до пепеходу через точку забеспечуючи точність в межах поля допуску. Там графік росту швидкості нелінійний, а по S-кривій,і  можна впливати на нього через параметр зменшуючи вібрацію і різкі удари. Також можна настроїти подачу на радіусах по залежності F=√(a*r), де а-прискорення, r- радіус траекторії і станок сам зменшує подачу при виконанні програми. Також можна параметрами задати обмеження при переході між кадрами, або по подачі, або по прискоренню.

Але от тут і є нюанс. Якщо настроїти все на роботу в автоматі, то при проходженні кадру з малим радіусом, подача падає дуже сильно(менше 600мм/хв), і при стабільних обертах шпінделя йде припалювання деталі і нагрів фрези. А якщо настроїти так, щоб подача на малих радіусах була достатня для роботи(>1м/хв), то на великих радіусах получається сильний скачок подачі вже після проходження точки між кадрами. Получається драбинка  на початку траекторії наступного кадру.

Зняв відео відставання системи в динаміці на простій детальці. Сорі за якість. Саме значення FolErr не змінюється при зміні прискорення, змінюється лише швидкість набору значення. Не знаю до яких даних мені потрібно прагнути, щоб забеспечити плавну і точну роботу станка. І чи треба лізти до настройки прискорень в самих драйверах, щоб покращити плавність ходу.

Пізніше закину мануал по настройці параметрів системи на російській. Правда переклад трохи для мене не цілком зрозумілий.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

давай повернемося до фізики. є відома шкільна формула. 

V^2-V0^2=2aS

переводимо в систему СІ і знаходимо бажане прискорення

V=10м/хв=0,167м/с

V0=0

S=0,06мм=0,00006м

a=0,167^2/(2*0.00006)=232 а тепер увага одиниця вимірювання. м/с^2

а у вас 0,4м/с^2

580разів ви не добираєте!

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

О ще, дівіться як впливає швидкість - там квадратична залежність. тобто зменшення в 10 раз (до 1м/хв) потребує прискорення в 100 разів меншого. ви не дотягнете до бажаного 0,06мм тільки в 6 раз, на виході буде близько 0,36мм

ще раз уважно подивіться мої підрахунки, може я десь помилився з підрахунками ;)

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
4 години назад, aegis написав:

давай повернемося до фізики. є відома шкільна формула. 

V^2-V0^2=2aS

переводимо в систему СІ і знаходимо бажане прискорення

V=10м/хв=0,167м/с

V0=0

S=0,06мм=0,00006м

a=0,167^2/(2*0.00006)=232 а тепер увага одиниця вимірювання. м/с^2

а у вас 0,4м/с^2

580разів ви не добираєте!

Спасибі Вам. Проте це виходить критичне прискорення на відстані 0.06мм і скачку швидкості з 0 до 10 м/хв. В реалі цього досягти нереально.  Та й цілі такої нема. Задача стоїть не в досягненні такої точності на швидкості 10 м/хв, а набір станком такої швидкості, щоб проходити траекторію з певною точністю. Ну... З такою реальною точністю я напевне погарячкував, проте ніяк не збагну, що мені показує графа PosErr. Час сервоциклу 6.6мс., Доречі час сервоциклу це час від задачі завдання до приходу результатів  з енкодера чи до видачі нового(вже коригованого) завдання. Зараз час набору прискорення(AccTc) стоїть 0.1с. Прискорення 300мм/с2. Осі рухаються плавно, але немає чіткої синхронізації осі Х з віссю У. Тобто, якщо не скидати швидкість на переході кадрів програми(при G2 чи G3), то траекторія получається викривленою в сторону руху інструменту. Тобто, якщо рух за годинником, то радіус скручується вправо, якщо ту саму таекторію робити.проти год. стрілки, то вліво. Добре видно при складанні 2 деталей з різним спосом обробки в пакет( десь 1 мм, при швидкості обробки 3м/хв), але то вже сума зміщень з двох деталей.

IMG_20190412_122152.jpg

Енкодер на 2500 ліній(10000імп). Пройдений шлях осі 16мм/ оборот енкодера. Тобто в статиці можна відслідкувати чуть більше 1.5 сотки.

Що за дані показує графа PosErr?

Схема контура регулятора позиції

IMG_20190412_140451.jpg

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
1 час назад, andrysir1 сказал:

набір станком такої швидкості, щоб проходити траекторію з певною точністю

ну ви ж самі розповідали, коли у вас це відбувається і які обмеження ви наклали

 

В 11.04.2019 в 15:16, andrysir1 сказал:

Задача попасти в поле допуску 0.08мм при швидкості подачі 6 м/хв. Задачу таку прставив сам собі. Стойку ставим NCT( умовна модернізація старих ЧПУ)  і хотілося б відмовитись від режимів G61, щоб траекторія попадала в поле допуску зменшуючи пропорційно подачу на кутах та малих радіусах

тому я і показав, що ваші вимоги неможливо виконати з точку зору фізики як науки

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

я намагаюся донести, що спочатку треба створити умови, які в принципі можливо виконати, а потім вже намагатися налаштовувати електроніку і чпк бо вже будуть у вас відомості про ключові моменти.

Ви маєте налаштовувати верстат на режими, які в принципі можливі, а не ті що вам замануться. 

Прискорення*маса=сила, тому дивіться, щоб ваші прискорення не зменшили ресурс ваших гвинтів і опор чи взагалі не зруйнували їх.

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
5 годин назад, aegis написав:

 

тому я і показав, що ваші вимоги неможливо виконати з точку зору фізики як науки

Але ж в цеху стоїть станок SAMHO, кореєць,  з масою осі Z близько тонни, а може і більше, і катається це все по осі X мотором на 28Нм по швп з кроком 32 через ремінний редуктор 1:2, з прискоренням 500, і макс. робочою подачою 12м/хв. І катається з точністю криволінійної траекторії 0.1мм. Спецом малював хвильки в перемішку з лініями, малював еквідистантою( діам.фрези+0.1мм )і різнонаправленою траекторією, розриву перемички ніде не було і весь малюнок чітко вписувався  в габаритний прямокутник. Ніде не було підрізів. Подача стояла лише при першому робочому русі F12000 і режим G64, без використання функції високошвидкісної обробки. Зможу навіть зазняти, якщо завтра будуть більші деталі в роботі.

І ще таке питання. Чому Ви взяли умову, що вісь повинна вже через 0.06мм набрати швидкість з 0 до 10 м/хв, щоб досягнути такої точності слідування траекторії? Стойка ЧПУ ж контролює і підкоректовує сигнал навіть під час розгону, чи ні?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

бо коли ви ріжете куток і вимагаєте точного останову, то момент коли одна ось закінчує рух а інша починає має бути в вашому допуску 0,06 чи 0,08мм, а швидкість має змінюватися 0-максимум чи максимум-0. по пам'яті писав

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, aegis написав:

бо коли ви ріжете куток і вимагаєте точного останову, то момент коли одна ось закінчує рух а інша починає має бути в вашому допуску 0,06 чи 0,08мм

От це і найлегше налашувати. В режимі G1, коли кут при переході між кадрами перевищує певне значення, то можна заставити станок зменшувати подачу до точки переходу між кадрами до такої подачі, щоб прискорення чи подача в точці переходу не перевищувало певного значення( аж до нуля). І то желізно. Тобто при будь-якій подачі станок все одно пройде траекторію з зупинкою(або на мінімальнодопустимій швидкості) в точці переходу, і це буде швидше по часі,  ніж використання функції G61. Проблеми появляються при переході кадрів, коли один з них являється кругом,  або різниця радіусів відрізняється на порядок, при цьому розрахункова подача при різних радіусах різна, тому і скачок швидкості за одиницю часу також різний, звідси і драбинка на початку проходження другої траекторії появляється. А як заставити станок розганятись  чи сповільнятись стабільно, в не залежності від розрахункової подачі? 

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Наразі вдалось настроїти ось так

З тем по лінуксцнц виходить, що для хорошої роботи треба прагнути до мінімального значення Folerr. Проте згідно мануалу на NCT, залежність виражається наступною формулою. Folerr=F(подача)/60К(Gain в настройках). Я поставив gain=10 і отримав ту саму залежність від швидкості(на відео трохи видно). Але є одне але, подача ж в мм/хв, Folerr в мм, а Gain в 1/с. І якщо перевести в спільні одиниці, то виходить кака( 10=100/60*10) на швидкості 6м/хв. А якщо відкинути одиниці виміру, то картина виходить нормальна(10=6000/60*10). Виходить, що ця залежність це просто залежність значень параметрів, а не одиниць вимірювання.Чи я помиляюсь?. Всі інші параметри( фідфорвард, джерк, фільтри та ін) стоять в нулях. Результат вийшов по PosErr(дані з енкодера, якшо правильно зрозумів) в межах десятки на будь-якій подачі, аж до 25м/хв, але всеще є скачки на 0.2-0.5 мм (в залежності від осі) при розгоні чи тормозінні. Як їх можна забрати чи зменшити? І чи треба намагатись зменшити Folerr?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

дивіться. у вас є сервоцикл. якщо на пальцях, то це мінімальний проміжок часу, що обраховується стійкою. коли щось рухається, то у вас чпк може мати похибку. ця похибка рівна швидкості*проміжок часу (сервоцикл). тому якщо хочеться зменшити похибку, то треба зменшувати подачу або сервоцикл... це для ідеальних умов, насправді результат буде гірший через налаштування ПІД і реальність системи

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах
, aegis написав:

дивіться. у вас є сервоцикл. якщо на пальцях, то це мінімальний проміжок часу, що обраховується стійкою. коли щось рухається, то у вас чпк може мати похибку. ця похибка рівна швидкості*проміжок часу (сервоцикл). тому якщо хочеться зменшити похибку, то треба зменшувати подачу або сервоцикл... це для ідеальних умов, насправді результат буде гірший через налаштування ПІД і реальність системи

Це я розумію. В стойці згідно мануалу є параметр TimeConstant3, який по мануалу відповідає за час формування помилки слідування (servocycle). Я це розумію як час сервоциклу. Згідно того ж мануалу його значення має приблизно відповідати залежності TC3=1/4*K, де К-коефіцієнт підсилення контура регулювання позиції(Gain). Проте зміна його значення в діапазоні від 0.5с до 0.001с абсолютно не впливає на значення FolErr i PosErr. 

Справа в тому, що в мануалі немає нічого про настройку ПІД сервомоторів, або я не знаю де її там шукати і як вони там "обзиваються". Тому і створив тему про те, як сама стойка синхронізує видачу імпульсів і перетворює їх в аналоговий сигнал. На що орієнтуватись при настройці? На значення енкодера? Чи на FolErr? Просто я не розумію звідки береться його значення. 

Є ще такий параметр як FerdForvard. Його значення в межах від 0 до 1. З того що зрозумів, то це значення, яке додається до основного сигналу швидкості(в процентах) від вирахованого інтерполятором. Якщо я поставлю 0.5 то FolErr зменшиться від 10 до 7.5мм. А в реалі на траекторії це майже ніяк не відобразиться. Лише коли збільшу до 0.8-0.1 появляється вібрація при тормозінні осі.  Що відображає на практиці значення FolErr? Це різниця між заданим  і отриманим положенням осі в певний момент часу? Чи це різниця між розрахованим і реально виданим сигналом? Що тоді відображає PosErr?

0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Ось запустили ще один станок.  Ходи по X-6100mm, по Y та А-2100, по Z-360. 2 вакуумних стола, 2 шпінделя з автозміною інструменту, 2 свердлильних блока з можливістю свердління торців деталі, пила з можливістю обертання навколо осі Зет. Привода китайські, ШВП крок 32, вакуумні насоси, пневмопідтпримка осі Зет, управління по аналогу. Обробляти в основному буде МДФ та масив дерева. Холостий рух 25м/хв, по Зет 6м/хв, робоча подача 10 м/хв.

 

1

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Запустили ще один цікавий станок на одному з мебельних виробництв. Можливості: засверловка вертикальна, засверловка торцева, фрезерування , розкрій пилою, проклейка кромки, торцовка, циклювання кромки. 

Магазин на 18 інструментів, торцеві сверла в 4-х площинах, 22 вертикальні сверла, клеєвий вузол, поворотна вісь інструменту на головному шпінделі, спецоснастка ( агрегати шпіндельні) , яка вставляється в шпінель з магазину.  Одним словом маленький завод для виготовлення меблів і не тільки. ✋

https://youtu.be/KUhRd-KBJeE

Змінено користувачем andrysir1
Орфографія
0

Поділитися повідомленням


Посилання на повідомлення
Поділитися на інших сайтах

Створіть акаунт або увійдіть для коментування

Ви маєте бути користувачем, щоб залишити коментар

Створити акаунт

Зареєструйтеся для отримання акаунта. Це просто!


Зареєструвати акаунт

Увійти

Вже зареєстровані? Увійдіть тут.


Увійти зараз

  • Зараз на сторінці   0 користувачів

    Немає користувачів, які переглядають цю сторінку