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 »

4.2.10 Раздел [EMCIO]

CYCLE_TIME = 0.100 Периодичность, в секундах, с которой будет запускаться EMCIO. Приравнивание его 0.0 или отрицательному значению скажет EMCIO не засыпать никогда. Обычно нет нужды менять это значение.

TOOL_TABLE = tool.tbl Файл который содержит информацию об инструментах, описан в руководстве пользователя (User Manual).

TOOL_CHANGE_POSITION = 0 0 2 Задает положение по осям X Y Z в которое нужно переместиться, чтобы произвести смену инструмента если использованны три числа. Задет положение по осям X Y Z A B C если использовано 6 чисел. Задет положение по осям X Y Z A B C U V W если использованы 9 чисел.
Смены инструмента могут быть комбинированы. Например, если вы комбинируете подъем инструмента со положением смены инструмента, вы можете сначала переместиться по Z, затем по X и Y

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

TOOL_CHANGE_QUILL_UP = 1 Ось Z будет перемещена к машинному нулю перед сменой инструмента если значение равно 1. Это тоже самое, что и использование G0 G53 Z0.

TOOL_CHANGE_AT_G30 = 1 Станок перемещается в точку заданную параметрами 5181-5186 для G30 если значение равно 1. Для большей информации по G30 и Параметрам смотрите инструкцию по G Code.

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

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

Сообщение Nick »

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

4.3.1 Обзор

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

4.3.2 Последоватиельность выставления осей (Homing Sequence)

Существует четыре возможных последовательности выставления осей, вместе со связанными параметрами как показано в следующей таблице. Для более детального описания что каждый параметр делает, см. следующие разделы.[td]SEARCH_VEL[/td][td]LATCH_VEL[/td][td]USE_INDEX[/td][td]Homing Type[/td]
nonzerononzeroNOSwitch-only
nonzerononzeroYESSwitch + Index
0nonzeroYESIndex-only
00NONone
Другие комбинации - ошибка.

4.3.3 Настройка

Есть 6 частей информации, которая определяет конкретно как себя ведет последовательность выставления осей. Они задаются в разделе [AXIS] ini-файла.

4.3.3.1 HOME_SEARCH_VEL (Скорость поиска home)

Значение по умолчанию - ноль. Нулевое значение говорит EMC считать, что нет никакого концевого выключателя home; стадия поиска пропускается.

Если HOME_SEARCH_VEL не нулевое, тогда EMC предполагает, что есть датчик home. EMC начинает с проверки того, что датчик еще не сработал. Если он уже сработал, EMC отходит назад от датчика со скоростью HOME_SEARCH_VEL. Направление отхода противоположное знаку HOME_SEARCH_VEL. Затем EMC ищет датчик home перемещаясь в сторону заданную знаком HOME_SEARCH_VEL, со скоростью определенной модулем HOME_SEARCH_VEL. Когда датчик home обнаружен, ось останавливается настолько быстро, насколько это возможно, но, несмотря на это всегда будет небольшой промах. Размер промаха зависит от скорости. Если она слишком высокая, ось может промахнуться на столько, чтобы задеть концевой датчик или ударится к конец оси. С другой стороны, если HOME_SEARCH_VEL слишком мала, процедура выставления оси может занять слишком много времени.

4.3.3.2 HOME_LATCH_VEL (Скорость уточнения home)

Определяет скорость и направление которое EMC использует для финального точного опреления датчика home (если он присутствует) и положения индексного импульса (если присутствует). Она обычно будет медленнее чем скорость поиска, для увеличения точности. Если HOME_SEARCH_VEL и HOME_SEARCH_VEL одинакового знака, тогда стадия уточнения проходит при движении в том же направлении, что и при стадии поиска. (В этом случае, EMC сначала откатывается от датчика, перед тем как начать двигаться обратно к нему со скоростью уточнения.)

Если HOME_SEARCH_VEL и HOME_SEARCH_VEL имеют разный знак, тогда стадия уточнения проходит при движении в том обратном направлении, от направления стадии поиска. Это значит, что EMC2 будет искать первый импульс после того, как отключится датчик home. Если HOME_SEARCH_VEL равно 0 (означает, что нет датчика home), и этот параметр не нулевой, EMC переходит к поиску индексного импульса. Если HOME_SEARCH_VEL не ноль, а этот параметр равен 0, это ошибка и процедура выставления осей провалится. Значение по умолчанию ноль.

4.3.3.3 HOME_FINAL_VEL

Определяет скорость которую EMC использует, для перемещения из положения HOME_OFFSET в положение HOME. Если HOME_FINAL_VEL отсутствует в ini-файле, тогда используется максимальная скорость оси для выполнения этого перемещения. Значение должно быть положительным числом.

4.3.3.4 HOME_IGNORE_LIMITS

Может содержать значения YES или NO. Этот флаг определяет будет ли EMC2 игнорировать входы с концевых датчиков. Некторые станки не используют раздельные датчики home, вместо этого они используют один из концевых датчиков в качестве входа датчика home. В этом случае, EMC2 нужно игнорировать этот предел во премя процедуры homing. Значение по умолчанию NO.

4.3.3.5 HOME_USE_INDEX

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

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

Сообщение Nick »

4.3.3.6 HOME_OFFSET

Содержит положение датчика home или индексного импульса, в координатах оси. Оно также может рассматриваться как расстояние между точкой, где находится датчик или индексный импульс и нулевой точкой оси. После определения индексного импульса, EMC устанавливает координату данной точки равной HOME_OFFSET. Значение по умолчанию 0.

4.3.3.7 HOME

Положение в которое будет перемещена ось после завершения процедуры homing. После определения индексного импульса и установки точки в HOME_OFFSET, EMC перемещается в положение HOME, в качестве последнего шага процедуры выставления осей. Значение по умолчанию 0. Отметьте, что даже если этот параметр равен HOME_OFFSET, ось все равно чуть-чуть проскочет уточненное положение пока будет останавливаться. Поэтому всегда будет маленькое движение в это время (только если HOME_SEARCH_VEL не равно 0 или вся процедура поиска и уточнения не пропущена). Финальное движение будет совершено на максимальной скорости оси. Т.к. ноль оси уже выставлен, не должно быть никакого риска что машина сломается ударившись о какой-либо предел оси и поэтому быстрое перемещение это самый быстрый способ завершения процедуры homing.

4.3.3.8 HOME_IS_SHARED

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

4.3.3.9 HOME_SEQUENCE

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

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

Сообщение Nick »

Рисунок 4.1: Homing Sequences

EMC2_Integrator_Manual_Figure4.1 Homing Sequence.png (23020 просмотров) <a class='original' href='./download/file.php?id=996&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (133.91 КБ)</a>
Исходник в svg:
EMC2_Integrator_Manual_Figure4.1 Homing Sequence.svg
(406.86 КБ) 1612 скачиваний
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

4.4 Токарные станки (Lathe)

4.4.1 Рабочая плоскость по умолчанию (Default Plane)

Когда интерпретатор был впервые написан, он был разработан для фрезерных станков. Вот почему, рабочая плоскость по умолчанию XY (G17). Обычный токарный станок использует плоскость XZ (G18). Чтобы изменить плосткость по умолчанию поместите следующую строку в раздел [RS274NGC] в ini-файле:
RS274NGC_STARTUP_CODE = G18

4.4.2 Настройка INI

Следующие настройки нужны для режима токарного станка, в дополнение или замену обычных настроек в ini-файле:
[DISPLAY]
DISPLAY = axis
LATHE = 1
[TRAJ]
AXES = 3
COORDINATES = X Z
[AXIS_0]
...
[AXIS_2]
...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Глава 5
EMC2 и HAL

Смотри также разделы man motion(9) и iocontrol(1).

5.1 motion (realtime)

5.1.1 Параметры

Motion загружается при помощи команды motmod. Родственные программы должны быть запущены до motion.

loadrt motmod [base_period_nsec=period] [servo_period_nsec=period] [traj_period_nsec=period] [num_joints=[0-9] ([num_dio=1-64] [num_aio=1-16])

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

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

Сообщение Nick »

5.1.2 Pins

Эти пины, параметры и функции создаются модулем реального времени motmod.

motion.adaptive-feed (float, in) Когда активирована адаптивная подача при помощи M52 P1, устанавливаемая скорость умножается на это значение. Эффект мультипликативен с NML-level превышения подачи и motion.feed-hold.

motion.analog-in-00 (float, in) Эти пины (00, 01, 02, 03 и более, если настроены) контролируются M66.

motion.analog-out-00 (float, out) Эти пины (00, 01, 02, 03 и более, если настроены) контролируются M67 или M68.

motion.coord-error (bit, out) TRUE если motion обнаружил ошибку, такую как превышение мягкого предела.

motion.coord-mode (bit, out) TRUE когда motion в режиме coordinated mode", что является противопоставлением режима "teleop mode"

motion.current-vel (float, out) Текущая скорость инструмента в пользовательских единицах измерения в секунду.

motion.digital-in-00 (bit, in) Эти пины (00, 01, 02, 03 и более, если настроены) контролируются M62-65.

motion.digital-out-00 (bit, out) Эти пины (00, 01, 02, 03 и более, если настроены) контролируются M62-65.

motion.distance-to-go (float,out) Дистанция до окончания текущего перемещения.

motion.enable (bit, in) Если этот бит устанавливается в FALSE, движение останавливается, станок переходит в состояние "machine off" и оператору станка показывается сообщение. Для нормального движения держите этот бит в TRUE.

motion.feed-hold (bit, in) Когда Feed Stop Control (управление остановкой подачи) включено при помощи M53 P1, и этот бит равен TRUE, скорость подачи устанавливается в 0.

motion.in-position (bit, out) равен TRUE если станок находится в нужном положении.

motion.motion-enabled (bit, out) равен TRUE в состоянии "machine on" (станок включен).

motion.on-soft-limit (bit, out) TRUE когда станок находится на мягком пределе (soft limit).

motion.probe-input (bit, in) G38.x использует значение этого пина для определения того, что на пробе есть контакт. TRUE для замкнутого контакта (касание), FALSE для открытого контакта. (Используется при определении длинны инструмента.)

motion.program-line (s32, out) Текущая строка исполняемой программы. Ноль, если программа не выполняется или находится между двух строк в пошаговом режиме.

motion.requested-vel (float, out) Текущая запрошенная скорость в пользовательских единицах измерения в секунду из установки F=n в файле с Gcode. Никаких увеличений подачи (feed override) или другие установки не применяются к этому пину.

motion.spindle-at-speed (bit, in) Движение будет приостановлено до тех пор пока этот пин не станет TRUE, при следующих условиях: перед первым движением с подачей, после каждого запуска шпинделя или изменения скорости; и если в режиме CSS (constans surface speed - постоянной скорости поверхности), при каждом переходе с быстрого перемещения на подачу. Этот ввод может быть использован для того, чтобы убедиться, что шпиндель разогнан до нужной скорости перед началом обработки или что шпиндель токарного станка в режиме CSS замедлился после перехода с обработки большого диаметра до маленького к следующему заходу на большом диаметре обработки. Многие VFD (variable speed drive - двигатели с переменной скоростью) имеют вывод "at spped" (на нужной скорости). В противном случае, просто генерировать этот сигнал при помощи HAL компонента, сравнивая запрошенную и текущие скорости.

motion.spindle-brake (bit, out) Равен TRUE когда должен быть применен тормоз шпинделя.

motion.spindle-forward (bit, out) Равен TRUE когда шпиндель должен вращаться вперед.

motion.spindle-index-enable (bit, I/O) Для корректного выполнения перемещений синхронизированных со шпинделем, этот пин должен быть завязан на пин index-enable энкодера шпинделя.

motion.spindle-on (bit, out) Равен TRUE когда шпиндель должен вращаться.

motion.spindle-reverse (bit, out) Равен TRUE когда шпиндель должен вращаться в обратную сторону.

motion.spindle-revs (float, in) Для корректного выполнения перемещений синхронизированных со шпинделем, этот сигнал должен быть завязан на пин положения энкодера шпинделя. Энкодер шпинделя должен быть масштабирован согласно увеличению spindle-revs на 1.0, для каждого оборота шпинделя в направлении часовой стрелки (M3).

motion.spindle-speed-in (float, in) Обратная связь текущей скорости шпинделя в оборотах в секунду. Это значение используется при движении в режиме подачи на оборот (G95). Если ваш энкодер двигателя шпиндель не имеет ввода скорости, вы можете генерировать подходящую величину посылая положение шпинделя через компонент ddt. (ddt − Вычисляет производную входной функции)

motion.spindle-speed-out (float, out) Заданная скорость шпинделя в оборотах в минуту. Положительное значение для вращения вперед (M3), отрицательное для вращения шпинделя в обратную сторону (M4).

motion.spindle-speed-out-rps (float, out) Заданная скорость шпинделя в оборотах в секунду. Положительное значение для вращения вперед (M3), отрицательное для вращения шпинделя в обратную сторону (M4).

motion.teleop-mode (bit, out)Равен TRUE когда движение происходит в режиме teleop, в противоположность режиму "coordinated move"

motion.tooloffset.w (float, out) Показывает используемую w отступа; она может быть взята из таблицы инструментов (включен G43) или из G кода (включен G43.1).

motion.tooloffset.x (float, out) Показывает используемую x отступа; она может быть взята из таблицы инструментов (включен G43) или из G кода (включен G43.1).

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

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

Сообщение Nick »

5.1.3 Параметры

Многие из этих параметров служат для нужд дебагинга, и могут быть удалены в любое время.
motion-command-handler.time (s32, RO)

motion-command-handler.tmax (s32, RW)

motion-controller.time (s32, RO)

motion-controller.tmax (s32, RW)

motion.debug-bit-0 (bit, RO) Этот параметр используется при дебагинге.

motion.debug-bit-1 (bit, RO) Этот параметр используется при дебагинге.

motion.debug-float-0 (float, RO) Этот параметр используется при дебагинге.

motion.debug-float-1 (float, RO) Этот параметр используется при дебагинге.

motion.debug-float-2 (float, RO) Этот параметр используется при дебагинге.

motion.debug-float-3 (float, RO) Этот параметр используется при дебагинге.

motion.debug-s32-0 (s32, RO) Этот параметр используется при дебагинге.

motion.debug-s32-1 (s32, RO) Этот параметр используется при дебагинге.

motion.servo.last-period (u32, RO) Количество циклов процессора между запусками потока серво (servo thread).Обычно, это число поделенное на скорость процессора дает время в секундах и может быть использовано для определения укладывается ли контроллер перемещений реального времени в свои временные рамки.

motion.servo.last-period-ns (float, RO)

motion.servo.overruns (u32, RW) Отмечая большую разницу между конечными значениями motion.servo.last-period, контроллер может определить, что ему возможно не удалось попасть во временные рамки. Каждый раз, когда отмечается такая неудача, это значение увеличивается.

5.1.4 Функции

Обычно, обе эти функции добавляются к servo-потоку (thread) в показанном порядке.

motion-command-handler Обрабатывает команды motion приходящие от пользователя

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

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

Сообщение Nick »

5.2 axis.N (realtime)

Эти пины и параметры создаются модулем реального времени motmod. Это текущие значения осей станка (физических сочленений), но пины все равно называются "axis.N".1 Они читаются и обновляются функцией motion-controller.

5.2.1 Пины

axis.N.active (bit, out)

axis.N.amp-enable-out (bit, out) Равен TRUE если усилитель для этого сочленения должен быть включен.

axis.N.amp-fault-in (bit, in) Должен быть установлен в TRUE если обнаружена внешняя неисправность с усилителем этого сочленения.

axis.N.backlash-corr (float, out)

axis.N.backlash-filt (float, out)

axis.N.backlash-vel (float, out)

axis.N.coarse-pos-cmd (float, out)

axis.N.error (bit, out)

axis.N.f-error (float, out)

axis.N.f-error-lim (float, out)

axis.N.f-errored (bit, out)

axis.N.faulted (bit, out)

axis.N.free-pos-cmd (float, out)

axis.N.free-tp-enable (bit, out)

axis.N.free-vel-lim (float, out)

axis.N.home-sw-in (bit, in) Должен быть установлен в TRUE если датчик home для этого сочленения замкнут.

axis.N.homed (bit, out)

axis.N.homing (bit, out) Равен TRUE если сочленение в настоящий момент выставляется в 0.

axis.N.in-position (bit, out)

axis.N.index-enable (bit, I/O)

axis.N.jog-counts (s32, in) Соединен с пином "counts" (количества) внешнего энкодера для использования физического джойстика ручного управления.

axis.N.jog-enable (bit, in) Когда равен TRUE (в и ручном режиме), любое изменение в "jog-counts" будет приводить к движению. Когда равен FALSE, "jog-counts" игнорируется.

axis.N.jog-scale (float, in) Устанавливает дистанцию перемещения на каждый "jog-counts", в единицах измерения станка.

axis.N.jog-vel-mode (bit, in) Если равен FALSE (по умолчанию), колесико ручного управления работает в режиме положения. Ось будет перемещаться ровно на jog-scale для каждой единицы, независимо от того, сколько на это потребуется времени. Если равен TRUE, колесико работает в режиме скорости - движение останавливается когда колесико останавливается, даже если это значит, что заданное движение еще не законченно.

axis.N.joint-pos-cmd (float, out) Заданное положение сочленения (joint) (отлично от положения двигателя). Может существовать отступ между положением сочленения и положением мотора, например, процесс выставления осей задает такой отступ.

axis.N.joint-pos-fb (float, out) Обратная связь положения сочленения (отлично от обратной вязи положения мотора).

axis.N.joint-vel-cmd (float, out)

axis.N.kb-jog-active (bit, out)

axis.N.motor-pos-cmd (float, out) Заданное положение для этого сочленения.

axis.N.motor-pos-fb (float, in) Текущее положение этого сочленения.

axis.N.neg-hard-limit (bit, out)

axis.N.pos-lim-sw-in (bit, in) Должно быть установлено в TRUE если концевой датчик положительного направления этого сочленения замкнут.

axis.N.pos-hard-limit (bit, out)

axis.N.neg-lim-sw-in (bit, in) Должно быть установлено в TRUE если концевой датчик отрицательного направления этого сочленения замкнут.

axis.N.wheel-jog-active (bit, out)

1 В "тривиальной кинематике" есть однозначное соответствие между сочленениями станка (joints) и осями (axis).

5.2.2 Параметры

axis.N.home-state Отражает состояние процедуры выставления оси (отражает текущий шаг процедуры).

5.3 iocontrol (userspace)

Эти пины создаются пользовательской областью контроллера Ввода/Вывода, обычно он называется io.

5.3.1 Пины

iocontrol.0.coolant-flood (bit, out) Равен TRUE когда требуется включить поток охлаждения (flood coolant).

iocontrol.0.coolant-mist (bit, out) Равен TRUE когда требуется охлаждение туманом (mist coolant).

iocontrol.0.emc-enable-in (bit, in) Должен быть установлен в FALSE когда существует внешнее состояние E-Stop.

iocontrol.0.lube (bit, out) Равен TRUE когда заданно включение смазка (возможно СОЖ)

iocontrol.0.lube_level (bit, in) Должен быть установлен в TRUE когда уровень смазки достаточен.

iocontrol.0.tool-change (bit, out) равен TRUE когда запрошена замена инструмента.

iocontrol.0.tool-changed (bit, in) Должен быть установлен в TRUE когда замена инструмента завершена.

iocontrol.0.tool-number (s32, out) Текущий номер инструмента.

iocontrol.0.tool-prep-number (s32, out) Номер следующего инструмента , из RS274NGC T-кода.

iocontrol.0.tool-prepare (bit, out) Равен TRUE когда запрошена подготовка инструмента.

iocontrol.0.tool-prepared (bit, in) Должен быть установлен в TRUE когда подготовка инструмента завершена.

iocontrol.0.user-enable-out (bit, out) Равен FALSE когда присутствует внутреннее состояние E-Stop.

iocontrol.0.user-request-enable (bit, out) Равен TRUE когда пользователь запросил сброс E-Stop.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Глава 6

Начало

6.1 Команды Hal

Более подробная информация может быть найдена на страницах man по halcmd "man halcmd" в окне терминила. Чтобы увидеть конфигурацию HAL и проверить статус пинов и параметров используйте окно HAL Configuration в меню Machine в AXIS. Чтобы наблюдать статус пинов откройте вкладку Watch и нажминте на пин, который вы хотите просматривать и он добавится в окно Watch.
EMC2 окно настройки HAL.jpg (22972 просмотра) <a class='original' href='./download/file.php?id=1021&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (82.84 КБ)</a>
Рисунок 6.1: Окно HAL Configuration.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.1.1 loadrt

Команда "loadrt" загружает компонент HAL реального времени. Функции компонента реального времени должны быть добавлены в поток, чтобы они обновлялись со скоростью потока. Вы не можете загрузить компонент пользовательского пространства в пространство реального времени.

Синтакс и пример:
loadrt <component> <options>
loadrt mux4 count=1

6.1.2 addf

Команда "addf" добавляет компонент реального времени в поток. Вам необходимо добавить функцию из компонента реального времени HAL в поток, чтобы функция обновлялась со скоростью потока. Если вы использовали Stepper Config Wizard чтобы создать ваши файлы конфигурации, у вас будет два потока:
  • base-thread (высокоскоростной поток): этот поток оперирует с элементами, которым нужен быстрый отклик, такими как создание импульсов шагов и запись и чтение параллельного порта.
  • servo-thread (низко скоростной поток): этот поток оперирует элементами, которые могут допускать более медленный отклик, например контроллер перемещений, ClassicLadder, и обработчик команд перемещения.
Синтакс и пример:
addf <component> <thread>
addf mux4 servo-thread

6.1.3 loadusr

Команда "loadusr" компонент HAL пользовательского пространства. Программы пользовательского пространства это отдельные процессы, который опционально может общаться с другими компонентами HAL через пины и параметры. Вы не можете загрузить компоненты реального времени в пользовательское пространство.

Флаги могут быть один или несколько из следующего:
  • -W подождать пока компонент станет готов. Предполагается что компонент имеет такое же имя как и первый аргумент команды.
  • -Wn <name> подождать компонент, с именем <name>.
  • -w подождать до выхода программы.
  • -i игнорировать возвращаемое значение программы (вместе с -w)
Синтакс и примеры:
loadusr <component> <options>
loadusr halui
loadusr -Wn spindle gs2_vfd -n spindle
на английском языке это значит "loadusr подождать компонент с именем spindle gs2_vfd имя spindle."
("loadusr wait for name spindle component gs2_vfd name spindle.")
"-n spindle" это часть компонента gs2_vfd, а не команды loadusr.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.1.4 net

Команда "net" создает связь ("connection") между сигналом и одним или несколькими пинами. Если сигнал не существует, net создает новый сигнал. Это заменяет необходимость использования команды newsig. Индикаторы направления "<= и =>" нужны только для того, чтобы людям было проще проследить за логикой и не используются командой net.
Синтакс и пример:
net <signal-name> <pin-name> <opt-direction> <opt-pin-name>
net both-home-y <= parport.0.pin-11-in


Каждый сигнал может иметь только один источник (пин HAL "Dir out") и столько читателей (пин HAL "Dir in"), сколько вам хочется. В колонке Dir окна HAL Configuration вы можете какие пины являются "in" (ввод), а какие "out" (вывод). Следующий рисунок показывает "направление" сигнала от источника, через сигнал и затем на ввыводы к "читателям".
EMC2 инструкция HAL направление сигнала.jpg.jpeg (22969 просмотров) <a class='original' href='./download/file.php?id=1022&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (15.15 КБ)</a>
Рис. 6.2: Направление сигнала.

Этот пример показывает сигнал xStep с источником stepgen.0.out и двумя читателями parport.0.pin-02-out, parport.0.pin-08-out. Проще говоря, значение stepgen.0.out посылается сигналу xStep и это значение затем посылается на parport.0.pin-02-out и parport.0.pin-08-out

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

         сигнал       источник                 назначение               назначение
      net xStep stepgen.0.out => parport.0.pin-02-out parport.0.pin-08-out
Т.к. сигнал xStep содержит значение stepgen.0.out (источника) вы можете использовать этот же сигнал еще раз, чтобы послать значение другому читателю. Чтобы это сделать просто используйте сигнал с читателями на другой строке.
net xStep <= stepgen.0.out => parport.0.pin-02-out
net xStep => parport.0.pin-08-out


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

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

Сообщение Nick »

6.1.5 setp

Команда "setp" устанавливает значение пина или параметра. Допустимые значения будут зависеть от типа пина или параметра. Если типы данных на совпадают - это ошибка.

Некоторые компоненты имеют параметры которые должны быть установлены перед использованиемю Параметры могут быть установлены перед использованием или во время использования, как необходимо. Вы не можете использовать setp на пине, который присоединен к сигналу.
Синтакс и пример:
setp <pin/parameter-name> <value>
setp parport.0.pin-08-out TRUE

6.1.6 unlinkp

Команда "unlinkp" отсоединяет пин от присоединенного сигнала. Если не одного сигнала не присоединено с пином до запуска этой команды, ничего не происходит.
Синтакс и пример:
unlinkp <pin-name>
unlinkp parport.0.pin-02-out


6.1.7 Устаревшие Команды

6.1.7.1 linksp

Команда "linksp" создает соединение между сигналом и одним пином.
Синтакс и пример:
linksp <signal-name> <pin-name>
linksp X-step parport.0.pin-02-out
The "linksp" command has been superseeded by the "net" command.

6.1.7.2 linkps

Команда "linkps" создает связь между одним пином и одним сигналом. Это тоже самое, что и linksp но аргументы поменяны местами.
Синтакс и пример:
linkps <pin-name> <signal-name>
linkps parport.0.pin-02-out X-Step


Команда "linkps" была заменена командой "net".

6.1.7.3 newsig

Команда "newsig" создает новый сигнал HAL с именем <signame> и типом данных <type>. Тип должен быть одним из "bit", "s32", "u32" или "float". Ошибка если <signame> уже существует.

Синтакс и пример:
newsig <signame> <type>
newsig Xstep bit


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

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

Сообщение Nick »

6.2 Hal Data

6.2.1 Bit

Значение bit или on, или off.
  • значения bit = true или 1 и false или 0 (True, TRUE, true все варианты допустимы).

6.2.2 Float

"float" это число с плавающей запятой. Другими словами запятая дробной части может перемещаться куда угодно.
  • значения float = значение 32 битного числа с плавающей запятой, с приблизительно 24 битами разрешения и более 200 битами динамического диапазона.
Более подробно о числа с плавающей запятой см. http://en.wikipedia.org/wiki/Floating_point .

6.2.3 s32

Число "s32" это целое число, которое может быть отрицательным или положительным.
  • Значения s32 values = целые числа от -2147483648 до 2147483647

6.2.4 u32

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

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

Сообщение Nick »

6.3 Файлы Hal

Если вы использовали Stepper Config Wizard чтобы создать ваши конфигурационные файлы, у вас будет вплоть до 3 файлов HAL в вашей конфигурационной директории.
  • my-mill.hal (Если ваш файл когфигурации называется "my-mill") Этот файл загружается первым и не должен быть изменен, если вы использовали Stepper Config Wizard.
  • custom.hal Этот файл загружается перед запуском GUI. Здесь располагаются ваши собственные команды HAL, которые вы хотите загрузить перед загрузкой GUI.
  • custom_postgui.hal Этот файл загружается после GUI. Здесь располагаются ваши пользовательские команды HAL, которые вы хотите загрузить после загрузки GUI. Все команды HAL которые используют pyVCP виджеты должны быть помещены сюда.

6.4 Компоненты HAL

Два параметра автоматическ добавляются к каждому компоненту HAL, когда он создается. Эти параметры позволяют наблюдать за временем исполнения компонента.
  • .time
  • .tmax
Time это количество циклов процессора которые потребовались, чтобы выполнить функцию.
Tmax это максимальное количество тактов процессора, которое потребовалось для того, чтобы выполнить функцию. Tmax это параметр типа read/write (чтение и запись) поэтому пользователь может выставить его в 0, чтобы избавится от больших значений при инициализации функции во время первого запуска.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.5 Логические компоненты

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

6.5.1 and2

Компонент "and2" это вентиль "и" ("and") с двумя вводами. Таблица истинности ниже показывает вывод основанный на любой комбинации вводов.

Синтакс

and2 [count=N] or [names=name1[,name2...]]

Функции

and2.n

Пины

and2.N.in0 (bit, in)
and2.N.in1 (bit, in)
and2.N.out (bit, out)

Таблица истинности

in0in1out
FalseFalseFalse
TrueFalseFalse
FalseTrueFalse
TrueTrueTrue

6.5.2 not

Компонент "not" ("не") это битовый инвертор.

Синтакс

not [count=n] or [names=name1[,name2...]]

Функции

not.all
not.n

Пины

not.n.in (bit, in)
not.n.out (bit, out)

Таблица истинности

inout
TrueFalse
FalseTrue

6.5.3 or2

Компонент "or2" это двух вводовый вентиль "или" ("or").

Синтакс

or2[count=n] or [names=name1[,name2...]]

Функции

or2.n

Пины

or2.n.in0 (bit, in)
or2.n.in1 (bit, in)
or2.n.out (bit, out)

Таблица истинности

in0in1out
TrueFalseTrue
TrueTrueTrue
FalseTrueTrue
FalseFalseFalse

6.5.4 xor2

Компонент "xor2" это двух вводовый вентиль "исключающий или" ("xor").

Синтаксис

xor2[count=n] or [names=name1[,name2...]]

Функции

xor2.n

Пины

xor2.n.in0 (bit, in)
xor2.n.in1 (bit, in)
xor2.n.out (bit, out)

Таблица истинности

in0in1out
TrueFalseTrue
TrueTrueFalse
FalseTrueTrue
FalseFalseFalse

6.5.5 Примеры использования логических компонентов HAL

Пример "and2" соединяющего два ввода в один вывод:
loadrt and2 count=1
addf and2.0 servo-thread
net my-sigin1 and2.0.in0 <= parport.0.pin-11-in
net my-sigin2 and2.0.in1 <= parport.0.pin-12-in
net both-on parport.0.pin-14-out <= and2.0.out

В примере выше, одна копия and2 загружается в пространство реального времени и добавляется к потоку серво. Затем пин 11 параллельного порта соединяется с битом in0 вентиля and. Затем, pin 12 подсоединяется к биту in1 вентиля and. И, наконец, мы подсоединяем бит вывода and2 к пину 14 параллельного порта. Таким образом, согласно таблице истинности, для and2 если pin 11 и pin 12 включены, тогда пин 14 будет включен.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.6 Компоненты преобразования

6.6.1 weighted_sum (взвешенная сумма)

weighted_sum конвертирует группу ьитов в целое число. Преобразование это сумма "весов" битов, которые положительны. Это схоже с кодированием десятичного числа в двоичной системе, но с большим количеством опций. Бит "hold" останавливает обработку входов, так чтобы "сумма" не менялась.
Следующий синтакс используется для загрузки компонента weighted_sum.
loadrt weighted_sum wsum_sizes=size[,size,...]
Создает группы взвешенных сумм, каждая с данным количеством входных битов (размером). Чтобы обновить weighted_sum вам нужно присоединить process_wsums к потоку.
addf process_wsums servo-thread
Это обновляет компонент weighted_sum.

В следующем примере вырезанном из окна HAL Configuration из Axis биты "0" и "2" равны True и нет отступа. Вес пина 0 равен 1 и пина 2 равен 4, поэтому сумма равна 5.
EMC HAL configuration руководство.png
EMC HAL configuration руководство.png (4.66 КБ) 22947 просмотров
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.7 Halshow

Скрипт halshow может помочь вам разобраться с работой HAL. Это очень специализированная система и она должна быть подключена к работающему HAL. Она не может работать автономно, потому что она использует способность HAL сообщать о том, что он знает о себе через интерфейс библиотеки halcmd. Каждый раз когда halshow запускается с другой конфигурацией EMC2, он будет другим. Как мы скоро увидим, способность HAL документировать самого себя является одной из ключевых возможностей для построения эффективного CNC системы.

6.7.1 Запуск Halshow

Halshow находится в меню AXIS в Machine/Show Hal Configuration.
Halshow находится в меню TkEMC в Scripts/Hal Show.

6.7.2 Hal Tree Area (Дерво HAL)

В левой части дисплея, как показано на изображении 6.4 находится окно дерева, что-то подобное вы можете увидеть в некоторых файловых менеджерах. Справа находится панель с вкладками для "SHOW" (показа) и "WATCH" (наблюдения).
Рис. 6.4: схема Halshow.
EMC HAL configuration halshow.png (22947 просмотров) <a class='original' href='./download/file.php?id=1032&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (12.32 КБ)</a>
Дерево показывает все основные части HAL. Перед каждым элементом ест маленький знак плюса (+) или минуса (-) в квадратике. Нажатие на плюс развернет элемент дерева чтобы отобразить что находится в нем. Если в квадрате показан минус, нажатие на него свернет список.
Вы также можете сворачивать / разворачивать дерево использую меню Tree View в верхнем левом крае экрана. Там вы наедете: Expand Tree (развернуть дерево), Collapse Tree (свернуть дерево), Expand Pins (развернуть пины), Expand Parameters (развернуть параметры), Expand Signals (развернуть сигналы) и Erase Watch (стереть слежения).
(Заметьте, что Erase Watch сотрет все ранее установленные слежения, вы не можете удалить только одно слежение.)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

6.7.3 Hal Show Area

Нажатие на название элемента, например, слово "компоненты", покажет вам (во вкладке "Show") все, что HAL знает о содержимом этого элемента. Рис. 6.4 показывает листинг точно такой же, какой вы увидите если нажмете "Компоненты" во время того, как вы работаете со стандартной m5i20 серво платой. Информационный дисплей точно такой же как в традиционных текстовых инструментах анализа HAL. Преимущество halshow в том, что есть доступ при помощи мыши.
EMC2 настройка HAL show menu.png (22933 просмотра) <a class='original' href='./download/file.php?id=1034&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (15.19 КБ)</a>
Рис. 6.5. Меню Show.

Если мы присмотримся поближе к окну дерева мы можем увидеть, что шесть главных частей HAL могут быть развернуты как минимум на один уровень. Если эти уровни развернуты, вы можете получить более сфокусированный ответ, когда вы кликате самом правом элементе дерева. Вы увидите, что некоторые пины и параметры HAL показывают более одного значения. Это происходит из-за самой природы поисковых операций самого halcmd. Если вы ищете один пин вы можете получить два, например:

Component Pins:
Owner Type Dir Value Name
06 bit -W TRUE parport.0.pin-10-in
06 bit -W FALSE parport.0.pin-10-in-not


Имя второго пина содержит имя первого целиком.

Под пространством просмотра (Show) есть набор виджетов которые позволяю вам "поиграть" с работающим HAL. Команды которые вы введете здесь и эффект который они произведут на работающий HAL не сохраняются. Они будут выполняться пока работает EMC2 но исчезнут как только EMC2 будет закрыт.

Окно ввода "Test Hal Command:" принимает любую из перечисленных команду halcmd. Они включают:
  • loadrt, unloadrt (загрузить/выгрузить real-time модуль)
  • loadusr, unloadusr (загрузить/выгрузить компонент пользовательского пространства)
  • addf, delf (добавить/удалить функцию к/из real-time потока)
  • net (создать связь между двумя или более элементами)
  • setp (установить значение параметра (или пина))
Этот маленький редактор будет выполнять команду каждый раз когда вы будете нажимать <enter> или кнопку выполнить (execute). Сообщение об ошибке от halcmd будет появляться ниже поля ввода, если команды сформированы не правильно. Если вы не уверены как настроить правильную команду вам будет необходимо еще раз прочитать документацию на halcmd и на специфические модули, с которыми вы работаете.

Давайте используем редактор, для того чтобы добавить дифференциальный модуль в HAL и присоединить его к положению оси, чтобы мы могли наблюдать скорость изменения положения, т.е., ускорение. Сначала нам нужно загрузить модуль hal под названием blocks, добавить его в поток серво, затем подключить его к пину положения оси. Как только это сделано мы можем наблюдать вывод дифференциала в halscope. Итак, приступим.

loadrt blocks ddt=1

Теперь посмотрим на ноду компонентов, вы должны увидеть blocks где-то там.

Loaded HAL Components:
ID Type Name
10 User halcmd29800
09 User halcmd29374
08 RT blocks
06 RT hal_parport
05 RT scope_rt
04 RT stepgen
03 RT motmod
02 User iocontrol


Конечно же это так. Обратите внимание, что ее идентификационный номер 08. Затем, нам нужно нужно определить какие функции доступны в этом модуле, поэтому мы смотрим в раздел функции:

Exported Functions:
Owner CodeAddr Arg FP Users Name
08 E0B97630 E0DC7674 YES 0 ddt.0
03 E0DEF83C 00000000 YES 1 motion-command-handler
03 E0DF0BF3 00000000 YES 1 motion-controller
06 E0B541FE E0DC75B8 NO 1 parport.0.read
06 E0B54270 E0DC75B8 NO 1 parport.0.write
06 E0B54309 E0DC75B8 NO 0 parport.read-all
06 E0B5433A E0DC75B8 NO 0 parport.write-all
05 E0AD712D 00000000 NO 0 scope.sample
04 E0B618C1 E0DC7448 YES 1 stepgen.capture-position
04 E0B612F5 E0DC7448 NO 1 stepgen.make-pulses
04 E0B614AD E0DC7448 YES 1 stepgen.update-freq


Здесь мы смотрим на параметр Owner (владелец) №08 и видим, что blocks экспортировал функцию под названием ddt.0 в поток серво и он будет выполнять свои математические расчеты каждый раз, когда поток будет обновляться. Еще раз смотрим на команду addf и видим, то она использует три аргумента, такие как эти:

addf <functname> <threadname> [<position>]

Мы уже знаем, что functname=ddt.0, поэтому давайте найдем название потока threadname развернув элемент thread в дереве. Здесь мы видим два потока, servo-thread и base-thread. Положение ddt.0 в потоке не критично. Поэтому мы добавляем функцию ddt.0 к потоку серво.

addf ddt.0 servo-thread

Это только для просмотра, поэтомы мы оставляем position пустым и получаем последнюю позицию в потоке. Рис. 6.6 показывает состояние halcmd после того, как эта команда была выполнена.
EMC2 настройка HAL addf function.png (22933 просмотра) <a class='original' href='./download/file.php?id=1035&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (14.57 КБ)</a>
Рис 6.6. Команда Addf

Затем нам нужно подсоединить этот блок к чему-нибудь. Но как мы узнаем какие пины доступны? Ответ - посмотреть в разделе пины. В нем мы находим ddt и видим это:

Component Pins:
Owner Type Dir Value Name
08 float R- 0.00000e+00 ddt.0.in
08 float -W 0.00000e+00 ddt.0.out


Это выглядит достаточно простым для понимания, но какой пин или сигнал мы хотим присоединить к нему? Это может быть пин axis, пин stepgen или сигнал. Мы видим следующее, когда посмотрим на axis.0:

Component Pins:
Owner Type Dir Value Name
03 float -W 0.00000e+00 axis.0.motor-pos-cmd ==> Xpos-cmd


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

linksp Xpos-cmd ddt.0.in

Теперь, если мы посмотрим на сигнал Xpos-cmd используя элемент дерева, мы увидим то, что мы сделали:

Signals:
Type Value Name
float 0.00000e+00 Xpos-cmd
<== axis.0.motor-pos-cmd
==> ddt.0.in
==> stepgen.0.position-cmd


Мы видим, что сигнал приходит от axis.o.motor-pos-cmd и идет к обоим ddt.0.in и stepgen.0.position-
cmd. Присоединив блок к сигналу мы избежали все трудности с нормальным течением этой команды перемещения.

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

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

Сообщение Nick »

6.7.4 Hal Watch Area

Нажатие на вкладку Watch, открывает пустой контейнер. Вы можете добавлять сигналы и пины в этот контейнер и наблюдать их значения.1 Вы можете добавлять сигналы или пины когда вкладка Watch активна нажимая на название сигнала или пина. Рис. 6.7 показывает этот контейнер с несколькили битовыми сигналами. Эти сигналы включают в себя пины enable-out для первых трех осей и два из трех сигналов estop iocontrol. Отметьте, что TkEMC показывает, что находится в состоянии ESTOP RESET. Пины amp-enable не включаются пока не включен станок.

1 Скорость обновления наблюдений гораздо медленнее, чем у Halmeter и Halscope. Если вам нужно хорошее разрешение по времени сигналов, эти инструменты будут более эффективны.
EMC2 настройка HAL watch.png (22931 просмотр) <a class='original' href='./download/file.php?id=1036&sid=9e0bb7a9882f64a70dfde8201c4eaceb&mode=view' target=_blank>Загрузить оригинал (13.97 КБ)</a>
Watch отображает значения типа бит используя цветные круги, изображающие светодиоды. Они показываются темно-коричневыми когда сигнал или пин равен False, и светло желтыми, когда сигнал равен true. Если вы выберете сигнал или пин, тип которого не "бит", watch будет отображать его как цифровое значение.

Watch позволит вам быстро протестировать ваши датчики или посмотреть влияние изменений, которые вы сделали в EMC использую графический интерфейс. Частота обновления Watch слегка медленновата для того, чтобы увидеть импульсы шагов шаговых двигателей, но вы можете использовать его для этих целей, если вы двигаете ось очень медленно или на маленькие дистанции. Если вы использовали IO_Show в EMC, страница Watch в halshow может быть настроена для наблюдения за параллельным портом очень похоже на то как это делал IO_Show.
Ответить

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