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 »

8.10 Siggen

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

8.10.1 Загрузка

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

8.10.2 Выгрузка

emc2$ halcmd unloadrt siggen

8.10.3 Пины

Каждый генератор имеет 5 выходных пинов.
  • (FLOAT) siggen.<chan>.sine – Синусоидальный вывод.
  • (FLOAT) siggen.<chan>.cosine – Косинусоидальный вывод.
  • (FLOAT) siggen.<chan>.sawtooth – Пилообразный вывод.
  • (FLOAT) siggen.<chan>.triangle – Треугольный вывод.
  • (FLOAT) siggen.<chan>.square – Квадратный вывод.
Все пять выводов имеют одинаковую частоту, амплитуду и отступ. В дополнение в выходным пинам есть три управляющих пина.
  • (FLOAT) siggen.<chan>.frequency – Устанавливает частоту в Герцах, значение по умолчанию 1 Гц.
  • (FLOAT) siggen.<chan>.amplitude – Устанавливает пик амплитуды выходных волн, по умолчанию 1ю
  • (FLOAT) siggen.<chan>.offset – Устанавливает DC отступ выходных волн, по умолчанию 0.
Например, если siggen.0.amplitude равна 1.0 и siggen.0.offset равен 0.0, выводы будут перемещаться от -1.0 до +1.0. Если siggen.0.amplitude равна 2.5 и siggen.0.offset равен 10.0, тогда выводы будут от 7.5 до 12.5.

8.10.4 Параметры 3

Нет.

8.10.5 Функции

  • (FUNCT) siggen.<chan>.update – Вычисляет новые значения для всех пяти выводов.
3 До версии 2.1, frequency, amplitude и offset были параметрами. Они были заменены пинами, чтобы разрешить их управление другими компонентами.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Эта, пока не переведенная глава, добавлена для сохранения порядка нумерации сообщений. Перевод появится позже.
Перевод 10-12 глав см. ниже.

Chapter 9 Parallel Port

9.1 Parport

Parport is a driver for the traditional PC parallel port. The port has a total of 17 physical pins. The
original parallel port divided those pins into three groups: data, control, and status. The data group
consists of 8 output pins, the control group consists of 4 pins, and the status group consists of 5
input pins.
In the early 1990’s, the bidirectional parallel port was introduced, which allows the data group to
be used for output or input. The HAL driver supports the bidirectional port, and allows the user to
set the data group as either input or output. If configured as output, a port provides a total of 12
outputs and 5 inputs. If configured as input, it provides 4 outputs and 13 inputs.
In some parallel ports, the control group pins are open collectors, which may also be driven low by
an external gate. On a board with open collector control pins, the "x" mode allows a more flexible
mode with 8 outputs, and 9 inputs. In other parallel ports, the control group has push-pull drivers
and cannot be used as an input.1
No other combinations are supported, and a port cannot be changed from input to output once the
driver is installed. Figure 9.1 shows two block diagrams, one showing the driver when the data
group is configured for output, and one showing it configured for input. For "x" mode, refer to the
pin listing of "halcmd show pin" for pin direction assignment.
The parport driver can control up to 8 ports (defined by MAX_PORTS in hal_parport.c). The ports
are numbered starting at zero.
9.1.1
Installing
loadrt hal_parport cfg="<config-string>"
Using the Port Index
I/O addresses below 16 are treated as port indexes. This is the simplest way to install the parport
driver and cooperates with the Linux parport_pc driver if it is loaded.
1 HAL cannot automatically determine if the "x" mode bidirectional pins are actually open collectors (OC). If they are not,
they cannot be used as inputs, and attempting to drive them LOW from an external source can damage the hardware.
To determine whether your port has "open collector" pins, load hal_parport in "x" mode. With no device attached, HAL
should read the pin as TRUE. Next, insert a 470Ω resistor from one of the control pins to GND. If the resulting voltage on
the control pin is close to 0V, and HAL now reads the pin as FALSE, then you have an OC port. If the resulting voltage is far
from 0V, or HAL does not read the pin as FALSE, then your port cannot be used in "x" mode.
The external hardware that drives the control pins should also use open collector gates (e.g., 74LS05).
On some machines, BIOS settings may affect whether "x" mode can be used. "SPP" mode is most most likely to work.
87
EMC V2.4 Integrator Manual
Chapter 9. Parallel Port
loadrt hal_parport cfg="0"
Will use the address Linux has detected for parport0.
Using the Port Address
The configure string consists of a hex port address, followed by an optional direction, repeated for
each port. The direction is "in", "out", or "x" and determines the direction of the physical pins 2
through 9, and whether to create input HAL pins for the physical control pins. If the direction is
not specified, the data group defaults to output. For example:
loadrt hal_parport cfg="0x278 0x378 in 0x20A0 out"
This example installs drivers for one port at 0x0278, with pins 2-9 as outputs (by default, since
neither "in" nor "out" was specified), one at 0x0378, with pins 2-9 as inputs, and one at 0x20A0,
with pins 2-9 explicitly specified as outputs. Note that you must know the base address of the
parallel port to properly configure the driver. For ISA bus ports, this is usually not a problem, since
the port is almost always at a "well known" address, like 0278 or 0378 which is typically configured
in the system BIOS. The address for a PCI card is usually shown in "lspci -v" in an "I/O ports" line,
or in the kernel message log after executing "sudo modprobe -a parport_pc". There is no default
address; if <config-string> does not contain at least one address, it is an error.
9.1.2
Pins
• ( B I T ) parport.<portnum>.pin-<pinnum>-out – Drives a physical output pin.
• ( B I T ) parport.<portnum>.pin-<pinnum>-in – Tracks a physical input pin.
• ( B I T ) parport.<portnum>.pin-<pinnum>-in-not – Tracks a physical input pin, but in-
verted.
For each pin, <portnum> is the port number, and <pinnum> is the physical pin number in the 25
pin D-shell connector.
For each physical output pin, the driver creates a single HAL pin, for example parport.0.pin-14-out.
Pins 2 through 9 are part of the data group and are output pins if the port is defined as an output
port. (Output is the default.) Pins 1, 14, 16, and 17 are outputs in all modes. These HAL pins
control the state of the corresponding physical pins.
For each physical input pin, the driver creates two HAL pins, for example parport.0.pin-12-in
and parport.0.pin-12-in-not. Pins 10, 11, 12, 13, and 15 are always input pins. Pins 2 through
9 are input pins only if the port is defined as an input port. The -in HAL pin is TRUE if the physical
pin is high, and FALSE if the physical pin is low. The -in-not HAL pin is inverted – it is FALSE
if the physical pin is high. By connecting a signal to one or the other, the user can determine the
state of the input. In "x" mode, pins 1, 14, 16, and 17 are also input pins.
9.1.3
Parameters
• ( B I T ) parport.<portnum>.pin-<pinnum>-out-invert – Inverts an output pin.
• ( B I T ) parport.<portnum>.pin-<pinnum>-out-reset (only for "out" pins) – TRUE if this pin
should be reset when the -reset function is executed.
• (U32) parport.<portnum>.reset-time – The time (in nanoseconds) between a pin is set by
write and reset by the reset function if it is enabled.
The -invert parameter determines whether an output pin is active high or active low. If -invert
is FALSE, setting the HAL -out pin TRUE drives the physical pin high, and FALSE drives it low. If
-invert is TRUE, then setting the HAL -out pin TRUE will drive the physical pin low.
88
89
Figure 9.1: Parport Block Diagram
pin-4-in
pin-5-in-not
EMC V2.4 Integrator Manual
Chapter 9. Parallel Port
EMC V2.4 Integrator Manual
9.1.4
Chapter 9. Parallel Port
Functions
• ( F U N C T ) parport.<portnum>.read– Reads physical input pins of port <portnum> and up-
dates HAL -in and -in-not pins.
• ( F U N C T ) parport.read-all – Reads physical input pins of all ports and updates HAL -in
and -in-not pins.
• ( F U N C T ) parport.<portnum>.write – Reads HAL -out pins of port <portnum> and updates
that port’s physical output pins.
• ( F U N C T ) parport.write-all – Reads HAL -out pins of all ports and updates all physical
output pins.
• ( F U N C T ) parport.<portnum>.reset – Waits until reset-time has elapsed since the associ-
ated write, then resets pins to values indicated by -out-invert and -out-invert settings.
reset must be later in the same thread as write. If -reset is TRUE, then the reset func-
tion will set the pin to the value of -out-invert. This can be used in conjunction with step-
gen’s doublefreq to produce one step per period. The stepgen stepspace for that pin must be
set to 0 to enable doublefreq.
The individual functions are provided for situations where one port needs to be updated in a very
fast thread, but other ports can be updated in a slower thread to save CPU time. It is probably not
a good idea to use both an -all function and an individual function at the same time.
9.1.5
Common problems
If loading the module reports
insmod: error inserting ’/home/jepler/emc2/rtlib/hal_parport.ko’:
-1 Device or resource busy
then ensure that the standard kernel module parport_pc is not loaded2 and that no other device
in the system has claimed the I/O ports.
If the module loads but does not appear to function, then the port address is incorrect or the
probe_parport module is required.
9.1.6
Using DoubleStep
To setup DoubleStep on the parallel port you must add the function parport.n.reset after par-
port.n.write and configure stepspace to 0 and the reset time wanted. So that step can be asserted
on every period in HAL and then toggled off by parport after being asserted for time specificed by
parport.n.reset-time.
For example:
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
2 In the EMC packages for Ubuntu, the file /etc/modprobe.d/emc2 generally prevents parport_pc from being automati-
cally loaded.
90
EMC V2.4 Integrator Manual
Chapter 9. Parallel Port
addf stepgen.capture-position servo-thread
...
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

9.2 probe_parport
In modern PCs, the parallel port may require plug and play (PNP) configuration before it can be
used. The probe_parport module performs configuration of any PNP ports present, and should be
loaded before hal_parport. On machines without PNP ports, it may be loaded but has no effect.
9.2.1
Installing
loadrt probe_parport
loadrt hal_parport ...
If the Linux kernel prints a message similar to
parport: PnPBIOS parport detected.
when the parport_pc module is loaded (sudo modprobe -a parport_pc; sudo rmmod parport_pc)
then use of this module is probably required.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Глава 10
Hal User Interface - Пользовательский интерфейс HAL (Halui)

10.1 Введение

Halui это основанный на HAL интерфейс пользователя для EMC, он соединяет пины HAL с NML командами. Большая часть функционала (кнопки, индикаторы и т.д.) которые представляются обычными GUI (mini, Axis, и т.п.), работает через пины HAL в Halui.
Самый простой способ добавить halui, это добавить следующее в секцию [HAL] в ini файл.
HALUI = halui
Другой способ запустить его (особенно когда используются конфигурационные файлы созданные при помощи stepconf) включить следующее в ваш файл custom.hal. Убедитесь, что вы используете правильный путь к вашему ini файлу.

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

loadusr halui -ini /path/to/inifile.ini

10.2 Описание пинов Halui

10.2.1 Abort (Отмена)

  • halui.abort (bit, in) - пин для отправки сообщения отмены (отменяет большинство ошибок).

10.2.2 Axis

  • halui.axis.n.pos-commanded (float, out) - Заданное (запрошенное) положение оси в коодинатах станка.
  • halui.axis.n.pos-feedback (float, out) - Обратная связь положения оси в координатах станка.
  • halui.axis.n.pos-relative (float, out) - Заданное (запрошенное) положение оси в относительных коодинатах.

10.2.3 E-Stop (АВОСТ)

  • halui.estop.activate (bit, in) - pin пин для запроса E-Stop.
  • halui.estop.is-activated (bit, out)- отображает состояние E-stop.
  • halui.estop.reset (bit, in) - pin для запроса сброса E-Stop.

10.2.4 Feed Override (Замещение подачи)

  • halui.feed-override.count-enable (bit, in) - добжно быть равно true для того, чтобы велся отсчет тиков.
  • halui.feed-override.counts (s32, in) - количество тиков с энкодера для изменения Feed Override.
  • halui.feed-override.decrease (bit, in) - пин для уменьшения FO (-=scale - вычесть значение scale).
  • halui.feed-override.increase (bit, in) - пин для увеличения FO (+=scale - добавить значение scale).
  • halui.feed-override.scale (float, in) - пин для установки шага увеличения/уменьшения Feed Override.
  • halui.feed-override.value (float, out) - текущее значение FO.

10.2.5 Flood

  • halui.flood.is-on (bit, out) - отображает включен ли flood.
  • halui.flood.off (bit, in) - пин для хапроса остановки flood.
  • halui.flood.on (bit, in) - пин для запроса включения flood.

10.2.6 Homing

  • halui.home-all (bit, in) - пин для запроса выставления всех осей. Это пин будет присутствовать только если HOME_SEQUENCE задан в ini файле.

10.2.7 Jog

<n> это число между 0 и 8 и ’selected’.
  • halui.jog-deadband (float, in) - мертвая зона для аналогового джогинга (значения меньше указанного не будут восприниматься).
  • halui.jog-speed (float, in) - пин для установки скорости перемещения для положительного и отрицательного джогинга.
  • halui.jog.<n>.analog (float, in) - ввод для аналогового задания скорости ручного перемещения (полезно при использовании джойстиков или других аналоговых устройств)
  • halui.jog.<n>.minus (bit, in) - пин для перемещения оси <n> в отрицательном направлении со скоростью halui.jog.speed.
  • halui.jog.<n>.plus (bit, in) - пин для перемещения оси <n> в положительном направлении со скоростью halui.jog.speed.
  • halui.jog.selected.minus (bit, in) - пин для перемещения выбранной оси в отрицательном направлении со скоростью halui.jog.speed.
  • halui.jog.selected.plus (bit, in) - пин для перемещения выбранной оси в положительном направлении со скоростью halui.jog.speed.

10.2.8 Joint (сочленение)

<n> это номер между 0 и 8 или ’selected’.
  • halui.joint.<n>.has-fault (bit, out) - статусный пин отображающий что на joint произошла ошибка.
  • halui.joint.<n>.home (bit, in) - пин для выставления home для указанного joint.
  • halui.joint.<n>.is-homed (bit, out) - пин говорящий, был ли выставлен указанный joint.
  • halui.joint.<n>.is-selected bit (bit, out) - пин говорящий выбран (selected) ли указанный joint - внутрениий пин halui
  • halui.joint.<n>.on-hard-max-limit (bit, out) - пин говорящий, что joint <n> находится на концевике в положительном направлении.
  • halui.joint.<n>.on-hard-min-limit (bit, out) - пин говорящий, что joint <n> находится на концевике в отрицательном направлении.
  • halui.joint.<n>.on-soft-max-limit (bit, out) - пин говорящий, то joint <n> находится в положении программного предела soft limit в положительном направлении.
  • halui.joint.<n>.on-soft-min-limit (bit, out) - пин говорящий, то joint <n> находится в положении программного предела soft limit в отрицательном направлении.
  • halui.joint.<n>.select (bit, in) - выбрать joint (0..7) - внутрениий пин halui.
  • halui.joint.<n>.unhome (bit, in) - сделать указанный joint не выставленным.
  • halui.joint.selected (u32, out) - выбранный joint (0..7) - внутренний пин halui
  • halui.joint.selected.has-fault (bit, out) - пин говорящий, что на выбранном joint произошла ошибка
  • halui.joint.selected.home (bit, in) - пин для выстввления выбранного joint.
  • halui.joint.selected.is-homed (bit, out) - пин говорящий, что выбранный joint выставлен
  • halui.joint.selected.on-hard-max-limit (bit, out) - пин говорящий, что выбранный joint находится на концевике в положительном направлении.
  • halui.joint.selected.on-hard-min-limit (bit, out) - пин говорящий, что выбранный joint находится на концевике в отрицательном направлении.
  • halui.joint.selected.on-soft-max-limit (bit, out) - пин говорящий, то выбранный joint находится в положении программного предела soft limit в положительном направлении.
  • halui.joint.selected.on-soft-min-limit (bit, out) - пин говорящий, то выбранный joint находится в положении программного предела soft limit в отрицательном направлении.
  • halui.joint.selected.unhome (bit, in) - пин для того чтобы сделать выбранный joint не выставленным.

10.2.9 Lube (смазка)

  • halui.lube.is-on (bit, out) - отображает, что смазка включена.
  • halui.lube.off (bit, in) - пин для запроса выключения lube.
  • halui.lube.on (bit, in) - пин для запроса включения lube.

10.2.10 Machine (Станок)

  • halui.machine.is-on (bit, out) - отображает, что станок включен.
  • halui.machine.off (bit, in) - пин для запроса выключения станка.
  • halui.machine.on (bit, in) - пин для запроса включения станка.

10.2.11 Максимальная скорость

Максимальная линейная скорость может быть назначена от 0 до значения MAX_VELOCITY которое установленно в секции [TRAJ] в ini файле.
  • halui.max-velocity.count-enable (bit, in) - когда равен TRUE, максимальная скорость изменяется при изменении кодичества тиков энкодера.
  • halui.max-velocity.counts (s32, in) - позводяет вам привязать энкодер для изменения максимальной скорости.
  • halui.max-velocity.decrease (bit, in) - пин для уменьшения максимальной скорости.
  • halui.max-velocity.increase (bit, in) - пин для увеличения максимальной скорости.
  • halui.max-velocity.scale (float, in) - величина добавляемая или вычитаемая из максимальной скорости при срабатывании пинов decrease или increase в единицах измерения станка в секунду.
  • halui.max-velocity.value (float, out) - значение максимальной линейной скорости станка в единицах измерения станка в секунду.

10.2.12 MDI

Иногда пользователь хочет добавить более сложную задачу для выполения при активации пина HAL. Это возмонжо при использовании следующей схемы оманд MDI:
  • MDI_COMMAND добавляется в секцию [HALUI] в файл ini.

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

    [HALUI]
    MDI_COMMAND = G0 X0
    
  • Когда зпускается halui он прочитает поле MDI_COMMAND из файла ini, и экспортирует пин от 00 до количества записей MDI_COMMAND найденных в ini (максимум 64 команды).
  • halui.mdi-command-<nn> (bit, in) - halui попытается послать MDI команду заданную в ini файле. Это не всегда будет получаться в зависимости от тогов каком режие находится emc2 (например во время нахождения в режиме AUTO halui не может успешно послать комманду MDI). Если команда прошла успешно halui переключит EMC2 в режим MDI, а затем снова вернет в ручной режим.

10.2.13 Mist (Туман)

  • halui.mist.is-on (bit, out) - отображает, что туман включен
  • halui.mist.off (bit, in) - запрашивает выключение тумана.
  • halui.mist.on (bit, in) - запрашивает включение тумана.

10.2.14 Mode (Режим)

  • halui.mode.auto (bit, in) - пин для запроса режима auto.
  • halui.mode.is-auto (bit, out) - отображает, что режи auto включен.
  • halui.mode.is-joint (bit, out) - пин отображающий, что включен режим джоггинга (jog) joint by joint.
  • halui.mode.manual (bit, in) - пин для запроса ручного режима (manual).
  • halui.mode.is-manual (bit, out) - отображает, что ручной режим включен.
  • halui.mode.is-mdi (bit, out) - отображает, что вклюен режим MDI.
  • halui.mode.is-teleop (bit, out) - пин отображающий, что включен режим координированного джоггинга.
  • halui.mode.joint (bit, in) - пин запрашивающий режим джоггинга (jog) joint by joint.
  • halui.mode.manual (bit, in) - пин запрашивающий ручной режим.
  • halui.mode.mdi (bit, in) - пин запрашивающий режим MDI.

10.2.15 Program

  • halui.program.block-delete.is-on (bit, out) -
  • halui.program.block-delete.off (bit, in) -
  • halui.program.block-delete.on (bit, in) -
  • halui.program.is-idle (bit, out) - пин отображающий, что никакая управляющая программа не запущена.
  • halui.program.is-paused (bit, out) - пин отображающий, что программа приостановленна.
  • halui.program.is-running (bit, out) - пин отображающий, что проггамма выполняется.
  • halui.program.optional-stop.is-on (bit, out) -
  • halui.program.optional-stop.off (bit, in) -
  • halui.program.optional-stop.on (bit, in) -
  • halui.program.pause (bit, in) - пин для приостановки программы.
  • halui.program.resume (bit, in) - пин для возобновления программы
  • halui.program.run (bit, in) - пин для запуска программы.
  • halui.program.step (bit, in) - пин для выполнения программы пошагово.
  • halui.program.stop (bit, in) - пин для остановки программы.
10.2.16 Spindle Override (замещение скорости шпинделя)
  • halui.spindle-override.count-enable (bit, in) - когда равен TRUE, изменяет скорость шпинделя при измеении количества тиков энкодера.
  • halui.spindle-override.counts (s32, in) - количесво тиков энкодера для изменения SO
  • halui.spindle-override.decrease (bit, in)- пин для уменьщения SO (-=scale)
  • halui.spindle-override.increase (bit, in) - пин для увеличения SO (+=scale)
  • halui.spindle-override.scale (float, in) - пин для установки значпения шага изменеия SO
  • halui.spindle-override.value (float, out) - текущее значение SO

10.2.17 Spindle

  • halui.spindle.brake-is-on (bit, out) - отображает, что тормоз шпинделя включен.
  • halui.spindle.brake-off (bit, in) - пин для выключения тормоза шпинделя.
  • halui.spindle.brake-on (bit, in) - пин для включения тормоза шпинделя.
  • halui.spindle.decrease (bit, in) - уменьшает скорость шпинделя.
  • halui.spindle.forward (bit, in) - включает шпиндель по часовой стрелке.
  • halui.spindle.increase (bit, in)- увеличивает скорость шпинделя.
  • halui.spindle.is-on (bit, out) -
  • halui.spindle.reverse (bit, in)- запускает шпиндель против часовой стрелки.
  • halui.spindle.runs-backward (bit, out) -
  • halui.spindle.runs-forward (bit, out) -
  • halui.spindle.start (bit, in) - включает шпиндель.
  • halui.spindle.stop (bit, in) - выключает шпиндель.

10.2.18 Tool (Инструмент)

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

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

Сообщение Nick »

Глава 11
Примеры HAL

Все эти примеры подразумевают, что вы начинаете с конфигурации основанной на stepconf и имеете два потока, base-thread и servo-thread. Мастер stepconf создаст пустые custom.hal и custom_postgui.hal. Файл custom.hal будет загружен после главного hal файла, а custom_postgui.hal загружается после того, как запустится GUI.

11.1 Ручная смена инструмента

В этом примере подразумевается, что вы используете свои собственные конфигурационные файлы и хотите добавить окно HAL Manual Toolchange. HAL Manual Toolchange в основном используется если у вас есть заранее настраиваемые инструменты и вы храните параметры их компенсаций в таблице инструментов. Если вам нужен touch off (определение положения касания) для каждой смены инструмента, тогда лучше просто разделить ваш Gкод на части. Для того, чтобы использовать окно HAL Manual Toolchangeвам просто нужно загрузить компонент hal manualtoolchange и потом послать iocontrol "tool change" в пин hal manualtoolchange "change" и послать обратно пин hal manualtoolchange "changed" в iocontrol "tool changed".

Это пример HAL Manual Toolchange из мастера stepconf

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

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Это пример без HAL Manual Toolchange из мастера stepconf

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

net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool.-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

11.2 Вычисление скорости

Этот пример использует "ddt", "mult2" и "abs" для вычисления скорости одной оси. Для более подробной информации по компонентам реального времени см. страницы man или раздел 8.2 Компоненты реального времени (Realtime Components).
Сначала, проверим вашу конфигурацию, чтобы убедиться, что вы не уже не используете компаненты реального времени. Вы можете сделать это открыв окно настройки HAL и посмотрев список компонентов в секции пины. Если вы их уже используете, откройте hal файл в котором они загружаются и исправьте их количество и настройте названия сущностей. После этого добавьте следующий код в ваш файл custom.hal:

Загружаем компоненты реального времени.

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

loadrt ddt count=1
loadrt mult2 count =1
loadrt abs count=1
Добавляем функции к потокам, чтобы они своевременно обновлялись.

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

addf ddt.0 servo-thread
addf mult2.0 servo-thread
addf abs.0 servo-thread
Делаем связи.

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

setp mult2.in1 60
net xpos-cmd ddt.0.in
net X-IPS mult2.0.in0 <= ddt.0.out
net X-ABS abs.0.in <= mult2.0.out
net X-IPM abs.0.out
В последнем разделе мы натсраиваем mult2.0.in1 равным 60 чтобы преобразовать дюймы (мм) в секунду в дюймы (мм) в минуту, которые мы получаем изи ddt.0.out.

Сигнал xpos-cmd отправляет запрошенное положение в ddt.0.in. ddt вычисляет производную изменения ввода.
ddt2.0.out умножается на 60 чтобы получить единицы измерения в мин.
mult2.0.out отправляется в abs чтобы получить абсолютное значение (модуль) скорости.

Следующее изображение показывает результат когда ось X движется со скоростью 15 IPM (дюймов в минуту) в отрицательном направлении.

Заметьте, что мы можем получить абсолютное значение либо с пина abs.0.out или из сигнала X-IPM.


Рис. 11.1: Пример Скорости

11.3 Плавный старт

Этот пример показывает кок могут быть использованы компаненты "lowpass", "limit2" или "limit3" для того, чтобы ограничить скорость изменения сигнала.

В этом примере у нас есть серво мотор управляющий шпинделем токарного станка. Если бы мы просто использовали запрошенную скорость (commanded spindle speed) то серво мотор будет пытаться достичь ее как можно быстрее. Это может вызвать проблему и повредить двигатель. Для того, чтобы замедлить изменение скорости мы можем пропустить значение пина motion.spindle-speed-out через ограничитель перед PID регулятором, таким образом запрошенное (commanded) значение в PID будет изменяться медленно.

Три встроенных компонента, которые ограничивают сигнал:
limit2 ограничивает диапазон и первую производную сигнала.
limit3 ограничивает диапазон, первую и вторую производную сигнала.
lowpass использует функцию взвешенного-экспоненциального среднего для сглаживания входного сигнала.

Более подробно о компонентах HAL смотрите на страницах man.

Поместите следующий текст в файл под названием softstart.hal. Если вы не знакомы с Linux поместите этот файл в вашу домашнюю директорию.

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

##############################
loadrt threads period1=1000000 name1=thread
loadrt siggen
loadrt lowpass
loadrt limit2
loadrt limit3
net square siggen.0.square => lowpass.0.in limit2.0.in limit3.0.in
net lowpass <= lowpass.0.out
net limit2 <= limit2.0.out
net limit3 <= limit3.0.out
setp siggen.0.frequency .1
setp lowpass.0.gain .01
setp limit2.0.maxv 2
setp limit3.0.maxv 2
setp limit3.0.maxa 10
addf siggen.0.update thread
addf lowpass.0 thread
addf limit2.0 thread
addf limit3.0 thread
start
loadusr halscope
##############################
Откройте терминал и запустите файл следующей коммандой:
halrun -I softstart.hal

Когда запустится HAL Oscilloscope нажмите Ок чтобы принять поток по умолчанию.
Потом добавьте сигналы в каналы. Нажмите на сигнал 1, потом выберите "square" (квадратный) из списка сигналов. Повторите для 2-4 сигнала и добавьте lowpass, limit2, и limit3. Потом добавьте тригерный сигнал, кликните на кнопке "Source None" и выберите "square". Кнопка изменится на Source Chan 1.

Потом кликните на Single (одиночный) в выборе Run Mode. Это выполнит запуск, и когда он закончится вы увидите ваши сигналы.

Чтобы разделить сигналы, чтобы их было лучше видно, нажмите на сингал и используйте ползунок Pos в рамке Vertical.

Рис. 11.2: Плавный старт

Чтобы увидеть эффект изменения установленных значений любого компонента вы можете поменять их в окне терминала. Чтобы увидеть как разные заничения gain меняют lowpass, просто наберите следующее в консоле и попробуйте разные значения:
setp lowpass.0.gain .01

После изменения настройки запустите осциллограф снова и наблюдайте изменения.
Когда закончите, напиште "exit" в терминале для завершения работы halrun и закройте halscope.
Не закрывайте терминал с запущенным halrun, т.к. он может оставить некоторые вещи в памяти, которые могут препятствовать последующему запуску EMC2.

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

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

Сообщение Nick »

Глава 12
Virtual Control Panel - Виртуальная панель управления

12.1 Введение

PyVCP (python Virtual Control Panel) разработана для того, чтобы дать станкостроителю возможность настраивать интерфейс AXIS под себя, добавляя кнопки индикаторы и выполнять специализированные задачи. Аппаратные панели управления станками могут использовать много пинов входа/выхода и могут быть дорогостоящими. Вот где проявляются преимущества pyVCP, т.к. создать панель pyVCP ничего не стоит. Виртуальная панель управления может быть использована для проверки, мониторинга, временной замены реальных устройств ввода вывода для отладки Ladder Logic, или для эмулирования аппаратной панели до того как вы ее построите и подключите.

Следующее изображение демонстрирует множество виджетов pyVCP.

12.2 Создание панели pyVCP

Схема панели pyVCP задается при помощи XML файла, который содержит виджеты между тэгами <pyvcp> и </pyvcp>. Например:

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

<pyvcp>
	<label text="This is a LED indicator"/>
	<led/>
</pyvcp>
Если вы поместите этот текст в файл tiny.xml и выполните в консоле:
halrun -I loadusr pyvcp -c mypanel tiny.xml


pyVCP создаст панель для вас, которая будет включать два виджета, Ярлык (label) с текстом "This is a LED indicator", и LED (свето диод) использующийся для отображения состояния битового (bit) сигнала HAL. pyVCP также создаст компонент HAL под названием "mypanel" (все виджеты в этой панели присоединены к пинам начинающимся с "mypanel."). Т.к. тэга <halpin> нет внутри тега <led>, pyVCP автоматически называет пин HAL для виджета LED mypanel.led.0.

Для получения списка виджетов и их опций, см. описание ниже.

Как только вы создали панель, присоединение сигналов HAL к пинам pyVCP выполняется при помощи halcmd:
net <signal-name> <pin-name> <opt-direction> <opt-pin-name>signal-name

Если вы только начинаете изучение HAL, глава начало HAL Руководства Станкостроителя это хорошее место для начала.

12.3 Безопасность

Части файлов pyVCP обрабатываются как код Python, и могут выполнять любые действия который можно выполнить программа написанная на Python. Используйте файлы .xml pyVCP только из доверенных источников.

12.4 AXIS

Т.к. AXIS использует такой же набор инструментов (toolkit), что и pyVCP (Tkinter), панель pyVCP можно добавить на правую часть пользовательского интерфейса AXIS. Типичный пример описан ниже.

Поместите ваш pyVCP XML файл описывающий панель в одну директорию с ini файлом. Скажем, мы хотим отображать текущее значение скорости шпинделя используя виджет Bar. Поместите следующее в фал под названием spindle.xml:

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

<pyvcp>
	<label>
		<text>"Spindle speed:"</text>
	</label>
	<bar>
		<halpin>"spindle-speed"</halpin>
		<max_>5000</max_>
	</bar>
</pyvcp>
Так мы сделали панель с виджетом Lablel и Bar, задав, что пин HAL присоединенный к Bar должен быть назван "spindle-speed", и задав максимальное значение Bar в 5000 (см. описание виджета ниже). Чтобы предупредить Axis об этом файле и чтобы он вызвал его при запуске, нам нужно задать следующее в разделе [DYSPLAY] в ini файле:

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

PYVCP = spindle.xml
Чтобы заставить виджет действительно показывать скорость шпинделя, он должен быть привязан к соответствующему сигналу HAL. Файл hal, который будет выполняться после запуска AXIS и pyVCP может быть указан в разделе [HAL] в ini файле:

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

POSTGUI_HALFILE = spindle_to_pyvcp.hal
Это изменение запустит команды HAL, находящиеся в "spindle_to_pyvcp.hal". В нашем примере содержание файла может выглядеть следующим образом:

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

net spindle-rpm-filtered => pyvcp.spindle-speed
Подразумевается, что сигнал под названием "spindle-rpm-filtered" уже существует. Отметьье, что при работе одновременно с AXIS, все пины виджетов pyVCP имеют имена начинающиеся с "pyvcp.".

Вот как только что созданная панель pyVCP должна выглядеть в AXIS. Конфигурация sim/lathe уже настроена таким же образом.

12.5 Stand Alone - Отдельный запуск

Этот раздел описывает как панель pyVCP может быть отображена сама по себе или без EMC2.

Для загрузки отдельной панели pyVCP вместе ECM используйте следующие команды:

loadusr -Wn mypanel pyvcp -g WxH+X+Y -c mypanel <path/>panel_file.xml

Вы должны использовать жто для загрузки плавающей (не привязанной) панели pyVCP или панели pyVCP совместно с GUI отличным от AXIS.

-Wn panelname заставляет HAL подождать пока компонент "panelname" закончит загружаться ("become ready" - станет готов в терминах HAL) перед продолжением выполнения следущих команд hal. Это важно потому, что панели pyVCP экспортируют пины HAL, и другим компонентам HAL они будут нужны, для того, чтобы к ним присоединиться.

Отметьте, что W заглавная, а n - строчная. Если вы используете опцию -Wn, вы должны использовать опцию -c для названия панели.

pyvcp <-g> <-c> panel.xml строит панель с заданной геометрией и/или названием панели из xml файла панели. panel.xml может иметь любое имя оканчивающееся на .xml. Файл .xml является файлом описывающем как создать панель. Вы должны задать путь к файлу, если панель находится не в том же директории, что и скрипт HAL.
-g <WxH><+X+Y> определяет геометрию которая будет использована при создании панели.
Синтаксис:
"Width"x"Height"+"X Anchor"+"Y Anchor" ("Ширина"x"Высота"+"Привязка X"+"Привязка Y"). Вы можете указать положение или размер или оба параметра. Привязка указывает на положение верхнего левого угла панели. Например, -g 250x500+800+0 задаст панель шириной 250px, высостой 500 пикселов, находящуюся в X800Y0.

-c panelname говорит pyVCP как назвать компонент и как озаглавить окно панели. Название панели может быть любым, без пробелов.

Чтобы загрузить stand alone (отдельную) панель pyVCP без EMC2 используйте следующую команду:

loadusr -Wn mypanel pyvcp -g 250x500+800+0 -c mypanel mypanel.xml

Минимальная команда, чтобы загрузить панель pyVCP:
loadusr pyvcp mypanel.xml

Вам может понадобится это, если вы хотите отдельную панель без EMC2, такую как тестовая панель или отдельный DRO.

Команда loadusr используется когда выагружаете компонент, который предотвратит завершение HAL, до тех пор пока он не завершится. Если вы загрузили панель и потом запустили ClassicLadder, используя -w ClassicLadder, ClassicLadder будет держать HAL открытым (и панель) до тех пор, пока вы не закроете ClassicLadder.

Не обязательная команда, если вы хотите чтобы ваша панель остановила выполнение любых команд HAL или закрытие HAL. После загрузки всех других компонентов вам нужно будет выполнить команду HAL:
waituser panelname - это скажет HAL, подождать до закрытия компонента "panelname", перед выполнением других команд HAL. Это обычно используется как последняя команда, таким образом HAL закрывается когда панель закрывается.

12.6 Виджеты (Widgets)

Сигналы HAL бывают двух типов - bit и number. Bit сигнал типа вкл/выкл. Number может быть "float", "s32" или "u32". Для бодее подробной информации по типам данных HAL, см. раздел 6.2. Виджет PyVCP может либо отображать значение сигнала при помощи виджета индикатора (indicator widget) или изменять значение сигнала при помощи управляющего виджета (control widget). Таким образом, есть 4 класса виджетов PyVCP которые вы можете присоединить к сигналам HAL. Пятый класс - вспомогательные виджеты (helper widgets) которые позволяют организовывать и подписывать вашу панель.
  1. Виджеты для индикации состояния сигнала типа "bit": led, rectled
  2. Виджеты для управления сигналами типа "bit": button, checkbutton, radiobutton
  3. Виджеты для индикации состояния сигнала типа "number": number, s32, u32, bar, meter
  4. Виджеты для управления сигналами типа "number": spinbox, scale, jogwheel
  5. Вспомогательные виджеты: hbox, vbox, table, label, labelframe

Синтаксис

Каждый виджет описан кратко, за описанием следует пример и скриншот. Все тэги внутри основного тэга виджета опциональны.

Общее замечание

В настоящее время, поддерживаются оба типа синтаксиса tag-based и attribute-based. Для примера, следующие фрагменты XML воспринимаются одинаково:

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

<led halpin="my-led"/>
и

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

<led><halpin>"my-led"</halpin></led>
Когда используется синтаксис основанный на атрибутах, применяются следующие правила для преобразования значения атрибута в значение переменной Python:
  1. Если первый символ один из следующих, это значение трактуется как выражение на языке Python: {(["’
  2. Если строка принимается оператором int(), значение считается целым числом.
  3. Если строка принимается оператором float(), значение считается числом с плавающей запятой.
  4. Иначе значение считается строкой.
Когда используется синтаксис основанный на тэгах, текст внутри тэга всегда считается выражением на языке Python.

Примеры ниже показывают смешанные форматы.

Комментарии

Чтобы добавить комментарий используйте синтаксис xml.

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

<!-- My Comment -->

Редактирование XML файлов

Редактируйте XML файлы при помощи текстовых редакторов. В большинстве случаев, вы можете нажать правой кнопкой на файле и выбрать "Открыть при помощи текстового редактора".

Цвета

Цвета могут задаваться при помощи X11 rgb colors, по имени "gray75" или в шестнацатеричном значении "#0000ff”. Полный список цветов находится здесь: http://sedition.com/perl/rgb.html.
Часто встречающиеся цвета (цвета с числами обозначают темные оттенки того же цвета)
  • white
  • black
  • blue and blue1-4
  • cyan and cyan1-4
  • green and green1-4
  • yellow and yellow1-4
  • red and red1-4
  • purple and purple1-4
  • gray and gray0-100

Пины HAL

Пины HAL представляют возможность "соединеия" виджета с чем-либо. Как только вы создали пин HAL для вашего виджета, вы можете "присоединить" его к другому пину HAL использую команду "net" в .hal файле. Для более подробной информации по команде net, см. раздел команды HAL (6.1).

12.6.1 Ярлык (Label)

Label это кусок текста на вашей панели.

Label имеет опциональный пин disable который создается, если вы добавляете <disable_pin>True</disable_pin>.

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

<label>
	<text>"This is a Label:"</text>
	<font>("Helvetica",20)</font>
</label>
Код выше создает такой пример.

12.6.2 LEDs (светодиоды)

LED используется для отображения состояния пина hal типа bit. Цвет LED будет равен on_color когда пин равен true, и off_color в противном случае.

<halpin> задает имя пина, по умолчанию "led.n", где n это целое число.
<size> устанавливает размер led, по умолчанию 20.
<on_color> устанавливает цвет LED когда пин равен true, по умолчанию "green".
<off_color> устанавливает цвет LED когда пин равен false, по умолчанию "red".
<disable_pin> если равен true добавляет пин disable к led.
<disabled_color> устанавливает цвет LED когда пин выключен (disabled).

12.6.2.1 Круглый LED

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

<led>
	<halpin>"my-led"</halpin>
	<size>50</size>
	<on_color>"green"</on_color>
	<off_color>"red"</off_color>
</led>
Код выше создает такой пример.

12.6.2.2 Прямоугольный LED

Это вариант виджета "led".

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

<vbox>
	<relief>RIDGE</relief>
	<bd>6</bd>
	<rectled>
		<halpin>"my-led"</halpin>
		<height>"50"</height>
		<width>"100"</width>
		<on_color>"green"</on_color>
		<off_color>"red"</off_color>
	</rectled>
</vbox>
Код выше создает такой пример.
Также показан vertical box с рельефом.

12.6.3 Buttons (Кнопки)

Button используется для управления пином типа BIT. Пин будет равен True когда кнопка нажата и удерживается и False когда кнопка отпущена. Button может использовать следующие опции форматирования:

<padx>n</padx> где "n" это размер дополнительного горизонтального пространства.
<pady>n</pady> где "n" это размер дополнительного вертикального пространства.
<activebackground>"color"</activebackground> цвет когда курсор находится над кнопкой.
<bg>"color"</bg> цвет кнопки

12.6.3.1 Text Button (Текстовая кнопка)

Текстовая кнопка контролирует bit halpin. Пин равен false до тех пор пока кнопка не нажата. Кнопка - это мгновенная кнопка. Текстовая кнопка имеет опциональный пин отключения, который создается если вы добавите <disable_pin>True</disable_pin>.

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

<button>
	<halpin>"ok-button"</halpin>
	<text>"OK"</text>
</button>
<button>
	<halpin>"abort-button"</halpin>
	<text>"Abort"</text>
</button>
Код выше создает такой пример.

12.6.3.2 Checkbutton (Залипающая кнопка)

Checkbutton управляет пином типа "bit". Пин будет равен True когда кнопка нажата, и false когда кнопка отжата. Checkbutton это кнопка типа переключатель.

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

<checkbutton>
	<halpin>"coolant-chkbtn"</halpin>
	<text>"Coolant"</text>
</checkbutton>
<checkbutton>
	<halpin>"chip-chkbtn"</halpin>
	<text>"Chips     "</text>
</checkbutton>
Код выше создает такой пример.
Сoolant checkbutton нажата.
Отметьте дополнительные пробелы в параметре text кнопки Chips, они нужны чтобы сохранить выравнивание.

12.6.3.3 Radiobutton (Кнопка выбора, тумблер)

Radiobutton устанавливает один из пинов в true. Остальные пины равны false.

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

<radiobutton>
	<choices>["one","two","three"]</choices>
	<halpin>"my-radio"</halpin>
</radiobutton>
Код выше создает такой пример.
Отметьте, что пины HAL в примере будут называться my-radio.one, my-radio.two, и my-radio.three. В изображении сверху, выбрано значение "one".

12.6.4 Number Displays (Числовые дисплеи)

Числовые дисплеи могут испольщовать следующи опиции форматирования:
  • <font>("Font Name",n)</font> - шрифт, где "n" это размер шрифта.
  • <width>n</width> где "n" это общая ширина используемого пространства
  • <justify>pos</justify> - выравнивание, где "pos" либо LEFT, CENTER, либо RIGHT (не работает)
  • <padx>n</padx> где "n" это размер дополнительного пространства по ширине
  • <pady>n</pady> где "n" это размер дополнительного пространства по высоте

12.6.4.1 Number

Отображает значения сигнала с плавающей запятой (float).

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

<number>
	<halpin>"my-number"</halpin>
	<font>("Helvetica",24)</font>
	<format>"+4.4f"</format>
</number>
Код выше создает такой пример.

<font> шрифт и размер задаются спецификацией Tkinter. Один из шрифтов, который можнт отображаться как минимум до 200-го размера это "courier 10 pitch", таким образом, для действительно большого виджета Number вы можете задать:

<font>("courier 10 pitch",100)</font>

<format> это формат "C-style", определяющий, как будет отображаться число.

12.6.4.2 s32 Number

Виждет s32 number отображает значение числа типа s32. Синтаксис такой же как и у "number" за исключением названия, которое <s32>. Убедитесь, что значение width (ширины) достаточно большое, чтобы отобразить самое большое число, которое вы ожидаете увидеть.

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

<s32>
	<halpin>"my-number"</halpin>
	<font>("Helvetica",24)</font>
	<format>"6d"</format>
	<width>6</width>
</s32>
Код выше создает такой пример.

12.6.4.3 u32 Number

Виджет u32 number отображает значение числа типа u32. Синтаксис такой же как и у "number", кроме названия :).

12.6.4.4 Bar (полоса)

Виджет bar отображает значение сигнала FLOAT графически и численно.

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

<bar>
	<halpin>"my-bar"</halpin>
	<min_>0</min_>
	<max_>123</max_>
	<bgcolor>"grey"</bgcolor>
	<fillcolor>"red"</fillcolor>
</bar>
Код выше создает такой пример.

12.6.4.5 Meter

Виджет Meter отображает значение сигнала FLOAT используя традиционный часовой индикатор.

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

<meter>
	<halpin>"mymeter"</halpin>
	<text>"Battery"</text>
	<subtext>"Volts"</subtext>
	<size>250</size>
	<min_>0</min_>
	<max_>15.5</max_>
	<majorscale>1</majorscale>
	<minorscale>0.2</minorscale>
	<region1>(14.5,15.5,"yellow")</region1>
	<region2>(12,14.5,"green")</region2>
	<region3>(0,12,"red")</region3>
</meter>
Код выше создает такой пример.

12.6.5 Number Inputs (ввод чисел)

12.6.5.1 Spinbox

Spinbox контролирует пин FLOAT. Вы можете увеличить или уменьшить значение пина, нажимая стрелки или наведя на spinbox курсор мыши прокручивая колесо.

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

<spinbox>
	<halpin>"my-spinbox"</halpin>
	<min_>-12</min_>
	<max_>33</max_>
	<resolution>0.1</resolution>
	<format>"2.3f"</format>
	<font>("Arial",30)</font>
</spinbox>
Код выше создает такой пример.

12.6.5.2 Scale (интервал)

Scale контролирует пин float или s32. Вы можете увеличивать или уменьшать значение пин перетаскивая ползунок, или прокручивая колесико мышки. К "halpin" будут добавлены оба "-f" и "-i" чтобы сформировать пины float и s32. Width (ширина) это ширина ползунка для вертикального интервала и высота для горизонтального.

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

<scale>
	<font>("Helvetica",16)</font>
	<width>"25"</width>
	<halpin>"my-hscale"</halpin>
	<resolution>0.1</resolution>
	<orient>HORIZONTAL</orient>
	<initval>-15</initval>
	<min_>-33</min_>
	<max_>26</max_>
</scale>
<scale>
	<font>("Helvetica",16)</font>
	<width>"50"</width>
	<halpin>"my-vscale"</halpin>
	<resolution>1</resolution>
	<orient>VERTICAL</orient>
	<min_>100</min_>
	<max_>0</max_>
</scale>
Код выше создает такой пример.

12.6.5.3 Dial (поворотная ручка)

Dial выводит HAL пин типа float и реагирует на перетаскивание и прокручивание мышки. Двойной клик левой кнопкой мыши увеличивает разрешение, а правой кнопкой мышки уменьшает разрешение на один разряд. Вывод ограничен максимальным и минимальным значением. Значение <cpr> задает количество отметок на внешней стороне кольца (аккуратнее с большими значениями).

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

<dial>
	<size>200</size>
	<cpr>100</cpr>
	<min_>-15</min_>
	<max_>15</max_>
	<text>"Dial"</text>
	<initval>0</initval>
	<resolution>0.001</resolution>
	<halpin>"anaout"</halpin>
	<dialcolor>"yellow"</dialcolor>
	<edgecolor>"green"</edgecolor>
	<dotcolor>"black"</dotcolor>
</dial>
Код выше создает такой пример.

12.6.5.4 Jogwheel

Jogwheel имитирует реальный jogwheel выдавая FLOAT pin который изменяется вверх или вниз, при прокручивании колеса мышки или перетаскивании ручки.

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

<jogwheel>
	<halpin>"my-wheel"</halpin>
	<cpr>45</cpr>
	<size>250</size>
</jogwheel>
Код выше создает такой пример.

12.6.6 Images (изображения)

Image отображает только изображения формата .gif. Все изображения должны быть одинакового размера. Изображения должны находится в тоже директории, что и ini файл (или в текущей директории, при запуске из командной строки через halrun/halcmd).

12.6.6.1 Image Bit

Виджет "image_bit" переключает между двумя картинками, в зависимости от значения пина, true или false.

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

<image name=’fwd’ file=’fwd.gif’/>
<image name=’rev’ file=’rev.gif’/>
<vbox>
	<image_bit halpin=’selectimage’ images=’fwd rev’/>
</vbox>
Код выше создает такой пример.
Используются два изображения: fwd.gif и rev.gif.
FWD показывается, когда "selectimage" равен false, а REV когда "selectimage" равен true.

12.6.6.2 Image u32

Виджет "image_u32" тоже самое, что и "image_bit" за исключением того, что вы имеете неограниченное количество изображений, и "выбираете" изображение устанавливая значение пина в 0 для первого изображения, 1 для второго и т.д.

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

<image name=’stb’ file=’stb.gif’/>
<image name=’fwd’ file=’fwd.gif’/>
<image name=’rev’ file=’rev.gif’/>
<vbox>
	<image_u32 halpin=’selectimage’ images=’stb fwd rev’/>
</vbox>
Код выше создает такой пример.

Отметьте, что значение по умолчанию всегда равно min, даже если оно больше max, только если min не меньше нуля.

12.6.7 Containers (Контейнеры)

Контейнеры это виджеты которые содержат другие виджеты. Контейнеры используются для группировки виджетов.

12.6.7.1 Borders (Границы)

Границы контейнеров задаются двумя тэгами используемыми вместе. Тэг <relief> задает тип границы, а <bd> задает ее ширину.

<relief>type</relief> где "type" это FLAT, SUNKEN, RAISED, GROOVE, или RIDGE (плоская, утопленная, поднятая или бордюр)
<bd>n</bd> где "n" это толщина границы.

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

<hbox>
	<button>
		<relief>FLAT</relief>
		<text>"FLAT"</text>
		<bd>3</bd>
	</button>
	<button>
		<relief>SUNKEN</relief>
		<text>"SUNKEN"</text>
		<bd>3</bd>
	</button>
	<button>
		<relief>RAISED</relief>
		<text>"RAISED"</text>
		<bd>3</bd>
	</button>
	<button>
		<relief>GROOVE</relief>
		<text>"GROOVE"</text>
		<bd>3</bd>
	</button>
	<button>
		<relief>RIDGE</relief>
		<text>"RIDGE"</text>
		<bd>3</bd>
	</button>
</hbox>
Код выше создает такой пример.

12.6.7.2 Hbox (горизонтальная коробка)

Используйте HBox, когда вы хотите составить виджеты один за одним горизонтально.

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

<hbox>
	<relief>RIDGE</relief>
	<bd>6</bd>
	<label><text>"a hbox:"</text></label>
	<led></led>
	<number></number>
	<bar></bar>
</hbox>
Код выше создает такой пример.

Внутри Hbox вы можете использовать тэги <boxfill fill=""/>, <boxanchor anchor=""/>, и <boxexpand
expand=""/> для выбора как элементы будут вести себя, когда изменяется размер окна. Более подробно о том, как веду себя fill, anchor, и expand см. в страницах справки Tk pack, pack(3tk). По-умолчанию, fill="y", anchor="center", expand="yes".

12.6.7.3 Vbox (вертикальная коробка)

Используйте Vbox когда хотите составить виджеты один за другим вертикально.

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

<vbox>
	<relief>RIDGE</relief>
	<bd>6</bd>
	<label><text>"a vbox:"</text></label>
	<led></led>
	<number></number>
	<bar></bar>
</vbox>
Код выше создает такой пример.

Внутри Hbox вы можете использовать такие же тэги для задания оформления как и в HBox.

12.6.7.4 Labelframe

Виждет labelframe это рамка с названием в левом верхнем углу.

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

<labelframe text="Group Title">
	<font>("Helvetica",16)</font>
	<hbox>
	<led/>
	<led/>
	</hbox>
</labelframe>
Код выше создает такой пример.


12.6.7.5 Table (таблица)

Таблица это контейнер, который позволяет создавать раскладку в виде строчек и столбцов. Каждая строчка начинается с тэга <tablerow/>. Большой виджет может простираться на несколько строчек или столбцов, для этого используете тэг <tablespan rows= cols=/>. Стороны ячеек, к которым будут "прилипать" содержащиеся виджеты могут быть настроены при помощи тега <tablesticky sticky=/>. Таблица расширяется за счет ее эластичных строк и столбцов.

Пример:

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

<table flexible_rows="[2]" flexible_columns="[1,4]">
	<tablesticky sticky="new"/>
	<tablerow/>
		<label>
			<text>" A (cell 1,1) "</text>
			<relief>RIDGE</relief>
			<bd>3</bd>
		</label>
		<label text="B (cell 1,2)"/>
			<tablespan columns="2"/>
		<label text="C, D (cells 1,3 and 1,4)"/>
	<tablerow/>
		<label text="E (cell 2,1)"/>
		<tablesticky sticky="nsew"/>
		<tablespan rows="2"/>
		<label text="’spans\n2 rows’"/>
		<tablesticky sticky="new"/>
		<label text="G (cell 2,3)"/>
		<label text="H (cell 2,4)"/>
	<tablerow/>
		<label text="J (cell 3,1)"/>
		<label text="K (cell 3,2)"/>
		<u32 halpin="test"/>
</table>
Код выше создает такой пример.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Добавить в 8.4.3 Пины

(bit) stepgen.<chan>.enable -- обеспечивает выходные шаги step - если false, никаких шагов не генерируются.
Хочешь быть счастливым? Будь им!
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

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

Сообщение odekolon »

а вот кто бы подсказал, как работает функция REMAP в ini , что-то нигде описания не нашел
...
знаю что есть, вот пример:

# Remap M6
REMAP=M6 modalgroup=6 prolog=change_prolog ngc=manual_change epilog=change_epilog
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
verser
Мастер
Сообщения: 1885
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1278
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

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

Сообщение verser »

odekolon писал(а):а вот кто бы подсказал, как работает функция REMAP
Пока только на английском здесь
Аватара пользователя
odekolon
Мастер
Сообщения: 1103
Зарегистрирован: 05 ноя 2014, 14:53
Репутация: 360
Настоящее имя: Борис
Контактная информация:

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

Сообщение odekolon »

Ок, спасибо, по английски читаем немного :)
немного почитал, вроде можно попытаться заремапить M6, без питона чисто на подпрограммах.
попробую доработать компенсацию длины инструмента http://www.cnc-club.ru/forum/viewtopic. ... &start=160, чтоб постпроцессор не трогать.
"Капиталистом стать можно лишь тогда, когда обогатишь свою память знанием всех тех богатств, которые выработало человечество"
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

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

Сообщение dinkata »

Nick писал(а):iocontrol.0.tool-prep-number (s32, out) Номер следующего инструмента , из RS274NGC T-кода.
что означает" из RS274NGC T-кода " ,у меня что то не получается ,посмотрите пожалуйста #60 :
http://www.cnc-club.ru/forum/viewtopic. ... 83#p222983
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Когда в Gкоде появляется Txx, то этот пин принимает значение хх. И в этот момент станок должен начать искать инструмент хх в магазине. Потом, при появлении M6 происходит сама смена.

Этот пин нужен, если у тебя большой магазин инструментов, с его помощью если заранее в G коде написать какой инструмент будет следующий, смена заметно ускориться.
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

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

Сообщение dinkata »

Nick писал(а): то этот пин принимает значение хх
так ,ето понимаю ,откуда берет хх ,у меня random tool changer ,
если по таблица инструментов Т 12 положен в покет 5 ,то при вьйзов
Т 12 магазин должен остановится на покет 5 ,поетому и random tool changer ,да ?
Когда вьйключаем питание ,и потом снова запускаем станок ,
при вьйзов Т 12 магазин должен остановится на покет 5 ,он остановливается на покет 12 !
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Вот тут описана процедура смены инструмента.

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ToolChange

Пишут, что при random tool changer номер покета берется из таблицы инструментов. Посмотри, сохраняются ли изменения в таблице?
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

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

Сообщение dinkata »

Nick писал(а):Посмотри, сохраняются ли изменения в таблице?
да,сохраняются.Правильно заработало когда наместо iocontrol.0.tool-prep-number поставил iocontrol.0.tool-prep-pocket.
Я пользую gmoccapy ,так вот при включение станка показьйвает текущий инструмент 0 ,
хотя в tool-number: out,s32: the tool number currently loaded (in spindle) показьйвает правильно какой
инструмент бьйл в шпиндель до вьйключение.
Как сделат чтоб при включение показьйвало number currently loaded (in spindle) ?
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

dinkata писал(а):Я пользую gmoccapy ,так вот при включение станка показьйвает текущий инструмент 0
До смены инструмента станок не знает, что сейчас в шпинделе - вдруг ты вручную его поменял.
Можешь добавить смену на текущий инструмент при включении станка.
Аватара пользователя
vitas471
Новичок
Сообщения: 2
Зарегистрирован: 29 авг 2017, 12:55
Репутация: 0
Настоящее имя: Виталий Артемович Еременко
Контактная информация:

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

Сообщение vitas471 »

Здравствуйте. Прошу извинения, может я не совсем по теме, но. Пару недель назад приобрел фрезерный станок с ЧПУ. На нем установлена программа LinuxCN на русском языке но никаких инструкций. Продавец быстро все показал но запомнить все конечно не удалось и дозвонится пока до него не получается. Включаю компьютер, обнуляю станок, выезжаю вручную на заготовку, слегка касаюсь фрезой поверхности а что дальше делать - не знаю и когда загружать управляющую программу и что нажимать. Шпиндель включается вручную - не программой. АртКам я знаю и управляющую программу создал но что и как дальше не знаю. Большая просьба, так как вы многое знаете, подскажите что дальше делать или может у Вас есть инструкция для оператора на русском языке. Я уже целую неделю рыщу по интернету но ничего не могу найти а срочно надо делать работу. Сайт разработчика весь на английском языке а я им не владею :thinking:
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

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

Сообщение solo »

ну можно дествовать так
станов вы уже включили и умеете двигать осями
ну наверное у вас установлены датчики "дом" и вы уже нажали кнопочку "Все в начало" станок ездит на датчики "дом" обнулит координаты , на экрану рядом с значением координат появится кружок с крестиком внутри
далее в КАМ программе вы создаете программу управления станком ЧПУ "G-код" . В настройка данной программы " ж-кода " будите задавать начало системы координат станка , ну пускай в КАМ программе вы задали что "ноль " станка находится на заготовке в верхнем, левом , ближнем к вам углу заготовки .
далее размечаете заготовку на станке также как в КАМ программе
подъезжаете инструментом к месту где у вас заданно начало координат станка , которое вы предварительно указывали в кам программе , в верхнем, левом , ближнем к вам углу заготовки . и в ручном управлении делаете привязку инструмента, предварительно зажав ту фрезу в шпинделе которую задавали в кам программе
привязка инструмента происходит в следующие последовательности
выбираете "ось"
нажимаете "задать отступ"
в открывшемся окне водите требуемое значение координаты , по умолчанию "0" , выбираете систему соответствующий номеру инструмента , нажимаете кнопку "Да"
аналогично процедуру привязки проводите для всех координат
после осуществления привязки можно зупускать выпонение Ж кода станком , если шпидел не включается програмно , то шпиндель надо запустиь в ручну перед стартом прогаммы
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

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

Сообщение torvn77 »

В общем после беглого осмотра alexferman@linux.org.ru назвал ориентировачную цену полного перевода девелоперской версии документации в 70 т.р. и пока заказываю страницы по подмене кодов и GladeVCP, потом ещё закажу в пределах этих 20 т.р.
Я готов вложить 20 т.р., кто ещё хочет принять участие в финансировнии проекта?
Ссылка на начало переговоров.
https://www.linux.org.ru/forum/talks/13 ... d=13661975

Update.Похоже что он слишком недооценил весь объём работ и теперь хочет 35 только за две страницы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

А примеры его перевода по этой тематике есть?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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