Конфигурация LCNC для простого автомата с MYGUI

Материал из cnc-club
Перейти к навигации Перейти к поиску

Часто возникает необходимость создания конфигурации простого автомата на 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 )

Визуальная панель

HAL-файл

Связи между HAL, визуальной панелью и программами/подпрограммами

Программа работы автомата