Якщо те, що ви отримуєте, не відповідає вашим очікуванням, часто ви просто отримуєте певний досвід. Навчання на досвіді покращує ваше розуміння цілого. Діагностувати проблеми найкраще методом «розділяй і володарюй». Під цим я маю на увазі, що якщо ви зможете щоразу видаляти половину змінних з рівняння, ви найшвидше знайдете проблему. У реальному світі це не завжди так, але зазвичай це хороший початок.
1. Поширені проблеми
1.1. Кроковий рух на один крок
Найпоширенішою причиною того, що кроковий двигун не рухається в новій установці, є те, що сигнали кроку та напрямку помінялися місцями. Якщо ви по черзі натискаєте клавіші «вперед» та «назад», а кроковий двигун рухається на один крок щоразу в одному напрямку, це є підказкою.
1.2. Без руху степерів
Багато накопичувачів мають контакт увімкнення або потребують насоса заряду для активації виходу.
1.3. Відстань неправильна
Якщо ви наказуєте осі переміститися на певну відстань, а вона не переміщується на цю відстань, то налаштування масштабу неправильне.
2. Повідомлення про помилки
2.1. Помилка після
Поняття помилки слідування є дивним, коли мова йде про крокові двигуни. Оскільки вони є системою з відкритим контуром, немає зворотного зв’язку щодо положення, який би повідомляв, чи ви насправді вийшли за межі діапазону. LinuxCNC обчислює, чи може він встигати за необхідним рухом, і якщо ні, то видає помилку слідування. Помилки слідування зазвичай є результатом одного з наступних факторів у крокових системах.
-
FERROR занадто малий
-
MIN_FERROR занадто мале значення
-
MAX_VELOCITY занадто швидко
-
MAX_ACCELERATION занадто швидко
-
BASE_PERIOD встановлено занадто довго
-
До осі додано люфт
Будь-яка з вищезазначених причин може призвести до того, що імпульси в режимі реального часу не зможуть підтримувати необхідну частоту кроків. Це може статися, якщо ви не провели тест на затримку достатньо довго, щоб отримати точні дані для введення в майстер StepConf, або якщо ви встановили занадто високі значення максимальної швидкості або максимального прискорення.
Якщо ви додали люфт, вам потрібно збільшити STEPGEN_MAXACCEL до подвійного значення MAX_ACCELERATION у розділі AXIS файлу INI для кожної осі, до якої ви додали люфт. LinuxCNC використовує «додаткове прискорення» при зміні напрямку руху, щоб компенсувати люфт. Без корекції люфту прискорення генератора кроків може бути лише на кілька відсотків вище за прискорення планувальника руху.
2.2. Помилка RTAPI
Коли ви отримуєте цю помилку:
RTAPI: ПОМИЛКА: Неочікувана затримка в реальному часі для завдання n
Ця помилка генерується rtapi на основі повідомлення від RTAI про прострочення терміну. Зазвичай це означає, що значення BASE_PERIOD у розділі [EMCMOT] файлу ini встановлено занадто низьким. Ви повинні запустити тест затримки на тривалий період часу, щоб перевірити, чи є затримки, які можуть спричинити цю проблему. Якщо ви використовували майстер StepConf, запустіть його знову, повторіть тест Base Period Jitter і відрегулюйте Base Period Maximum Jitter на сторінці Basic Machine Information. Можливо, вам доведеться залишити тест працювати протягом тривалого періоду часу, щоб з’ясувати, чи якесь обладнання спричиняє періодичні проблеми.
LinuxCNC відстежує кількість циклів процесора між викликами потоку реального часу. Якщо якийсь елемент вашого обладнання спричиняє затримки або ваші потоки реального часу налаштовані занадто швидко, ви отримаєте цю помилку.
|
Note
|
Ця помилка відображається лише один раз за сеанс. Якщо ваш BASE_PERIOD був занадто низьким, ви можете отримувати сотні тисяч повідомлень про помилки на секунду, якщо відображається більше одного. |
3. Тестування
3.1. Час кроку
Якщо ви бачите, що вісь опиняється в неправильному місці після декількох рухів, ймовірно, що ви не маєте правильних значень часу утримання напрямку або часу кроку для ваших крокових драйверів. Кожна зміна напрямку може призводити до втрати одного або декількох кроків. Якщо двигуни зупиняються, можливо, ви встановили занадто високі значення MAX_ACCELERATION або MAX_VELOCITY для цієї осі.
Наступна програма перевірить конфігурацію осі Z на правильність налаштування. Скопіюйте програму в каталог \~/emc2/nc_files і назвіть її TestZ.ngc або подібним чином. Обнуліть верстат із Z = 0,000 на верхній частині столу. Завантажте та запустіть програму. Вона виконає 200 рухів вперед і назад від 0,5 до 1 дюйма. Якщо у вас є проблема з конфігурацією, ви побачите, що кінцеве положення не буде 0,500 дюйма, як показує вікно осі. Щоб перевірити іншу вісь, просто замініть Z на вашу вісь у рядках G0.
(тестова програма для перевірки втрати позиції осі Z) (msg, тест 1 конфігурації осі Z) G20 #1000=100 (цикл 100 разів) (цей цикл має затримки після переміщень) (перевіряє налаштування прискорення та швидкості) o100 while [#1000] G0 Z1.000 G4 P0.250 G0 Z0.500 G4 P0.250 #1000 = [#1000 - 1] o100 endwhile (повідомлення, тест 2 конфігурації осі Z S для продовження) M1 (зупинка тут) #1000=100 (цикл 100 разів) (наступний цикл не має затримок після переміщень) (тестує час утримання напрямку на конфігурації драйвера, а також максимальне прискорення) o101 while [#1000] G0 Z1.000 G0 Z0.500 #1000 = [#1000 - 1] o101 endwhile (msg, Готово...Z повинен бути точно на 0,5 дюйма над столом) M2