Linuxcnc руководство на русском

LinuxCNC — это набор настраиваемых приложений для управления станками с числовым программным управлением (ЧПУ), 3D-принтерами, роботами, лазерными резаками, плазменными резаками и другими автоматизированными устройствами.

1. Как работает LinuxCNC

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

  • графический интерфейс пользователя (GUI), который образует основной интерфейс между оператором, программным обеспечением и самим станком с ЧПУ;
  • уровень аппаратной абстракции (HAL), который обеспечивает метод связывания всех различных внутренних виртуальных сигналов, генерируемых и принимаемых LinuxCNC, с внешним миром;
  • контроллеры высокого уровня, которые координируют создание и выполнение управления движением станка с ЧПУ, а именно контроллер движения (EMCMOT), контроллер дискретного ввода / вывода (EMCIO) и исполнитель задач (EMCTASK).

На иллюстрации ниже представлена ​​простая блок-схема, показывающая, как может выглядеть типичный 3-осевой фрезерный станок с ЧПУ с шаговыми двигателями:

Принцип работы LinuxCNC
Принцип работы LinuxCNC

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

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

В большинстве случаев пользователи создают конфигурацию, специфичную для настройки своего станка с ЧПУ, используя либо Stepper Configuration Wizard (для систем ЧПУ, работающих с параллельным портом компьютеров), либо Mesa Hardware Wizard (для более продвинутых систем, использующих Mesa Anything I / O PCI карта). Запуск любого из мастеров создаст несколько папок на жестком диске компьютеров, содержащих ряд файлов конфигурации, специфичных для этого станка с ЧПУ, и значок, расположенный на рабочем столе, чтобы облегчить запуск LinuxCNC.

Например, если мастер настройки шагового двигателя использовался для создания настройки для 3-осевого фрезерного станка с ЧПУ, показанного выше и названного My_CNC, папки, созданные мастером, обычно будут содержать следующие файлы:

  • Папка: My_CNC
    • My_CNC.ini
      • Файл INI содержит всю основную информацию об оборудовании, касающуюся работы фрезерного станка с ЧПУ, такую ​​как количество шагов, которые каждый шаговый двигатель должен повернуть, чтобы совершить один полный оборот, максимальная скорость, с которой может работать каждый шаговый двигатель, пределы перемещения каждой оси или конфигурации и поведения концевых выключателей на каждой оси.
    • My_CNC.hal
      • Этот файл HAL содержит информацию, которая сообщает LinuxCNC, как связать внутренние виртуальные сигналы с физическими соединениями за пределами компьютера. Например, указание вывода 4 на параллельном порту для отправки сигнала направления шага оси Z или указание LinuxCNC прекратить движение двигателя оси X при срабатывании концевого выключателя на выводе 13 параллельного порта.
    • custom.HAL
      • Настройки конфигурации фрезера, выходящие за рамки мастера, могут быть выполнены путем включения дополнительных ссылок на другие виртуальные точки в LinuxCNC в этот файл HAL. При запуске сеанса LinuxCNC этот файл читается и обрабатывается до загрузки графического интерфейса. Пример может включать в себя инициирование связи Modbus с двигателем шпинделя, чтобы он был подтвержден как работоспособный до отображения графического интерфейса пользователя.
    • custom_postgui.hal
      • Файл custom_postgui HAL допускает дальнейшую настройку LinuxCNC, но отличается от custom.HAL тем, что он обрабатывается после отображения графического интерфейса пользователя. Например, после установления связи Modbus с двигателем шпинделя в custom.hal LinuxCNC может использовать файл custom_postgui, чтобы связать считывание скорости шпинделя с моторного привода с гистограммой, отображаемой в графическом интерфейсе пользователя.
    • postgui_backup.hal
      • Он предоставляется в качестве резервной копии файла custom_postgui.hal, чтобы пользователь мог быстро восстановить ранее работавшую конфигурацию postgui HAL. Это особенно полезно, если пользователь хочет снова запустить Мастер настройки под тем же именем My_CNC, чтобы изменить некоторые параметры станка. Сохранение конфигурации в мастере перезапишет существующий файл custom_postgui, а файл postgui_backup останется нетронутым.
    • tool.tbl
      • Файл таблицы инструментов содержит параметризованный список любых режущих инструментов, используемых на фрезерном станке. Эти параметры могут включать диаметр и длину фрезы и используются для предоставления каталога данных, которые сообщают LinuxCNC, как компенсировать его движение для инструментов разного размера в рамках операции фрезерования.
  • Папка: nc_files
    • Папка nc_files предоставляется как место по умолчанию для хранения программ G-кода, используемых для управления станком с ЧПУ. Он также включает ряд подпапок с примерами G-кода.

2. Графические пользовательские интерфейсы LinuxCNC

Графический пользовательский интерфейс — это часть LinuxCNC, с которой взаимодействует оператор станка. LinuxCNC поставляется с несколькими типами пользовательских интерфейсов, которые можно выбрать, отредактировав определенные поля, содержащиеся в файле INI:

Axis — стандартный графический интерфейс клавиатуры. Это также графический интерфейс по умолчанию, запускаемый, когда мастер настройки используется для создания средства запуска значков на рабочем столе:

Интерфейс Axis LinuxCNC
Интерфейс Axis LinuxCNC

Touchy — графический интерфейс с сенсорным экраном:

Touchy графический интерфейс LinuxCNC с сенсорным экраном
Touchy графический интерфейс LinuxCNC с сенсорным экраном

Gscreen — настраиваемый пользователем графический интерфейс сенсорного экрана:

Gscreen настраиваемый пользователем графический интерфейс сенсорного экрана
Gscreen настраиваемый пользователем графический интерфейс сенсорного экрана

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

GMOCCAPY графический интерфейс сенсорного экрана на основе Gscreen
GMOCCAPY графический интерфейс сенсорного экрана на основе Gscreen

NGCGUI — графический интерфейс LinuxCNC, обеспечивающий программирование G-кода в стиле мастера. NGCGUI может быть запущен как отдельная программа или встроен в другой графический интерфейс в виде ряда вкладок. На следующем снимке экрана показан NGCGUI, встроенный в Axis:

NGCGUI графический интерфейс подпрограммы
NGCGUI графический интерфейс подпрограммы

3. Виртуальные панели управления

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

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

PyVCP виртуальная панель управления LinuxCNC на основе Python
PyVCP виртуальная панель управления LinuxCNC на основе Python

GladeVCP, виртуальная панель управления на основе Glade, которую можно добавить в графический интерфейс Axis или Touchy. GladeVCP имеет преимущество перед PyVCP в том, что он не ограничивается отображением или управлением виртуальными сигналами HAL, но может включать другие внешние интерфейсы вне LinuxCNC, такие как оконные или сетевые события. GladeVCP также более гибок в том, как его можно настроить для отображения в графическом интерфейсе:

GladeVCP виртуальная панель управления LinuxCNC
GladeVCP виртуальная панель управления LinuxCNC

4. Языки

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

5. Режимы работы

Когда LinuxCNC запущен, для ввода команд используются три различных основных режима. Это ручной, автоматический и ручной ввод данных (MDI). Переход из одного режима в другой имеет большое значение в поведении элемента управления LinuxCNC. Есть определенные вещи, которые можно сделать в одном режиме, но нельзя сделать в другом. Оператор может вернуть ось в исходное положение в ручном режиме, но не в автоматическом или ручном режимах. Оператор может заставить машину выполнить весь файл, полный G-кодов, в автоматическом режиме, но не в ручном или MDI.

В ручном режиме каждая команда вводится отдельно. Говоря человеческим языком, ручная команда могла бы включать СОЖ или подвинуть X со скоростью 25 дюймов в минуту. Это примерно эквивалентно щелчку переключателя или повороту маховика для оси. Эти команды обычно обрабатываются в одном из графических интерфейсов нажатием кнопки мыши или удержанием клавиши на клавиатуре. В автоматическом режиме аналогичная кнопка или нажатие клавиши может использоваться для загрузки или запуска целой программы G-кода, которая хранится в файле. В режиме MDI оператор может ввести блок кода и приказать машине выполнить его, нажав клавишу «return» или «enter» на клавиатуре.

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

Пользовательский интерфейс AXIS скрывает некоторые различия между автоматическим и другими режимами, делая автоматические команды доступными в большинстве случаев. Это также стирает различие между ручным и MDI, потому что некоторые ручные команды, такие как Touch Off, фактически реализуются путем отправки команд MDI. Это достигается путем автоматического перехода в режим, необходимый для действия, запрошенного пользователем.

Содержание

  • 1 Введение
    • 1.1 Настройка адреса вводавывода LPT-PCI
    • 1.2 Настройка работы шаговых двигателей
    • 1.3 Настройка датчиков домашнего положения
    • 1.4 Настройка работы шпинделя
    • 1.5 Настройка сети и подключение сетевой папки
    • 1.6 Настройка удаленного доступа
    • 1.7 Настройка высоты датчика автоматического определения высоты инструмента
    • 1.8 Настройка внешней кнопки E-Stop
    • 1.9 Рекомендации по выбору беспроводного адаптера
  • 2 Справочник параметров *.ini файла
    • 2.1 Группа [DISPLAY]
      • 2.1.1 DISPLAY
      • 2.1.2 EDITOR
      • 2.1.3 POSITION_OFFSET
      • 2.1.4 POSITION_FEEDBACK
      • 2.1.5 ARCDIVISION
      • 2.1.6 GRIDS
      • 2.1.7 MAX_FEED_OVERRIDE
      • 2.1.8 MIN_SPINDLE_OVERRIDE
      • 2.1.9 MAX_SPINDLE_OVERRIDE
      • 2.1.10 DEFAULT_LINEAR_VELOCITY
      • 2.1.11 MAX_LINEAR_VELOCITY
    • 2.2 Группа [EMCMOT]
      • 2.2.1 EMCMOT
      • 2.2.2 COMM_TIMEOUT
      • 2.2.3 BASE_PERIOD
      • 2.2.4 SERVO_PERIOD
    • 2.3 Группа [TRAJ]
    • 2.4 Группа [AXIS_*]
      • 2.4.1 TYPE
      • 2.4.2 HOME
      • 2.4.3 MAX_VELOCITY
      • 2.4.4 MAX_ACCELERATION
      • 2.4.5 STEPGEN_MAXACCEL
      • 2.4.6 SCALE
      • 2.4.7 FERROR
      • 2.4.8 MIN_FERROR
      • 2.4.9 MIN_LIMIT
      • 2.4.10 MAX_LIMIT
      • 2.4.11 HOME_OFFSET
      • 2.4.12 HOME_SEARCH_VEL
      • 2.4.13 HOME_LATCH_VEL
      • 2.4.14 HOME_IGNORE_LIMITS
      • 2.4.15 HOME_SEQUENCE
  • 3 Справочник параметров *.hal файла
  • 4 Работа с утилитами HAL
    • 4.1 HALSHOW
  • 5 Приложения
    • 5.1 Ссылки на дополнительную документацию
    • 5.2 Конфигурационные файлы LinuxCNC для оборудования компании CNC-Technology
    • 5.3 Возможные ошибки и методы их устранения
    • 5.4 Показатели Latency-Test на различных ПК

Введение

В настоящий момент всё оборудование под управлением Craftex поставляется на контроллерах EP7i92, смотрите руководство по администрированию в каталоге 

Ссылка

В LinuxCNC настройка параметров под конкретное оборудование, происходит отлично от большинства популярных систем управления ЧПУ (Mach3 или NC-Studio). Большинство необходимых параметров задаются внесением изменений в текстовые конфигурационные файлы *.hal и *.ini.

Примечание: В составе LinuxCNC есть приложение с графическим интерфейсом пользователя для настройки конфигурации станка (Stepconf), однако, как показывает практика некоторые изменения приходится вносить в конфигурационные файлы вручную. В большинстве случаев в этом нет необходимости. Именно поэтому в данном руководстве вся настройка и внесение изменений происходят через *.hal и *.ini файлы.

Что же такое *.hal и *.ini файлы? Немного теории.

hal — Hardware Abstraction Layer (Слой аппаратных абстракций) — конфигурационный файл Linux, отвечающий за связь аппаратной и программной части станка.
К примеру в данном файле содержится информация: адрес устройства ввода-вывода (PCI-LPT или другой контроллер), назначение портов вводавывода функциям системы и др.

ini — файл конфигурации, содержащий настройки системы.
К примеру в данном файле содержится информация: скорости, ускорения, количество импульсов на мм, скорость поиска домашнего положения, пределы перемещений и др.

Для удобства освоения материала настоящее руководство разделено на 2 части: справочники по *.hal и *.ini файлам, а также отдельные главы по настройке тех или иных функций (перемещения, шпинделя, датчиков и прочее). Ниже перечислены все необходимые параметры для настройки вашего станка под управлением LPT (в руководстве используется контроллер LPT-DPTR 1.03)

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

В начале определим местоположение наших файлов конфигурации. По умолчанию файлы конфигурации расположены по адресу home/notroot/linuxcnc/config/Cutter_ST/Cutter_ST.hal и home/notroot/linuxcnc/config/Cutter_ST/Cutter_ST.hal. Обратите внимание, в директории config лежат все созданные конфигурации. Конфигурация может отличаться в зависимости от названия станка к примеру, Cutter_GR, мой-станок.hal и другое.

Настройка адреса вводавывода LPT-PCI

Настройка системы LinuxCNC для работы с LPT-портом начинается с указания адреса ввода-вывода LPT в вашем ПК.
В случае использования материнской платы не имеющего на борту встроенного LPT порта, рекомендуется воспользоваться платой PCI-LPT c чипом CH351Q (ссылка на сайт CNC-Technology).

Для того, чтобы увидеть установленные в системный блок PCI устройства нужно открыть эмулятор терминала и набрать команду:
lspci –vv
В командной строке отобразятся все устройства, доступные операционной системе для работы. Среди них необходимо найти Parallel controller. Необходимый нам Region 0, адрес данного устройства, к примеру c000.

Данный адрес необходимо указать в *.hal файле конфигурации:
linuxcnc/configs/Cutter_ST/ST.hal

В открытом файле Cutter_ST.hal изменить строку loadrt hal_parport cfg=”0x378 out” на loadrt hal_parport cfg=”0xс000 out”, где 0xс000 адрес п0орта pci-платы, который мы определили ранее. Теперь мы можем запустить linuxcnc ярлыком на рабочем столе и убедиться что станок перемещается.

Настройка работы шаговых двигателей

Основные параметры настройки шаговых двигателей это деление шага (кол-во импульсов на мм), направление движения, скорости и ускорения. Дополнительные параметры, которые могут потребоваться: изменение временных составляющих импульсов на драйвер. Рассмотрим основные параметры и алгоритм настройки.

Установка пинов в *.hal

Необходимо открыть *.hal файл и убедиться в том, что порты и пины указаны в соответствии с распиновкой LPT. Подробнее смотрите в справочнике по *.hal файлу.
Настройка направлений, скоростей и ускорений для каждой из осей.
Детальней рассмотрим назначение пинов для xtep и xdir.

net xstep => parport.0.pin-02-out
net xdir => parport.0.pin-03-out

Данные записи означают, что сигнал Step по оси X будет подаваться на пин 2 LPT-порта, а сигнал Dir по оси X будет подаваться на пин 3 LPT-порта. По аналогии проверяем другие сигналы для LPT.

Кроме этого, для правильной работы шаговых двигателей необходимо выставить параметр SCALE в *.ini файле. SCALE — количество импульсов на мм, параметр прямо-пропорциональный количеству импульсов на оборот шагового двигателя и обратно-пропорциональный шагу винта. Другими словами, если на драйвере выставлено деление шага 1/4, шаговому двигателю требуется 800 импульсов на оборот (т.е. стандартное деление шага 200 умножили на делитель 4), а винт ШВП, установленный на станке, имеет шаг 5 мм, то параметр SCALE = 800 / 5 = 160.

Параметр SCALE указана в *.ini файле, в соответствии с каждой группой для своей оси. К примеру для того, чтобы изменить данный параметр для оси X нужно найти его в группе [JOINT_0]. Аналогично [JOINT_1] для оси Y и [JOINT_2] для оси Z.

Если направление перемещения не совпадает с фактическим, то необходимо удалить строчку setp parport…. для необходимого пина. К примеру, если направление перемещения не совпадает по оси X то в *.hal файле необходимо найти строчку setp parport.0.pin-03-out-invert 1 и её удалить (достаточно сделать её комментарием поставив знак # перед строчкой: #setp parport.0.pin-03-out-invert 1).

Настройка датчиков домашнего положения

Для настройки датчиков необходимо убедиться, что аппаратная и программная часть связаны. Для этого откроем наш *.hal файл и проверим правильность настройки.

net home-x <= parport.0.pin-10-in
net home-y <= parport.0.pin-11-in
net home-z <= parport.0.pin-12-in
net home-a <= parport.0.pin-13-in

Подобным образом происходит связь аппаратной и программной части в области датчиков домашнего положения. Рассмотрев детальнее мы поймешь что pin 10 соответствует входу LimX на плате LPT-DPTR 1.03 и другие входные сигналы соответственно.

После того, как мы установили датчики домашнего положения необходимо проверить их срабатывание через hal-scope или HAL-метр (более подробно см. в главе Hal-scope настоящего руководства).
Необходимо убедиться, что в свободном состоянии т.е. в состоянии когда датчик не сработал состояние в LinuxCNC соответствует FALSE.
Для того, чтобы привести значение всех датчиков к FALSE необходимо изменить значение датчика на in-not.
После того, как все датчики в свободном состоянии соответствуют показанию FALSE, можно приступать к дальнейшей настройке.

Убедитесь, что строки, отвечающие за датчики в *.ini файле верные. Так, к примеру для оси X настройки датчиков хранятся в группе параметров [JOINT_0]:

HOME_OFFSET = 0.00
HOME_SEARCH_VEL = 15.00
HOME_LATCH_VEL = -1.50
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1

Такие же параметры соответствуют осям в группах [JOINT_1] для оси X, [JOINT_1] для оси Z.

Теперь можно вернуть все оси в домашнее положение.
В случае, если одна из осей начинает перемещаться в направлении обратном положению датчика, необходимо изменить направление поиска домашнего положения. Для этого необходимо изменить знак скорости поиска домашнего положения, к примеру:

HOME_SEARCH_VEL = -15.00
HOME_LATCH_VEL = 1.50

Обратите внимание, что также изменяется знак параметра HOME_LATCH_VEL.

Далее необходимо определить минимальные и максимальные пределы (размеры рабочего поля). Для этого обратимся к *.ini файлу. В *.ini файле, для каждой оси присутствует группа параметров AXIS и JOINT. К примеру, для оси X группа [AXIS_X] и [JOINT_0]. В этих группах необходимо изменить параметры MIN_LIMIT и MAX_LIMIT, для минимального и максимального перемещения соответственно. Обратите внимание, что данные параметры повторяются как в группе AXIS, так и в группе JOINT.

Настройка работы шпинделя

Настройка шпинделя как правило состоит из двух частей: настройка автоматического вкл./выкл. шпинделя и настройка генерации ШИМ для управления скоростью вращения шпинделя.

Рассмотрим первую составляющую. Включение — выключение шпинделя простая задача, потому в *.hal файле всего две строки, указывающие на эту функцию. Необходимо убедиться, что в *.hal файле существует связь сигнала spindle-cw с пином, отвечающим за включение.

net spindle-cw => parport.0.pin-16-out
setp parport.0.pin-16-out-invert 1

Далее необходимо убедиться, что точно также подключен сигнал spindle-pwm отвечающий за выход ШИМ.

net spindle-pwm => parport.0.pin-14-out
setp parport.0.pin-14-out-invert 1

Далее, обратим внимание на настройку формирования импульсов ШИМ, который отвечает за регулировку оборотов шпинделя.

setp pwmgen.0.pwm-freq 988.0
setp pwmgen.0.scale 24000
setp pwmgen.0.offset 0.02
setp pwmgen.0.dither-pwm true

Среди них, параметр setp pwmgen.0.pwm-freq 988.0 является несущей частотой ШИМ сигнала, параметр setp pwmgen.0.scale 24000 является максимальной скоростью шпинделя, параметр setp pwmgen.0.offset 0.02 , определяет смещение фактической частоты от заданной (применяется для более точной калибровки) и параметр setp pwmgen.0.dither-pwm true указывает на «метод округления».

Настройка сети и подключение сетевой папки

Настройку общего доступа к папке будем производить на компьютере под управлением ОС Windows. А подключаться к ней будем уже с компьютера с ОС Debian (LinuxCNC-Craftex).
Создаём папку в Windows где-нибудь, кликаем правой кнопкой мыши, выбираем «Свойства» — «Доступ» и жмём «Расширенная настройка»:
Share files windows 1.png
Далее проставляем галочку «Открыть общий доступ к этой папке» и нажимаем «Применить»:
Share files windows 2.png
Всё, мы расшарили папку в Windows и к ней можно подключаться.
Как же все таки подключиться из Debian к нашей сетевой папке?
Откроем файловый менеджер (Thunar).
И выберем «Обзор сети».
Без имени.png
Осталось найти сетевую папку в сети и ввести пароль и логин пользователя Windows.
Как же подключиться без ввода пароля к Windows папке из Debian?
Нужно в Windows открыть «Центр управления сетями и общим доступом», выбрать «Изменить дополнительные параметры общего доступа»:
Share files windows 7.png
В пункте «Все сети» в самом низу будет пункт «Общий доступ с парольной защитой»:
Share files windows 8.png
Надо отключить общий доступ с парольной защитой и «Сохранить изменения».

Настройка удаленного доступа

Удаленный доступ к Debian можно осуществить несколькими способами. Например через терминальный или графический доступ.

Терминальный или SSH(Secure Shell) доступ полезен, когда достаточно функционала командной строки для осуществления деятельности, такой доступ очень экономичен в плане интернет трафика. SSH сервер уже встроен в минимальную сборку с Craftex. Для доступа из ОС Windows потребуется лишь установленная программа Putty.
Putty.jpg
Если вам привычнее работать с файлам в графическом обозревателе можно воспользоваться WinSCP, который работает по тому же SSH протоколу.
Winscp.jpg
Winscp2.jpg
Надо сказать, что данный способ требует белого ip адреса для компьютера с Debian. Если у вас есть роутер, тогда потребуется пробросить стандартный для ssh порт № 22.

Графический доступ можно осуществлять через тот же SSH и программы Putty+Xming или протокол VNC, но как показывает практика, даже в одной локальной сети задержки графики настолько большие, что комфортно работать невозможно. Поэтому придется пользоваться сторонним ПО. Всем известный Team Viewer уже встроен в образ с Craftex. Запустите его и получите доступ из Windows после ввода вашего ID и пароля.
TV.png

Настройка высоты датчика автоматического определения высоты инструмента

Перед тем, как настраивать работу датчика необходимо убедиться в том, что в *.hal файле указаны верные назначения для входного сигнала.
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-13-in-not
А также, необходимо убедиться в правильности нормального состояния датчика. Для этого необходимо воспользоваться утилитой HAL-метр. В разомкнутом состоянии датчик должен быть в состоянии FALSE.
В текущем релизе ПО для изменение высоты датчика вам потребуется отредактировать системный файл Craftex. В дальнейшем этот параметр будет находиться в глобальном config файле Craftex.config.

1.Для начала потребуется запустить файловый менеджер с рабочего стола и перейти по пути /home/notroot/linuxcnc-dev/bin/сraftex (notroot — ваш пользователь)

2.Далее, вам нужно отыскать в текущем каталоге файлы gmoccapy3, gmoccapy4 и открыть их поочередно через программу Mousepad (текстовый редактор)

3.В текстовом редакторе нажмем сочетание клавиш Ctrl + F для вызова поиска по файлу и введем в поиск строку: #SIZE OF SENSOR

4.Как только будет найдена требуемая строка нам потребуется всего лишь поменять значение после буквы Z в мм.

Sensor.png
5.Сохраним файл сочетанием клавиш Ctrl + S.

6.Теперь можно запускать Craftex.

Настройка внешней кнопки E-Stop

Для удобства работы чаще всего организовывается внешняя кнопка E-stop (фактически сигналом E-Stop может, более того, должна являться не только кнопка E-stop, но и другие источники сигнала аварии. Такими источниками: драйвера шаговых двигателей имеющих выход Alarm или Fault; преобразователь частоты). Отдельное внимание стоит обратить на то, что в случае использования внешней кнопки E-stop первая функциональная клавиша (соответствующая F1) в Craftex становится привязана к сигналу E-stop, что также является очень удобным.

Для того, чтобы клавиша была функциональна необходимо внести соответствующие изменения в *.hal файл.
Привести к данному следующие строки файла:

net estop-ext => parport.0.pin-15-in
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

Примечание: если при включении система заблокирована, то вероятно дело в том, что входной сигнал имеет неправильное нормальное состояние (NO, NC). В таком случае нужно инвертировать входной сигнал, для этого:

net estop-ext => parport.0.pin-15-in-not

Рекомендации по выбору беспроводного адаптера

Для того, чтобы удобнее организовать работу оператора между рабочим ПК и ПК станка можно организовать локальную сеть. Таким образом отпадет возможность использовать Flash-диски.
Есть несколько способов организовать локальную сеть: проводную и беспроводную. Мы рекомендуем использовать беспроводной адаптер TP-Link TL-WN727N в ввиду надежности, стоимости и легкости установки драйверов в Linux.
Драйвера для адаптера TL-WN727N можно скачать по ссылке:
Последовательность установки драйверов:
1. В скачанном архиве находятся руководство по установке и архив с драйвером. Распаковываем архив с драйвером и получаем папку rtl8188EUS_linux_v5.2.2.4_25483.20171222. Распаковывать в любое удобное место.
2. Открываем эмулятор терминала и переходим в папку с драйвером. К примеру, cd home/notroot/rtl8188EUS_linux_v5.2.2.4_25483.20171222.
3. Вводим в терминала make clean
4. Вводим в терминале make1
5. Вводим sudo cp 8188eu.ko lib/modules/[kernel version]/drivers/net/wirieless2
6. Вводим sudo depmode -a
7. Вводим sudo modprobe 8188eu.ko

1. После компиляции командой make в терминале мы увидим сообщения о том, какой файл скомпилирован «8188eu.ko»
2. Версию ядра [kernel version]мы можем увидеть, если пройдем по пути lib/modules/

Справочник параметров *.ini файла

  • .ini — файл конфигурации, в котором хранятся основные настройки конфигурации LinuxCNC под конкретное оборудование. Данный файл располагается в директории: home/user/linuxcnc/configs/ST.ini, где:

user — имя пользователя на вашем ПК
ST*.ini — название вашей конфигурации

Давайте разберем, из чего состоит *.ini файл.

Группа [DISPLAY]

DISPLAY

Имя интерфейса для использования при загрузки текущей конфигурации LinuxCNC.
Доступные интерфейсы: axis, touchy, gmoccapy, gscreen, keystick, mini, tklinuxcnc, xemc.
DISPLAY = gmoccapy Выбран интерфейс GMOCCAPY.

EDITOR

Имя графического редактора, с помощью которого можно открыть файл управляющей программы для редактирования.
Доступные редакторы: gedit, mousepad.
EDITOR = gedit Выбран графический редактор gedit.

POSITION_OFFSET

Система координат, которая отображается по умолчанию.
Доступные системы координат: RELATIVE — относительная, MACHINE — абсолютная.
POSTION_OFFSET = RELATIVE По умолчанию выбрана относительная система координат.

POSITION_FEEDBACK

Отображение координат в интерфейсе.
Возможно отображать текущую позицию двумя способами: ACTUAL — действительное положение т.е. положение полученное по обратной связи от двигателей, COMMANDER — заданное (идеальное) значение координат.
POSITION_FEEDBACK = ACTUAL По умолчанию выбрано актуальное отображение.

ARCDIVISION

Тип отображения дуг (дробление дуги на прямые участки). Чем большее значение дробления указано, тем более точное (приближенное к идеальной дуге) отображение будет в окне предпросмотра, но чем тем требуется больше ресурсов ПК.
ARCDIVISION = 64 Значение по умолчанию 64.

GRIDS

Тип деления сетки. Единица измерения дюймы (in), мм (mm).
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in Доступные по умолчанию сетки.

MAX_FEED_OVERRIDE

Максимальное изменение скорости подачи, относительно скорости выставленной в управляющей программе или окне MDI.
MAX_FEED_OVERRIDE = 1.2 Значение 1.2 означает, что пользователь может превысить значение установленной скорости лишь на 20%

MIN_SPINDLE_OVERRIDE

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

MAX_SPINDLE_OVERRIDE

Максимальное значение скорости вращения шпинделя, относительно выставленной в управляющей программе или окне MDI.
MAX_SPINDLE_OVERRIDE = 1.2 Значение 1.2 означает, что пользователь может повысить установленную скорость вращения шпинделя не более чем на 20%

DEFAULT_LINEAR_VELOCITY

Скорость перемещений, установленная при первом запуске LinuxCNC.
DEFAULT_LINEAR_VELOCITY = 20.0 Скорость по умолчанию 20 мм/сек.

MAX_LINEAR_VELOCITY

Максимальная скорость свободных перемещений, которую можно изменять из интерфейса.
MAX_LINEAR_VELOCITY = 100.0 Максимальная скорость перемещений не более 100.0 ммсек.

Группа [EMCMOT]

EMCMOT

COMM_TIMEOUT

BASE_PERIOD

Параметр BASE_PERIOD является одним из основных параметров, влияющих на максимальную скорость перемещения станка. Параметр BASE_PERIOD определяется исходя из показателей Latency-Test.

SERVO_PERIOD

Группа [TRAJ]

Группа [AXIS_*]

TYPE

В LinuxCNC могут быть два типа оси: линейная и угловая.

TYPE = LINEAR Линейная ось
TYPE = ANGULAT Угловая (поворотная ось)

HOME

MAX_VELOCITY

Максимальная скорость перемещений данной оси (ммсек).
MAX_VELOCITY = 100.0 Максимальная скорость перемещения 100.0 мм/сек.

MAX_ACCELERATION

Максимальное ускорение данной оси (ммсек^2).
Пример: Максимальное ускорение 600 ммсек^2 MAX_ACCELERATION = 600.0

STEPGEN_MAXACCEL

Данные значение должно быть на 1-10% больше по сравнению с параметром MAX_ACCELERATION. Если вы используете параметр BACKLASH (компенсацию люфта), то данный параметр необходимо увеличить в 1,5 — 2 раза по сравнению с параметром MAX_ACCELERATION.

SCALE

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

FERROR

Максимальное допустимое отклонение от перемещений станка (в мм). Если рассогласование между реальным и заданным положением превысит значение FERROR, то контроллер отключится. Максимально допустимое отклонение FERROR может достигаться при скорости [TRAJ] MAX_VELOCITY и при снижении скорости ошибка будет стремиться к MIN_FERROR.

MIN_FERROR

Минимальное допустимое отклонение от заданного перемещения (в мм). Если рассогласование между реальным и заданным положением превысит значение MIN_FERROR, то контроллер отключится. Минимально допустимое отклонение MIN_FERROR при низкой скорости. При росте скорости, пропорционально будет увеличиваться ошибка рассогласования и может достигать FERROR при скорости MAX_VELOCITY.

MIN_LIMIT

Минимальные машинные координаты для перемещения (мм).

MAX_LIMIT

Максимальные координаты станка для перемещения (мм).

HOME_OFFSET

Смещение рабочего поля станка относительно датчика домашнего положения для данной оси.

HOME_SEARCH_VEL

Скорость возврата в домашнее положение по датчикам (ммсек).

Примечание: Для того, чтобы изменить направление поиска домашнего положения, необходимо поменять знак.

Пример: HOME_SEARCH_VEL = -150.00000

Примечание: При указании параметра HOME_SEARCH_VEL = 0.0, ось не будет возвращаться в домашнее положение (если в конструкции станка, не предусмотрен датчик домашнего положения).

HOME_LATCH_VEL

Скорость уточнения (точной калибровки) датчиков домашнего положения (ммсек).

HOME_IGNORE_LIMITS

HOME_SEQUENCE

Справочник параметров *.hal файла

Для работы системы необходим правильно настроенный *.hal файл. Пройдемся по реальному конфигурационному файлу и изучим требуемые параметры.

loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hal_parport cfg="0xe000 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=1

В блоке выше нас интересует строка loadrt hal_parport cfg=»0xe000 out», в ней указан адрес LPT порта в системе, для того, чтобы узнать какой адрес требуется сюда вписать обратимся к разделу «Настройка адреса вводавывода LPT-PCI».

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
net spindle-cmd-rpm => pwmgen.0.value
net spindle-on <= spindle.0.on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 988.0
setp pwmgen.0.scale 24000
setp pwmgen.0.offset 0.02
setp pwmgen.0.dither-pwm true
net spindle-cmd-rpm     <= spindle.0.speed-out
net spindle-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-cmd-rps     <= spindle.0.speed-out-rps
net spindle-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-at-speed    => spindle.0.at-speed
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse

В данном блоке обратим внимание на строки setp pwmgen.0.pwm-freq 988.0, setp pwmgen.0.scale 24000, setp pwmgen.0.offset 0.02.
Изменение этих параметров позволяет нам настроить соответствие реального значения оборотов шпинделя и значения оборотов в процентах, которое задается в CRAFTEX пользователем.
В строке setp pwmgen.0.scale 24000 задается максимальное количество оборотов шпинделя за 1 минуту.
В строке setp pwmgen.0.pwm-freq 988.0 задается частота генерации импульсов, которые отправляются в частотный преобразователь.
В строке pwmgen.0.offset 0.02 задается смещение рабочего цикла. Увеличение данного значения дает увеличение оборотов шпинделя при одном и том же значении % в CRAFTEX. Уменьшение — соответственно наоборот дает уменьшение оборотов.

net xstep           => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir            => parport.0.pin-03-out
setp parport.0.pin-03-out-invert 1
net ystep           => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir            => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net zstep           => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir            => parport.0.pin-07-out
setp parport.0.pin-07-out-reset 1

В блоках выше настраиваются параметры осей X,Y,Z. Разберем на примере первого блока (ось X).
net xstep => parport.0.pin-02-out — В данной строке мы задаем номер пина LPT, к которому подключен сигнал STEP от драйвера. Тоесть 02 — номер пина LPT.
setp parport.0.pin-02-out-reset 1 — Задает режим работы пина (он может быть прямым или инвертированным). Для сигнала STEP инверсия не требуется, поэтому в этой строке ничего кроме номера пина LPT менять не надо.
net xdir => parport.0.pin-03-out — В данной строке мы задаем номер пина LPT, к которому подключен сигнал DIR от драйвера. Тоесть 03 — номер пина LPT.
setp parport.0.pin-03-out-reset 1 — Задает режим работы пина (он может быть прямым или инвертированным). Для сигнала DIR может потребоваться инверсия — это изменит направление движения двигателя. Для инверсии потребуется заменить reset на invert. Что касается номера пина LPT, тут всё остается как и в пояснении выше (если меняем номер пина сигнала DIR, то тут тоже потребуется поменять).

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

net spindle-cw      => parport.0.pin-16-out
setp parport.0.pin-16-out-invert 1

В первой строке задается пин LPT для запуска шпинделя в прямом напрвлении.
В второй строке задается инверсия для этого сигнала.
Если требуется запускать шпиндель в обратном направлении используем spindle-ccw

net spindle-pwm     => parport.0.pin-14-out
setp parport.0.pin-14-out-invert 1

В первой строке этого блока задается пин LPT для ШИМ управления шпинделя.
Во второй строке задается режим работы ШИМ/ЧИМ. Для наших задач этот пин должен быть инвертирован.

net home-x      <= parport.0.pin-10-in
net home-y      <= parport.0.pin-11-in
net home-z      <= parport.0.pin-13-in
net estop-ext       <= parport.0.pin-15-in
net probe-in => motion.probe-input
net probe-in <= parport.0.pin-12-in-not

В данном блоке настраиваются входные пины LPT для датчиков по осям, пин кнопки аварийной остановки и пин датчика высоты инструмента. Стоит заметить, что инверсия входных пинов производится с помощью кострукции -not (Примером является последняя строка в блоке)

setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 10000
setp stepgen.0.dirsetup 10000
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable joint.0.amp-enable-out => stepgen.0.enable
net home-x => joint.0.home-sw-in
net min-home-x => joint.0.neg-lim-sw-in
setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 10000
setp stepgen.1.dirsetup 10000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable joint.1.amp-enable-out => stepgen.1.enable
net home-y => joint.1.home-sw-in
net min-home-y => joint.1.neg-lim-sw-in
setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 10000
setp stepgen.2.dirsetup 10000
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable joint.2.amp-enable-out => stepgen.2.enable
net home-z => joint.2.home-sw-in
net min-home-z => joint.2.neg-lim-sw-in

Как мы можем видеть, в блоках выше настраиваются параметры шаговых двигателей по осям. Нас интересуют только идентичные для блоков выше параметры steplen,stepspace, dirhold, dirsetup. Они задаются в соответствии с используемыми драйверами, по-умолчанию заданы эти параметры.

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in

В данном блоке настраивается блокировка работы кнопкой аварийной остановки, тоесть если кнопка нажата, то мы не можем управлять станком. Если нам требуется временно отключить эту кнопку (для тестирования), то для этого потребуется заменить вторую строку на net estop-out => iocontrol.0.emc-enable-in.

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

HALSHOW

Данная утилита позволяет работать со всеми переменными, пинами, сигналами системы.

Для наших задач удобно просматривать состояния пинов.

Для запуска требуется перейти в раздел MENU в CRAFTEX и кликнуть кнопку HALSHOW на нижней панели.

Далее мы должны увидеть окно HALSHOW.

Halshow.png

В левой колонке мы можем найти интересующий нас пин. Откроем ветку дерева Pins->parport->0.
Для просмотра состояний пинов щелкнем по вкладке «Следить» и выберем из нашей ветки нужные пины для просмотра двойным кликом по ним.

Halshow2.png

Теперь, когда мы видим состояния нужных нам пинов, можно проверить работу утилиты физически замыкая датчики.

Приложения

Ссылки на дополнительную документацию

Вы можете найти полное описание системы EMC2 перейдя по ссылке http://linuxcnc.org/docs/html/

Список компонентов HAL http://linuxcnc.org/docs/2.7/html/hal/components.html

Описание realtime компонентов HAL http://linuxcnc.org/docs/html/hal/rtcomps.html

Конфигурационные файлы LinuxCNC для оборудования компании CNC-Technology

Данные конфигурационные файлы созданы для работы с оборудованием CNC-Technology под управлением платы опто-развязки LPT-DPTR 1.03.

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

Модель станка Конфигурационные файлы
Cutter CH Download
Cutter GQ Download
Cutter GR Download
Cutter GT Download
Cutter GTL Download
Cutter H Download
Cutter HD Download
Cutter HM Download
Cutter KTM Download
Cutter ST Download
Cutter STL Download
Cutter VSK Download

Возможные ошибки и методы их устранения

Возможные ошибки

Ошибка Возможная причина Метод устранения
Joint * following error Компьютер не отвечает техническим требованиям;
Установленная скорость перемещений слишком велика для допустимого параметра BASE_PERIOD в *.hal файле;
Провести LATENCY-TEST и установить параметр BASE_PERIOD на 10% выше значение MaxJitter (обратите внимание на метод проведения LATENCY-TEST).

Показатели Latency-Test на различных ПК

Показатели Latency Test на различных ПК

Max Interval (1.0 ms) Max Jitter (1.0 ms) Max Interval (25 ns) Max Jitter (25 ns) Материнская плата Центральный процессор Объем RAM Видеокарта HDD
1032498 36782 54009 29009 Asus A68HM-K AMD A6-7400K 4Gb AMD A6-7400K Radeon R5 HDD Western Digital WD800JD-22MSA1

Главная и самая интересная часть linuxcnc — Hardware Abstraction Layer. Это такая специальная прослойка которая позволяет обычному пользователю получать доступ к оборудованию(ядру) Linux. Раньше был ещё один HAL , который потом заменил проект udev , так вот это разные вещи, HAL Linuxcnc нужен только для linuxcnc.

Итак каждый компонент в HAL представлен черным ящиком с некоторым количеством ножек, каждая ножка обладает такими свойствами, как вход/выход а также тип передаваемого по ней сигнала. Ещё есть псевдо ножки, это константы, параметров компонента.

Все это похоже на блоксхемы и в итоге можно представить как вот такую вот схему(чем-то напоминает LabView, но увы удобного редактора нет).

stepper_mm.png

Пример конвертера GEDA2HAL

Ещё стоит заметить что в HAL всегда работают два типа компонентов ,работают они в разных потоках loadrt загружает компоненты работающие в real time потоке, loadusr загружает компоненты работающие не real time т.е. с периодом >=200 мс … это например интерфейс или джойстик подключенный по USB.

Также с помощью специального синтаксиса макросов и языка С, можно создавать свои компоненты, с помощью утилиты comp.

Также можно вручную вводить команды с помощью halcmd , с поддержкой автодополнения, ведь файлы с расширением .hal всего лишь сценарии написанные на этом языке.

#1

OFFLINE
 

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 29 Январь 2014 — 08:10

Минимальные и достаточные требования к компьютеру
)Наличие в составе компьютера внешнего или внутреннего (т.е. на материнской плате) контролёра LPT.
Настройку LinuxCNC для работы с аппаратными контролёрами этот мастер не поддерживает и для этого
надо использовать мастер Pncconf.

)x86 совместимый процессор уровня Pentium II/III с частотой 400 МГц и выше.
Для минимального запуска оболочки пользователя установленной на диск Ubuntu надо
128~256 Мб памяти ОЗУ и файл или раздел подкачки (далее swap) размером ~400 МБ.
для комфортной работы в системе от 512 МБ.
После 1 Гб swap можно отключить совсем.

)какой бы компьютер ни был,а из-за того,что большое количество дисковых операций может вызвать срыв реалтайма
диск надо пусть и не большой,но быстрый,по возможности SSD.
Объём менее кретичен,для установки системы хватает 16 GB.
( Назад к оглавлению )

Сообщение отредактировал torvn77: 08 Февраль 2014 — 19:12

  • 1

  • Наверх

#2

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 29 Январь 2014 — 08:10

  • 1

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

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

  • Наверх

#3

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 29 Январь 2014 — 08:10

Введение

Лицензия

У Вас есть право на распространение и/или изменение этого документа в рамках GNU Free Documentation Licence версия 1.1
или любой другой более поздней версии опубликованной Free Software Foundation без неизменяемых разделов,
без передней обложки и одной фразой на задней обложке
«Это руководство по LinuxCNC продукт нескольких авторов пишущих для сайта mir-cnc.ru.
Если вы найдете его полезным в своей работе, мы приглашаем Вас внести свой вклад в его доработку и расширение.»
Ознакомится с лицензией можно на сайте GNU на странице «GNU Free Documentation License (GFDL)».
Если вы не найдете там лицензию, вы можете заказать копию в Free Software Foundation, Inc. по адресу:
59 Temple Place, Suite 330 Boston, MA, 02111-1307.

При написании мануальника я использовал сведения взятые с сайта cnc-club.ru,
а также получал помощь от форумчан с этого сайта,за что выражаю им свою не искреннею благодарность :).

( Назад к оглавлению )

Сообщение отредактировал torvn77: 26 Апрель 2014 — 19:19

  • 1

  • Наверх

#4

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 29 Январь 2014 — 08:10

Общие сведения о станке

Компьютер с которого осуществляется управление станком
)Двуядерный процессор AMD частотой 3 Ггц.
)Память DDR2 800 Мгц,4 ГБ.
Так много потомучто более мелких модулей у меня нету.а покупать специально жаба душит.
а так для работы должно хватить 500 Мб + файл подкачки на диске.

Плата согласовния компьютера и станка PLC4x-G2 производства Пурелогик имеет:
)Один ШИМ (или всётаки ДИМ?) декодер с оптической отвязкой от платы
)Два реле включаемых пинами порта LPT
)Одно реле включаемое с пина LPT или детектором сигнала (Charge Pump,PWM шпинделя) по выбору.
К сожалению,что в первой,что во второй проданной мне плате клеммы
для подключения силовой нагрузки не образуют электрического контакта с платой.
Поэтому управляемую нагрузку мне пришлось припаивать к плате непосредственно.
)Плата активируется как постоянным сигналом ENABLED,так и модулированным частотой,называемый ChargePump.
Выбор между сигналами осуществляется с помощью микропереключателя.

БУ станка состоит из блоков питания,аналоговых драйверов Leadshine и инвертора HOLIP-A,
который управляется одним реле и аналоговым сигналом от ШИМ декодера.
Размер по Х 700 мм,по У 800 мм,по Z 100 мм.
Датчик home-limit осей Х и У находится в начале координат,т.е. с права для оси У,и спереди для оси Х.
или Х=У=(-1)
У оси Z датчик находится в верхнем положении,в соответсвии с промышленным стандартом его координата равна +1,
а сама ось направлена вниз и принимает отрицательные значения.

( Назад к оглавлению )

Сообщение отредактировал torvn77: 26 Апрель 2014 — 19:26

  • 1

  • Наверх

#5

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 29 Январь 2014 — 23:35

Начало работы мастера

Меню запуска программ во втором Gnom’e находится в верхнем левом углу экрана.
Откройте его хлопнув левой кнопкой мышки по находящемуся с лева от слова Application составному колечку.
Потом проводя мышкой над соответсвующими словами войдите в показанное на картинке субменю и
запустите мастер Stepconf опять таки хлопнув по нему левой кнопкой.
(В общем в смысле мышекликанья тут всё также,как и в винде)

LinuxCNC.Stepconf.01.Run_Wizard.png

В первом окошке никаких настроек не делается,просто даются объяснения чегото там на англиском.
Хлопаем по кнопке Forward (т.е. Вперёд) и переходим к следующему окну,
в котором предлагают решить будем мы создавать конфиг заново,
или воспользуемся информацией о старом.

LinuxCNC.Stepconf.02.Start_Page.png

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

LinuxCNC.Stepconf.03.1.Select_Create_Config.png

Сначала посмотрим в нижнею часть диалогового окна и видим там две галочки,
При установке одного на рабочем столе создаётся ярлык для папки с файлами создаваемой мастером кофигурации,
при установке другого создаётся *.desktop файл Gnom’a.
В общем если создать несколько конфигурации с разными именами,
то кликая по этим файлам можно выбирать,то с какими конфигами LinuxCNC будет запущен.
Также если запустить текстовый редактор и открыть им этот файл,то в соответсвующей строке можно увидеть
команду запуска с путём к главному конфигурационному файлу в качестве параметра.
При желании эту строку можно отредактировать,изменить путь к конфигам или добавить дополнительные опции запуска.

В верхней части окна находится переключатель выбора между созданием (Create) и редактированием (Modifi) уже созданного конфига.
Вот собствено можно увидеть эту часть окошка с переключателем в положении выбора редактирования уже сделанных конфигов.

LinuxCNC.Stepconf.03.2.Select_Modifi_Config.png

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

LinuxCNC.Stepconf.03.3.Select_Config_File.png

Сам по себе этот файл является документом в формате xml,
используется только мастером Stepconf и никак в работе LinuxCNC собственно не участвует.
Хранить и открывать мастером его можно в любом месте,в любом случае мастер будет
создавать папку с конфигурационными файлами и новый файл *.stepconf
заново в стандартной папке для хранения конфигов.
( ~/linuxcnc/configs ,где ~ стандартное обозначение пути к домашней директории пользователя )

( Назад к оглавлению )

Сообщение отредактировал torvn77: 31 Январь 2014 — 03:38

  • 0

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

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

  • Наверх

#6

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 30 Январь 2014 — 01:31

Параметры станка, контроллера и быстродействия

LinuxCNC.Stepconf.06.1.Basic_Machine_Information.png

Machine Name название создаваемого конфига.
Для него можно использовать заглавные и строчные буквы,цифры и знаки «-» и «_».
LinuxCNC не поддерживает для разных задач разные профили,вместо этого для каждого конфига создаётся с этим именем отдельная папка,
в которой конфиг и хранится вместе с сопутсвующими ему файлами.
Выбор конкретного конфига осуществляется запуском LinuxCNC через соответсвующии ярлык
или если вы забыли в » Начало работы мастера » его создать,
непосредственным вызовом из консоли,способом указывания в параметрах вызова пути к главному *.ini файлу.
Например для пользователя с именем «cnc» и названием конфига «Purelogic_PLC4x-G2»
вызов LinuxCNC c соответствующим профилем будет выглядеть так:

linuxcnc /home/cnc/linuxcnc/configs/Purelogic_PLC4x-G2/Purelogic_PLC4x-G2.ini

Configuration directory не редактируемый параметр,который показывает путь к папке с создаваемыми конфигами.

Axis configuration выпадающии список с разными типами конструкции конфигурируемого станка

  • XYZ — Трёх осевой фрезер
  • XYZA — Трёх осевой фрезер с токарной осью
  • XZ — Токарный станок

Например на этом рисунке выбрана конфигурация для трёх осевого фрезера с поворотной осью.
LinuxCNC.Stepconf.06.2.Basic_Machine_Information(A_Axis_Select).png

Настройки для фрезерно-токарных типа XZA в этом списке нет.
Такой фрезер можно попробовать сконфигурировать как XYZA и либо создать соответсвующии постпроцессор,
либо установить Home Search velocity из окна _Axis Configuration для неиспользуемой оси в ноль,
что отключит поиск дома на этой оси и позволит станку нормально инициализироватся при запуске.

Machine units единицы измерения,с которыми будет работать LinuxCNC

  • Inches (G20)
  • Millimeters(G21)

Driver type это выподающии список,который содержит предустановленные параметры формы сигналов Step и Dir для разных драйверов.
Если же вашего драйвера в списке нету,то вы можите посмотреть эти значения в инструкции к драйверу.
Если же инструкции к драйверу тоже нет,то подбирайте их самостоятельно,
опираясь на приведённое ниже описание смысла этих сигналов.
в любом случае,учитывайте,что в зависимости от соотношения этих сигналов
звук при перемещении станка может быть различным.
Подбирайте не только те значения,при которых станок ездит,но и «приятно» звучит.
Так же рекомендуется эти значения делать минимум в двое больше паспортных или полученных экспериментальным путём.
При не выполнении этого требования часть шагов может быть пропущена из-за того,
что они приходят в контролёр когда он шаги не воспринимает или ослабления или искажения сигнала в процессе передачи.
При этом изменение координаты может быть целенаправленным.
(По мере работы станка ось Z постепенно смещается вверх)

  • Step time Длительность сигнала step
  • Step space Минимальный промежуток времени между двумя сигналами step
  • Direction hold Время после изменения сигнала Dir после которого можно начинать посылать импульсы Step.
  • Direction setup Время после последнего импульса Step после которого можно менять сигнал Dir

First Parport Base Address Первый адрес из диапазона выделенного LPT порту.
Адрес указанный в этой опции по умолчанию является стандартным адресом LPT порта и поэтому без необходимости менять его не следует.
Но порой отдельные контролёры,особенно сделанные в виде плат расширения могут брать себе
и другие значения адреса,а то и вобще не работать ни с LinuxCNC,ни с MACH’ем.
В этом случае более подробные инструкции ищите в главе
«Настройка LinuxCNC для работы с несколькими LPT портами»

Onscreen prompt for tool change — уведомление о смене инструмента.
Если эта опция включена, то EMC2 будет останавливаться и выдавать сообщение о смене инструмента,
каждый раз, когда в управляющей программе будет встречаться код M6.
Если же вы планируете использовать автоматическую смену инструмента,то галку следовало бы снять.
Но на практике лучше этого не делать,так как автоматическая смена инструмента потребует ручной правки хала,
и вам будет проще отредактировать такую «заготовку»,заменив компонент hal_manualtoolchange на свой,
чем прописывать это в хале с нуля.

Base Period Maximum Jitter Максимальный разброс базового периода реалтайма.
Для настройки этого параметра существует отработанная методика с использованием утилиты latency-test,
но на мой взгляд она приводит к неоправданно большим или маленьким значениям этой величины.
Её можно использовать только для предварительной оценки этого параметра.
Для этого запускаем её в мастере кнопкой «Test Base Period Jitter«,запускаем редактор Gedit,
открываем им довольно крупный фаил,после чего записываем в параметр значение «Max Jitter» из строки «Base thread«.

LinuxCNC.Stepconf.06.3.Hal_Latency_Test.png

Также эту утилиту можно запустить из соответсвующего раздела меню Application Gnom’a или
терминала набрав в нём latency-test .
Правильная настроика этого параметра будет после полного завершения всех других настроек станка.
Моя методика настройки такая:
)Запустить настроенный LinuxCNC,
)Снять блокировку станка клавишей F1 и включить его клавишей F2.
)После чего начать быстро по очереди нажимать клавиши со стрелками вниз-вверх (ось У) или право-лево(ось Х).
)Если при этом произощёл сбой реалтайма,то запускаем мастер и увеличиваем
значение разброса базового периода,если нет,то уменьшаем.
)После того как будет найдено минимальное значение этой переменной,запускаем часто меняющею направление УП,запускаем текстовый редактор Gedit и открываем им текстовый фаил объёмом с среднее значение довольно крупных УП.
)После чего увеличиваем разброс базового периода до значения при котором LinuxCNC будет работать стабильно.
Но это не будет не совсем правильное значение разброса так как Gedit и сам файл откешируются при первом запуске и открытии в ОЗУ компьютера.
Что может привести к сбоям реалтайма если происходит длительное обращение к жёсткому диску,
например для чтения больших файлов.
Поэтому перегружаемся и выполняем тест заного с так называемым холодным стартом программы.

Чтобы не мучится с запуском и проходом мастера для смены одной переменной можно
редактировать эту переменную прямо в файле конфигурации.
Файл находится в папке указанной в параметре Configuration directory из » Параметры станка, контроллера и быстродействия»
имеет расширение *.ini и называется также как и конфиг в переменной Machine Name.
Сидит параметр в секции [EMCMOT] и имя его BASE_PERIOD =

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

( Назад к оглавлению )

Сообщение отредактировал torvn77: 28 Апрель 2014 — 15:48

  • 0

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

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

  • Наверх

#7

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 30 Январь 2014 — 14:52

Добавление пользовательских расширений интерфейса

LinuxCNC.Stepconf.08.3.Run_Include_Code_From_Test.png

  • Include Halui — Добавить пользовательскую панель Halui.
  • Include PyVCP GUI panel — Добавить панель pyVCP.
    См. статью по настройке и применению pyVCP в EMC2
  • Include ClassicLadder PLC — Добавить программируемый контроллер на лестничной логике (Programmable Ladder Logic Controller).

LinuxCNC.Stepconf.08.1.Config_Include_Code.png

LinuxCNC.Stepconf.08.4.Confirm_Replace_Last_Code.png

( Назад к оглавлению )

Сообщение отредактировал torvn77: 01 Февраль 2014 — 16:48

  • 1

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

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

  • Наверх

#8

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 03:22

Распиновка LPT порта

LinuxCNC.Stepconf.12.LPT_Configure.png

Пины с 18 по 25 нулевые.
Выходные пины (Out) 1-9,14,16,17

  • Unused Не использовать пин.
  • Axis Step сигнал Step для драйвера шагового мотора оси Axis,управляется F и командами движения такими как ,G0,G1 и разным модальными кодами
  • Axis Direction сигнал Dir для драйвера шагового мотора оси Axis,управляется F и командами движения ,G0,G1 и разными модальными кодами
  • Spindle ON включение шпинделя,своего М-кода нет,устанавливается при подаче
    команды выбора направленя вращения M3 или M4
  • Spindle CW вращать спиндель по часовой стрелке M3
  • Spindle CCW вращать спиндель против часовой стрелке M4
  • Spindle PWM выход ШИМ/ДИМ сигнала управления частотой вращения шпинделя,управляется S
  • Spindle Brake остановка шпинделя M5
  • Coolant Mist включение стружкоотсоса M7,выключается через общею для M7 и M8 команду отключения охлаждения M9.
  • Coolant Flood включение подачи СОЖ M8,выключается через общею для M7 и M8 команду отключения охлаждения M9.
  • ESTOP Out Подключение логического элемента проводное НЕ-ИЛИ,в нормально состоянии отомкнут от нуля.
    При аварии замыкается аварийным блоком на ноль и вызывает общею остановку всех технологических процессов.
    Практически повторяет сигнал Enabled,по этому его можно назначать на соответсвующии пин платы.
  • Charge Pump это сигнал Enabled промодулированный не известной мне частотой (1~1.5 Кгц?).
    сделан для того,чтобы хаотическое изменение состояния выходных пинов LPT порта не вызывало измения
    состояния управляемого станка,так как оно может в дальнейшем привести станок к порче.
    Как правило для включения для замены сигнала Enabled на этот сигнал на комутационной плате
    надо установить соответсвующею премычку.
  • Digital out 0~3 Сигнал,состоянием которого можно управлять с помощью специальных команд M62~M65.
  • Amplifier Enable ???

Входные пины (In) 10-13,15

  • Unused Не использовать пин.
  • ESTOP In Считывание состояния сигнала ESTOP,в норме он должен быть высоким,
    если обращается в ноль,то происходит аварииная остановка станка.
  • Probe In Подключение датчика длинны инструмента.(Gcod’ы G38.2 ~ G38.5)
  • Digital In 0~3 Сигналы,состояние которых УП может считать с помощью команды M66
  • Home Axis Подключение датчика дома,етот датчик определяет на оси место,
    относительно которого будет выставлен её нуль.
    Положение нуля задаётся координатой датчика в окошке «Настройка линейных осей»,
    праметр Home Switch Location .
  • Minimum Limit Axis Подключение датчика достижения нижней границы оси Axis,
    При этом положение датчика home (Home Switch Location) и рабочей область оси (Table Travel) настраиваются так,
    чтобы датчик Minimum Limit находился вне рабочего пространства.
    Эти параметры находятся в окошке «Настройка линейных осей».
    И так как обычно координаты станка находятся в верхнем левом квадранте то соответсвующее поле
    будет в левой части параметра Table Travel указываемого в настройках соответсвующей оси.
  • Maximum Limit Axis Подключение датчика достижения верхней границы оси Axis,
    При этом положение датчика home (Home Switch Location) и рабочей область оси (Table Travel) настраиваются так,
    чтобы датчик Maximum Limit находился вне рабочего пространства.
    Эти параметры находятся в окошке «Настройка линейных осей».
    И так как обычно координаты станка находятся в верхнем левом квадранте то соответсвующее поле
    будет в правой части параметра Table Travel указываемого в настройках соответсвующей оси.
  • Both Limit Axis Совместное подключение датчиков достижения верхней и нижней границ оси Axis.
  • Maximum Limit + Home Axis Совместное подключение датчиков достижения верхней границы и дома оси Axis.
  • Minimum Limit + Home Axis Совместное подключение датчиков достижения нижней границы и дома оси Axis.
  • Both Limit +Home Axis Совместное подключение датчиков достижения верхней,нижней границы и дома оси Axis.
  • All Limits совместное подключение от всех осей всех датчиков границ.
  • All Home совместное подключение от всех осей всех датчиков дома.
  • All Limits + Home совместное подключение от всех осей всех датчиков дома и границ.
  • Spindle Index ???
  • Spindle Phase A ???
  • Spindle Phase B ???

( Назад к оглавлению )

Сообщение отредактировал torvn77: 07 Февраль 2014 — 04:08

  • 1

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

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

  • Наверх

#9

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 03:57

Настройка линейных осей

LinuxCNC.Stepconf.13.1.Config_X_Axis.png

Далее настраиваем все оси станка:

Motor Steps Per Revolution — количество шагов двигателя на один оборот.
обычно 200,но может быть и другое значение.
Driver Microstepping — настройка микрошага контроллера.
Для микрошага 1:8 устанавливайте «8».
Подробнее об определении микрошага контроллёра можно прочитать здесь:
Подключение и настройка драйвера шагового двигателя
Pulley teeth (Motor:Leadscrew) — передаточное число ременной передачи или редуктора
в формате (обороты на входе) : (обороты на выходе).
Если у вас ни то,ни другое не установлено,то ставте отношение 1:1.
Leadscrew Pitch — шаг ходового винта.
Если вы знаете название винта,то в нём должно быть что-то типа 16х5.
Где 16 диаметр винта/ШВП,а 5 это растояние на которое сместится гайка при одном обороте.
Можно поменять направление движения вдоль оси установив отрицательное значение шага винта.

Maximum Velocity — Максимальная скорость перемещения.
Maximum Acceleration — Максимальное ускорение по данной оси.
Home Location — «Домашняя» позиция оси,это значение примет координата после выполнения поиска машинного нуля.
Значение этого параметра может принимать любое значение в пределах указанного в Table Travel рабочего участка оси.
Я например предпочитаю устанавливать его не в ноль,а в такое положение в котором мне будет удобно крепить заготовку.

Table Travel — Рабочий участок оси от min до max.
При этом концевые датчики (limit) должны быть вне этого диапазона,в противном случае
при занятии крайних положении будет происходить аварийная остановка.
А вот датчики home могут быть как в этом диапазоне,так и вне его (но конечно в пределах лимитов)
Home Switch Location — Положение датчика home,определяющего нуль машинных координат.
(В УП как правило указываются относительные координаты.)
При использовании концевика (limit) в качестве качестве этого датчика
ему следует назначить координаты вне рабочего участка (Table Travel),
иначе при наезде на датчик,который во время работы будет в качестве концевого,
будет аварийная остановка.
При этом типовой настроикой этого параметра будет значение,
меньшее или большее на один милиметр концов рабочего промежутка(Table Travel).
Home Search Velocity — скорость поиска начала оси.
Этот параметр имеет положительное значение,если датчик home находится в конце оси,
и отрицательное,если в начале.
Если концевой датчик расположен рядом с концом оси это значение должно быть выбрано с учетом того,
что станок должен будет успеть остановиться до того как он ударится о конец оси.
Если концевик замыкается только когда ответная часть рядом с ним,
то скорость должна быть выбрана таким образом, чтобы станок успел остановиться до того,как концевик разомкнётся.

Home Latch Direction выподающии список из двух способов определения домашних координат:

  • «Same» При срабатывании датчика home продолжать ехать до тех пор,пока этот датчик не разомкнётся.
  • «Opposite» При срабатывании датчика home остановится и ехать обратно до момента рамыкания датчика.

Способ «Same» следует выбирать если датчик находится в пределах рабочего промежутка,
а способ «Opposite» если он находится с краю или за его пределами.

Ниже находятся вычесленные на основе введённых данных параметры оси:

  • Time to accelerate to max speed — время ускорения до максимальной скорости (время остановки)
  • Distance to accelerate to max speed — дистанция ускорения до максимальной скорости (дистанция остановки)
  • Pulse rate at max speed — частота сигналов на максимальной скорости
  • Axis SCALE — количество шагов в одной единице измерения шагов/мм (шагов/дюйм)

Следует учесть.что скорость движения по оси ограничивается не только параметром «Maximum Velocity«,
но и параметром «Base Period Maximum Jitter» из «Параметры станка, контроллера и быстродействия».

После введения всех параметров ось можно протестировать. Для этого нажимаем Test this axis.
Так же это окошко полезно если вы хотите выставить максимальную скорость при заданном параметре «Base Period Maximum Jitter«.

Ось У настраивается аналогично:
LinuxCNC.Stepconf.13.2.Config_Y_Axis.png

У оси Z датчик home-limit находится на верху,по этому скорость поиска дома положительная.
А сама его координата «Home Switch Location» равна верхнему значению «Table Travel» + 1 =101
LinuxCNC.Stepconf.13.3.Config_Z_Axis.png

Хотя как стало мне известно позднее,промышленным стандартом является расположение нуля по Z на верху оси,
а сама ось изменяется вниз к отрицательному значению.
Так что если всё настраивать по стандарту,то рабочий промежуток (Table Travel) изменяется между отрицательным значением и нулём.
а скорость поиска дома также как и на других осях имеет отрицательное значение.
В общем в постпроцессорах и различных CAD/CAM системах стандартное значение дома по Z равно нулю,
и соответственно надо настраивать LinuxCNC так,чтобы при получении команды в машинных координатах уйти в ноль,
она бы поднимала шпиндель,а не опускала его ломая инструмент и находящиеся в низу части станка.
( Назад к оглавлению )

Сообщение отредактировал torvn77: 26 Апрель 2014 — 00:12

  • 0

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

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

  • Наверх

#10

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 04:39

Конфигурация поворотной оси

LinuxCNC.Stepconf.13.4.Config_A_Axis.png

( Назад к оглавлению )

  • 0

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

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

  • Наверх

#11

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 12:58

Настройка инвертора ( шпинделя )
LinuxCNC.Stepconf.17.Spindle_Configuration.png

Если шпиндель регулируется при помощи ШИМ:
Устанавливаем Carrier frequency (Несущая частота) согласно инструкции к Вашему контроллеру шпинделя.
Устанавливаем — значения скоростей в оборотах в минуту «Speed 1» и «Speed 2» при заданных
значениях ШИМ «PWM 1» и «PWM 2«.
Этими параметрами определяется линейная зависимость скорости шпинделя от значения PWM.
Значения «Speed » изменяются от нуля до максимальной частоты оборотов шпинделя.
Значение «PWM» изменяется от нуля до единицы.
Эту информацию можно найти в инструкции к Вашему контроллеру, либо попробовать определить самостоятельно.
Если написанное вам не понятно,то можете дополнительно прочитать об этом здесь Линк

( Назад к оглавлению )

Сообщение отредактировал torvn77: 02 Февраль 2014 — 05:23

  • 0

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

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

  • Наверх

#12

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 13:41

Завершение работы мастера и результат

( Назад к оглавлению )

Сообщение отредактировал torvn77: 31 Январь 2014 — 23:16

  • 0

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

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

  • Наверх

#13

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 31 Январь 2014 — 23:22

Настройка LinuxCNC для работы с несколькими LPT портами
LPT1 — 0x378
LPT2 — 0x278
LPT3 — 0x3bc
(Назад к «Параметры станка, контроллера и быстродействия»)
(Назад к «Оглавлению»)

Сообщение отредактировал torvn77: 14 Февраль 2014 — 20:10

  • 0

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

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

  • Наверх

#14

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 01 Февраль 2014 — 15:39

Заметки и общие выводы

Назад к оглавлению

Сообщение отредактировал torvn77: 01 Февраль 2014 — 16:10

  • 0

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

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

  • Наверх

#15

OFFLINE
 

Kruzo

Kruzo

    Абитуриент

  • Пользователи+
  • Pip

  • 6 сообщений
  • Из:Lugansk

Отправлено 06 Февраль 2014 — 18:21

Настройка линейных осей
~~~
( Назад к оглавлению )

А как быть если у станка на оси Y два мотора? В Mache они выствлены в паре.

Сообщение отредактировал torvn77: 06 Февраль 2014 — 18:33

Сокращёна избыточно большая цитита

  • 0

  • Наверх

#16

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 06 Февраль 2014 — 18:38

В мастере это не настроить,для внесения больших изменении нужно сделать ручную правку в конфигурационом файле хала.
Что именно делать я пока не знаю,но можем попробовать разобратся,через час создам тему и продолжим разговор там.
Тему создал, линк Объединение двух осей в одну с помощью кинематики gantry_kins

Сообщение отредактировал torvn77: 07 Февраль 2014 — 05:11

  • 0

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

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

  • Наверх

#17

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 25 Апрель 2014 — 12:56

pik в личке писал:

Контроллер работает с LowActive Dir и step. (т.е. в матче стоят галочки). А в LunixCNC есть галочки инвертировать, там по умолчанию также стоит низкий уровень, т.е. для высокого также ставить галочки ?

Ну дак инвертирование и есть инвертирование,то есть изменение на противоположное.
Так что конечно да.

П.С.Проверил stepconf,галочки инвертирования пинов там по умолчанию сняты,так что активный уровень там по умолчанию высокии,а не низкии.

Сообщение отредактировал torvn77: 26 Апрель 2014 — 00:13

  • 1

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

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

  • Наверх

#18

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 26 Апрель 2014 — 16:45

pik в личке писал:

Траектории загружаются. На экране справа видна заготовка и её размеры. Только почему то не активна кнопка «Начать исполнение текущего файла ®». Подскажите пожалуйста в чём может быть причина.

)Сначала самой правой кнопкой или клавишей F1 надо снять сигнал блокировки станка
)Затем F2 включить станок
)Затем нажав кнопку Home all инициализировать координаты станка,сами понимаете,если они не совпадут с реальными,
то исполнение УП закончится аварией.

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

Назад к оглавлению

Сообщение отредактировал torvn77: 26 Апрель 2014 — 16:55

  • 0

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

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

  • Наверх

#19

OFFLINE
 

novarobotix

novarobotix

  • Пол:Мужчина
  • Интересы:главное чтобы палочки от мороженного не кончались
  • Из:магадан

Отправлено 27 Июль 2014 — 10:33

в каком файле хранятся параметры Step Time Step Spase для настройки шагового мотора?

в ini и hal файлах не нашёл

если шаговые моторы на осях разные тогда как?

  • 0

мне не нужна война.мне нужен МИР. желательно весь…

  • Наверх

#20

OFFLINE
 

torvn77

torvn77

  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 27 Июль 2014 — 17:27

Запускаем LinuxCNC с сделаным в stepconf конфигом и проводим сеанс работы с консолью(терминалом):

ubuntu@ubuntu:~$ halcmd show param stepgen
Parameters:
Owner   Type  Dir         Value  Name
     8  u32   RW     0x0000C30F  stepgen.0.dirhold
     8  u32   RW     0x0000C30F  stepgen.0.dirsetup

     8  float RO              0  stepgen.0.frequency
     8  float RW             60  stepgen.0.maxaccel
     8  float RW              0  stepgen.0.maxvel
     8  float RW            800  stepgen.0.position-scale
     8  s32   RO              0  stepgen.0.rawcounts
     8  u32   RW     0x0000C30F  stepgen.0.steplen
     8  u32   RW     0x0000C30F  stepgen.0.stepspace

 

ubuntu@ubuntu:~$ halcmd show param parport
Parameters:
Owner   Type  Dir         Value  Name
     9  u32   RW     0x00000000  parport.0.debug1
     9  u32   RW     0x00000000  parport.0.debug2
     9  bit   RW          FALSE  parport.0.pin-01-out-invert
     9  bit   RW          FALSE  parport.0.pin-01-out-reset
     9  bit   RW          FALSE  parport.0.pin-02-out-invert
     9  bit   RW          FALSE  parport.0.pin-02-out-reset
     9  bit   RW          FALSE  parport.0.pin-03-out-invert
     9  bit   RW          FALSE  parport.0.pin-03-out-reset
     9  bit   RW          FALSE  parport.0.pin-04-out-invert
     9  bit   RW          FALSE  parport.0.pin-04-out-reset
     9  bit   RW          FALSE  parport.0.pin-05-out-invert
     9  bit   RW          FALSE  parport.0.pin-05-out-reset
     9  bit   RW          FALSE  parport.0.pin-06-out-invert
     9  bit   RW          FALSE  parport.0.pin-06-out-reset
     9  bit   RW          FALSE  parport.0.pin-07-out-invert
     9  bit   RW          FALSE  parport.0.pin-07-out-reset
     9  bit   RW          FALSE  parport.0.pin-08-out-invert
     9  bit   RW          FALSE  parport.0.pin-08-out-reset
     9  bit   RW          FALSE  parport.0.pin-09-out-invert
     9  bit   RW          FALSE  parport.0.pin-09-out-reset
     9  bit   RW          FALSE  parport.0.pin-14-out-invert
     9  bit   RW          FALSE  parport.0.pin-14-out-reset
     9  bit   RW          FALSE  parport.0.pin-16-out-invert
     9  bit   RW          FALSE  parport.0.pin-16-out-reset
     9  bit   RW          FALSE  parport.0.pin-17-out-invert
     9  bit   RW          FALSE  parport.0.pin-17-out-reset
     9  s32   RO           5901  parport.0.read.time
     9  s32   RW         165363  parport.0.read.tmax
     9  u32   RW     0x00000000  parport.0.reset-time
     9  s32   RO              0  parport.0.reset.time
     9  s32   RW              0  parport.0.reset.tmax
     9  s32   RO          11998  parport.0.write.time
     9  s32   RW         175351  parport.0.write.tmax
     9  s32   RO              0  parport.read-all.time
     9  s32   RW              0  parport.read-all.tmax
     9  s32   RO              0  parport.write-all.time
     9  s32   RW              0  parport.write-all.tmax
 

После чего порывшесь в hal файлах находим:

setp parport.0.reset-time 3140

setp parport.0.pin-02-out-reset 1

setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 28800
setp stepgen.0.dirsetup 28800

       …..

Сообщение отредактировал torvn77: 27 Июль 2014 — 18:02

  • 0

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

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

  • Наверх

Содержание

  1. Crafting.be
  2. When engineering is in blood
  3. Метки
  4. Погружение в LinuxCNC
  5. Table of Contents
  6. Что такое LinuxCNC?
  7. Состав LinuxCNC
  8. RealTime Linux ядро
  9. Драйвера
  10. Подсветка синтаксиса
  11. Внутренняя архитектура
  12. Набор графических интерфейсов
  13. Измерительные и вспомогательные утилиты.
  14. cnc-club.ru
  15. Конфигурация EMC2 LinuxCNC
  16. Содержание
  17. Выбор конфигурации
  18. Параметры станка, контроллера и быстродействия
  19. Настройки пинов LPT
  20. Настройка осей станка
  21. LinuxCNC для чайников
  22. Содержание
  23. НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual
  24. Глава 1. Важные определения
  25. Глава 2. Аппаратное обеспечение (Hardware)
  26. Глава 3. Конфигурационные файлы
  27. Глава 4. Файл INI
  28. Глава 5. EMC2 и HAL
  29. Глава 6. КОМАНДЫ
  30. BIT или не BIT? Вот в чём вопрос!
  31. Нужно ли изобретать велосипед или Компоненты реального времени. Часть 1.
  32. Компоненты реального времени. Часть 2.
  33. Своя панель. Первые шаги.
  34. Как «прикрутить» свою панель к «стандартной»?
  35. Как «связать» кнопки своей панели с CNC?
  36. Как не запутаться в сложной схеме CNC?
  37. cnc-club.ru
  38. Конфигурация EMC2 LinuxCNC
  39. Содержание
  40. Выбор конфигурации
  41. Параметры станка, контроллера и быстродействия
  42. Настройки пинов LPT
  43. Настройка осей станка
  44. Руководства по настройке LinuxCNC/EMC2 для работы через LPT порт для чайников

Crafting.be

When engineering is in blood

Show menu Hide menu

nUyjwXJr normal

nUyjwXJr normal

nUyjwXJr normal

@hobbyworld_twit a world war of cthulhu чей?

nUyjwXJr normal

@turbojedi Клаву хардварную была попытка сделать?

nUyjwXJr normal

nUyjwXJr normal

@001iz @Graveraider Всегда был вопрос а как у Evil персонажей могут быть романтики. Там скорее как в KoToR прогибание под свою сторону силы.

nUyjwXJr normal

@Graveraider @001iz Q: Есть ли в игре романы? A: Да. Вы можете завести роман с 4 компаньонами, 2 из которых бисексуальны.

nUyjwXJr normal

Советуем посмотреть также Сайт Некроманта

Метки

Погружение в LinuxCNC

Статья для тех кто плохо знает английский и не любит читать километры форумов

wpid

Table of Contents

Что такое LinuxCNC?

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

LinuxCNC — набор утилит который позволяет сделать из вашего компьютера стойку управления ЧПУ. Он позволяет программно генерировать шаги в случае управление по типу STEP-DIR-ENABLE, обрабатывать информацию с датчиков, позволяет вам собрать собственную заточенную под ваш станок — панель управления.

Ну а также LinuxCNC поддерживает работу с промышленными платами с аппаратной обработкой G-code — так называемые Mesa платы.

Состав LinuxCNC

RealTime Linux ядро

Драйвера

Также ведутся работы(не могу оценить степень их активности), по реализации real time управления через Ethernet.

USB — использует буфферицацию и и говорить о настоящем real time не получается, в общем, с этим все сложно.

Итак представьте что вы делает сложную дугу, дугу можно представить как набор ступенчатых шажков.

wpid

Чем меньше размер шагов тем ближе мы к реальному изображению кривой, конечно это зависит и от минимального шага станка.. ну да ладно. В общем если наша задача увеличить частоту с которой компьютер передает сигналы управляющей плате, то нужно уменьшать параметр jitter time, один из способов это увеличение частоты процессора, также можно избавляться от «лишних» процессов в системе, ну там браузер выключить, музыку на этом компьютере не слушать, compiz отрубить, network demon-а развеять…. ИЗБАВИТСЯ ОТ ГРАФИЧЕСКОГО СЕРВЕРА, но это совсем хардкор и теоретически linuxcnc предполагает клиент-серверную модель, так что интерфейс будет работать на компе с браузерами и прочими кофеварками, а преобразователь G-code и вся управляющая логика на другом.

Другой вариант использовать другой вариант и на железе с помощью ПЛИС преобразовывать G-code в управляющие сигналы, количество читаемых/передаваемых компьютером команд заметно уменьшиться, для этого и существуют MESA платы стоят они дороже чем PCI-parrport переходник.

Итак каждый компонент в HAL представлен черным ящиком с некоторым количеством ножек, каждая ножка обладает такими свойствами, как вход/выход а также тип передаваемого по ней сигнала. Ещё есть псевдо ножки, это константы, параметров компонента.

Все это похоже на блоксхемы и в итоге можно представить как вот такую вот схему(чем-то напоминает LabView, но увы удобного редактора нет).

wpid stepper mm

Также с помощью специального синтаксиса макросов и языка С, можно создавать свои компоненты, с помощью утилиты comp.

Подсветка синтаксиса

Внутренняя архитектура

Здесь представлены компоненты HAL а также их деления на real time и non real time

wpid EMC Control LG

Набор графических интерфейсов

wpid

Измерительные и вспомогательные утилиты.

halmeter и halscope позволяют отслеживать сигналы проходящие между компонентов, разница такая же как между вольтметром и осциллографом.

wpid halmeter

wpid halscope

Источник

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

Конфигурация EMC2 LinuxCNC

file.php?avatar=53 1288262559

Сообщение Nick » 25 окт 2010, 12:36

Содержание

Выбор конфигурации

Параметры станка, контроллера и быстродействия

Настройки станка
Вводим название станка, в документации говорится, что можно использовать заглавные и строчные буквы, цифры и знаки «-» и «_».
Выбираем конфигурацию осей. XYZ (Фрезер), XYZA (4-х осевой фрезер) или XZ (Токарный станок). Названия только для примера. Если у Вас двух осевой станок, то можете выбрать XYZ, и ось Z оставить не настроенной.
Единицы измерения станка: дюймы или миллиметры.

Настройки контроллера
Можно выбрать из набора предустановленных параметров если Ваш контроллер в список. Или настроить все самому.
Параметры Step time, Step space, Direction hold, Direction setup смотрите в документации к вашему контроллеру.

Настройки lpt
Если у Вас только один lpt, то можно ничего не трогать по умолчанию стоит установка стандартного адреса lpt порта.

Base period зависит от параметров компьютера. Правильно определить base period можно при помощи утилиты Latency test, она тоже входит в состав EMC2. Latency это задержка с которой компьютер может остановить процесс работы для обработки внешнего запроса. В нашем случае, запросом является периодичный «heartbeat» (стук сердца) на основе которого вычисляется нужное время для следующего шага. Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.

Итак, запускаем Latency test, и пытаемся нагрузить компьютер разными задачами, чтобы наверняка получить максимальную задержку. Можно запустить проигрываться фильм, полазить по интернету, скопировать большой файл, перемещать окна. Через несколько минут смотрим значение Base thread Max jitter (максимальное дрожание base period) и вставляем это значение в соответствующую строку в Stepconf.

Настройки пинов LPT

Настройка осей станка

Далее настраиваем все оси станка:

Источник

LinuxCNC для чайников

Содержание

НАЧАЛО. ОПИСАНИЕ EMC2 или EMC2 Integrators Manual

И почему электронщики не понимают программистов? А ведь учились в соседних группах.

Начнём разборку тоже с этого описания.

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

Никаких проблем. Всё понятно. Идём дальше.

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

И опять всё понятно. Тест несложный. Данные записаны.

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

И тут всё в порядке.

Вот и подошел я к INI-файлу.

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

Тут без понимания HAL-файла не обойтись.

Глава 5. EMC2 и HAL

И вот первая строка:

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

Перечитал пару раз. Непонятно. Пропустил и полез дальше. Ещё более непонятно. Открыл HAL у себя и стал читать, взирая на реальный текст реального HAL-а. Стал понимать структуру самого файла. Но что там написано.

После двух недель стало ясно следующее:

Итак, эти маленькие программки называют КОМПОНЕНТАМИ. У каждого компонента есть своё ИМЯ.

2. У каждого компонента есть контакты (клеммы, разъемы) входов и выходов. Их называют ПИНы. У каждого компонента пинов может быть различное количество. У каждого пина есть своё имя. Пины бывают входные и выходные. А записывать это имя пина договорились так:

(имя компонента).(имя пина)

ВАЖНО! Не стоит верить имени пина в части входной он или выходной. Есть случаи, когда в названии пина есть «in» или «out@? а на самом деле всё обстоит совсем не так. Так где же узнать входной это пин или выходной?

Вариант 1. Почитать мануал (описание) EMC2. Там это выглядит как-то так:

— как мы уже разобрались, эта запись означает, что это выходной пин coolant-flood компонента iocontrol.0

Компоненты могут «соединяться» между собой посредством связей (проводки между входами и выходами). Тут есть тоже свои правила: 1. Чтобы не путаться, договорились каждую связь обзывать своим именем.

В этом случае, запись «коммутации» двух компонентов будет выглядеть так:

Возможно эту запись сделать так:

— как вам будет удобнее и понятнее. Кстати, эти две строчки могут быть записаны в разных местах HAL-файла.

Есть и второе правило при записи связи:

2. К одному выходному пину можно подсоединить несколько входных пинов. Но один входной пин можно подсоединить только к одному выходному пину.

Глава 6. КОМАНДЫ

Вот приходите вы домой (вошли в систему), подошли к телевизору, нажимаете на пульте 5 канал (обращаетесь к компоненту) и. А экран-то тёмный! Оказывается телевизор-то не включили.

Так мы подошли к понятию КОМАНДЫ.

, что означает: загружаем (loadrt) компонет stepgen с некоторыми установками (step_type=0,0,0,0), о которых поговорим позже.

ВАЖНО! Эти команды должны быть обязательно! Именно они определяют: какими компонентами мы собираемся пользоваться и какие требования к этим компонентам мы предъявляем по скорости.

Например, нам нужно подать высчитанный программой сигнал Step на два контакта LPT-порта (мы пожелали управлять через отдельные драйвера двумя шаговиками по координате X). Для этого мы должны написать:

Т.е. главное в этой команде:

Стрелочки => и Ура Линуксу или ошибки, ошибки и ошибки.

Что бы мы делали, если бы LinuxCNC не проверял ошибки ДО начала работы? А ведь проверяет!

Изменили мы ini- и hal-файлы, запустили EMC2 и. Получили сообщение об ошибке. Что с ним делать? И ведь понаписано много! Разберёмся последовательно:

А вот тут уже поинтереснее. Например вот эта строка у меня не понравилась EMC2:

Расшифровка: в файле 333.hal в строке 105 прописан пин axis.3.amp-enable-out, которого просто нет. Забыл я подчистить остатки от четвертой оси, которую изничтожил на корню. Удалил и всё заработало!

«И это меня радует!» («Килаграмм»)

BIT или не BIT? Вот в чём вопрос!

Захотели, например, мы включать и выключать внешний двигатель, управляемый stepgen.2, командой из g-кода.

Прописываем связь этих пинов в hal:

(это означает: создаём связь upr для соединения выходного пина analog-out-00 компонента motion со входным пином enable компонента stepgen.2)

Нужно ли изобретать велосипед или Компоненты реального времени. Часть 1.

Например, не запускать станок, пока точно не будет ясно, что оператор нажал две кнопки безопасности, разнесенные подальше друг от друга 😉

Пропишем эти две кнопки:

а дальше нужно включать станок только если эти «кнопочки» (start1 и start2) нажаты (= 0). Сделаем это через пины

Т.е. условием включения станка должно быть:

Мы, как электронщики, прекрасно знаем, что это легко реализовать через двух-входовый элемент ИЛИ-НЕ и двух-входовый И

Тогда на выходе, при start1 = 0 и start2 = 0, получим тот же уровень, что и axis.0.amp-enable-out и передаём его на stepgen.0.enable

И так по всем трем осям.

А, если хотя бы один start (хотя бы одна кнопка) равен 1 (отжата), то stepgen.0.enable равен 0 (False) и движение по осям прекращается.

Что нам может предложить CNC из стандартного набора компонентов?

Пропишем всё в логике CNC (только одну координату для краткости):

Вроде всё. НЕТ! Опять забыли для начала «включить» компоненты и определить их в нужном потоке. Мы используем один компонент or2, один компонент not и один компонент and2 (для одной оси) или три компонента and2 (для трёх осей). Получается всё вместе:

Здесь loadrt and2 count=3 говорит о том, что мы будем использовать компонент 2-И трижды.

Это пример использования готовых компонентов для реализации «цифровой схемы». Но это далеко не все возможности компонентов реального времени.

Компоненты реального времени. Часть 2.

Аналогично «цифровым» прототипам в LinuxCNC есть и «аналоговые» компоненты:

Своя панель. Первые шаги.

В процессе отладки своего станка часто возникает потребность визуального контроля процесса или оперативного изменения параметров работы станка. Как это реализовать, если на стандартной панели таких элементов нет? Конечно, сделать эти элементы самостоятельно!

Начнём с простого примера. Нужно контролировать состояние сигналов stepgen.0.enable, stepgen.1.enable и stepgen.2.enable.

Светодиоды! Вот что нам понадобится. Но не настоящие из кремния и пластика, а «нарисованные». 😉

1. Создаём файл с именем ledall.xml

Делаем его в обычном текстовом редакторе.

3. Создаём файл ledall.hal и прописываем в нём:

Теперь мы можем видеть состояние наших двигателей во время работы станка.

Как «прикрутить» свою панель к «стандартной»?

Свою панель вырисовываем в Glade (это такая программа для создания визуальной панели) и сохраняем в папке конфигурации под именем mygui.ui При прорисовывании в Glade брать «кнопки» и «индикаторы», по возможности, из меню HAL_PYTHON

Как «связать» кнопки своей панели с CNC?

Для связи нашей панели с CNC используем пины различных компонентов.

2. В описании EMC2 внимательно читаем о пинах компонента halui Например, Мы хотим на своей панели поставить индикатор «E-STOP». Берем в Glade в разделе «HAL_PYTHON» индикатор LED (он, например, прописал свой пин как hal_led1 Ищем соответствующий пин в halui:

Прописываем в postgui.hal (связываем эти два пина):

Теперь у нас индикатор на панели показывает состояние E-STOP.

Как не запутаться в сложной схеме CNC?

Как только мы начинаем понимать основы LCNC, то начинаем творить!

И натыкаемся на вопрос: как не запутаться в множестве связей? А ведь каждая связь должна иметь своё имя!

Я поступаю так: Даю каждой связи имя по имени выхода компонента (ведь выходы компонентов в LCNC объединять нельзя!). Например:

Источник

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

Конфигурация EMC2 LinuxCNC

file.php?avatar=53 1288262559

Сообщение Nick » 25 окт 2010, 12:36

Содержание

Выбор конфигурации

Параметры станка, контроллера и быстродействия

Настройки станка
Вводим название станка, в документации говорится, что можно использовать заглавные и строчные буквы, цифры и знаки «-» и «_».
Выбираем конфигурацию осей. XYZ (Фрезер), XYZA (4-х осевой фрезер) или XZ (Токарный станок). Названия только для примера. Если у Вас двух осевой станок, то можете выбрать XYZ, и ось Z оставить не настроенной.
Единицы измерения станка: дюймы или миллиметры.

Настройки контроллера
Можно выбрать из набора предустановленных параметров если Ваш контроллер в список. Или настроить все самому.
Параметры Step time, Step space, Direction hold, Direction setup смотрите в документации к вашему контроллеру.

Настройки lpt
Если у Вас только один lpt, то можно ничего не трогать по умолчанию стоит установка стандартного адреса lpt порта.

Base period зависит от параметров компьютера. Правильно определить base period можно при помощи утилиты Latency test, она тоже входит в состав EMC2. Latency это задержка с которой компьютер может остановить процесс работы для обработки внешнего запроса. В нашем случае, запросом является периодичный «heartbeat» (стук сердца) на основе которого вычисляется нужное время для следующего шага. Для того, чтобы контроллер работал правильно и не пропускал шаги минимальный base period должен быть равным длительность direction setup+direction hold+step space+maximum latency.

Итак, запускаем Latency test, и пытаемся нагрузить компьютер разными задачами, чтобы наверняка получить максимальную задержку. Можно запустить проигрываться фильм, полазить по интернету, скопировать большой файл, перемещать окна. Через несколько минут смотрим значение Base thread Max jitter (максимальное дрожание base period) и вставляем это значение в соответствующую строку в Stepconf.

Настройки пинов LPT

Настройка осей станка

Далее настраиваем все оси станка:

Источник

Руководства по настройке LinuxCNC/EMC2 для работы через LPT порт для чайников

формирование скелета мануальника закончено,хотя сам он ещё в процессе написания.
Можно критиковать,предлагать и спрашивать о том что не ясно.

У Вас есть право на распространение и/или изменение этого документа в рамках GNU Free Documentation Licence версия 1.1
или любой другой более поздней версии опубликованной Free Software Foundation без неизменяемых разделов,
без передней обложки и одной фразой на задней обложке
«Это руководство по LinuxCNC продукт нескольких авторов пишущих для сайта mir-cnc.ru.
Если вы найдете его полезным в своей работе, мы приглашаем Вас внести свой вклад в его доработку и расширение.»
Ознакомится с лицензией можно на сайте GNU на странице «GNU Free Documentation License (GFDL)».
Если вы не найдете там лицензию, вы можете заказать копию в Free Software Foundation, Inc. по адресу:
59 Temple Place, Suite 330 Boston, MA, 02111-1307.

При написании мануальника я использовал сведения взятые с сайта cnc-club.ru,
а также получал помощь от форумчан с этого сайта,за что выражаю им свою не искреннею благодарность :).

Общие сведения о станке

Компьютер с которого осуществляется управление станком
)Двуядерный процессор AMD частотой 3 Ггц.
)Память DDR2 800 Мгц,4 ГБ.
Так много потомучто более мелких модулей у меня нету.а покупать специально жаба душит.
а так для работы должно хватить 500 Мб + файл подкачки на диске.

Плата согласовния компьютера и станка PLC4x-G2 производства Пурелогик имеет:
)Один ШИМ (или всётаки ДИМ?) декодер с оптической отвязкой от платы
)Два реле включаемых пинами порта LPT
)Одно реле включаемое с пина LPT или детектором сигнала ( Charge Pump, PWM шпинделя) по выбору.
К сожалению,что в первой,что во второй проданной мне плате клеммы
для подключения силовой нагрузки не образуют электрического контакта с платой.
Поэтому управляемую нагрузку мне пришлось припаивать к плате непосредственно.
)Плата активируется как постоянным сигналом ENABLED,так и модулированным частотой,называемый ChargePump.
Выбор между сигналами осуществляется с помощью микропереключателя.

БУ станка состоит из блоков питания,аналоговых драйверов Leadshine и инвертора HOLIP-A,
который управляется одним реле и аналоговым сигналом от ШИМ декодера.
Размер по Х 700 мм,по У 800 мм,по Z 100 мм.
Датчик home-limit осей Х и У находится в начале координат,т.е. с права для оси У,и спереди для оси Х.
или Х=У=(-1)
У оси Z датчик находится в верхнем положении,в соответсвии с промышленным стандартом его координата равна +1,
а сама ось направлена вниз и принимает отрицательные значения.

Минимальные и достаточные требования к компьютеру
)Наличие в составе компьютера внешнего или внутреннего (т.е. на материнской плате) контролёра LPT.
Настройку LinuxCNC для работы с аппаратными контролёрами этот мастер не поддерживает и для этого
надо использовать мастер Pncconf.

)x86 совместимый процессор уровня Pentium II/III с частотой 400 МГц и выше.
Для минимального запуска оболочки пользователя установленной на диск Ubuntu надо
128

256 Мб памяти ОЗУ и файл или раздел подкачки (далее swap) размером

400 МБ.
для комфортной работы в системе от 512 МБ.
После 1 Гб swap можно отключить совсем.

)какой бы компьютер ни был,а из-за того,что большое количество дисковых операций может вызвать срыв реалтайма
диск надо пусть и не большой,но быстрый,по возможности SSD.
Объём менее кретичен,для установки системы хватает 16 GB.
( Назад к оглавлению )

Начало работы мастера

Меню запуска программ во втором Gnom’e находится в верхнем левом углу экрана.
Откройте его хлопнув левой кнопкой мышки по находящемуся с лева от слова Application составному колечку.
Потом проводя мышкой над соответсвующими словами войдите в показанное на картинке субменю и
запустите мастер Stepconf опять таки хлопнув по нему левой кнопкой.
(В общем в смысле мышекликанья тут всё также,как и в винде)

post 5569 0 52632900 1391016792

В первом окошке никаких настроек не делается,просто даются объяснения чегото там на англиском.
Хлопаем по кнопке Forward (т.е. Вперёд) и переходим к следующему окну,
в котором предлагают решить будем мы создавать конфиг заново,
или воспользуемся информацией о старом.

post 5569 0 78061200 1391016870

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

post 5569 0 10376700 1391110887

Сначала посмотрим в нижнею часть диалогового окна и видим там две галочки,
При установке одного на рабочем столе создаётся ярлык для папки с файлами создаваемой мастером кофигурации,
при установке другого создаётся *.desktop файл Gnom’a.
В общем если создать несколько конфигурации с разными именами,
то кликая по этим файлам можно выбирать,то с какими конфигами LinuxCNC будет запущен.
Также если запустить текстовый редактор и открыть им этот файл,то в соответсвующей строке можно увидеть
команду запуска с путём к главному конфигурационному файлу в качестве параметра.
При желании эту строку можно отредактировать,изменить путь к конфигам или добавить дополнительные опции запуска.

В верхней части окна находится переключатель выбора между созданием (Create) и редактированием (Modifi) уже созданного конфига.
Вот собствено можно увидеть эту часть окошка с переключателем в положении выбора редактирования уже сделанных конфигов.

post 5569 0 84485200 1391110896

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

post 5569 0 50011400 1391114277

Сам по себе этот файл является документом в формате xml,
используется только мастером Stepconf и никак в работе LinuxCNC собственно не участвует.
Хранить и открывать мастером его можно в любом месте,в любом случае мастер будет
создавать папку с конфигурационными файлами и новый файл *.stepconf
заново в стандартной папке для хранения конфигов.
(

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

Параметры станка, контроллера и быстродействия

post 5569 0 49683200 1391023719

Machine Name название создаваемого конфига.
Для него можно использовать заглавные и строчные буквы,цифры и знаки «-» и «_».
LinuxCNC не поддерживает для разных задач разные профили,вместо этого для каждого конфига создаётся с этим именем отдельная папка,
в которой конфиг и хранится вместе с сопутсвующими ему файлами.
Выбор конкретного конфига осуществляется запуском LinuxCNC через соответсвующии ярлык
или если вы забыли в » Начало работы мастера » его создать,
непосредственным вызовом из консоли,способом указывания в параметрах вызова пути к главному *.ini файлу.
Например для пользователя с именем «cnc» и названием конфига «Purelogic_PLC4x-G2»
вызов LinuxCNC c соответствующим профилем будет выглядеть так:

Configuration directory не редактируемый параметр,который показывает путь к папке с создаваемыми конфигами.

Base Period Maximum Jitter Максимальный разброс базового периода реалтайма.
Для настройки этого параметра существует отработанная методика с использованием утилиты latency-test,
но на мой взгляд она приводит к неоправданно большим или маленьким значениям этой величины.
Её можно использовать только для предварительной оценки этого параметра.
Для этого запускаем её в мастере кнопкой » Test Base Period Jitter«,запускаем редактор Gedit,
открываем им довольно крупный фаил,после чего записываем в параметр значение » Max Jitter» из строки » Base thread«.

post 5569 0 94180300 1391023747

Чтобы не мучится с запуском и проходом мастера для смены одной переменной можно
редактировать эту переменную прямо в файле конфигурации.
Файл находится в папке указанной в параметре Configuration directory из » Параметры станка, контроллера и быстродействия»
имеет расширение *.ini и называется также как и конфиг в переменной Machine Name.
Сидит параметр в секции [EMCMOT] и имя его BASE_PERIOD =

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

Источник

Понравилась статья? Поделить с друзьями:
  • Парламент россии руководство
  • Инструкция по применению дезинфицирующих растворов в школе
  • Просис вольво онлайн мануал
  • Милдронат цена в барнауле инструкция по применению
  • Хлебопечка silvercrest kh 1171 инструкция на русском