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 »

Глава 7

Простая настройка

7.1 Вступление

Предпочтительный способ настройки стандартного станка с шаговыми двигателями - использовать Step Configuration Wizard. См Руководство по началу работы (Getting Started Guide).

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

Чаще всего EMC2 используют для управления системами на шаговых двигателях. Эти системы используют моторы с драйверами, которые принимают сигналы "шаг" и "направление".

Это одна из самых простых настроек, потому, что моторы работают разомкнуто (нет обратной связи от моторов), тем не менее, система должна быть правильно настроена, чтобы двигатели не блокировались и не пропускали шаги. Большая часть этой главы основана на примере настройки выпускаемой вместе с EMC2. Эта настройка называется stepper, и обычно находится в /etc/emc2/sample-configs/stepper.

7.2 Максимальная частота шагов

С программным генерированием шагов, максимальная частота шагов это один шаг за два BASE_PERIOD-а для вывода шаг-направления. Максимальная необходимая частота шагов это произведение MAX_VELOCITY и INPUT_SCALE оси станка.
Если необходимая частота не достижима, следующие ошибки будут возникать, особенно при быстрых перемещениях в ручном режиме и перемещениях G0.

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

Другие меры - уменьшение одного или более из:

BASE_PERIOD (установка его в слишком маленькое значение приведет к неотзывчивости компьютера или даже к зависаниям), INPUT_SCALE (если вы можете выбрать другой размер шагов на вашем драйвере шагового двигателя, изменить передаточные числа редукторов или шаг ходового винта) или MAX_VELOCITY и STEPGEN_MAXVEL.

Если никакая комбинация BASE_PERIOD, INPUT_SCALE, и MAX_VELOCITY неприемлема, тогда рассмотрите использование аппаратного генератора импульсов шагов (таких как поддерживаемых EMC2 Universal Stepper Controller, платы Mesa, и других).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

7.3 Pinout

Одним из главных недостатков EMC было то, что вы не могли изменить раскладку пинов без перекомпиляции кода из исходников. EMC2 гораздо белее гибкий, и теперь (спасибо Hardware Abstraction Layer (HAL)) вы можете просто задать куда должен идти какой сигнал. См. руководство по HAL, для более подробной информации по HAL.

Как это описано во вступлении и туториале по HAL, у нас есть сигналы, пины и параметры внутри HAL.

Вот те, которые отвечают за наш pinout1:
сигналы: Xstep, Xdir & Xen
пины: parport.0.pin-XX-out & parport.0.pin-XX-in2

В зависимости от того, что вы выбрали в вашем .ini-файле вы будете использовать или стандартный standard_pinout.hal или xylotex_pinout.hal. Эти два файла инструктируют HAL как связать различные сигналы и пины.

Позже мы рассмотрим файл standard_pinout.hal.

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

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

Сообщение Nick »

7.3.1 standard_pinout.hal

Этот файл содержит несколько команд HAL и обычно выглядит примерно так:

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

# standard pinout config file for 3-axis steppers
# using a parport for I/O
# (Стандартный файл конфигурации pinout для трех осевых шаговых
# ситием использующих параллельный порт для ввода/вывода.)
#
# first load the parport driver
# (Сначала загружаем драйвер параллельного порта)
loadrt hal_parport cfg="0x0378"

# next connect the parport functions to threads
# read inputs first
# затем подключаем функции параллельного порта к потокам
# в начале чтение входов
addf parport.0.read base-thread 1

# write outputs last
# в конце запиcь выходов
addf parport.0.write base-thread -1

# finally connect physical pins to the signals
# и, наконец, подключаем физические пины к сигналам
net Xstep => parport.0.pin-03-out
net Xdir => parport.0.pin-02-out
net Ystep => parport.0.pin-05-out
net Ydir => parport.0.pin-04-out
net Zstep => parport.0.pin-07-out
net Zdir => parport.0.pin-06-out

# create a signal for the estop loopback
# Создаем сигнал для закольцовки Estop
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in

# create signals for tool loading loopback
# создаем сигналы для закольцовки установки инструмента
net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed

# connect "spindle on" motion controller pin to a physical pin
# подключаем пин контроллера "spindle on" (включение шпинделя) к физическому пину. 
net spindle-on motion.spindle-on => parport.0.pin-09-out

###
### You might use something like this to enable chopper drives when machine ON
### the Xen signal is defined in core_stepper.hal
### Вы можете использовать что-то вроде этого для включения прерывателя для драйверов
### когда станок включен, сигнал Xen определяется в core_stepper.hal
###
# net Xen => parport.0.pin-01-out
###
### If you want active low for this pin, invert it like this:
###
### Если вы хотите чтобы активное значение было 0, инвертируйте этот пин:
###
# setp parport.0.pin-01-out-invert 1
###
### A sample home switch on the X axis (axis 0). make a signal,
### link the incoming parport pin to the signal, then link the signal
### to EMC’s axis 0 home switch input pin
###
### Простой датчик home на оси Х (ось 0). Создаем сигнал, 
### соединяем пин ввода параллельного порта  с сигналом, затем 
### соединяем сигнал с пином ввода оси 0 EMC2.
###
# net Xhome parport.0.pin-10-in => axis.0.home-sw-in

###
### Shared home switches all on one parallel port pin?
### that’s ok, hook the same signal to all the axes, but be sure to
### set HOME_IS_SHARED and HOME_SEQUENCE in the ini file. See the
### user manual!
###
### Общие датчики home - все на одном пине параллельного порта?
### Это нормально, соедините один и тот же сигнал со всеми осями, но 
### не забудьте установить HOME_IS_SHARED и HOME_SEQUENCE  в ini файле.
### См. руководство пользователя! 
###
# net homeswitches <= parport.0.pin-10-in
# net homeswitches => axis.0.home-sw-in
# net homeswitches => axis.1.home-sw-in
# net homeswitches => axis.2.home-sw-in

###
### Sample separate limit switches on the X axis (axis 0)
###
### Простые раздельные концевые датчики на оси X (axis 0)
###
# net X-neg-limit parport.0.pin-11-in => axis.0.neg-lim-sw-in
# net X-pos-limit parport.0.pin-12-in => axis.0.pos-lim-sw-in

###
### Just like the shared home switches example, you can wire together
### limit switches. Beware if you hit one, EMC will stop but can’t tell
### you which switch/axis has faulted. Use caution when recovering from this.
###
### Также как и c датчиками home, вы можете соединить концевые датчики одним 
### проводом. Остерегайтесь, оборонитесь до одного из них, EMC2 остановится, но не
### сможет сказать какой датчик/ось выдал ошибку. Будьте аккуратны, когда 
### восстанавливаете работоспособность после такой ошибке.
###
# net Xlimits parport.0.pin-13-in => axis.0.neg-lim-sw-in axis.0.pos-lim-sw-in
Строки начинающиеся с ’#’ являются комментариями, и их единственная цель направить читателя на нужные места файла.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

7.3.2 Обзор standard_pinout.hal

Есть несколько операций, которые могут быть выполнены во время выполнения/интерпретации standard_pinout.hal
  1. Загружается драйвер параллельного порта (подробнее см. 9.1).
  2. Функции чтения и записи присоединяются к base thread. 3
  3. Сигналы step и direction (шаг и направление) для осей X, Y, Z подсоединяются к пинам параллельного порта.
  4. Дальнейшие сигналы ввода/вывода (замыкание estop, смены инструмента)
  5. Сигнал включения шпинделя spindle-on определяется и связывается в пином параллельного порта.
3 Самый быстрый поток в EMC2, обычно код выполняется каждые несколько микросекунд.

7.3.3 Изменения standard_pinout.hal

Если вы хотите изменить файл standard_pinout.hal, все что вам понадобится это простой текстовый редактор. Откройте файл и найдите те части, которые вы хотите изменить.

Если вы, например, хотите изменить пин для сигналов Sep и Dir для оси X, все, что вам нужно сделать это поменять номер в названии ’parport.0.pin-XX-out’:
net Xstep parport.0.pin-03-out
net Xdir parport.0.pin-02-out

может быть заменен на:
net Xstep parport.0.pin-02-out
net Xdir parport.0.pin-03-out

или просто на любые другие числа, которые вам нравятся.

Совет: проверьте, чтобы у вас не было подключено более одного сигнала ка один и тот же пин.

7.3.4 Изменение полярности сигнала

Если аппаратное обеспечение ожидает сигнал типа "активный ноль", установите соответствующие параметры -invert. Например, чтобы изменить сигнал контроля шпинделя:
setp parport.0.pin-09-invert TRUE

7.3.5 Добавление Контроля скорости шпинделя через ШИМ

Если ваш шпиндель может контролироваться при помощи сигнала ШИМ, используйте компонент pwmgen для создания сигнала:
loadrt pwmgen output_type=0
addf pwmgen.update servo-thread
addf pwmgen.make-pulses base-thread
net spindle-speed-cmd motion.spindle-speed-out => pwmgen.0.value
net spindle-on motion.spindle-on => pwmgen.0.enable
net spindle-pwm pwmgen.0.pwm => parport.0.pin-09-out
setp pwmgen.0.scale 1800 # Change to your spindle’s top speed in RPM
# Измените на максимальную скорость вашего шпинделя в об/мин-1


Предполагается, что реакция контроллера шпинделя на ШИМ проста: 0% ШИМ дает 0 об/мин-1, 10% ШИМ дает 180 об/мин-1 и т.д.
Если требуется, чтобы минимальное значение ШИМ заставляло шпиндель вращаться, следуйте примеру конфигурации nist-lathe для использования компонента scale (масштаба).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

7.3.6 Добавление сигнала enable

Некоторые усилители (драйверы) требуют сигнал enable (включения) перед тем, как они будет принимать команды и будет управлять моторами. Для этих целей есть уже заданные сигналы, называющиеся ’Xen’, ’Yen’, ’Zen’.

Для того, чтобы подсоединить их используйте следующий пример:
net Xen parport.0.pin-08-out

Вы можете иметь либо один пин, который будет активировать все драйверы, либо несколько, в зависимости от ваших установок. Однако, отметьте, что обычно когда одна из осей выходит за пределы, все другие оси будут также отключены, поэтому использование только одного пина/сигнала enable для всех драйверов это обычная практика.
You can either have one single pin that enables all drives; or several, depending on the setup you

7.3.7 Добавление внешней кнопки аварийной остановки ESTOP

Как вы можете увидеть в разделе 7.3.1, конфигурация шаговых систем по умолчанию не подразумевает внешней кнопки ESTOP4. Для добавления простой внешней кнопки вам нужно заменить эту строку:
net estop-loop iocontrol.0.user-enable-out iocontrol.0.emc-enable-in
на :
net estop-loop parport.0.pin-01-in iocontrol.0.emc-enable-in
Это подразумевает, что переключатель ESTOP подсоединен к пину 01 параллельного порта. Пока переключатель нажат5, EMC2 будет в состоянии ESTOP. Когда внешняя кнопка отпускается EMC2 сразу переключится в состояние ESTOP-RESET и все, что вам будет нужно, это переключится в состояние ВКЛ (Machine On) и вы будете готовы продолжить работу с EMC2

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

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

Сообщение Nick »

Глава 8
Компонетны HAL

8.1 Команды и компоненты пользовательского пространства

У некоторых из этих компонент будут развернутые описания из страниц man. У некоторых будет только ограниченное описание. Все компоненты имеют подробные описания в man. Из этого списка вы узнаете какие компоненты существуют и сможете использовать man для получения дополнительной информации. Например, в окне терминала наберите
man 1 axis
для того, чтобы увидеть информацию по странице man.

axis-remote.1 = Удаленный интерфейс AXIS

axis.1 = Графический пользовательский интерфейс AXIS EMC (The Enhanced Machine Controller)

bfload.1 = Программа для загрузки программы Xilinx Bitfile в FPGA платы Anything I/O Mesa

comp.1 = Собрать, скомпилировать и установить компоненты HAL EMC

emc.1 = EMC (The Enhanced Machine Controller)

hal_input.1 = Контроллирует пины HAL с любым устройством ввода Linux, включая устройства USB
HID

halcmd.1 = манипулирует Enhanced Machine Controller HAL (EMC HAL) из командной строки

halmeter.1 = просматривает пины, сигналы и параметры HAL

halrun.1 = управляет Enhanced Machine Controller HAL из командной строки

halsampler.1 = забирает информацию из HAL в реальном времени

halstreamer.1 = направляет информацию из файла в HAL в реальном времени

halui.1 = просматривает пины HAL и команды EMC через NML

io.1 = принимает команды ввода\вывода NML, взаимодействует с HAL в пользовательском пространстве

iocontrol.1 = принимает команды ввода\вывода NML, взаимодействует с HAL в пользовательском пространстве

pyvcp.1 = Virtual Control Panel для EMC2
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

8.2 Компоненты реального времени

У некоторых из этих компонент будут развернутые описания из страниц man. У некоторых будет только ограниченное описание. Все компоненты имеют подробные описания в man. Из этого списка вы узнаете какие компоненты существуют и сможете использовать man для получения дополнительной информации.

8.2.1 abs

Вычисляет абсолютное значение (модуль) и знак входного сигнала

8.2.1.0.0.1 Загрузка

loadrt abs [count=N|names=name1[,name2...]]

8.2.1.0.0.2 Функции

addf abs.N|name thread-name

8.2.1.0.0.3 Пины

abs.N.in (float in) Входное значение
abs.N.out (float out) Выходное значение, всегда положительное
abs.N.sign (bit out) Знак входного значения, false = положительный, true = отрицательный
Первый загруженный abs будет abs.0, для каждого следующего число "N" будет увеличиваться.
The first abs loaded will be abs.0 and each one after that the "N" number will increment.

8.2.2 and2

Двух входовый вентиль AND. Для того, чтобы на выходе была истина, на обоих входах должна быть истина.

8.2.2.0.0.4 Загрузка

loadrt and2 [count=N|names=name1[,name2...]]

8.2.2.0.0.5 Функции

addf and2.N|name thread-name

8.2.2.0.0.6 Пины

and2.N.in0 (bit in) Вход 0
and2.N.in1 (bit in) Вход 1
and2.N.out (bit out) Вывод

8.2.3 at_pid

proportional/integral/derivative контроллер с автоматической настройкой

8.2.4 axis

принимает команды ввода\вывода NML, взаимодействует с HAL в реальном времени

8.2.5 biquad

Биквадратный IIR фильтр

8.2.6 bldc_hall3

3-проводной Биполярный трапециевидный коммутатор BLDC драйвера мотора использую сенсоры Hall

8.2.7 blend

Производит линейную интерполяцию между двумя значениями

8.2.7.0.0.7 Загрузка

loadrt blend [count=N|names=name1[,name2...]]

8.2.7.0.0.8 Функции

addf blend.N|name thread-name

8.2.7.0.0.9 Пины

blend.N.in1 (float in) Первый ввод.
blend.N.in2 (float in) Второй ввод.
blend.N.select (float in) Выбор ввода.
blend.N.out (float out) Выходное значение.

8.2.7.0.0.10 Параметры

blend.N.open (bit r/w)

8.2.7.0.0.11 Описание

Если select равен 0.0, вывод равен in1.
Если select равен 1.0, вывод равен in2.
Для значений select между 0.0 и 1.0 вывод равен линейному преобразованию от in1 и in2 (select*in2 + (1-select)*in1).
Если blend.N.open равен true, значения select вне промежутка от 0.0 до 1.0 дают значения вне промежутка от in1 до in2. Если равен false выводы обрезаются границами интервала от in1 до in2.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

8.2.8 charge_pump

Создает сигнал "charge pump" с квадратной формой волны для некоторых контроллеров.

8.2.8.0.0.12 Загрузка

loadrt charge_pump

8.2.8.0.0.13 Функции

addf charge-pump

8.2.8.0.0.14 Пины

charge-pump.out (bit out)
charge-pump.enable (bit in) default = TRUE

8.2.8.0.0.15 Описание

Выводит квадратную волну, если enable равен TRUE или не подсоединен, 0 если enable равен FALSE.

8.2.9 clarke2

Двух вводная версия Clarke преобразования.

8.2.9.0.0.16 Загрузка

loadrt clarke2 [count=N|names=name1[,name2...]]

8.2.9.0.0.17 Функции

addf clarke2.N | name

8.2.9.0.0.18 Пины

clarke2.N.a (float in) phase a input
clarke2.N.b (float in) phase b input
clarke2.N.x (float out) cartesian components of output
clarke2.N.y (float out) cartesian components of output

8.2.9.0.0.19 Описание

Преобразование Кларка может быть использовано для переноса величины вектора из трехфазной системы (три компонента разнесенные на 120 градусов) в двухфазную Прямоугольную систему. clarke2 реализует специальный случай преобразования Кларка, которому нужно только две из трез входных фаз. В трех проводной системе, сумма токов или напряжения или трех фаз должна всегда быть равна 0. В результате нужно только две фазы для полного описания тока или напряжения. clarke2 подразумевает, что сумма равна 0, поэтому оно использует только фазы А и В. Т.к. H (униполярный) вывод всегда будет равен 0, в этом случае он не генерируется.

8.2.10 clarke3

Преобразование кларка (3 фазы в прямоугольную систему)

8.2.10.0.0.20 Загрузка

loadrt clarke3 [count=N|names=name1[,name2...]]

8.2.10.0.0.21 Функции

addf clarke3.N | name

8.2.10.0.0.22 Пины

clarke3.N.a (float in) three phase input vector
clarke3.N.b (float in) three phase input vector
clarke3.N.c (float in) three phase input vector
clarke3.N.x (float out) cartesian components of output
clarke3.N.y (float out) cartesian components of output
clarke3.N.h (float out) homopolar component of output

8.2.10.0.0.23 Описание

Преобразование Кларка может быть использовано для переноса величины вектора из трехфазной системы (три компонента разнесенные на 120 градусов) в двухфазную Прямоугольную систему (плюс униполярная компонента если сумма трех фаз не равна 0).

clarke3 реализует общий случай преобразования, использую все три фазы. Если известно, что сумма трех фаз равна 0, используйте более простую версию clarke2.

8.2.11 clarkeinv

Обратное преобразование Кларка.

8.2.11.0.0.24 Загрузка

loadrt clarkeinv [count=N|names=name1[,name2...]]

8.2.11.0.0.25 Функции

addf clarkeinv.N | name

8.2.11.0.0.26 Пины

clarkeinv.N.x (float in) cartesian components of input
clarkeinv.N.y (float in) cartesian components of input
clarkeinv.N.h (float in) homopolar component of input (usually zero)
clarkeinv.N.a (float out) three phase output vector
clarkeinv.N.b (float out) three phase output vector
clarkeinv.N.c (float out) three phase output vector

8.2.11.0.0.27 Параметры

8.2.11.0.0.28 Описание

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

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

Сообщение Nick »

8.2.12 classicladder

Программный (software) plc реального времени, основанный на лестничной логике (ladder logic)

8.2.13 comp

Компаратор двух входов с гистерезисом.

8.2.14 constant

Используйте параметр, чтобы установить значение пина.

8.2.15 conv_bit_s32

Конвертирует значение из типа bit в тип s32

8.2.16 conv_bit_u32

Конвертирует значение из типа bit в тип u32

8.2.17 conv_float_s32

Конвертирует значение из типа float в тип s32

8.2.18 conv_float_u32

Конвертирует значение из типа float в тип u32

8.2.19 conv_s32_bit

Конвертирует значение из типа s32 в тип bit

8.2.20 conv_s32_float

Конвертирует значение из типа s32 в тип float

8.2.21 conv_s32_u32

Конвертирует значение из типа s32 в тип u32

8.2.22 conv_u32_bit

Конвертирует значение из типа u32 в тип biy

8.2.23 conv_u32_float

Конвертирует значение из типа u32 в тип float

8.2.24 conv_u32_s32

Конвертирует значение из типа u32 в тип s32

8.2.25 counter

Считает количество входных импульсов (устаревший компонент)

8.2.26 ddt

Вычисляет производную входной функции

8.2.27 deadzone

Возвращает центр, если в пределах порога

8.2.28 debounce

Фильтрует зашумленный цифровой ввод, подробнее см. 8.9

8.2.29 edge

Детектор граней

8.2.30 encoder

Программный счетчик квадратуры сигналов энкодера, подробнее см. 8.6

8.2.31 encoder_ratio

Электронная "шестеренка", для синхронизации двух осей

8.2.32 estop_latch

ESTOP latch

8.2.33 feedcomp

Умножает ввод на значение текущей скорости для получения скорости подачи.

8.2.34 flipflop

Триггер типа D

8.2.35 freqgen

Программный генератор импульсов

8.2.36 gantrykins

Модуль кинематики, который отображает одну ось на несколько сочленений (шарниров)

8.2.37 gearchange

Выибрает из одного двух диапазонов скоростей (Select from one two speed ranges)

8.2.38 genhexkins

Дает шесть степеней свободы в положении и ориентации (XYZABC). Расположение моторов задается во время компиляции.

8.2.39 genserkins

Кинематика, которая может моделировать последовательно связанный манипулятор содержащий до 6 поворотных шарниров.

8.2.40 hm2_7i43

Драйвер HAL для Mesa Electronics 7i43 EPP Anything IO board с HostMot2

8.2.41 hm2_pci

Драйвер HAL для the Mesa Electronics 5i20, 5i22, 5i23, 4i65, и 4i68 Anything IO boards, с прошивкой HostMot2

8.2.42 hostmot2

Драйвер HAL для прошивок Mesa Electronics HostMot2

8.2.43 hypot

Калькулятор трех-входовой гипотенузы (Расстояния между точками в трехмерном Евклидовом пространстве)

8.2.44 ilowpass

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

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

Сообщение Nick »

8.2.45 integ

Интегратор

8.2.46 invert

Вычисляет обратное значение от входного сигнала

8.2.47 joyhandle

Устанавливает перемещения, мертвые зоны и масштабы нелинейного джойстика

8.2.48 kins

Определения кинематики для EMC2

8.2.49 knob2float

Конвертирует количество тиков (возможно от энкодера) в число с плавающей запятой

8.2.50 limit1

Ограничивает выходной сигнал, чтобы он падал между min и max

8.2.51 limit2

Ограничивает выходной сигнал, чтобы он падал между min и max

8.2.52 limit3

Ограничивает выходной сигнал, чтобы он падал между min и max

8.2.53 logic

Экспериментальный компонент функций общей логики

8.2.54 lowpass

Низкочастотный фильтр

8.2.55 lut5

Произвольные 5-входовые логические функции основанные на таблице поиска

8.2.56 maj3

Вычисляет большинство из трех входов

8.2.57 match8

8-ми битный детектор совпадений

8.2.58 maxkins

Кинематика настольного 5-ти осного фрезерного станка называемого "max" с поворотной головой (ось B) и горизонтальным поворотным столом (ось C). Предоставляет перемещения вдоль UVW в повернутой координатной системе. Исходный файл maxkins.c может быть полезной отправной точкой для других 5-ти осных систем.

8.2.59 minmax

Передает минимальное и максимальное значение входов на выходы.

8.2.60 motion

принимает команды перемещения NML, взаимодействует с HAL в режиме реального времени

8.2.61 mult2

Произведение двух входов

8.2.62 mux2

Выбирает одно из двух значений входа

8.2.63 mux4

Выбирает одно из четырех значений входа

8.2.64 mux8

Выбирает одно из восьми значений входа

8.2.65 near

Определяет являются ли два значения почти одинаковыми

8.2.66 not

Обратное логическое значение

8.2.67 offset

Добавляет отступ к входу, и вычитает его из значения обратной связи

8.2.68 oneshot

one-shot генератор импульсов

8.2.69 or2

Двух вводный вентиль OR

8.2.70 pid

PID (proportional/integral/derivative) контроллер, подробнее см. 8.7

8.2.71 pluto_servo

Аппаратный драйвер и прошивка для Pluto-P, для использованием с серво двигателями.

8.2.72 pluto_step

Аппаратный драйвер и прошивка для Pluto-P, для использованием с шаговыми двигателями.

8.2.73 pwmgen

Программный генератор ШИМ/ЧМ, подробнее см 8.5

8.2.74 rotatekins

Оси X и Y повернутые на 45 градусов сравнительно с joint 0 и 1.

8.2.75 sample_hold

Взять пробу и зафиксировать (Sample and Hold)

8.2.76 sampler

Проба данных из HAL в реальном времени

8.2.77 scale

Применяет масштабирование и отступ к своим входам

8.2.78 scarakins

кинематика для роботов типа SCARA

8.2.79 select8

8-ми битный детектор совпадений

8.2.80 serport

Аппаратный драйвер для цифровых битов вводи и вывода последовательного порта 8520 и 16550

8.2.81 siggen

Генератор сигнала, подробнее см. 8.10

8.2.82 sim_encoder

Симулированный квадратурный энкодер, подробнее см. 8.8.

8.2.83 sphereprobe

Сферический пробник

8.2.84 stepgen

Программный генератор импульсов шагов, подробнее см 8.4

8.2.85 steptest

Используется Stepconf для того чтобы проводить тесты значений ускорения и скорости осей.

8.2.86 streamer

Выводит данные из файла в HAL в реальном времени

8.2.87 sum2

Суммирует два ввода (каждый с усилением) и отступом

8.2.88 supply

Устанавливает выводные пины в значения из параметров (устаревший компонент)

8.2.89 thc

Контроллер длинны пламени (Torch Height Control) использую карту Mesa THC.

8.2.90 threads

Создает поток HAL реального времени

8.2.91 threadtest

Компонент для тестирования поведения потока

8.2.92 timedelay

Эквивалент релле задержки по времени

8.2.93 timedelta

Компонент, который измеряет поведение по задержкам планировщика потоков

8.2.94 toggle

Вкл, выкл кнопок

8.2.95 toggle2nist

Переключить кнопку в nist логику

8.2.96 tripodkins

Шарниры задают дистанцию до контроллируемой точки от трех заранее заданных точек (расположение моторов), дает три степени свободы в перемещении (XYZ).

8.2.97 tristate_bit

Отправляет сигнал на пин ввода/вывода, только когда включен, сходно трехпозиционному буферу в электронике.

8.2.98 tristate_float

Отправляет сигнал на пин ввода/вывода, только когда включен, сходно трехпозиционному буферу в электронике.

8.2.99 trivkins

Это однозначное 1:1 отображение между шарнирами и осями. Большинство фрезерных и токарных станков использует модуль тривиальной кинематики.

8.2.100 updown

Считает вверх или вниз, с опциональными пределами havior

8.2.101 wcomp

Оконный компаратор

8.2.102 weighted_sum

Конвертирует группу битов в целое число

8.2.103 xor2

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

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

Сообщение Nick »

8.3 Hal Meter

Hal Meter может быть загружен из терминала или из Axis. HAL Meter быстрее чем HAL Show отображает значения. Hal Meter имеет два окна, одно для подбора пина, сигнала или параметра, и одно для отображения значения. Несколько Hal Meter может быть открыто одновременно. Если вы используете скрипт для загрузки нескольких Hal Meter, вы можете установить положение для каждого при помощи -g X Y относительно левого верхнего угла экрана. Подробнее о параметрах см. страницы man.

loadusr halmeter pin hm2.0.stepgen.00.velocity-fb -g 0 500
EMC2 перевод руководства на русский язык HAL Meter.png (14777 просмотров) <a class='original' href='./download/file.php?id=1118&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (23.76 КБ)</a>
EMC2 перевод документации на русский язык HAL Meter.png
EMC2 перевод документации на русский язык HAL Meter.png (6.67 КБ) 14777 просмотров

Рис. 8.1: Hal Meter

8.4 Stepgen

Этот компонент предоставляет программную генерацию импульсов шага в ответ на команды положения и скорости. В режиме положения, у него есть встроенный предварительно настроенный цикл положения, поэтому настройка PID не требуется. В режиме скорости, он управляет мотором на заданной скорости, подчиняясь пределам скорости и ускорения. Это компонент только реального времени, и зависит от скорости процессора и прочего, его возможности к максимальной частоте шагов от 10kHz до, возможно, 50kHz. Рис 8.2 показывает три блок схемы, каждая это одношаговый генератор импульсов. Первая схема для шагов типа "0", (шаг и направление), вторая для шагов типа "1" (вверх/вниз или псевдо-ШИМ) и третья для шагов типов от 2 до 14 (различные шаблоны шагов). Первые две диаграммы показывают контроль в режиме положения а третья показывает режим скорости. Режим управления и тип шага устанавливаются независимо и может быть выбрана любая комбинация.

...
Вложения
EMC2 перевод руководства на русский язык Генератор шагов (Режим положения).png (14777 просмотров) <a class='original' href='./download/file.php?id=1120&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (191.96 КБ)</a>
EMC2 перевод руководства на русский язык Генератор шагов (Режим скорости).png (14777 просмотров) <a class='original' href='./download/file.php?id=1121&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (174.18 КБ)</a>
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

8.4.1 Загрузка

emc2$ halcmd loadrt stepgen step_type=<type-array> [ctrl_type=<ctrl_array>]

<type-array> ряд разделенных запятыми целых чисел. Каждое число вызывает запуск генератора одиночных импульсов, значение числа определяет тип шагов. <ctrl_array> - ряд разделенных запятыми букв “p” или “v”, для определения режима упраеления положение или скорость. ctrl_type - не обязательный параметр, если он опущен то все генераторы будут работать в режиме положения.
Например:
emc2# halcmd loadrt stepgen step_type=0,0,2 ctrl_type=p,p,v
Запустит три генератора шагов. Первые два типа "0" (шаг и направление) и в режиме положения. Последний использует тип шагов "2" (квадратурный) и работает в режиме скорости. Значение по умолчанию для <config-array> равно “0,0,0”, что запустит три генератора типа "0" (step/dir). Максимальное количество генераторов равно 8 (это ограничение установленно параметром MAX_CHAN в stepgen.c). Каждый генератор независим, но все обновляются одной функцией(функциями) в одно и тоже время. В следующих описаниях, <chan> это номер конкретного генератора. Первый генератор имеет номер 0.

8.4.2 Выгрузка (удаление)

emc2$ halcmd unloadrt stepgen

8.4.3 Пины

Каждый генератор шагов будет иметь только некоторые из этих пинов, в зависимости от установленного типа шагов и типа управления.
  • (bit) stepgen.<chan>.enable - обеспечивает выходные шаги step - если false, никаких шагов не генерируются.
  • (FLOAT) stepgen.<chan>.position-cmd – Желаемое положение мотора, в единицах измерения положения (только для режима положения).
  • (FLOAT) stepgen.<chan>.velocity-cmd – Желаемая скорость мотора, в единицах измерения положения в секунду (только в режиме контроля скорости).
  • (S32) stepgen.<chan>.counts – Обратная связь положения в тиках счетчика, обновляется посредством capture_position().
  • (FLOAT) stepgen.<chan>.position-fb – Обратная связь положения в единицах измерения положения, обновляется при помощи capture_position().
  • (BIT) stepgen.<chan>.step – Вывод импульса шага (только для шагов типа 0).
  • (BIT) stepgen.<chan>.dir – Вывод направления (только для шагов типа 0).
  • (BIT) stepgen.<chan>.up – Вывод псевдо-ШИМ ВВЕРХ (UP) (только для шагов типа 1).
  • (BIT) stepgen.<chan>.down – Вывод псевдо-ШИМ ВНИЗ (только для шагов типа 1).
  • (BIT) stepgen.<chan>.phase-A – Вывод фазы A (только для шагов типов 2-14).
  • (BIT) stepgen.<chan>.phase-B – Вывод фазы B (только для шагов типов 2-14).
  • (BIT) stepgen.<chan>.phase-C – Вывод фазы C (только для шагов типов 3-14).
  • (BIT) stepgen.<chan>.phase-D – Вывод фазы D (только для шагов типов 5-14).
  • (BIT) stepgen.<chan>.phase-E – Вывод фазы E (только для шагов типов 11-14).
8.4.4 Параметры
  • (FLOAT) stepgen.<chan>.position-scale – Шагов на единицу измерения положения. Этот параметр используется для обоих вывода и обратной связи.
  • (FLOAT) stepgen.<chan>.maxvel – Максимальная скорость, в единицах измерения положения в секунду. Если равен 0.0, не имеет эффекта.
  • (FLOAT) stepgen.<chan>.maxaccel – Максимальная величина ускорения/торможения, в единицах измерения положения в секунду в квадрате. Если равен 0.0, не имеет эффекта.
  • (FLOAT) stepgen.<chan>.frequency – Текущая частота шагов, в шагах в секунду.
  • (FLOAT) stepgen.<chan>.steplen – Длинна импульса шага (тип шага 1 и 0) или минимальное время в данном положении для (типов шага 2-14), в наносекундах.
  • (FLOAT) stepgen.<chan>.stepspace – Минимальный промежуток между двумя импульсами шага (для типов шага 0 и 1) в наносекундах.
  • (FLOAT) stepgen.<chan>.dirsetup – Минимальное время между изменением направления и началом следующего шага (только для типа шага 0) в наносекундах.
  • (FLOAT) stepgen.<chan>.dirhold – Минимальное время от конца импульса шага до изменения направления (только для типа шага 0) в наносекундах.
  • (FLOAT) stepgen.<chan>.dirdelay – Минимальное время между любыми двумя шагами в разных направлениях (только для типов шага 1-14), в наносекундах.
  • (S32) stepgen.<chan>.rawcounts – Количество raw feedback, обновляется make_pulses().
В режиме положения, значения maxvel и maxaccel используются во внутреннем цикле положения чтобы избежать цепочки импульсов, которой мотор не сможет следовать. Когда установлены значения, которые приемлемы мотором, даже быстрые смены установленного положения приведут к плавным трапециевидным перемещениям к новому положению. Алгоритм работает измеряя оба отклонение положения и отклонение скорости, и вычисляет ускорение которое будет стремится одновременно уменьшить оба отклонения до нуля.

Для более подробной информации, включая "черную коробку" "уравнения управления", смотрите исходный код.

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

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

Сообщение Nick »

8.4.5 Типы шагов

Генераторы шагов поддерживают 15 разных "типов шагов". Тип шага 0 является наиболее употребляемым, стандартный "шаг и направление". Когда установлен тип шага 0, есть еще четыре дополнительных параметра, которые определяют точные тайминги сигналов шага и направления. См. рис. 8.4 для значения этих параметров. Параметры задаются в наносекундах, но они будут округленны вверх до целого количества периодов потока, который вызывает make_pulses(). Например, если make_pulses() вызывается каждые 16 uS, и steplen равен 20000, тогда длительность сигнала шага будет равна 2 х 16 = 32uS. Значение по умолчанию для всех параметров 1uS, оно автоматическое округление применяется во время первого запуска кода. Т.к. один шаг требует steplen uS высокого сигнала и stepspace uS низкого, то максимальная частота равна 1.000.000.000 поделенное на (steplen+stepspace). Если maxfreq установлено большим чем этот предел, то значение будет уменьшено автоматически. Если maxfreq равно 0, оно останется 0, но выходная частота все равно будет ограничена.
EMC2 перевод руководства на русский язык Тайминг шагов и направления.png (14777 просмотров) <a class='original' href='./download/file.php?id=1122&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (22.27 КБ)</a>

Рис. 8.4 Тайминг сигналов шага и направления

Тип шага 1 имеет два вывода, вверх и вниз (up и down). Импульсы возникают на одном или на другом, в зависимости от направления движения. Каждый импульс имеет длину steplen, и импульсы разделены как минимум на stepspace uS. Максимальная частота такая же как и для шагов типа 0. Если maxfreq установлено большим чем этот предел, то значение будет уменьшено автоматически. Если maxfreq равно 0, оно останется 0, но выходная частота все равно будет ограничена.

Шаги типов от 2 до 14 основаны на состоянии, и имеют от двух до пяти выводов. На каждом шаге, счетчик состояния увеличивается или уменьшается. Рис. 8.5, 8.6 и 8.7 показывают выходные образцы как функцию от значения счетчика состояний. Максимальная частота равна 1.000.000.000 поделенное на steplen, и, также как и в других режимах, значение maxfreq будет уменьшено если оно превышает предел.
EMC2 перевод руководства на русский язык трехфазный типы шагов.png (14777 просмотров) <a class='original' href='./download/file.php?id=1123&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (100.43 КБ)</a>

Рис 8.5 Трехфазные типы шагов

EMC2 перевод руководства на русский язык четырехфазные типы шагов.png (14777 просмотров) <a class='original' href='./download/file.php?id=1124&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (132.54 КБ)</a>

Рис 8.6 Четырех фазные типы шагов

EMC2 перевод руководства на русский язык пятифазные типы шагов.png (14777 просмотров) <a class='original' href='./download/file.php?id=1125&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (147.51 КБ)</a>

Рис 8.7 Пяти фазные типы шагов

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

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

Сообщение Nick »

8.4.6 Функции

Компонент экспортирует три функции. Каждая функция действует на все генераторы импульсов шагов - выполнение различных генераторов а различных потоках не поддерживается.
  • (FUNCT) stepgen.make-pulses – Высокоскоростная функция для генерации и подсчета импульсов (без чисел с плавающей запятой).
  • (FUNCT) stepgen.update-freq – Медленная функция выполняет преобразование положения в скорость, масштабирование и ограничение.
  • (FUNCT) stepgen.capture-position – Медленная функция для обратной связи, обновляет положение уточнений и масштабирует положение.
Высокоскоростная функция stepgen.make-pulses должна выполняться в очень быстром потоке, от 10 до 50uS в зависимости от возможностей компьютера. Период этого потока определяет максимальную частоту шагов, т.к. since steplen, stepspace, dirsetup, dirhold, и dirdelay округляются до целого значения длин периодов в наносекундах. Две другие функции могут вызываться с гораздо более низкой частотой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

8.5 PWMgen

Этот компонент предоставляет программное генерирование ШИМ (PWM - Pulse Width Modulation) и частотно-импульсной модуляции (PDM - Pulse Density Modulation) форм сигнала. Это компонент исключительно реального времени и, в зависити от частоты процессора и прочего, способен генерировать ШИМ частотами от нескольких сотен Гц с достаточно хорошим разрешением, до возможно, 10 КГц с ограниченным разрешением.

8.5.1 Загрузка

emc2$ halcmd loadrt pwmgen output_type=<config-array>
<config-array> это ряд разделенных запятыми десятичных целых чисел. Каждое число вызывает создание одного PWM генератора, значение числа определяет тип вывода. Например:
emc2$ halcmd loadrt pwmgen output_type=0,1,2
Запустит три генератора. Первый будет выводить сигнал типа "0" (только ШИМ), следующие используют вывод типа "1" (ШИМ и направление) и последний использует тип "2" (ВВЕРХ и ВНИЗ). Не существует значение по умолчанию для <config-array>, если он не указан, то не будет создано ни одного генератора. Максимальное количество частотных генераторов равно 8 (как заданно параметром MAX_CHAN в pwmgen.c). Каждый генератор независим, но все обновляются одинаковыми функциями(ей) в одно и тоже время. В следующих описаниях <chan> значит номер конкретного генератора. Номер первого генератора равен 0.

8.5.2 Выгрузка

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

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

Сообщение Nick »

8.5.3 Пины

Каждый генератор ШИМ имеет следующие пины:
  • (FLOAT) pwmgen.<chan>.value – Установленное значение, в произвольных единицах. Будет масштабирован на парамер scale (см. ниже).
  • (BIT) pwmgen.<chan>.enable – Включает или выключает вывод ШИМ.
Каждый генератор ШИМ будет также иметь некоторые из этих пинов, в зависимости от выбранного типа вывода:
  • (BIT) pwmgen.<chan>.pwm – вывод PWM (или PDM) (ШИМ или ЧИМ), (только для типов вывода 0 и 1).
  • (BIT) pwmgen.<chan>.dir – Направление вывода (только для типа вывода 1).
  • (BIT) pwmgen.<chan>.up – PWM/PDM вывод для положительного входного значения (только для типа вывода 2).
  • (BIT) pwmgen.<chan>.down – PWM/PDM вывод для отрицательного входного значения (только для типа вывода 2).

8.5.4 Параметры

  • (FLOAT) pwmgen.<chan>.scale – Фактор масштаба для преобразования значения из произвольных единиц измерения в скважность сигнала.
  • (FLOAT) pwmgen.<chan>.pwm-freq – Желаемая частота ШИМ в Гц. Если 0.0 генерирует частотно импульсную модуляцию вместо ШИМ. Если установлено значение больше внутренних пределов, следующий вызов update_freq() установит его значение равное пределу. Если не нулевое и dihter равен false, следующий вызов update_freq() установит значение равное ближайшему целому количеству периодов функции make_pulses().
  • (BIT) pwmgen.<chan>.dither-pwm – Если равно true, включает сглаживание для достижения средней частоты ШИМ или скважности которые не возможно получить при помощи чистой ШИМ. Если равно false, обе частота ШИМ и скважность будут округлены до значений, которые могут быть достигнуты точно.
  • (FLOAT) pwmgen.<chan>.min-dc – Минимальная скважность, между 0.0 и 1.0 (скважностьбудет установленна в 0 если отключена, вне зависимости от этого значения).
  • (FLOAT) pwmgen.<chan>.max-dc – Максимальная скважность, между 0.0 и 1.0.
  • (FLOAT) pwmgen.<chan>.curr-dc – Текущая скважность- после всех ограничений и округлений (read only - только для чтения).

8.5.5 Типы вывода

Генераторы ШИМ поддерживают несколько "типов вывода". Тип 0 имеет одиночный выходной пин. Принимаются только положительные значения, отрицательные считаются нулем (и к ним будет применен min-dc, если он не 0). У типа 1 есть два выходных пина, один для ШИМ/ЧИМ сигнала и один для индикации направления. Скважность на пине ШИМ основана на абсолютном значении команды, поэтому отрицательные значения приемлемы. Пин направления равен false для положительных команд и true для отрицательных. Наконец-то, тип 2 имеет два вывода, называемые вверх и вниз. Для отрицательных команд сигнал ШИМ появляется на выводе down (вниз). Для положительных команд, сигнал ШИМ появляется на выводе up (вверх), а вывод down становится равным false. Тип 2 подходит для управления большинством H-мостов (H-bridge)

8.5.6 Функции

Компонент экспортирует две функции. Каждая функция оперирует со всеми генераторами ШИМ - работа разных генераторов в разных потоках не поддерживается.
  • (FUNCT) pwmgen.make-pulses – Высокоскоростная функция для генерации ШИМ форм волны (без floating point).
  • (FUNCT) pwmgen.update – Низкоскоростная функция для преобразования и ограничения значений и обработки других параметров.
Высокоскоростная функция pwmgen.make-pulses должна запускаться только в очени быстрых потоках от 10 до 50 uS в зависимости от возможностей процессора. Период этого потока определяет максимальную несущую частоту ШИМ, также как и разрешение ШИМ и ЧИМ сигналов. Другие функции могут вызываться с гораздо более низкой частотой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

8.6 Энкодер

Этот компонент предоставляет программный счетчик сигналов от квадратурных энкодеров. Это компонент строго реального времени, и в зависимости от скорости процессора, латентности и прочего его возможная максимальная частота отсчета от 10кГц до, возможно, 50кГц. Рис. 8.8 является блок схемой одного канала счетчика энкодера.
EMC2 руководство на русском языке Блок схема энкодера.png (14765 просмотров) <a class='original' href='./download/file.php?id=1129&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (49.75 КБ)</a>

Рис 8.8: Блок схема счетчика энкодера

8.6.1 Загрузка

emc2$ halcmd loadrt encoder [num_chan=<counters>]
<counters> это количество энкодеров, которое вы хотите загрузить. Если numchan не указано, то 3 энкодера будут загружены. Максимальное количество счетчиков равно 8 (как установлено в MAX_CHAN в encoder.c). Каждый счетчик независим, но все обновляются одной и той же функцией(ями) в одно и тоже время. В следующих описаниях, <chan> это номер специфичного счетчика. Первый счетчик имеет номер 0.

8.6.2 Выгрузка

emc2$ halcmd unloadrt encoder

8.6.3 Пины

  • encoder.<chan>.counter-mode (bit, I/O) – Когда установлен в true ввод Phase B игнорируется.
  • encoder.<chan>.counts (s32, Out)
  • encoder.<chan>.index-enable (bit, I/O) – См. канонический интерфейс энкодера.
  • encoder.<chan>.phase-A (bit, In) – Phase A квадратурного сигнала энкодера.
  • encoder.<chan>.phase-B (bit, In) – Phase B квадратурного сигнала энкодера.
  • encoder.<chan>.phase-Z (bit, In) – Phase Z (index pulse - индексный импульс) квадратурного сигнала энкодера.
  • encoder.<chan>.position (float, Out) – См. канонический интерфейс энкодера.
  • encoder.<chan>.position-interpolated (float, Out) – См ниже.
  • encoder.<chan>.position-scale (float, I/O)
  • encoder.<chan>.rawcounts (s32, In)
  • encoder.<chan>.reset (bit, In) – См. канонический интерфейс энкодера руководства по HAL.
  • encoder.<chan>.velocity (float, Out) – Оценочная скорость квадратурного сигнала.
  • encoder.<chan>.x4-mode (bit, I/O) – Устанавливает энкодер в режим 4х или 1х. Режим 1х полезен для некоторых колесиков прокрутки.
Пин position-interpolated пытается интерполировать значения между отсчетами энкодера, основываясь на самых свежих измеренных скоростях. Он не должен использоваться для управления положением, т.к. это значение не правильно на маленьких скоростях, во время изменения направления и во время изменения скорости. Однако, он позволяет использовать медленный ppr энкодер (pulse per revolution - импульсов за оборот, включая один импульс за оборот) для токарной обработки и может иметь другие применения.

8.6.4 Параметры

  • encoder.<chan>.capture-position.time (s32, RO)
  • encoder.<chan>.capture-position.tmax (s32, RW)
  • encoder.<chan>.update-counters.time (s32, RO)
  • encoder.<chan>.update-counter.tmax (s32, RW)

8.6.5 Функции

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

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

Сообщение Nick »

8.7 PID

Этот компонент предоставляет Proportional/Integeral/Derivative циклы управления. Это компонент строго реального времени. Для простоты, это обсуждение подразумевает что мы говорим о циклах положения, однако, этот компонент может быть использован чтобы реализовывать другие циклы обратной связи, такие как скорость, длина пламени горелки, температура и т.п. Рис. 8.9 это блок схема одиночного PID цикла.

8.7.1 Загрузка

emc2$ halcmd loadrt pid [num_chan=<loops>] [debug=1]

<loops> это количество циклов PID которое вы хотите загрузить. Если num_chan не указан, будет создан один цикл. Максимальное количество циклов равно 16 (как задано в MAX_CHAN в pid.c). Каждый цикл полностью независим. В следующих описаниях <loopnum> это номер цикла специфичного цикла. Первый цикл имеет номер 0.

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

8.7.2 Выгрузка

emc2$ halcmd unloadrt pid

8.7.3 Пины

Три наиболее важных пина это:
  • (FLOAT) pid.<loopnum>.command – Желаемое положение, устанавливаемое другим системным компонентом.
  • (FLOAT) pid.<loopnum>.feedback – Текущее положение, измеряемое устройством обратной связи таким, как энкодер.
  • (FLOAT) pid.<loopnum>.output – Команда скорости, которая пытается переместиться из текущего положения в желаемое положение.
Для цикла положения, "command" и "feedback", в единицах измерения положения. Для линейных осей, это могут быть дюймы, мм, метры, или любая уместная единица.Также для поворотных осей, это могут быть градусы, радианы и т.д. Единицы пина "output" являются необходимым изменением чтобы feedback соответствовал command. По существу, для цикла положения "output" это скорость, в дюймах/с, мм/с, градусах/с и т.д. Единицы времени всегда секунды, а единицы скорости совпадают с единицами измерения положения. Если command и feedback в метрах, то output будет в метрах в секунду.

Каждый цикл имеет два пина, которые используются для отслеживания или контроля основного выполнения компонента.
  • (FLOAT) pid.<loopnum>.error – Равен .command минус .feedback.
  • (BIT) pid.<loopnum>.enable – Бит, который включает цикл. Если .enable равен false, все интеграторы сбрасываются, и выводы принудительно становятся 0. Если .enable равен true, цикл выполняется нормально.
Пины для отслеживания насыщения. Насыщение появляется когда выводы блока PID находятся на своих максимальных или минимальных пределах.
  • (BIT) pid.<loopnum>.saturated – Равен true когда вывод насыщен.
  • (FLOAT) pid.<loopnum>.saturated_s – Время, которое вывод был насыщен.
  • (S32) pid.<loopnum>.saturated_count – Количество раз которое вывод был насыщен.
EMC2 перевод справки Блок схема цикла PID.png (14765 просмотров) <a class='original' href='./download/file.php?id=1128&sid=afa02eab2f7e7ab99231d006a8401b2a&mode=view' target=_blank>Загрузить оригинал (115.89 КБ)</a>

Рис. 8.9: Блок схема цикла PID

8.7.4 Параметры

Усиления, пределы и другие "настраиваемые" возможности PID реализованы в виде параметров.
  • (FLOAT) pid.<loopnum>.Pgain – Пропорциональный член
  • (FLOAT) pid.<loopnum>.Igain – Интегральный член
  • (FLOAT) pid.<loopnum>.Dgain – Дифференциальный член
  • (FLOAT) pid.<loopnum>.bias – Постоянный отступ на выводе
  • (FLOAT) pid.<loopnum>.FF0 – Нулевой порядок упреждения - вывод пропорционального члена в command (положение).
  • (FLOAT) pid.<loopnum>.FF1 – Первый порядок упреждения - вывод пропорционального члена в первую производную command (скорость).
  • (FLOAT) pid.<loopnum>.FF2 – Второй порядок упреждения - вывод пропорционального члена во вторую производную command (ускорение)1.
  • (FLOAT) pid.<loopnum>.deadband – Размер отклонения, который будет игнорироваться
  • (FLOAT) pid.<loopnum>.maxerror – Предел отклонения
  • (FLOAT) pid.<loopnum>.maxerrorI – Предел отклонения интегратора
  • (FLOAT) pid.<loopnum>.maxerrorD – Предел отклонения производной
  • (FLOAT) pid.<loopnum>.maxcmdD – Предел на производной command
  • (FLOAT) pid.<loopnum>.maxcmdDD – Предел на второй производной command
  • (FLOAT) pid.<loopnum>.maxoutput – Предел на выводимом значении
Все максимумы??? пределы выполнены таким образом, что если значение параметра равно 0, то нет никакого предела.

Если было указанно debug=1 во время загрузки компонента, четыре дополнительных параметра будет экспортировано:
  • (FLOAT) pid.<loopnum>.errorI – Интеграл отклонения.
  • (FLOAT) pid.<loopnum>.errorD – Производная отклонения.
  • (FLOAT) pid.<loopnum>.commandD – Производная command.
  • (FLOAT) pid.<loopnum>.commandDD – Вторая производная command.

8.7.5 Функции

Компонент экспортирует две функции для каждого цикла PID. Эти функции выполняют все вычисления необходимые для цикла. Т.к. каждый цикл имеет свои собственные функции, отдельные циклы могут быть включены в разные потоки и выполняться с разной скоростью.
  • (FUNCT) pid.<loopnum>.do_pid_calcs – Выполняет все вычисления для одиночного цикла PID.
Если вы хотите понимать точный алгоритм использующийся для вычисления выводов цикла PID, смотрите рис. 8.9, компоненты в начале beginning of emc2/src/hal/components/pid.c и, конечно, сам исходный код. Вычисления цикла написаны на С function calc_pid().

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

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

Сообщение Nick »

8.8 Симулированный энкодер. Simulated Encoder

Симулированный энкодер является именно этим. Он производит квадратурные импульсы с индексным импульсом, со скоростью контролируемой пином HAL. Чаще всего используется для тестирования.

8.8.1 Загрузка

emc2$ halcmd loadrt sim_encoder num_chan=<number>
<number> это количество энкодеров которые вы хотите симулировать. Если не указано, то будет загружен один энкодер. Максимальное количество равно 8 (определено в MAX_CHAN в sim_encoder.c).

8.8.2 Выгрузка

emc2$ halcmd unloadrt sim_encoder

8.8.3 Пины

(FLOAT) sim-encoder.<chan-num>.speed – Заданная скорость для симулированной оси.
(BIT) sim-encoder.<chan-num>.phase-A – Квадратурный вывод.
(BIT) sim-encoder.<chan-num>.phase-B – Квадратурный вывод.
(BIT) sim-encoder.<chan-num>.phase-Z – Вывод индексного импульса.
Когда .speed положительна, .phase-A идет перед .phase-B.

8.8.4 Параметры

(U32) sim-encoder.<chan-num>.ppr – Импульсов на оборот.
(FLOAT) sim-encoder.<chan-num>.scale – Коэффициент умножения для скорости. Значение по умолчанию равно 1.0, что означает скорость задана в оборотах в секунду. Измените на 60 для оборотов в минуту, на 360 для градусов в секунду 6.283185 для радиан в секунду и т.д..
Заметьте, что "импульсов за оборот" не тоже самое, что "counts (отсчетов) за оборот". Импульс это завершенный квадратурный цикл. Большинство энкодеров будет отсчитывать 4 раза за полный оборот.

8.8.5 Функции

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

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

Сообщение Nick »

8.9 Debounce

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

8.9.1 Загрузка

emc2$ halcmd loadrt debounce cfg=<config-string>

<config-string> это последовательность разделенных запятыми целых чисел. Каждое число загружает группу идентичных фильтров debounce, число определяет сколько фильтров будет в группе.

Например:
emc2$ halcmd loadrt debounce cfg=1,4,2
загрузит три группы фильтров. Группа 0 содержит 1 фильтр, группа 1 - 4 фильтра, группа 2 - 2 фильтра. Значение по-умолчанию для <config-string> равно "1", что загружает одну группу содержащую 1 фильтр. Максимальное количество групп равно 8 (определенно параметром MAX_GROUPS в debounce.c). Максимальное количество фильтров в группе ограничено только размером памяти. Каждая группа полностью независима. Все фильтры в одной группе одинаковы, и все они обновляются одной функцией, в одно и тоже время. В следующих описаниях <G> это номер группы и <F> это номер фильтра в группе. Первая фильтр это группа 0 фильтр 0.

8.9.2 Выгрузка

emc2$ halcmd unloadrt debounce

8.9.3 Пины

Каждый индивидуальный фильтр имеет два пина:
  • (BIT) debounce.<G>.<F>.in – Ввод фильтра <F> в группе <G>.
  • (BIT) debounce.<G>.<F>.out – Вывод фильтра <F> в группе <G>.

8.9.4 Параметры

Каждая группа фильтров имеет один параметр2.
  • (S32) debounce.<G>.delay – Задержка фильтра для всех фильтров в группе <G>.
Задержка фильтра измеряется в периодах потока (thread). Минимальная задержка равна 0. Вывод фильтра нулевой задержки в точности повторяет его ввод - он ничего не делает. С увельичением задержки, все более длинные помехи (глюки) отклоняются. Если задержка равна 4, все сигналы короче или равные 4 периодам потока будут отклонены.

8.9.5 Функции

Каждая группа фильтров имеет одну функцию, которая обновляет все фильтры в этой группе "одновременно". Разные группы фильтров могут обновляться из разных потоков с разными периодами.
  • (FUNCT) debounce.<G> – Обновляет все фильтры в группе <G>.
2 Каждый индивидуальный фильтр также имеет внутреннюю переменную состояния. Есть возможность экспортировать эту переменную в качестве параметра (задается во время компиляции). Это введено для целей тестирования, и просто тратит зазря память в обычных условиях.
Ответить

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