X-Cam

раздел находится в стадии разработки


Архитектура X-Cam

Описание контроллера X-Cam

Описание интерфейса программы - оболочки X-Cam

Элементы управления главного окна X-Cam

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

Окно настроек

Работа с несколькими конфигурациями

Настроечные параметры

Настройка производительности

Команды, поддерживаемые X-Cam

Возможности X-Cam

Резка пленки - ведомая поворотная ось
Прототипирование печатных плат - пример интеграции с другими программами

 


 

 

Архитектура X-Cam

X-Cam представляет собой распределенную систему, условно делящуюся на терминальную программу(X-Cam) и контроллер станка.

Терминальная программа реализует интерфейс пользователя, высокоуровневые функции управления станком. X-Cam тестировалась только на системах Windows 2000-XP.

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

Связь X-Cam с контрллером осуществляется по внутреннему протоколу управления на базе пакетов, снабженных контрольной суммой через интерфейс USB.

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

 

Описание контроллера X-Cam

Контроллер X-Cam имеет следующую функциональность:

  1. Упраление драйверами STEP/DIR
  2. Интерполяция одновременно 5 осей на частоте сигнала STEP до 17 кГц
  3. Три канала входов - концевики, нули и измерители.
  4. Опторазвязка входов, опторазвязка с компьютером.
  5. Полная поддержка частотных преобразователей шпинделей (включение/реверс/частота)
  6. Поддержка шпинделей с другими интерфейсами.
  7. 3 канала реле 220В 7А
  8. 5 каналов выходов, конфигурируемых и управляемых из X-Cam
  9. Питание 12 В
  10. Световая и звуковая сигнализация состояния

 

 

Описание интерфейса программы - оболочки X-Cam

X-Cam v2 имеет простой интерфейс, включающий в себя только самые необходимые элементы управления. Остальные элементы, команда спрятаны в системе меню. Это позволяет очень быстро делать то, что нужно.

На рисунке показан скриншот окна программы X-Cam с активным модулем заточки фрез и 3D-визуализатором. Описание элементов окна программы смотрите ниже.

Элементы управления главного окна X-Cam

Интерфейс C-Cam

Описание элементов управления окна:

  1. Главное меню программы
    Содержит в себе все команды, настройки, опции, спски недавно открытых файлов и проч.

  2. Строка заголовка программы
    Показывает, что мы работаем в конфигурации regrind, загружен модуль заточки фрез, без подключения к контроллеру станка(автономно)

  3. Регулятор скорости работы станка
    Позволяет менять скорость осей налету. Галочка Огр. ограничивает изменение скорости для достижения равномерной скорости перемещения портала в разных направлениях.

  4. Кнопки сворачивания / разворачивания / закрытия окна программы.

  5. Столбец кнопок режимов отображения визуализатора.
    Вращение, масштабирование, изменение точки просмотра.

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

  7. Включение/отключение шпинделя.
    Ручное управление шпинделем. Обычно, за управление шпинделем отвечает загруженный модуль, который включает/отключает шпиндель в зависимости от реализуемых в данный момент модулем операций.

  8. Индикация положения осей.
    Строка кнопок-индикаторов положения осей, позволяющая наблюдать или устанавливать новое положение оси.

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

  10. Step и поле ввода
    Позволяет выполнять дискретные перемещения на 10 мм, 1 мм, 0,1мм, 1 шаг по любой оси. То же относится и к поворотным осям., только единицы измерения - градусы.

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

  12. Строка состояния
    Отображает состояние станка, модуля и пр.

  13. Окно сообщений
    Принципиальная для X-Cam возможность общения с оператором, который может выводить сюда любые настраиваемые типы сообщений. Окно можно убирать.

  14. Кнопки задач модуля

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

    !!! Для простого интерполятора G-кода интерфейс панели слева приведен на рисунке ниже.

  16. Панель инструментов
    Быстрый доступ к командам X-Cam

 

X-Cam с модулем по-умолчанию, интерполятором G-кода(левая часть окна программы), выглядит следующим образом:

Интерфейс модуля интерполяции и редактора G-кода

 

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

в разработке

Окно настроек

в разработке

 

 

Работа с несколькими конфигурациями

X-Cam основан на системе профилей, что позволяет с одного компьютера управлять несколькими станками, храня настройки каждого станка в своем профиле.

Профили находятся в каталоге  <папка_программы>\profiles. Каждый профиль расположен в отдельном каталоге, название которого и является именем профиля.

X-Cam имеет профиль по-умолчанию, с именем main, который запускается при вызове программы без аргументов. Для загрузки иного профиля, его имя нужно указать в командной строке запуска программы, например в свойствах ярлыка:

W:\Work\stanok\PROGRAMS\X-Cam\X-cam2.exe profile:regrind

Все настройки профиля хранятся в текстовом ANSI файле:

<имя_профиля>\conf.txt

Плагины, загружаемые вместе с профилем, находятся в каталоге:

<имя_профиля>\PLUGINS

Плагин, загружаемый по-умолчанию, указан в параметре Default_APP файла настроек профиля.

Все плагины текущего профиля доступны из меню {F5}.

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

 

Настроечные параметры

В файле настроек профиля, а так же модулей принят следующий синтаксис настроечных параметров:

Шагов_на_мм_оси_Z;1000;16;SaveConf

Через точку с запятой последовательно идет:

!!! Настройки могут, конечно, меняться в файле непосредственно, например в программе "Блокнот", но рекомендуется пользоваться интерфейсом X-Cam для настройки ее конфигурации, тем более, что все изменения, вносимые через этот интерфейс, вступают в силу немедленно, без перезагрузки.

 

Приоритет_потока_интерполятора

Тип: целое.

Определяет приоритет, с которым выполняется программа: 1 - высокий; 2 - реального времени.

COM-порт

Тип: целое.

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

Подключать_МК_при_загрузке

Тип: целое.

При значении 1 в момент запуска программы осуществляется подключени е к плате управления. 0 - X-Cam работает с виртуальным станком.

Длина_оси_X_мм

Тип: целое.

Задает рабочий ход по оси X.

Длина_оси_Y_мм

Тип: целое.

Задает рабочий ход по оси Y.

Длина_оси_Z_мм

Тип: целое.

Задает рабочий ход по оси Z.

Шагов_на_мм_оси_X

Тип: целое.

Задает разрешающую способность оси X, шагов на 1 милиметр.

Шагов_на_мм_оси_Y

Тип: целое.

Задает разрешающую способность оси Y, шагов на 1 милиметр.

Шагов_на_мм_оси_Z

Тип: целое.

Задает разрешающую способность оси Z, шагов на 1 милиметр.

Шагов_на_оборот_оси_A

Тип: целое.

Задает разрешающую способность оси A, шагов на 1 оборот.

Шагов_на_оборот_оси_B

Тип: целое.

Задает разрешающую способность оси B, шагов на 1 оборот.

Шагов_на_оборот_оси_C

Тип: целое.

Задает разрешающую способность оси C, шагов на 1 оборот.

Ось_A_ведомая

Тип: целое.

Позволяет оси поворачиваться по направлению вектора интерполяции G1, G2, G3 в плоскости XY.

Для оси A этот параметр должен содержать 1. Если 0, режим отключен.

*** Правильнее было бы использовать термин ось B, в дальнейших версиях параметр будет скорректирован.

SBXPos

Тип: дробное.

Расстояние от минимума оси X до датчика нуля, мм.

SBYPos

Тип: дробное.

Расстояние от минимума оси Y до датчика нуля, мм.

SBZPos

Тип: дробное.

Расстояние от минимума оси Z до датчика нуля, мм.

SBBPos

Тип: дробное.

Расстояние от минимума оси B до датчика нуля, мм.

CheckBounds

Тип: дробное.

Включить проверку выхода за границы рабочей зоны станка

***Экспериментально. Должно быть целое.

Макс_скорость_X_мм/мин

Тип: целое.

Ограничение максимальной скорости оси X

Макс_скорость_Y_мм/мин

Тип: целое.

Ограничение максимальной скорости оси X

Макс_скорость_Z_мм/мин

Тип: целое.

Ограничение максимальной скорости оси X

Макс_скорость_A_град/мин

Тип: целое.

Ограничение максимальной скорости оси X

Макс_скорость_B_град/мин

Тип: целое.

Ограничение максимальной скорости оси X

Макс_скорость_C_град/мин

Тип: целое.

Ограничение максимальной скорости оси X

Скорость_навигации_мм/мин

Тип: целое.

Скорость навигации в ручном режиме для линейных осей

Скорость_навигации_A_град/мин

Тип: целое.

Скорость навигации в ручном режиме оси A

Скорость_навигации_B_град/мин

Тип: целое.

Скорость навигации в ручном режиме оси B

Скорость_навигации_C_град/мин

Тип: целое.

Скорость навигации в ручном режиме оси C

Скорость_резания_мм/мин

Тип: целое.

Скорость навигации в ручном режиме для линейных осей

Скорость_холостого_хода_мм/мин

Тип: целое.

Скорость навигации в ручном режиме для линейных осей

Корректировка_скорости

Тип: целое.

При сложной траектории для поддержания вектора скорости равномерным установите 1.

Плавный_разгон_торможение_шагов

Тип: целое.

Задает число шагов, которое выполняется в режиме разгона/торможения в начале и конце интерполируемой линии.

*** Экспериментально.

Min_OCR

Тип: целое.

Минимальное значение коэфицента деления таймера контроллера. При провалах его следует увеличить.

*** Экспериментально.

Скорость_в_режиме_отладки

Тип: целое.

Задает номер, начиная с нуля, активного значения в элементе управления скоростью - в режиме работы с виртуальным станком.

Шпиндель_нач_скорость

Тип: целое.

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

Шпиндель_нач_направление

Напрвление, задаваемое при ручном старте шпинделя

Тип: целое.

Шпиндель_макс_скорость

Тип: целое.

Максимальная скорость, соответствующая максимальному значению управляющего напряжения

Настройки_входов

Тип: целое.

***Управление подтягивающими резисторами входов

Настройка_INT0

Тип: целое.

Нуль станка - срабатывание по фронту импульса 3, по спаду импульса 2

Настройка_INT1

Тип: целое.

Измеритель - срабатывание по фронту импульса 3, по спаду импульса 2

Настройка_INT2

Тип: целое.

Ограничитель - срабатывание по фронту импульса 3, по спаду импульса 2

Включать_при_старте_INT0

Тип: целое.

При запуске программы включается прерывание 0 из настроек параметра Настройка_INT0.

Включать_при_старте_INT1

Тип: целое.

При запуске программы включается прерывание 1 из настроек параметра Настройка_INT1.

Включать_при_старте_INT2

Тип: целое.

При запуске программы включается прерывание 2 из настроек параметра Настройка_INT2.

Не_выключать_INT1

Тип: целое.

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

!!! Включение этой опции может вызвать сбои, связанные с влиянием вибрации станка на измеритель.

Смещение_концевика_X

Тип: дробное.

Смещение нуля относительно концевика оси X.

Смещение_концевика_Y

Тип: дробное.

Смещение нуля относительно концевика оси Y.

Смещение_концевика_Z

Тип: дробное.

Смещение нуля относительно концевика оси Z.

Смещение_концевика_B

Тип: дробное.

Смещение нуля относительно концевика оси B.

Диаметр_щупа

Тип: дробное.

Задает диаметр щупа измерителя в мм.

Игнорировать_M1

Тип: целое.

Задает, пропускать инструкцию M1 в G-коде (1) или нет(0).

Игнорировать_параметр_F

Тип: целое.

Задает, пропускать инструкцию установки скорости в G-коде (1) или нет(0).

Игнорировать_L33

Тип: целое.

Задает, пропускать установки вида визуализатора в G-коде (1) или нет(0).

Игнорировать_S

Тип: целое.

Задает, игнорировать инструкции управления шпинделем из G-кода (1) или нет(0).

Лог_в_файл

Тип: целое.

Задает, выводить ли сообщения в лог - файл <имя_профиля>\log.txt: 1 - лог сообщений в файл и сброс на диск после каждого сообщения. 2 - лог сообщений в файл и сброс на диск при выходе из программы. 3 - отключить вывод в лог.

Отображать_лог

Тип: целое.

Задает, отображать ли в нижней части окна программы лог(1) или нет(0).

Высота_окна_лога

Тип: целое.

Задает высоту лога в нижней части окна программы.

Маска_лога

Тип: целое.

Задает, по битовой маске, какие события выводить в лог. Управляется из окна настроек программы.

Визуализатор

Тип: целое.

*** Будет удален

Отображать_окно_переменных

Тип: целое.

Задает, показывать(1) или нет(0) окно переменных. Опция актуальна в зависимости от вида сборки программы.

Трекинг

Тип: целое.

Задает, показывать(1) или нет(0) окно с графиками процессов, происходящих в X-Cam. Опция актуальна в зависимости от вида сборки программы.

Маска_переменных

Тип: целое.

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

Интерполяция_полинейно_мышью

Тип: целое.

Включает (1) или нет(0) при старте программы режим интерполяции выделенной мышью строки G-кода во встроенном редакторе G-кода.

Подсветка_линии_G-кода

Тип: целое.

Включает (1) или нет(0) при старте программы режим подсветки текущей интерполируемой линии строки G-кода во встроенном редакторе G-кода.

Тест_G-кода_при_загрузке

Тип: целое.

Включает (1) или нет(0) при старте программы режим тестирования загружаемого кода - его ускоренную интерполяцию со включенными режимами проверки, но без вывода команд на оси.

Процедура_выход_на_0

Тип: строка

Процедура_парковки

Тип: строка

Процедура_базирование_по_0

Тип: строка

Парковка_по_завершении

Тип: целое.

Диаметр_фрезы_мм

Тип: целое.

*** Заменить на дробное

Начало_просмотра_X

Тип: целое.

Начало_просмотра_Y

Тип: целое.

Масштаб_просмотра

Тип: целое.

Отображать_ХХ_G0

Тип: целое.

Приоритет_потока_интерполятора

Тип: целое.

Инвертировать_направление_осей_AZYX

Тип: целое.

По битовой маске задает инвертирование направления осей:

бит 1- X
бит 2 - Y
бит 3 - Z
бит 4 - A
бит 5 - B
бит 6 - C

Сохранять_переменные_скриптов

Тип: целое.

***Будет удален

Загружать_приложение

Тип: целое.

Задает, загружать(1) или нет(0) модуль, указанный в параметре Default_APP, при старте X-Cam

Активировать_замену_кода_1

Тип: целое.

***В разработке

Default_HOST

Тип: строка

Задает номер модуля станка, загружаемого для данного профиля

Default_APP

Тип: строка

Задает номер модуля, загружаемого по-умолчанию, если задан параметр Загружать_приложение=1

Disk1_Conf ... Disk8_Conf

Тип: строка

Задает настройки круга в следующем формате:

<тип круга> <посадочное расстояние> <диаметр> <параметр1> ...

<номер_модуля>_Disk1 .. <номер_модуля>_Disk5

Тип: целое.

Задает связь круга, используемого модулем (Disk1 .. Disk5) с кругом, установленным и настроенным в системе по его номеру, указанному в значении параметра.

Пример:

A001T01_Disk1;3

Модуль с номером A001T01 использует в качестве круга Disk1, круг с номером 3.

app_disk_num

Тип: целое.

Номер текущего круга, установленного в системе

disk1_b

Тип: дробное.

Посадочное расстояние текущего круга, установленного в системе

disk1_d

Тип: дробное.

Диаметр текущего круга, установленного в системе

disk1_tp

Тип: дробное.

Тип текущего круга, установленного в системе

Скорость_измерения_мм/мин

Тип: целое.

Задает скорость измерения щупом.

Процедура_выхода

Тип: целое.

Задает, подверждать (1) или нет (0) выход из программы.

Window State

Расстояние касания

 

 

Параметры, относящиеся к станку, заточки фрез

 

ButtonIcXPos

Тип: строка

Задает точку, расстояние и направление измерения по оси X для процедуры калибровки измерителя в формате X Y Z h.

ButtonIcYPos

Тип: строка

Задает точку, расстояние и направление измерения по оси Y для процедуры калибровки измерителя в формате X Y Z h.

ButtonIcZPos

Тип: строка

Задает точку, расстояние и направление измерения по оси Z для процедуры калибровки измерителя в формате X Y Z h.

CorrectA_Pt1

Тип: строка

Задает 1точку планки, расстояние и направление измерения по оси Z для процедуры определения параллельности установки оси A в формате X Y Z h.

CorrectA_Pt2

Тип: строка

Задает 2точку планки, расстояние и направление измерения по оси Z для процедуры определения параллельности установки оси A в формате X Y Z h.

CorrectA_Pt3

Тип: строка

Задает 1точку кругляка, расстояние и направление измерения по оси Z для процедуры определения параллельности установки оси A в формате X Y Z h.

CorrectA_Pt4

Тип: строка

Задает 2 точку кругляка, расстояние и направление измерения по оси Z для процедуры определения параллельности установки оси A в формате X Y Z h.

FindA_Params

Тип: строка

Задает точку цанги, расстояние и направление измерения по оси X для процедуры FindA в формате X Y Z h.

 

Параметры дополнительной оси B2

B2cX

Тип: дробное.

Задает положение оси B2. Расстояние от шпинделя до оси B2 по оси X при X=0

B2cZ

Тип: дробное.

Задает положение оси B2. Расстояние от шпинделя до оси B2 по оси Y при Y=0

B2cY

Тип: дробное.

Задает положение оси B2. Расстояние от шпинделя до оси B2 по оси Y при Y=0

AxisB2_h

Тип: дробное.

Расстояние от стола до базовой поверхности оси B2. Используется визуализатором. Так же может быть использовано для проверки установки положенияоси B2.

B_type

Тип: целое.

Задает конфигурацию осей B и B2: 1 - работает ось B, 2 - работает ось B2.

 

Параметры окна перемещений

Отображать_DPath

Тип: целое.

Задает, отображать ли окно перемещений заточного станка.

DPath_window_x

Тип: целое.

Позиция появления окна перемещений.

DPath_window_y

Тип: целое.

Позиция появления окна перемещений.

DPath_Params

Тип: строка

Параметры окна перемещений, сохраняемые при закрытии окна.

DPath_DiskViewMode

Тип: строка

Режим визуализатора при преремещении в режиме Disk.

 

Параметры, необходимые визуализатору

AzX, BcX, BcZ, IcX, IcY, IcZ, AsX - параметры, назначение которых см. в диалоге Настройки системы заточки фрез.

Другие параметры визуализатора: DFr, LFr, StlSpYMin, StlSpZMin, AxisB_h, AxisA_h, AxisB_d, spindle_d, spindle_h, Диаметр_гайки_шпинделя, tA1Fr, YFr, V3D_mode

 

 

 

Настройка производительности

Одновременная работа с другими программами

X-Cam может работать одновременно с другими программами и задачами, выполняемыми пользователем. Это возможно благодаря буферизации команд контроллером.

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

Приоритет, с которым выполняется программа

Для компенсации нежелательных последствий захвата ресурсов другими программами  нужно снижать максимальные скорости. Так же может помочь увеличение приоритета потока интерполяции и процесса, задаваемые в параметре "Приоритет_потока_интерполятора":

1 - высокий приоритет

2 - реального времени

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

Общие рекомендации настройки производительности

Для более стабильной работы рекомендуется:

  1. Удалить/отключить в компьютере ненужные программы и функции
  2. Установить приоритет реального времени процесса
  3. Не задирать скорости осей выше пределов, определяемых опытным путем для вашего компьютера (на разных компьютерах производительность работы X-Cam может отличаться на 20%)
  4. Выбирать контроллер с большим объемом буферной памяти.
  5. Визуализатор, применяемый вами, может отнимать достаточно много вычислительных ресурсов компьютера. Смотрите справку по конкретному визуализатору для настройки его производительности под ваш компьютер.
  6. Установить параметр Лог_в_файл = 2, что отключит сброс данных на диск при каждом сообщении, попадающем в лог. Или вообще отключите лог в файл, если он не нужен.

 

Команды, поддерживаемые X-Cam

 

 

Возможности X-Cam

 

Резка пленки - ведомая поворотная ось

Обеспечивает синхронный поворот оси A или B по направлению вектора интерполяции G1, G2, G3 в плоскости XY. Это может понадобиться, например, при резке пленки ножем, установленным на поворотной оси.

За данный режим отвечает параметр Ось_A_ведомая.

 

Прототипирование печатных плат - пример интеграции с другими программами

Прототипирование печатных плат можно выполнять разными способами, в их числе ЛУТ, вырезание на станке ЧПУ. Модификация последнего способа реализована в X-Cam с применением внешней программы CopperCAM.

Работа в CAD-программе проектирования ПП.

Делается экспорт из CAD-программы в формате gerber - в файл *.gbr.

Работа в CopperCAM.

  1. Открывается файл *.gbr в CopperCAM [File - Open...] или же в операционной системе задается соответствие файлов *.gbr программе CopperCAM и эти файлы открываются двойным щелчком мыши.
  2. Настроить инструмент Engravin tool №1: [Parameters - Tool library], где задать тип инструмента - Profile - цилиндрический, диаметр инструмента - Diameter.
  3. Задать глубину резания [Parameters - Selected tools] - для инструмента Engravin tool №1 задать Depth.
  4. [Mashine - Calculate contours], задать число проходов инструментом Engravin tool №1 - Number of succsessive contours.
  5. [Parameters - Output data format] - установить безопасную высоту - Tool clearance height. Так же здесь можно задать выполнение программы X-Cam со сгенерированным файлом - поле then execute (там по-умолчанию стоит C:\Windows\NotePad.exe).
  6. Сгенерировать траекторию в файл [Mashine - Mill]. Можно задать как фрезеровку, так и сверление и обрезание по контуру.

Работа в X-Cam.

Загрузить файл в X-Cam. Или, если задан параметр then execute [CopperCAM - Parameters - Output data format], файл в X-Cam откроется автоматически.

!!! X-Cam позволяет подключить один контакт к фольгированному слою платы, а другой контакт прерывания измерения - к граверу и автоматизировать процесс определения нуля детали по Z. А расположение платы в определеных к-х XY обеспечит полный контроль базирования заготовки.