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

Материал из cnc-club
Перейти к навигации Перейти к поиску
Строка 57: Строка 57:
 
  DEBUG = 0
 
  DEBUG = 0
  
[DISPLAY]
+
[DISPLAY]
DISPLAY = ./mygui
+
DISPLAY = ./mygui
#EDITOR = gedit
+
(говорит о том, что мы будем использовать собственную визуальную панель для управления автоматом)
POSITION_OFFSET = RELATIVE
+
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
+
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
+
MAX_FEED_OVERRIDE = 1.2
PROGRAM_PREFIX = /home/sun/linuxcnc/configs/skaner
+
PROGRAM_PREFIX = /home/sun/linuxcnc/configs/skaner
OPEN_FILE = /home/sun/linuxcnc/configs/skaner/skan1.ngc
+
(указали адрес, по которому находятся исполняемые файлы и программы)
#INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
+
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
 
  
 +
[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]
 
[HALUI]
MDI_COMMAND = M102
+
MDI_COMMAND = o<ust0>call
+
[TRAJ]
MDI_COMMAND = o<ustmax>call
+
AXES = 2
 
+
COORDINATES = X Y
[TRAJ]
+
MAX_ANGULAR_VELOCITY = 0.10
AXES = 2
+
DEFAULT_ANGULAR_VELOCITY = 0.01
COORDINATES = X Y
+
LINEAR_UNITS = mm
MAX_ANGULAR_VELOCITY = 0.10
+
ANGULAR_UNITS = degree
DEFAULT_ANGULAR_VELOCITY = 0.01
+
CYCLE_TIME = 0.010
LINEAR_UNITS = mm
+
DEFAULT_VELOCITY = 50.00
ANGULAR_UNITS = degree
+
MAX_LINEAR_VELOCITY = 200.00
CYCLE_TIME = 0.010
+
NO_FORCE_HOMING = 1
DEFAULT_VELOCITY = 50.00
+
MAX_LINEAR_VELOCITY = 200.00
+
[EMCIO]
NO_FORCE_HOMING = 1
+
EMCIO = io
 
+
CYCLE_TIME = 0.100
[EMCIO]
+
TOOL_TABLE = tool.tbl
EMCIO = io
+
CYCLE_TIME = 0.100
+
[AXIS_0]
TOOL_TABLE = tool.tbl
+
TYPE = LINEAR
 
+
HOME = 0.0
[AXIS_0]
+
MAX_VELOCITY = 250.0
TYPE = LINEAR
+
MAX_ACCELERATION = 600.0
HOME = 0.0
+
STEPGEN_MAXACCEL = 650.0
MAX_VELOCITY = 250.0
+
SCALE = 67.86
MAX_ACCELERATION = 600.0
+
FERROR = 1
STEPGEN_MAXACCEL = 650.0
+
MIN_FERROR = 0.25
SCALE = 67.86
+
MIN_LIMIT = -0.001
FERROR = 1
+
MAX_LIMIT = 1500.0
MIN_FERROR = 0.25
+
HOME_OFFSET = 0.0
MIN_LIMIT = -0.001
+
MAX_LIMIT = 1550.0
+
[AXIS_1]
HOME_OFFSET = 0.0
+
TYPE = LINEAR
 
+
HOME = 0.0
 
+
MAX_VELOCITY = 150.0
 
+
MAX_ACCELERATION = 200.0
[AXIS_1]
+
STEPGEN_MAXACCEL = 250.0
TYPE = LINEAR
+
SCALE = 67.86
HOME = 0.0
+
FERROR = 1
MAX_VELOCITY = 150.0
+
MIN_FERROR = 0.25
MAX_ACCELERATION = 200.0
+
MIN_LIMIT = -0.001
STEPGEN_MAXACCEL = 250.0
+
MAX_LIMIT = 2700.0
SCALE = 67.86
+
HOME_OFFSET = 0.0
FERROR = 1
+
(тут нет ничего особенного - просто следуй описанию 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 )
MIN_FERROR = 0.25
 
MIN_LIMIT = -0.001
 
MAX_LIMIT = 2700.0
 
HOME_OFFSET = 0.0
 
  
 
== Визуальная панель ==
 
== Визуальная панель ==

Версия 19:44, 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

(говорит о том, что мы будем использовать собственную визуальную панель для управления автоматом)

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, визуальной панелью и программами/подпрограммами

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