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

Материал из cnc-club
Перейти к навигации Перейти к поиску
Строка 48: Строка 48:
  
 
== INI-файл ==
 
== INI-файл ==
 +
 +
Так как установка фокусного расстояния осуществляется вручную, то мы должны сконфигурировать двухкоординатный автомат.
 +
 +
Итак, файл skaner.ini :
 +
 +
[EMC]
 +
MACHINE = skaner
 +
DEBUG = 0
 +
 +
[DISPLAY]
 +
DISPLAY = ./mygui
 +
#EDITOR = gedit
 +
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
 +
#INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
 +
 +
[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]
 +
MDI_COMMAND = M102
 +
MDI_COMMAND = o<ust0>call
 +
MDI_COMMAND = o<ustmax>call
 +
 +
[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 = 1550.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
  
 
== Визуальная панель ==
 
== Визуальная панель ==

Версия 19:36, 15 октября 2014

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

  1. EDITOR = gedit

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

  1. INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm

[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] MDI_COMMAND = M102 MDI_COMMAND = o<ust0>call MDI_COMMAND = o<ustmax>call

[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 = 1550.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

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

HAL-файл

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

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