Конфигурация LCNC для простого автомата с MYGUI
Часто возникает необходимость создания конфигурации простого автомата на LinuxCNC. (обсуждение статьи на форуме Создание конфигурации простого автомата от чайника)
Содержание
Постановка задачи.
Сконфигурировать простой автомат "Планшетный широкоформатный сканер" на базе LinuxCNC со своей панелью управления и встроенной перепрограммируемой программой обработки заготовки.
Необходимые направления работы:
1. Описание логики работы сканера
2. Создание файла INI
3. Создание визуальной панели
4. Создание связей между HAL, визуальной панелью и программами/подпрограммами
5. Создание HAL
6. Написание программы сканирования
7. Способы проверки и тестирования конфигурации
В задачу данной темы не входят вопросы конструкции, электроники, программ обработки графической информации!
Логика работы автомата
1. Включение автомата и начальные установки:
- при включении автомата загружается визуальная панель, программа сканирования;
- перевести автомат в рабочий режим нажатием кнопки "ВКЛ" визуальной панели, проверка состояния E-STOP, концевых датчиков (если сработал один из датчиков крайнего положения - автомат выходит из крайнего положения самостоятельно; если сработали сразу два противоположных датчика положения - авария)
2. Вывести сканирующую головку в начальную точку сканирования, пользуясь соответствующими кнопками визуальной панели и задать начальную точку сканирования нажатием кнопки "Уст-ка нуля" визуальной панели.
3. Вывести сканирующую головку в крайнюю точку сканирования и задать крайние координаты сканирования нажатием кнопки "Уст-ка MAX".
4. Установить необходимое фокусное расстояние вручную.
5. Установить необходимое разрешение сканирования выбором соответствующего режима сканирования кнопками визуальной панели.
6. Включить лампу освещения зоны сканирования нажатием соответствующей кнопки визуальной панели.
7. Запустить процесс сканирования нажатием кнопки "ПУСК" визуальной панели.
8. После работы выключить автомат нажатием кнопки "ВЫКЛ" визуальной панели.
INI-файл
Так как установка фокусного расстояния осуществляется вручную, то мы должны сконфигурировать двухкоординатный автомат.
Итак, файл skaner.ini :
[EMC] MACHINE = skaner DEBUG = 0
[DISPLAY] DISPLAY = ./mygui
(говорит о том, что мы будем использовать собственную визуальную панель для управления автоматом)
POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.2 PROGRAM_PREFIX = /home/sun/linuxcnc/configs/skaner
(указали адрес, по которому находятся исполняемые файлы и программы)
OPEN_FILE = /home/sun/linuxcnc/configs/skaner/skan1.ngc
(указали адрес и имя загружаемой программы по умолчанию)
[FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python [TASK] TASK = milltask CYCLE_TIME = 0.005 [RS274NGC] PARAMETER_FILE = emc.var [EMCMOT] EMCMOT = motmod COMM_TIMEOUT = 1.0 COMM_WAIT = 0.010 BASE_PERIOD = 50000 SERVO_PERIOD = 1000000 [HAL] HALFILE = skaner.hal HALUI = halui
[HALUI]
[TRAJ] AXES = 2 COORDINATES = X Y MAX_ANGULAR_VELOCITY = 0.10 DEFAULT_ANGULAR_VELOCITY = 0.01 LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 50.00 MAX_LINEAR_VELOCITY = 200.00 NO_FORCE_HOMING = 1 [EMCIO] EMCIO = io CYCLE_TIME = 0.100 TOOL_TABLE = tool.tbl [AXIS_0] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 250.0 MAX_ACCELERATION = 600.0 STEPGEN_MAXACCEL = 650.0 SCALE = 67.86 FERROR = 1 MIN_FERROR = 0.25 MIN_LIMIT = -0.001 MAX_LIMIT = 1500.0 HOME_OFFSET = 0.0 [AXIS_1] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 150.0 MAX_ACCELERATION = 200.0 STEPGEN_MAXACCEL = 250.0 SCALE = 67.86 FERROR = 1 MIN_FERROR = 0.25 MIN_LIMIT = -0.001 MAX_LIMIT = 2700.0 HOME_OFFSET = 0.0
(тут нет ничего особенного - просто следуй описанию INI - http://cnc-club.ru/wiki/index.php/LinuxCNC_Integrators_Manual_%D0%93%D0%BB%D0%B0%D0%B2%D0%B0_IV_-_%D0%A4%D0%B0%D0%B9%D0%BB_INI )