EMC2 Integrators Manual Перевод на русский язык

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

Перевод переезжает в wiki

Принято решение перенести работу по переводу Integrator's Manual LinuxCNC в wiki cnc-club. Это позволит всем участникам принять активное участие в переводе и корректировке переводов.

Оглавление перевода:
http://cnc-club.ru/wiki/index.php/Шабло ... ors_manual

EMC2 Руководство станкостроителя на русском языке

Эта тема - начало перевода EMC2 Integrators Manual от команды LinuxCNC.org
Оригинал книги находится здесь: http://www.linuxcnc.org/index.php/russian/documentation (англ http://www.linuxcnc.org/index.php/english/documentation )
Если у Вас есть желание помочь в переводе, вы можете выбрать любую главу для перевода. Мы с удовольствием поможем ее оформить и разместить.
Если Вы нашли неточности, мы будем рады их исправить.
У Вас есть право на распространение и/или изменение этого документа в рамках GNU Free Documentation Licence версия 1.1 или любой другой более поздней версии опубликованной Free Software Foundation без неизменяемых разделов, без передней обложки и одной фразой на задней обложке "Это руководство по EMC продукт нескольких авторов пишущих для LinuxCNC.org. Если вы найдете его полезным в своей работе, мы приглашаем Вас внести свой вклад в его доработку и расширение." Копия этой лицензии включена в раздел озаглавленный "GNU Free Documentation License". Если вы не найдете лицензию, вы можете заказать копию в Free Software Foundation, Inc. По адресу 59 Temple Place, Suite 330 Boston, MA, 02111-1307.
(для просмотра содержимого нажмите на ссылку)

Содержание

  1. Важные определения
    1. Системы с шаговыми двигателями
      1. Base Period
      2. Время шага
    2. Серво двигатели
      1. Настройка
      2. Пропорциональный член
      3. Интегральный член
      4. Дифференциальный член
      5. Настройка цикла
      6. Ручная настройка
    3. RTAI
  2. Аппаратное обеспечеине
    1. Latency Test
    2. Адрес порта
  3. Конфигурационные файлы
    1. Файлы используемые для конфигурации
  4. Файл INI
    1. Схема ini файла
      1. Комментарии
      2. Разделы
      3. Переменные
      4. Определения
    2. Разделы
      1. Раздел [EMC]
      2. Раздел [DISPLAY]
      3. Раздел [FILTER]
      4. Раздел [RS274NGC]
      5. Раздел [EMCMOT]
      6. Раздел [TASK]
      7. Раздел [HAL]
      8. Раздел [TRAJ]
      9. Разделы [AXIS_<num>]
        1. Выставление осей (Homing)
        2. Серво
        3. Шаговые двигатели
      10. Раздел [EMCIO]
    3. Выставление осей (Homing)
      1. Обзор
      2. Последоватиельность выставления осей (Homing Sequence)
      3. Настройка
      4. HOME_SEARCH_VEL (Скорость поиска home)
      5. HOME_LATCH_VEL (Скорость уточнения home)
      6. HOME_FINAL_VEL
      7. HOME_IGNORE_LIMITS
      8. HOME_USE_INDEX
      9. HOME_OFFSET
      10. HOME
      11. HOME_IS_SHARED
      12. HOME_SEQUENCE
    4. Токарные станки (Lathe)
      1. Рабочая плоскость по умолчанию (Default Plane)
      2. Настройка INI
  5. EMC2 и HAL
    1. motion (realtime)
      1. Параметры
      2. Пины
      3. Параметры
      4. Функции
    2. axis.N (realtime)
      1. Пины
      2. Параметры
    3. iocontrol (userspace)
      1. Пины
Эти главы тоже переведены, несмотря на то, что не переведено содержание
HAL
6 Getting Started
6.1 Hal Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.1.1 loadrt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.2 addf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.3 loadusr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.1.4 net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.1.5 setp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.6 unlinkp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.7 Obsolete Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.7.1 linksp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.7.2 linkps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.1.7.3 newsig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2 Hal Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.1 Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.2 Float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.3 s32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.4 u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.3 Hal Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.4 HAL Components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5 Logic Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5.1 and2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.5.2 not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.5.3 or2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.5.4 xor2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.5.5 Logic Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.6 Conversion Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.6.1 weighted_sum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.7 Halshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.7.1 Starting Halshow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.7.2 Hal Tree Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.7.3 Hal Show Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.7.4 Hal Watch Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7 Basic Configuration
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2 Maximum step rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.3 Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.3.1 standard_pinout.hal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3.2 Overview of the standard_pinout.hal . . . . . . . . . . . . . . . . . . . . . . . . . . 50
7.3.3 Changing the standard_pinout.hal. . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3.4 Changing the polarity of a signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3.5 Adding PWM Spindle Speed Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.3.6 Adding an enable signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.3.7 Adding an external ESTOP button . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8 HAL Components
8.1 Commands and Userspace Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.2 Realtime Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2.1 abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2.2 and2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2.3 at_pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2.4 axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.5 biquad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.6 bldc_hall3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.7 blend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.8 charge_pump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.9 clarke2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.2.10 clarke3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.2.11 clarkeinv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.2.12 classicladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.13 comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.14 constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.15 conv_bit_s32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.16 conv_bit_u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.17 conv_float_s32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.18 conv_float_u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.19 conv_s32_bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.20 conv_s32_float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.21 conv_s32_u32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.22 conv_u32_bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.23 conv_u32_float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.24 conv_u32_s32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.25 counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.26 ddt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.27 deadzone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.28 debounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.29 edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.30 encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.31 encoder_ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.32 estop_latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.33 feedcomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.34 flipflop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.35 freqgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.36 gantrykins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.37 gearchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.38 genhexkins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.39 genserkins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.40 hm2_7i43 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.41 hm2_pci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.42 hostmot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.43 hypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.44 ilowpass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.2.45 integ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.46 invert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.47 joyhandle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.48 kins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.49 knob2float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.50 limit1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.51 limit2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.52 limit3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.53 logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.54 lowpass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.55 lut5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.2.56 maj3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.57 match8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.58 maxkins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.59 minmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.60 motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.61 mult2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.62 mux2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.63 mux4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.64 mux8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.65 near . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.66 not . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.67 offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.68 oneshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.69 or2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.70 pid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.71 pluto_servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.72 pluto_step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.73 pwmgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.74 rotatekins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.75 sample_hold. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.76 sampler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.77 scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.78 scarakins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.79 select8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.80 serport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.81 siggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.82 sim_encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.83 sphereprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.84 stepgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.85 steptest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.86 streamer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.87 sum2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.88 supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.2.89 thc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.90 threads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.91 threadtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.92 timedelay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.93 timedelta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.94 toggle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.95 toggle2nist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.96 tripodkins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.97 tristate_bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.98 tristate_float . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.99 trivkins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.2.100 updown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.2.101 wcomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.2.102 weighted_sum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.2.103 xor2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.3 Hal Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.4 Stepgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8.4.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.4.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.4.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
8.4.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.5 Step Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
8.4.6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.5 PWMgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.5.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.5.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.5.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.5.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.5.5 Output Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.5.6 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.6 Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.6.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.6.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.6.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.6.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.6.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
8.7 PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.7.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.7.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.7.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8.7.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.7.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.8 Simulated Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.8.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.9 Debounce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.9.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.10 Siggen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10.2 Removing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10.3 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10.4 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.10.5 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
9 Parallel Port
9.1 Parport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.1.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
9.1.2 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.1.3 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9.1.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.1.5 Common problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.1.6 Using DoubleStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.2 probe_parport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.2.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10 Halui
10.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2 Halui pin reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2.1 Abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2.2 Axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2.3 E-Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.2.4 Feed Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2.5 Flood . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2.6 Homing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2.7 Jog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2.8 Joint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.2.9 Lube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
10.2.10 Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.2.11 Max Velocity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.2.12 MDI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.2.13 Mist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
10.2.14 Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.2.15 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.2.16 Spindle Override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.2.17 Spindle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
10.2.18 Тool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
11 HAL Examples
11.1 Manual Toolchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.2 Compute Velocity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
11.3 Soft Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
12 pyVCP
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
12.2 Panel Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
12.3 Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.4 AXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
12.5 Stand Alone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
12.6 Widgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
12.6.1 Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
12.6.2 LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
12.6.2.1 Round LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
12.6.2.2 Rectangle LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
12.6.3 Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
12.6.3.1 Text Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
12.6.3.2 Checkbutton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
12.6.3.3 Radiobutton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
12.6.4 Number Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.6.4.1 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.6.4.2 s32 Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
12.6.4.3 u32 Number. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
12.6.4.4 Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
12.6.4.5 Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
12.6.5 Number Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
12.6.5.1 Spinbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
12.6.5.2 Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
12.6.5.3 Dial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
12.6.5.4 Jogwheel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.6.6 Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
12.6.6.1 Image Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
12.6.6.2 Image u32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
12.6.7 Containers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
12.6.7.1 Borders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
12.6.7.2 Hbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
12.6.7.3 Vbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
12.6.7.4 Labelframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
12.6.7.5 Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119


12.6.7.6Tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
X
EMC V2.4 Integrator Manual
CONTENTS
13 pyVCP Examples
121
13.1 AXIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
13.2 Floating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
13.3 Jog Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
13.4 Port Tester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
13.5 GS2 RPM Meter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
III
Hardware Drivers
133
14 AX5214H
134
14.1 Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
14.2 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
14.3 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
14.4 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
15 GS2 VFD 136
16 Mesa HostMot2 138
16.1 Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
16.2 Firmware Binaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
16.3 Installing Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
16.4 Loading HostMot2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
16.5 Watchdog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
16.6 HostMot2 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
16.7 Pinouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
16.8 PIN Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
16.9 Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
16.10
HAL Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
16.11
Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
16.12
GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
16.13
StepGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
16.14
PWMGen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
16.15
Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
16.16
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
XI
EMC V2.4 Integrator Manual
CONTENTS
17 m5i20
149
17.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
17.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
17.3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
17.4 Connector pinout
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
17.4.1Connector P2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
17.4.2Connector P3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
17.4.3Connector P4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
17.4.4LEDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
18 Motenc
154
18.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
18.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
18.3 Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
19 OPTO22 PCI
156
19.1 The Adapter Card . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
19.2 The Driver
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
19.3 PINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
19.4 PARAMETERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
19.5 FUNCTIONS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
19.6 Configuring I/O Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
19.7 Pin Numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
20 Pico PPMC
159
20.0.1Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
20.0.2Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
20.0.3Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
21 Pluto-P
162
21.1 General Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
21.1.1Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
21.1.2Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
21.1.3Physical Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
21.1.4LED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
21.1.5Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
21.1.6PC interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
21.1.7Rebuilding the FPGA firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
21.1.8For more information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
21.2 pluto-servo: Hardware PWM and quadrature counting . . . . . . . . . . . . . . . . . . . . 164
XII
EMC V2.4 Integrator Manual
CONTENTS
21.2.1Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
21.2.2Input latching and output updating . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
21.2.3HAL Functions, Pins and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 166
21.2.4Compatible driver hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
21.3 Pluto-step: 300kHz Hardware Step Generator . . . . . . . . . . . . . . . . . . . . . . . . . 166
21.3.1Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
21.3.2Input latching and output updating . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
21.3.3Step Waveform Timings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
21.3.4HAL Functions, Pins and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 168
22 Servo-To-Go
169
22.0.5Installing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
22.1 Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
22.2 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
22.2.1Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
IV
Advanced topics
171
23 Kinematics in EMC2
23.1 Introduction
172
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
23.1.1Joints vs. Axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
23.2 Trivial Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
23.3 Non-trivial kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
23.3.1Forward transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
23.3.2Inverse transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
23.4 Implementation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
V
Tuning
176
24 Stepper Tuning
177
24.1 Getting the most out of Software Stepping . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
24.1.1Run a Latency Test
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
24.1.2Figure out what your drives expect . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
24.1.3Choose your BASE_PERIOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
24.1.4Use steplen, stepspace, dirsetup, and/or dirhold . . . . . . . . . . . . . . . . . . . 180
24.1.5No Guessing! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
25 PID Tuning
182
25.1 PID Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
25.1.1Control loop basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
25.1.2Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
25.1.3Loop Tuning
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
XIII
EMC V2.4 Integrator Manual
VI
CONTENTS
Ladder Logic
185
26 Ladder programming
26.1 Introduction
186
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
26.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
27 Classic Ladder
27.1 Introduction
188
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
27.2 Ladder Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
27.3 Languages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
27.4 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
27.4.1Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
27.4.2Realtime Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
27.4.3Variables
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
27.5 Loading the Classic Ladder user module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
27.6 Classic Ladder GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
27.6.1Sections Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
27.6.2Section Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
27.6.3The Variable Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
27.6.4Symbol Window
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
27.6.5The Editor window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
27.6.6Config Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
27.7 Ladder objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
27.7.1CONTACTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
27.7.2IEC TIMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
27.7.3TIMERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
27.7.4MONOSTABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
27.7.5COUNTERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
27.7.6COMPARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
27.7.7VARIABLE ASSIGNMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
27.7.8COILS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
27.7.8.1JUMP COIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
27.7.8.2CALL COIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
27.8 Classic Ladder Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
27.9 GRAFCET Programming
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
27.10
Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
27.10.1 ODBUS Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
M
27.10.2 ODBUS Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
M
27.10.3 ommunication Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
C
XIV
EMC V2.4 Integrator Manual
CONTENTS
27.10.4 ODBUS Bugs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
M
27.11
Setting up Classic Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
27.11.1 dd the Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
A
27.11.2 dding Ladder Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
A
27.12
Ladder Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
27.12.1 rapping Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
W
27.12.2 eject Extra Pulses
R
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
27.12.3 xternal E-Stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
E
27.12.4 imer/Operate Example
T
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
27.12.5 ool Turret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
T
27.12.6 equential Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
S
VII
Hardware Examples
221
28 Second Parallel Port 222
29 Spindle Control 223
29.1 0-10v Spindle Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
29.2 PWM Spindle Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
29.3 Spindle Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
29.4 Spindle Direction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
29.5 Spindle Soft Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
30 Spindle Feedback
225
30.1 Spindle Synchronized Motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
30.2 Spindle At Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
31 MPG Pendant 227
32 GS2 Spindle 229
VIII
Diagnostics
230
33 Steppers
231
33.1 Common Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.1.1Stepper Moves One Step
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.1.2No Steppers Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.1.3Distance Not Correct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.2 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.2.1Following Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
33.2.2RTAPI Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
33.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
33.3.1Step Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
XV
EMC V2.4 Integrator Manual
IX
CONTENTS
FAQ
234
34 Linux FAQ
235
34.1 Automatic Login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
34.2 Automatic Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
34.3 Man Pages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
34.4 List Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.5 Editing a Root File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.5.1The Command Line Way
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.5.2The GUI Way . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.5.3Root Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.6 Terminal Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.6.1Working Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
34.6.2Changing Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
34.6.3Listing files in a directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
34.6.4Finding a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
34.6.5Searching for Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.6.6Bootup Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.7 Convenience Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.7.1Terminal Launcher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.8 Hardware Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.8.1Hardware Info
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
34.8.2Monitor Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
X
Appendices
239
35 Glossary 240
36 Legal Section 244
36.1 Copyright Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
36.2 GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

Глава 1
Важные определения

1.1 Системы с шаговыми двигателями

Base Period

BASE_PERIOD это "стук сердца" вашего компьютера с EMC. Каждый период программный генератор шагов решает, не пришло ли время для следующего импульса шага. Более короткий период позволит генерировать больше импульсов в секунду, в пределах разумного. Но если вы зайдете слишком далеко, ваш компьютер будет тратить слишком много времени генерируя импульсы шагов и все остальное будет буквально ползти или может даже заблокируется. Latency (латентность) и требования драйвера шагового двигателя влияют на кратчайший период который вы можете использовать.

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

Простейший способ избежать этих проблем - выбрать BASE_PERIOD который будет суммой самого длинного времени из требований драйвера и худшего значения latency вашего компьютера. Это не всегда лучшее решение, например, если вы работаете с двигателем с требованием 20мкс (микросекунд) времени удержания и ваш latency тест говорит, что ваша максимальная латентность 11мкс, тогда если вы установите BASE_PERIOD равным 20+11=31мкс и не такими уж хорошими 16 129 шагами в секунду.

Проблема в требовании 20мкс времени удержания. Это плюс 11мкс латентности заставляет вас использовать медленный 31мкс период. Но программный генератор шагов EMC2 имеет несколько параметров которые позволяют вам увеличить переменное время от одного периода до нескольких. Например, если steplen (длинна шага) изменена с 1 на 2, тогда будет два периода между началом и концом импульса шага. Также если dirhold (удержание сигнала направления) изменится с 1 до 3, будет как минимум три периода между импульсом шага и изменением пина направления.

Если мы сможем использовать dirhold для удовлетворения требования 20мкс, тогда следующее самое длинное время будет 4.5мкс. Добавим 11мкс латентности и получим минимальный период 15.5 мкс. Когда вы попробуете 15.5 мкс вы обнаружите, что компьютер неповоротливый, поэтому остановитесь на 16мкс. Если мы оставим dirhold на 1 (по умолчанию), тогда минимальное время между шагом и сменой направления будет 16мкс минус 11мкс латентности = 5мкс, которые недостаточны. Нам нужно еще 15 мкс. Так как период = 16мкс нам нужен еще один период. Поэтому меняем dirhold с 1 на 2. Теперь минимальное время с конца импульса шага до изменения пина направления равно 5+16=21мкс, и мы не должны беспокоится о том, что двигатель шагнет не в ту сторону из-за латентности.

Более подробно о stepgen смотрите в разделе 8.4.

Время шага

Время шага (Step Timing) и время между шагами (Step Space) на некоторых драйверах разное. В этом случае Точка шага становится важной. Если двигатель шагает на падающей фронте тогда выходной пин должен быть инвертирован.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

1.2 Серво двигатели

1.2.1 Настройка

Серво системы должны быть отрегулированы, т.к. не так хорошо работают из коробки, как могли бы системы на шаговых двигателях. Это потому, что серводвигатели не "шагают" с определенным приращением как шаговые двигатели. PID это "Черная Магия" которая заставляет серводвигатель двигаться туда, куда вам хочется чтобы она двигалась и когда вам хочется чтобы она двигалась. PID расшифровывается как Proportional, Integral, and Derivative (Пропорциональная, Интегральная и Производная). Пропорциональное значение определяет реакцию на текущее отклонение, Интегральное значение задает реакцию на основываясь на сумме недавних отклонений, а Производное значение определяет реакцию основываясь на скорости изменения отклонения. Они являются тремя общими математическими техниками которые применяются к решению задач сделать так чтобы работающий процесс следовал заданной точке. В случае EMC2 процесс который мы хотим контролировать это фактическое положение оси а заданная точка это положение оси заданное командой.
Изображение 1.1: Цикл PID (75848 просмотров) <a class='original' href='./download/file.php?id=851&sid=738f78eb1922bb39e5a460b0fc9d6158&mode=view' target=_blank>Загрузить оригинал (17.27 КБ)</a>
Изображение 1.1: Цикл PID
...

"Настраивая" эти три константы в алгоритме PID контроллера, контроллер сможет производить контрольные действия спроектированные для специфичных требований процесса. Ответ от контроллера может быть описан в терминах отзывчивости контроллера на ошибку, степени промаха контроллера мимо назначенной точки и степени колебания системы.

1.2.2 Пропорциональный член

Пропорцианальный (иногда называется gain(усиление/прирост)) делает изменения выхода, которые пропорциональны текущему значению отклонения. Высокое пропорциональное усиление приводит к существенному изменению на выходе для данного изменения изменения отклонения. Если пропорциональное усиление слишком велико, система может стать нестабильной. И наоборот, маленькое усиление приводит к маленькому ответу на большое входное отклонение. Если пропорциональное усиление слишком мало, то контролирующее действие может быть слишком маленьким для реакции на возмущения системы. В отсутствие возмущений, чистое пропорциональное управление никогда не остановится на его целевом значении, он будет сохранять устойчивое состояние отклонения которое будет функцией зависящей от пропорционального усиления и усиления процесса. Несмотря на постоянное состояние отклонения, теория настройки и производственная практика указывают на то, что пропорциональный метод должен делать основной вклад в изменение вывода.

1.2.3 Интегральный член

Вклад интегрального метода (иногда называемого reset (восстановление)) пропорционален обоим величине отклонения и его продолжительности. Суммируя мгновенное отклонение за время (интегрируя отклонение) дает накопленный отступ который должен был быть исправлен ранее. Накопленное смещение умножается на коэффициент усиления и добавляется на выход контроллера. Интегральный член (будучи добавленным к пропорциональному) ускоряет движение процесса в сторону заданной точки и устраняет остаточные стационарные погрешности которые возникают при только пропорциональном управлении. Однако, так как интегральный метод отвечает на накопленную ошибку из прошлого, он может вызывать промахи текущего значения мимо заданной точки (прохождение мимо заданной точки и последующее создание отклонения в обратную сторону).

1.2.4 Дифференциальный член

Скорость изменения отклонения процесса вычисляется определением приращения отклонения по времени (т.е. это первая производная отклонения по времени) и умножением этой скорости изменения на коэффициент усиления производной.
Производный член замедляет скорость изменения выхода контроллера и этот эффект наиболее заметен близко к заданной точке. Следовательно, управление по производной используется для того, чтобы уменьшить величину промаха который создает интегральный компонент и улучшает стабильность комбинации контроллер-процесс.

1.2.5 Настройка цикла

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

1.2.6 Ручная настройка

Простой метод настройки: сначала устанавливаем значения I и D (интегральный и дифференциальный члены) равные 0. Увеличиваем P до тех пор пока цикл не начнет колебаться, затем P должен быть установлен равным приблизительно половине значения для отклика с "четверть амплитудным распадом". Затем увеличивайте I до тех пор, пока любое смещение не корректируется за адекватное время для процесса. Однако, слишком большое I будет вызывать нестабильность. В конце увеличиваем D, если это необходимо, до тех пор пока цикл не будет приемлемо быстро достигать своего эталона после больших возмущений. Однако, слишком большой D будет вызывать чрезмерную реакцию и промахи. Быстрый PID цикл обычно слегка проскакивает заданную точку, чтобы достичь ее быстрее; однако, некоторые системы не допускают промахов, в этих случаях требуется "переторможенный" цикл, для которого необходима установка заметно более низкого P, меньше чем половина значения, которое вызывает колебания.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

1.3 RTAI

Real Time Application Interface (RTAI, интерфейс для приложений рельного времени) используется для предоставления лучшей производительности в реальном времени.
Измененное RTAI ядро позволяет вам писать приложения с точными временными рамками. RTAI дает возможность иметь вещи такие как программная генерация шагов, которые требуют точного тайминга.

ACPI

Advanced Configuration and Power Interface (ACPI, усовершенствованный интерфейс конфигурации и управления питанием) имеет много разных функций, большинство из которых влияют на RT производительность (например, управление питанием, понижение питания процессора, изменение частоты процессора, и т.д.). В ядре EMC2 (и возможно во всех модифицированных RTAI ядрах) поддержка ACPI выключена. ACPI также заботится о выключении питания системы после ее выключения (shutdown), вот почему вам нужно нажимать клавишу питания для полного выключения компьютера.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

Часть I
Конфигурация

Глава 2
Аппаратное обеспечение (Hardware)

2.1 Latency Test

Latency (латентность) это время которое требуется компьютеру для того, чтобы остановить то что он делает и ответить на внешний запрос (событие). Для EMC2 событием является BASE_THREAD которая делает периодичный "стук сердца" который служит референс таймером для импульсов шагов. Чем меньше latency тем быстрее вы можете запускать "стук сердца" и тем быстрее и плавнее будут импульсы шагов.
Латентность гораздо важнее чем скорость процессора. Слабенький Pentium II который отвечает на прерывания в пределах 10 миллисекунд каждый раз может давать лучшие результаты, чем последний P4 Hyperthreading beast ("мультипоточный зверь").
Процессор это не единственный фактор определяющий латентность. Материнская плата, видео карта, USB порты и множество других вещей могут ухудшить латентность. Лучший путь определить с чем вы имеете дело - запустить RTAI latency test.
Генерирование импульсов шагов на уровне программного обеспечения имеет одно большое преимущество - это бесплатно. Практически каждый компьютер имеет параллельный порт, который подходит для вывода импульсов шагов, которые генерируются программным обеспечением. Однако, импульсы шагов также имеют несколько недостатков:
  • ограниченная максимальная частота шагов
  • дрожание в сгенерированных импульсах
  • нагрузка на процесор
Лучший способ определить с чем мы имеем дело - запустить HAL latency test. Чтобы запустить тест, откройте окно терминала (консоль) Applications/Accessories/Terminal (Ubuntu) и выполните следующую комманду:
latency-test

Вы должны увидеть что-то похожее на это:
latency test emc2.png
latency test emc2.png (11.21 КБ) 75821 просмотр
Во время работы теста, вы должны нагружать компьютер. Двигайте окна по всему экрану. Лазьте по интернету. Копируйте большие файлы по всему диску. Проигрывайте музыку. Запустите OpenGL программу, такую как glxgears. Идея в том, чтобы проверить возможности компьютера а то время пока latency test наблюдает какие значения латентности можно получить в худшем случае.

ВНИМАНИЕ: Не запускайте EMC2 или Stepconf во время работы latency test. Важные числа это "max jitter". На примере сверху, он 7555 наносекунд, или 7.5 микросекунд. Запишите это число, и введите его в Stepconf когда будет необходимо.

На примере сверху, latency-test был запущен только несколько секунд. Вы должны выполнять тест в течении как минимум нескольких минут; иногда наихудшие значения не появляется достаточно часто, или появляется только после определенного действия. Например, одна материнская плата Intel, работающая достаточно хорошо большинство времени, раз в 64 секунды показывает латентность 300 мкс. К счастью, это было поправимо (см. http://wiki.linuxcnc.org/cgi-bin/emcinf ... gSMIIssues).

Так что же значат результаты? Если значение Max Jitter меньше 15-20 микросекунд (15000-20000 наносекунд), компьютер должен давать очень хорошие результаты в генерации шагов. Если значение Max Jitter больше похоже на 30-50 микросекунд, вы все еще можете получать хорошие результаты, но максимальная частота шагов может быть немного расстраивающей, особенно, если вы используете микрошаг или ходовые винты с очень маленьким шагом. Если числа 100 микросекунд или более (100 000 наносекунд), тогда компьютер не очень хороший кандидат для EMC, независимо от того используете ли вы программную генерацию шагов или нет.

Отметим, что даже если вы получаете высокие числа, могут быть пути их улучшения. Один компьютер имел очень плохую латентность (несколько миллисекунд) когда использовалась встроенная видео карта. Но 5-ти долларовая б/у видеокарта решила проблему - EMC не требует топового железа. Для большей информации смотрите главу Настройка Шаговых двигателей (24).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

2.2 Адрес порта

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

Например хорошая PCI карта построенная на чипсете Netmos 9815. У нее хорошие +5V сигналы, и она может идти с одним или двумя портами.

Чтобы найти I/O адрес для этих плат, откройте окно терминала и используйте команду листинга PCI:
lspci -v
Ищите записи содержащие "Netmos". Пример для 2-х портовой карточки:

Код: Выделить всё

0000:01:0a.0 Communication controller: Netmos Technology PCI 9815 Multi-I/O Controller (rev 01)
      Subsystem: LSI Losgic / Symbios Logic 2POS (2 port parallel adapter)
      Flags: medium devsel, IRQ 5
      I/O ports at b800 [size=8]
      I/O ports at bc00 [size=8]
      I/O ports at c000 [size=8]
      I/O ports at c400 [size=8]
      I/O ports at c800 [size=8]
      I/O ports at cc00 [size=16]
Экспериментальным путем я определил, что первый порт (порт на плате) использует третий адрес из листа (c000), а второй порт (тот который подсоединяется плоским кабелем) использует первый адрес из листинга (b800).
Вы можете открыть редактор и записать адреса в нужные места в ваш .hal файл.

Код: Выделить всё

loadrt hal_parport cfg="0x378 0xc000"
Вы также должны указать EMC запускать функции "чтения" и "записи" для второй платы. Например:

Код: Выделить всё

         addf parport.1.read base-thread 1
         addf parport.1.write base-thread -1
Пожалуйста отметьте, что ваши значения будут другими. Платы Netmos являются Plug-N-Play платами и могут изменять свои настройки в зависимости от слота в который вы их вставите, поэтому если вы захотите "залезть под капот" и поменять платы местами, не забудьте проверить эти значение перед запуском EMC.


---------------------------------------------------------------------------
Комментарии к главе:
Можно настроить дополнительный параллельные порты используя графические утилиты для настройки (stepconf и pncconf).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

3. Конфигурационные файлы

3.1 Файлы использующиеся для конфигурации

EMC конфигурируется при помощи текстовых файлов, свободно читаемыми человеком. Все эти файлы могут быть прочитаны и отредактированы в любом из оюычных текстовых редакторов доступных с большинством дистрибутивов Linux1. Вам нужно быть немного осторожными когда вы редактируете эти файлы. Некоторые ошибки могут вызвать неудачную загрузку. (Нужна корректировка: Some mistakes will cause the start up to fail.) Эти файлы загружаются каждый раз при запуске программного обеспечения. Некоторые из них читаются несколько раз пока CNC станок работает.

Конфигурационные файлы включают:
  • INI ini файл переопределяет установки по-умолчанию, которые компилируются в код EMC2. Он также предоставляет настройки, которые читаются напрямую Hardware Abstraction Layer.
  • HAL Файлы HAL (Hardware Abstraction Layer - Слой аппаратных абстракций) загружают процессные модули и обеспечивают связи между сигналами EMC и определенными пинами аппаратного обеспечения
  • VAR var файл обеспечивает способ для интерпретатора сохранять некоторые значения с предыдущего запуска до следующего. Эти значения сохраняются с одного прогона до другого, но не всегда записываются сразу. См. раздел Параметры руководства по G Code для подробной информации о значении каждого параметра.
  • TBL Файл tbl хранит информацию об инструментах. Подробнее см. EMC2 Руководство пользователя.
  • NML nml файл настраивает каналы связи используемые EMC2. Обычно он настроен выполнять связи в рамках одного компьютера, но может быть изменен для обмена данными между несколькими компьютерами.
  • .emcrc Эти файлы хранят пользовательскую информацию и создается чтобы хранить название директории когда пользователь в первый раз выбирает конфигурацию EMC.2
Элементы помеченные (HAL) используются только файлами HAL и предложены как хорошее начало.
Другие элементы используются EMC напрямую и для них всегда должны быть указанны название раздела и наименование.

1 Не путайте текстовый редактор и текстовый процессор. Текстовые редакторы такие как gedit, kwrite или блокнот создают файлы которые являются простым текстом. Они также создают строки текста, которые отделены одна от другой. Текстовые процессоры такие как Open Office или Microsoft Word создают файлы с параграфами переносами слов и многими встроенными кодами, которые контролируют размер шрифта и т. п. Текстовый редактор ничего такого не делает.
2 Обычно этот файл находится в домашнем директории пользователя (т.е. /home/user/)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

Глава 4. Файл INI

4.1 Схема INI файла

Типичный ini файл следует достаточно простой схеме, которая включает:
  • комментарии
  • разделы
  • переменные
Каждый из этих элементов ограничен одной строкой. Каждый символ конца строки или новой строки создает новый элемент.

4.1.1 Комментарии

Строки комментариев начинаются с символа ; или #. Когда программа читающая ini файл видит один из этих знаков в начале строки, остаток строки игнорируется. Комментарии могут быть использованы для описания того, что некоторые элементы ini файла будут делать.

Код: Выделить всё

; This is my little mill configuration file.
; I set it up on January 12, 2006
Комментарии могут также быть использованы для выбора между несколькими разными значениями одной переменной.

Код: Выделить всё

DISPLAY = axis
# DISPLAY = touchy
В этом листинге переменная DYSPLAY будет установлена на axis потому, что остальные установки закомментированы. Если кто-то не аккуратно редактирует лист такой как этот и оставит обе строки не закомментироваными, то первое встреченное значение будет использовано.

Заметьте, что внутри переменной символы "#" и ";" не обозначают комментарий:

Код: Выделить всё

# не правильно
INCORRECT = value   # and a comment

# правильно
# Correct Comment
CORRECT = value

4.1.2 Разделы INI файла

Связанные части ini файла разделены на разделы. Строка раздела выглядит так: [THIS_SECTION].
Название раздела заключено в квадратные скобки. Порядок разделов не важен. Следующие разделы используются EMC:
[EMC] общая информация (4.2.1)
  • [DISPLAY] настройки относящиеся к графическому интерфейсу (4.2.2)
  • [FILTER] настройки программ входных фильтров (4.2.3)
  • [RS274NGC] настройки использующиеся интерпретатором G-кода (4.2.4)
  • [EMCMOT] настройки использующиеся контроллером перемещений в реальном времени (4.2.5)
  • [HAL] задает файлы .hal (4.2.7)
  • [TASK] настройки используемые контроллером задач (4.2.6)
  • [TRAJ] дополнительные настройки используемые контроллером перемещений в реальном времени (4.2.8)
  • [AXIS_0] ... [AXIS_n] индивидуальные переменные осей (4.2.9)
  • [EMCIO] настройки используемые контроллером ввода/вывода (4.2.10)
  • [HALUI] команды MDI используемые HALUI. См. главу HALUI для более подробной информации (10.2.12)

4.1.3 Переменные

Строка переменной состоит из названия переменной, знака равно (=) и значения. Все после первого не пустого символа (не пробел, не табуляция ...) после знака = до конца строки передается ка значение, поэтому вы может вставлять пробелы в строковые символы если вы этого хотите или это вам нужно. Название переменной часто называют keyword (дескриптор).

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

Некоторые переменные используются ЕМС, и должны всегда использовать названия раздела и названия переменной такие как показано. Другие переменные используются HAL, и для них показаны названия разделов и переменных которые используются в примерах конфигурационных файлов.

4.1.4 Определения

Machine Unit (Единица измерения станка) - Единица измерения для оси определенной установками в разделе [TRAJ]. Единица измерения равна одной единице определенной либо LINEAR_UNITS, либо ANGULAR_UNITS.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2 Разделы

4.2.1 Раздел [EMC]

VERSION = $Revision: 1.3 $ Номер версии для файла ini. Значение указанное здесь выглядит странно потому, что оно автоматически обновляется при использовании Системы Контроля Версий. Хорошая идея, менять это число каждый раз, когда вы пересматриваете ваш файл. Если вы хотите редактировать это вручную, просто измените номер и оставьте остальные тэги в покое.

MACHINE = My Controller Это название контроллера, которое печатается вверху большинства графических интерфейсов. Вы можете поставить сюда все что захотите, до тех пор пока значение будет оставаться одной строкой.

DEBUG = 0 Уровень отладки 0 значит, что никаких сообщений не будет выводиться когда EMC запущен из терминала. Флаги отладчика обычно полезны только для разработчиков. См. src/emc/nml_int/emcglb.h для других установок.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.2 Раздел [DISPLAY]

Разные пользовательские интерфейсы используют разные опции, и не каждая опция поддерживается каждым интерфейсом. Два основных интерфейса - Axis и Touchy. Axis - интерфейс для использования с нормальным компьютером и монитором, Touchy для использования с сенсорным экраном (тачскрином). Описания интерфейсов находятся в разделе Интерфейсы Руководства Пользователя.

DISPLAY = axis Название пользовательского интерфейса для использования. Правильные варианты могут включать:
  • axis
  • touchy
  • keystick
  • mini
  • tkemc
  • xemc
POSITION_OFFSET = RELATIVE Отображаемая система координат (RELATIVE or MACHINE Относительная или Машинная), когда запускается пользовательский интерфейс. Система координат RELATIVE отражает действующие G92 и G5x отступы системы координат.

POSITION_FEEDBACK = ACTUAL Отображаемые значения координат (COMMANDED or ACTUAL Заданное или Реальное) после запуска интерфейса. Положение COMMANDED это идеальное положение запрошенное EMC. Положение ACTUAL это позиция из обратной связи от моторов.

MAX_FEED_OVERRIDE = 1.2 Максимальное значение замещения подачи, которое пользователь может выбрать. 1.2 значит 120% от запрограммированной подачи.

MIN_SPINDLE_OVERRIDE = 0.5 Минимальное значение замещения скорости шпинделя, которое пользователь может выбрать. 0.5 значит 50% от запрограммированной скорости шпинделя.(Это ограничение полезно, т.к. опасно запускать программу со слишком маленькой скоростью шпинделя.)

MAX_SPINDLE_OVERRIDE = 1.0 Минимальное значение замещения скорости шпинделя, которое пользователь может выбрать. 1 значит 100% от запрограммированной скорости шпинделя.

PROGRAM_PREFIX = ~/emc2/nc_files Расположение по умолчанию Gcode файлов и определяемых пользователем M-кодов.

INTRO_GRAPHIC = emc2.gif Изображение показываемое в качестве заставки.

INTRO_TIME = 5 Максимальное время показа заставки.

CYCLE_TIME = 0.0500 Время цикла в секундах, которое дисплей будет ожидать между опросами.

Следующие элементы раздела [DISPLAY] используются только если вы выбираете AXIS в качестве вашего пользовательского интерфейса.

DEFAULT_LINEAR_VELOCITY = .25 Скорость линейных перемещений (jog) по умолчанию, в единицах измерения станка в секунду.

MIN_VELOCITY = .01 Приблизительное минимальное значение для jog ползунка.

MAX_LINEAR_VELOCITY = 1.0 Максимальная скорость линейных перемещений (jog), в единицах измерения станка в секунду.

MIN_LINEAR_VELOCITY = .01 Приблизительное минимальное значение для jog ползунка.

DEFAULT_ANGULAR_VELOCITY = .25 Скорость угловых перемещений (jog) по умолчанию, в единицах измерения станка в секунду.

MIN_ANGULAR_VELOCITY = .01 Приблизительное минимальное значение для jog ползунка..

MAX_ANGULAR_VELOCITY = 1.0 Максимальная скорость угловых перемещений (jog), в единицах измерения станка в секунду.

INCREMENTS = 1 mm, .5 in, ... Задает шаги приращений доступные при пошаговом ручном управлении. INCREMENTS могут быть использованы для перезаписи значений по умолчанию. Значения могут быть десятичными дробями (т.е. 0.1000) или обычными дробями (т.е. 1/16), опционально, могут быть добавлены единицы измерения (cm, mm, um, inch, in or mil). Если елиница измерения не указана подразумевается единица измерения станка. Метрическая или дюймовая системы счисления могут быть смешаны: INCREMENTS = 1 inch, 1 mil, 1 cm, 1 mm, 1 um является допустимым значением.

OPEN_FILE = /full/path/to/file.ngc файл который будет загружен при старте AXIS. Используйте пустую строку "" и никакого файла не будет загружено.

EDITOR = gedit Редактор используемый при выборе File > Edit or File Edit Tool Table из главного меню AXIS. Эта переменная должна быть настроена, для того, чтобы пункты меню работали. Еще одно допустимое значение gnome-
terminal -e vim.

PYVCP = /filename.xml Файл описания панели pyVCP. См. раздел pyVCP для более подробной информации.

LATHE = 1 Переменная включает отображение в моде токарного станка с Радиусом и Диаметром в DRO.

GEOMETRY = XYZABCUVW Контролирует предпросмотр и просмотра траекторий вращательного движения. Этот элемент состоит из последовательности букв осей, опционально со знаком "-". Должны использоваться только оси заданные в [TRAJ]AXES. Эта последовательность определяет порядок в котором каждая ось применяется, знак "-" обращает ось. Правильная GEOMETRY зависит от параметров станка и кинематики использованной для управления станком.
Строка из примера GEOMETRY=XYZBCUVW для 5-ти осного станка где кинематика задает: UVW - движения в координатной системе инструмента и XYZ - движения в координатной системе материала. Порядок букв важен потому, что он отражает в котором применяются разные преобразования. Например вращение вокруг оси С потом вокруг В отличается от вращения вокруг В и потом С. GEOMETRY не имеет никакого значения без поворотных осей.

ARCDIVISION = 64 Установка качества просмотра дуг. В просмотре дуги отображаются при помощи множества прямых линий; полуокружность разделяется на ARCDIVISION частей. Большие значения дают более точный просмотр, но требуют больше времени для загрузки и в итоге дает более дерганный просмотр. Меньшие значения дают менее точный просмотр, но занимают меньше времени для загрузки и в итоге дает более быстрый просмотр. Значение по умолчанию 64 значит, что круг до 3 дюймов будет отображен с погрешностью 1 мил (1/1000 дюйма) (0.03%).1

Следующие элементы [DISPLAY] не используются если вы выберете AXIS в качестве своего пользовательского интерфейса.

HELP_FILE = tkemc.txt Путь к файлу помощи (не используется в AXIS).

1 В emc2.4 и более ранних, значение по умолчанию было 128.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.3 Раздел [FILTER]

В AXIS есть возможность обрабатывать загружаемый файл программным фильтром. Этот фильтр может выполнять любую желаемую задачу: Что-нибудь такое же простое, как проверка наличия M2 в конце файла, или что-нибудь сложное, как определение, что входной файл это картинка с картой глубин, и генерация G-code для обработки заданной этой картинкой формы. Раздел [FILTER] в ini файле контролирует как работают фильтры. Сначала, для каждого типа файлов, напишите строку PROGRAM_EXTENSION. Потом укажите программу которую нужно запустить для каждого типа файлов. Этой программе будет дано название входного файла в качестве первого аргумента, и она должна выдать rs274ngc код в стандартный вывод. Вывод это то, что будет показано в текстовом поле, отображено на предпросмотре и выполнено EMC2 после команды Run.

PROGRAM_EXTENSION = .extension Description
Если ваш пост процессор выдает файлы в верхнем регистре вы можете добавить следующую строку:

Код: Выделить всё

PROGRAM_EXTENSION = .NGC XYZ Post Processor
Следующие строки добавляют поддержку конвертера image-to-gcode включенного в EMC2:

Код: Выделить всё

       PROGRAM_EXTENSION = .png,.gif Greyscale Depth Image
       png = image-to-gcode
       gif = image-to-gcode
Также можно задать интерпретатор:

Код: Выделить всё

       PROGRAM_EXTENSION = .py Python Script
       py = python
Таким образом, может быть открыт любой скрипт на Python, и его вывод будет считаться Gкодом. Один пример такого скрипта доступен в nc_files/holecircle.py. Этот скрипт создает Gкод для сверловки серии отверстий по площади окружности. Гораздо больше генераторов g-code доступны на сайте EMC Wiki http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl.

Если установлена внешняя переменная AXIS_PROGRESS_BAR, тогда строки записанные в стандартный вывод следующего формата:

Код: Выделить всё

       FILTER_PROGRESS=%d
выставляют индикатор процесса выполнения AXIS на заданные проценты. Эта функция должна использоваться каждым фильтром, который работает длительное время.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.4 Раздел [RS274NGC]

PARAMETER_FILE = file.var Файл который содержит параметры, использующиеся интерпретатором (сохраненные между запусками).

RS274NGC_STARTUP_CODE = G21 G90 Строка NC кодов, с которыми интерпретатор будет инициализирован. Это не замена определения модальных Gкодов вверху каждого ngc файла потому, что модальные коды станка отличаются и могут быть изменены Gкодом интерпретированными ранее в текущей сессии.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.5 Раздел [EMCMOT]

Вы можете найти другие элементы в этом разделе и они не должны изменяться.

BASE_PERIOD = 50000 ( HAL ) "Base" (базовый) период задачи,в наносекундах - это самый быстрый поток в машине.

На серво-системах, в общем нет причины для того, чтобы BASE_PERIOD был меньше SERVO_PERIOD.

На станках с программной генерацией шагов BASE_PERIOD определяет максимальное количество шагов в секунду. В отсутствие требований длинных длин шагов и промежутков между шагами, абсолютный максимум частоты шагов - 1 шаг за BASE_PERIOD. Таким образом, BASE_PERIOD показанный выше дает максимум 20 000 шагов в секунду. 50 000 наносекунд это достаточно консервативное значение. Минимальное пригодное значение BASE_PERIOD зависит от результата Latency Test, необходимой длинны шага и скорости процессора.

Выбор слишком короткого BASE_PERIOD может привести к сообщению "Неожиданная задержка реального времени" ("Unexpected real time delay"), подвисаниям, и спонтанным перезагрузкам.

SERVO_PERIOD = 1000000 ( HAL ) Период задачи "Servo" тоже в наносекундах. Это значение будет округленно до целого количества BASE_PERIOD. Это значение используется даже в системах основанных на шаговых двигателях.
Это частота с которой вычисляется позиции моторов, следующее отклонение проверяется, выходные значение PID обновляются и так далее.
Большинство систем не будет нуждаться в изменении этого значения. Это значение частоты обновления планировщика перемещений низкого уровня.


TRAJ_PERIOD = 1000000 ( HAL ) Период задачи Trajectory Planner (Планировщика траекторий) в наносекундах. Это значение будет округлено до целого числа SERVO_PERIOD.

Нет никаких причин делать это значение больше SERVO_PERIOD, кроме машин с необычной кинематикой (например, гексапод).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.6 Раздел [TASK]

TASK = milltask Задает название выполняемой "задачи" (task). "task" делает разные вещи, такие как связь с пользовательскими интерфейсами, связь с планировщиком перемещений реального времени через не-HAL общую память и интерпретация gкода. На данный момент есть только одна задача, которая имеет смысл для 99,9% пользователей, milltask в далекие темные времена (до HAL), часто бывало, что станкостроитель должен был сделать модифицированную версию вещей таких как task, ввод/вывод и контроль движения для специфической машины.

CYCLE_TIME = 0.001 Период в секундах с которым будет запускаться EMCTASK. Этот параметр влияет на интервал запросов во время ожидания завершения движения, во время выполнения инструкции паузы, и при получении команды от пользовательского интерфейса. Обычно нет нужды менять это значение.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.7 Раздел [HAL]

HALFILE = example.hal Выполнить файл ’example.hal’ при запуске. Если HALFILE задан несколько раз, файлы будут выполняться в порядке их появления в ini файле. Практически все конфигурации будут иметь хотя бы один HALFILE, а системы на шаговых двигателях обычно имеют два таких файла, один задающий общую конфигурацию шаговых двигателей (core_stepper.hal) и один задающий вывод пинов для машины (xxx_pinout.hal).

HALCMD = command Выполняет ’command’ как одну HAL команду. Если HALCMD задана несколько раз, команды выполняются в порядке их появления в ini файле. Строки HALCMD выполняются после всех строк HALFILE.

SHUTDOWN = shutdown.hal Выполнить файл ’shutdown.hal’ во время выхода из EMC. В зависимости от используемых аппаратных драйверов, это позволяет выстваить выводы на определенные значения при нормальном завершении EMC. Однако, из-за того, что нет гарантии того, что этот файл будет выполнен (например, в случае поломки компьютера) это не замена надлежащей цепочке физического e-stop или других защит от неисправностей программного обеспечения.

POSTGUI_HALFILE = example2.hal (Только вместе с AXIS GUI) Выполнить ’example2.hal’ после того как GUI создало свои пины HAL. См. раздел 12.4 для более подробной информации.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.8 Раздел [TRAJ]

Раздел [TRAJ] содержит общие параметры для модуля планировки траектории в EMCMOT.

COORDINATES = X Y Z Названия контролируемых осей. X, Y, Z, A, B, C, U, V, и W все приемлемы. Только оси поименованные в COORDINATES принимаются в g-code. Это не имеет значения для отображения имен осей в Gкоде (X-, Y-, Z-) на номера шарниров для "тривиальной кинематики", X всегда отображается на шарнир 0, А всегда отображается на шарнир 4 и U всегда отображается на шарнир 7 и т.д. Разрешено писать название оси дважды (например, X Y Y Z для портального станка) но это не будут иметь эффекта.

AXES = 3 Больше на единицу чем самый большой номер шарнира в системе. Для станка XYZ, шарниры нумеруются 0, 1 и 2; в этом случае AXES должен быть равным 3. Для станка XYUV использующего "тривиальную кинематику", шарнир V идет под номером 7 и поэтому AXES должен быть равным 8. Для машин с нетривиальной кинематикой (например, scarakins) это будет в общем случае будет количеством контролируемых шарниров.

HOME = 0 0 0 Координаты позиций начал каждой оси. Еще раз, для четырехосной системы вам будет нужно 0 0 0 0. Это значение используется для станков с нетривиальной кинематикой. На станках с тривиальной кинематикой это значение игнорируется.

LINEAR_UNITS = <units> Задает единицы измерения станка для линейных осей. Возможные значения: in,
inch, imperial, metric, mm. Это не влияет на линейные единицы измерения в NC коде (коды G20 и G21).

ANGULAR_UNITS = <units> Задает единицы измерения для поворотных осей. Возможные варианты: ’deg’, ’degree’ (360 на оборот), ’rad’, ’radian’ (2П на оборот), ’grad’, or ’gon’ (400 на оборот).
Это не влияет на единицы NC кода. В RS274NGC, A-, B- и C- слова всегда выражаются в градусах.

DEFAULT_VELOCITY = 0.0167 Начальная скорость ручных линейных осей, в единицах измерения станка в секунду. Показанное значение равно одной единице измерения в минуту.

DEFAULT_ACCELERATION = 2.0 В станках с нетривиальной кинематикой, ускорение используется для "teleop" (объем тела в прямоугольной системе координат) перемещений, в единицах измерения машины в секунду за секунду.

MAX_VELOCITY = 5.0 Максимальная скорость для любой оси или координатного перемещения, в единицах измерения станка в секунду. Показанное значение равно 300 единиц измерения в минуту.

MAX_ACCELERATION = 20.0 Максимальное ускорение для любой оси или координатного перемещения, в единицах измерения станка в секунду за секунду.

POSITION_FILE = position.txt Если установлено не пустое значение, положение шарниров сохраняется в этом файле между запусками. Это позволяет станку стартовать с теми же координатами, с которыми он остановился. Это предполагает что не было перемещений станка в то время пока было выключено питание. Если не установлено, положения шарниров не сохраняется и будет начинать со значениями 0 каждый раз при старте ЕМС. Это может помочь на меленьких станках без концевых датчиков.

NO_FORCE_HOMING = 1 По умолчанию EMC принуждает пользователя выставлять оси станка перед до выполнения любой MDI команды или запуска программы. Обычно разрешено только перемещение в ручном режиме до выставления нулей осей. Установка NO_FORCE_HOMING = 1 позволяет пользователю выполнять MDI перемещения и запускать программы без предварительного выставления осей. Интерфейсы без возможности выставления осей нуждаются в этой опции.
:attention: Внимание! Использование NO_FORCE_HOMING = 1 позволитстанку пройти мягкие пределы во время функционирования и в общем случае использование NO_FORCE_HOMING = 1 не желательно.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.9 Разделы [AXIS_<num>]

разделы [AXIS_0], [AXIS_1], и т.д. содержат общую информацию о параметрах для индивидуальныз компонентов в модуле контроля осей. Названия разделов AXIS нумеруется начиная с 0, и продолжается для всех номеров осе установленных в [TRAJ] AXES минус 1
  • AXIS_0 = X
  • AXIS_1 = Y
  • AXIS_2 = Z
  • AXIS_3 = A
  • AXIS_4 = B
  • AXIS_5 = C
  • AXIS_6 = U
  • AXIS_7 = V
  • AXIS_8 = W
TYPE = LINEAR Тип оси или LINEAR (линейная) или ANGULAR (поворотная).

WRAPPED_ROTARY = 1 Когда это установлено в 1 для поворотной оси ось будет двигаться от 0 до 359.999 градусов. Положительный числа будут двигать ось в положительном направлении, отрицательные числа - в противоположном направлении.

UNITS = inch Если установлено, эта установка перезаписывает связанную установку [TRAJ] UNITS .
(т.е., [TRAJ]LINEAR_UNITS если TYPE оси - LINEAR, [TRAJ]ANGULAR_UNITS если TYPE оси - ANGULAR)

MAX_VELOCITY = 1.2 Максимальная скорость для оси в единицах измерения станка в секунду.

MAX_ACCELERATION = 20.0 Максимальное ускорение для оси в единицах измерения станка в секунду в квадрате.

BACKLASH = 0.000 Люфт в единицах измерения станка. Значение компенсации люфта может быть использовано для компенсации небольших недостатков механики используемой для управления осями. Если компенсация люфт оси добавлена и вы используете шаговые двигатели, значение STEPGEN_MAXACCEL должно быть увеличено до 1.5-2 значений MAX_ACCELERATION для оси.

COMP_FILE = file.extension Файл содержащий структуру компенсаций для оси. Этот файл может быть поименован xscrew.comp, например для оси Х. Имена файдок чувствительны к регистру букв и могут содержать буквы или цифры. Значения это триплеты разделенные пробелами, по одному на строку. Первое значение это номинал (место в котором должна находится ось). Второе и третье значения зависят от установки COMP_FILE_TYPE. На данный момент внутренний предел EMC2 256 триплетов на ось. Если задан COMP_FILE, то BACKLASH (люфт) игнорируется. Значения в файле компенсаций в единицах измерения станка.
  • COMP_FILE_TYPE=0 второе и третье значения задают прямое положение (где ось окажется во время перемещения вперед) и обратное положение (где ось окажется во время перемещения в обратную сторону) которые соответствуют номинальному значению.
  • COMP_FILE_TYPE=1 второе и третье значения задают прямой дифферент (как далеко окажется ось от номинала двигаясь вперед) и обратный дифферент (как далеко окажется ось от номинала двигаясь в обратном направлении)
COMP_FILE_TYPE = 0 Для For COMP_FILE_TYPE равным нулю, значения компенсационного файла являются nominal, forward & reverse (номинал, вперед и обратно). Для не нулевого COMP_FILE_TYPE значения компенсационного файла являются nominal, forward_trim & reverse_trim (номинал, прямой дифферент и обратный дифферент).

MIN_LIMIT = -1000 Минимальный предел (мягкий предел (soft limit)) для движений оси в единичах измерения станка. Когда этот предел превышается, контроллер прекращает движение оси.

MAX_LIMIT = 1000 Максимальный предел (мягкий предел (soft limit)) для движений оси в единичах измерения станка. Когда этот предел превышается, контроллер прекращает движение оси.

MIN_FERROR = 0.010 Это значение допуска отклонения от установленного положения в единицах измерения станка на очень маленьких скоростях. Если MIN_FERROR меньше, чем FERROR, тогда оба они создают наклонную кривую ошибки. Вы можете представить это себе как график, где по одной оси скорость а по второй допустимая ошибка следования траектории. С ростом скорости растет погрешность следования вплоть до значения FERROR.

FERROR = 1.0 FERROR это максимальная допустимая погрешность следования в единицах измерения станка. Если разница между заданным значением и измеренным значением превышает это количество, то контроллер выключает серво вычисления, устанавливает все выводы на 0 и выключает усилители. Если MIN_FERROR присутствует в ini файле, используется погрешность следования пропорционально зависимая от скорости. Здесь, максимально возможная ошибка следования пропорциональна скорости, FERROR применительно к скорости быстрого перемещения установленного в [TRAJ]MAX_VELOCITY и пропорционально меньшей ошибкой следования для более медленных скоростей. Максимальная допустимая погрешность следования всегда будет больше чем MIN_FERROR. Это предотвращает непреднамеренное прерывание движения стационарных осей из-за маленьких ошибок следования. Маленикие погрешности следования всегда будут присутствовать из-за вибраций и т.п. Следующие полярные значения определяют как интерпретируются входы и как применяются выходы. Обычно, они могут быть установлены методом проб и ошибок, так как есть только две возможности. Программа калибровки серво осей EMC2 (EMC2 Servo Axis Calibration в меню AXIS Machine/Calibration, в TkEMC в меню Settings/Calibration) может быть использована для более интерактивной настройки этих значений и проверки их результатов таким образом, чтобы можно было поместить правильные значения в ini файл с наименьшими трудностями.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.9.1 Выставление осей (Homing)

Эти параметры относятся к выставлению нулей осей, для более подробных разъяснений см. Раздел Выставление осей (4.3)

HOME = 0.0 Положение в которое придет ось по завершении процедуры высьавления нулей осей.

HOME_OFFSET = 0.0 Положения датчика home на оси или индекс импульса, в единицах измерения станка.

HOME_SEARCH_VEL = 0.0 Начальная скорость поиска home в единицах измерения станка за секунду. Знак определяет направление движения. Нулевое значение говорит считать текущее положение положением home. Если у вашего станка нет датчиков home, оставьте это значение равным 0.

HOME_LATCH_VEL = 0.0 Скорость в единицах измерения станка в секунду до позиции размыкания датчика home.
HOME_FINAL_VEL = 0.0 Скорость в единицах измерения станка в секунду с момента размыкания датчика home до положения HOME. Если не установлено или равно 0, используется скорость быстрого перемещения станка. Значение должно быть положительным числом.

HOME_USE_INDEX = NO Если энкодер используемый для этой оси использует индексированные импульсы, и плата движения имеет поддержку этого сигнала, вы можете поставить поддерживает HOME_USE_INDEX = yes. Когда значение равно yes, оно будет влияет на тип используемого шаблона home. На данный момент вы не можете выполнить home к индексу с шаговыми двигателями, если только вы не используете stepgen в режиме скорости и pid.

HOME_IGNORE_LIMITS = NO Некоторые станки используют один датчик для home и для предела оси. Эта переменная должна быть установлена в yes если ваш станок устроен подобным образом.

HOME_IS_SHARED = <n> Если вход датчика home общий для более чем одной оси, установите <n> в 1 чтобы предотвратить выставление оси, если один из общих датчиков уже сработал. Установите <n> в 0, чтобы разрешить выставление оси если датчик уже закрыт.

HOME_SEQUENCE = <n> Используется для процедуры "Home All" (выставить все оси). <n> начинается с 0 и не одно число не должно быть пропущено. Если не установлено или равно -1 ось не будет выставлена функцией "Home All". Более одной оси может быть выствалено одновременно.

VOLATILE_HOME = 0 Когда включено (равно 1) эта ось станет unhomed (не выставленной) если выключится питание станка или включится E-stop. Это полезно если у вашего станка есть датчики home и нет обратной связи по положению, таких как станки управляемые сигналами шаг/направление.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.9.2 Серво

Следующие элементы используются системами основанными на сервомоторах или подобных им системах.
Это описание предполагает, что все единицы измерения выводов ПИД-компонента (ПИД-регулятора) - вольты.

DEADBAND = 0.000015 (HAL) - Зона нечувствительности есть величина в пределах которой мотор считает, что находится в нужном местоположении.

BIAS = 0.000 (HAL) - Смещение используется hm2-servo и некоторыми другими. Смещение это постоянная величина, которая добавляется к выводу. В большинстве случаев должна быть оставлена 0. Однако, иногда она может полезна для компенсации отклонений в сервоприводах, или для балансировки веса перемещаемого вертикально объекта. При отключении ПИД-цикла (ПИД-регулирования) смещение выключается, так же как и другие составляющие напряжения задания привода.

P = 50 ( HAL ) пропорциональный коэффициент. На это значение умножается ошибка между заданным и действительным местоположением в единицах измерения станка, результат добавляется к вычислению напряжения задания привода. Единицы измерения P - вольт на единицу измерения станка, т.е. В/Ед (Ед - единицы станка).

I = 0 ( HAL ) интегральный коэффициент. На это значение умножается накопленная ошибка между заданным и действительным положением в единицах измерения станка, добавляется к вычислению напряжения задания привода. Единицы измерения коэффициента I - Вотльт на единицу измерения станка в секунду, т.е. В/(Ед*с).

D = 0 ( HAL ) - дифференциальная составляющая.На это значение умножается разница между накопленной и текущей ошибкой, результат добавляется к вычислению напряжения задания привода. Единицы измерения коэффициента D - вольт на единицу измерения станка в секунду, т.е. В/(Ед/с).

FF0 = 0 ( HAL ) Коэффициент прямой передачи нулевого порядка. На это число умножается задание (pid.N.command), а результат добавляется к напряжению задания привода. Единица измерения коэффициента FF0 - Вольт на единицу измерения станка, т.е. В/Ед. Обычно FF0 используется в pid регуляторах управляющих скоростью. FF0 позволяет компенсировать силы трения и обратную ЭДС двигателя.

FF1 = 0 ( HAL ) прямой передачи первого порядка. На это число умножается изменение задания (pid.N.command) за секунду. Результат добавляется к напряжению задания привода. Единица измерения коэффициента FF1 - вольт на единицу измерения станка за секунду, т.е. В/(Ед*с). При управлении положением то же, что и FF0 для скорости, при управлении скоростью позволяет компенсировать силы инерции.

FF2 = 0 ( HAL ) Коэффициент прямой передачи второго порядка. На это число умножается вторая производная задания (pid.N.command). Результат добавляется к напряжению задания привода. Единица измерения коэффициента FF2 - вольт на единицу измерения станка за секунду в квадрате, т.е. В/(Ед*с2). При управлении положением то же, что и FF1 для скорости.

OUTPUT_SCALE = 1.000 - Масштаб.
OUTPUT_OFFSET = 0.000 ( HAL ) - Отступ.
Эти два значения задают масштаб (множитель) и отступ вывода оси на привод мотора. Значение отступа вычитается из вычисленного вывода (в вольтах) и делится на масштаб, перед тем как тем как преобразовать напряжение задания в аналоговый вид. Единицы измерения масштаба - В/В_цап. Единица измерения отступа - вольт. Масштаб и отступ могут быть использованы для линеаризации ЦАПа.

Масштабирование выглядит так:
raw = (output − offset) / scale ( raw = (вывод - отступ) / масштаб )

Значение масштаба может быть получено автоматически выполняя анализ единиц измерения, т.е. [выводы в единицах СИ]/[единицы актуатора]. Например, на станке с режимом усилителя скорости, таких как 1 вольт выдает скорость 250 мм/с,
EMC2 servo configuration.png (75630 просмотров) <a class='original' href='./download/file.php?id=937&sid=738f78eb1922bb39e5a460b0fc9d6158&mode=view' target=_blank>Загрузить оригинал (13.58 КБ)</a>
Формула в формате OpenOffice (для просмотра содержимого нажмите на ссылку)
amplifier volt = ( output [mm over sec] - offset[mm over sec])
/ 250 mm over secvolt
newline
усилитель В = ( вывод [мм over с] - отступ[мм over с])
/ 250 мм over {с*В}
Заметьте, что единицы измерения отступа в единицах измерения станка, т.е. мм/с, и они заранее вычитаются из измерений сенсоров. Значение этого отступа вычисляется путем нахождения значения вывода, которое дает вывод актуатора 0.0. Если ЦАП линейный, то этот отступ обычно равен 0.

Масштаб и отступ могут быть использованы в том числе для линеаризации ЦАП, в результате чего значения отражают комбинированный эффект вывода усилителя, не линейности ЦАП и т.д.. Чтобы это сделать следуйте процедуре:
  1. Создайте таблицу калибровки для вывода, управляющего ЦАП с желаемым вольтажем и измерениями результатов. См таблицу 4.2.9.2 для примера измерений вольтажа.
  2. Сделайте линейную аппроксимацию наименьших квадратов для получения a, b такие, что
    значение = a * raw +b
  3. Заметьте, что мы хотим чтобы чистый выход, такой как наш измеренный результат, был равен установленному выходу. Что означает
    EMC2 инструкция станкостроителя.png
    EMC2 инструкция станкостроителя.png (3.26 КБ) 75564 просмотра
    В результате, коэффициенты a и b из линейного приближения могут быть использованы в качестве масштаба и отступа для контроллера напрямую.
MAX_OUTPUT = 10 ( HAL ) Максимальное значение напряжения на выходе ПИД-регулятора в вольтах Вычисленное значение обрезается до этого предела.
Предел применяется перед тем как масштабировать в единицы чистого вывода. Значение применяется симметрично для обоих отрицательной и положительной стороны.
Измерения вольтажа на выводах:
RawMeasured
-10-9.93
-9-8.83
0-0.03
10.96
99.87
1010.87
INPUT_SCALE = 20000 ( HAL ) Определяет количество импульсов, которое соответствует перемещению на одну единицу измерения станка, установленную в разделе [TRAJ]. Для линейной оси одна единица измерения будет равна установке LINEAR_UNITS. Для поворотных осей одна единица измерения будет равна установке ANGULAR_UNITS.
Если в конфигурации встречается дублирование, то оно игнорируется.
Например, на энкодере с 2000 импульсов на оборот, и редуктором 10 оборотов на дюйм, и выбранными единицами измерения дюймами, мы имеем:
EMC2 инструкция станкостроителя.png
EMC2 инструкция станкостроителя.png (4.99 КБ) 75564 просмотра
Формула в формате OpenOffice (для просмотра содержимого нажмите на ссылку)
alignc { input scale = 2000 counts over rev ∗ 10 rev over inch = 20000 counts over inch}
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 Integrators Manual Перевод на русский язык

Сообщение Nick »

4.2.9.3 Шаговые двигатели

Следующие элементы относятся к шаговым двигателям.
The following items are Stepper related items.

SCALE = 4000 ( HAL ) Задает количество импульсов, которое соответствует перемещению на одну единицу измерения станка, которая установлена в секции [TRAJ]. Для шаговых систем, это количество импульсов шага на перемещение на одну единицу измерения. Для линейных осей одна единица измерения станка равна установке LINEAR_UNITS. Для поворотных осей одна единица равна установке ANGULAR_UNITS. Для серво систем это количество импульсов обратной связи на единицу измерения станка. Второе число, если заданно, игнорируется.

Например, на шаговых двигателях с шагом 1.8 градуса с полушагом и передачей 10 оборотов на дюйм, и дюймах в качестве единиц измерения станка, мы имеем:
EMC2 инструкция станкостроителя.png
EMC2 инструкция станкостроителя.png (6.27 КБ) 75563 просмотра
Формула в формате OpenOffice (для просмотра содержимого нажмите на ссылку)
alignc { input scale = {2 steps} over {1.8 degree} ∗ 360 degree over rev * 10 rev over inch = 4000 steps over inch}
Более старые файлы конфигурации шаговых двигателей .ini и .hal использовали INPUT_SCALE для этого значения.

STEPGEN_MAXACCEL = 21.0 ( HAL ) Лимит ускорения для генератора шагов. Он должен быть больше чем MAX_ACCELERATION оси на от 1% до 10%. Это значение улучшает настройку "цикла позиционирования" stepgen. Если вы добавили компенсацию люфта для оси, то это значение должно быть в 1.5-2 раза больше чем MAX_ACCELERATION.

STEPGEN_MAXVEL = 1.4 ( HAL ) Более старые конфигурационные файлы также имеют ограничение скорости для генератора шагов. Если заданно, то значение должно также быть на 1%-10% больше чем MAX_VELOCITY оси. Более поздние испытания показали, что использование STEPGEN_MAXVEL не улучшает настройку цикла позиционирования stepgen.
Ответить

Вернуться в «LinuxCNC»