Страница 2 из 14

[WIKI] Создание конфигурации простого автомата от чайника

Добавлено: 15 окт 2014, 11:40
Ворон226
Это обсуждение статьи Конфигурация LCNC для простого автомата с MYGUI
Часто возникает необходимость создания конфигурации простого автомата на LinuxCNC.
Попробую сделать это тут для новичков (к коим и себя отношу).

А начнем с постановки задачи.

Задача.
Сконфигурировать простой автомат "Планшетный широкоформатный сканер" на базе LinuxCNC со своей панелью управления и встроенной перепрограммируемой программой обработки заготовки.

Для начала определим необходимые направления работы:
1. Описание логики работы сканера
2. Создание файла INI
3. Создание визуальной панели
4. Создание связей между HAL, визуальной панелью и программами/подпрограммами
5. Создание HAL
6. Написание программы сканирования
7. Способы проверки и тестирования конфигурации

Продолжу вечером...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 22 окт 2014, 23:17
Ворон226
Добавил алгоритм работы программы сканера. Почти сделал саму программу - к выходным тему закончу. Останется только править ;)
И, конечно, сделаю HAL для имитации работы графической программы (линии задержки и закольцовка пинов связи программы сканирования с графической программой)...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 23 окт 2014, 09:22
Nick
+1. Кстати, а агрегат у тебя уже есть?
Будет видео работы всего этого дела?
А то человекв первые увидевший такую тему врядли что-то поймет... А так посмотрит видео и сразу проникнется :)

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 23 окт 2014, 18:58
Ворон226
Nick писал(а):Кстати, а агрегат у тебя уже есть?
Есть большой фрезер (1700 х 2700), на котором мы и опробируем все идеи. И двушпиндельный, и сканер, а скоро и ещё один начнем... (пока секрет)

Видео добавлю. И картинки нарисую.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 08:59
Ворон226
Дописал программу сканирования - покритикуйте, пожалуйста.

Осталось сделать рисунки, прописать в HAL "имитатор" графической программы (формирователь ответов с задержками) и опробовать на станке. После чего выложу видео...

И хочется сделать "вкусняшку" в виде световой сигнализации.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 16:45
Ворон226
Что-то возникли сомнения о правильности прописывания конфигурации в INI ...
Хочу, чтобы у автомата не было HOME-ов.
Нужно ли в этом случае прописывать пределы по осям? Ведь у меня крайние положения отслеживаются концевыми датчиками, а координаты начала и окончания (рабочая зона) определяется самим оператором.
Как-то не вяжутся со всем этим :
[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

Или все нормально?

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 18:30
Serg
Ворон226 писал(а):Нужно ли в этом случае прописывать пределы по осям? Ведь у меня крайние положения отслеживаются концевыми датчиками, а координаты начала и окончания (рабочая зона) определяется самим оператором.
Обязательно. Иначе при попытке уехать в HOME получишь ошибку превышения лимитов.

P.S. Я б MIN_LIMIT и HOME_OFFSET делал-бы -1..-5, чтоб гарантированно съезжать с датчика после поиска.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 18:48
Ворон226
UAVpilot писал(а):
Ворон226 писал(а):Нужно ли в этом случае прописывать пределы по осям? Ведь у меня крайние положения отслеживаются концевыми датчиками, а координаты начала и окончания (рабочая зона) определяется самим оператором.
Обязательно. Иначе при попытке уехать в HOME получишь ошибку превышения лимитов.

P.S. Я б MIN_LIMIT и HOME_OFFSET делал-бы -1..-5, чтоб гарантированно съезжать с датчика после поиска.
Так у меня же:
[TRAJ]
NO_FORCE_HOMING = 1
Никаких хомов. Включил и поехал. Если вдруг наехал на датчик предела, то HAL отрабатывает движение от датчика до съезда...
Вот в чем дело.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 19:30
Serg
Тогда смысла в MIN_LIMIT и MAX_LIMIT вообще нет.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 20:42
Ворон226
Убрал в [AXIS_0] и [AXIS_1]:

HOME = 0.0
MIN_LIMIT = ...
MAX_LIMIT = ...
HOME_OFFSET = 0.0

Проверил - все работает...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 20:48
Ворон226
Проверяю дальше...

Назначение переменных проходит на ура.
А вот при запуске программы сканирования Axis (я проверяю, прикрутив доп.панель к AXIS-у) ругается -
"Нулевое ожидание с типом ожидания не равным немедленному возврату"

Я подумал, что это относится к строкам
M66 E0 L3
...
M66 E1 L3
...
M66 E1 L3

и переписал их так:
M66 E0 L1
...
M66 E1 L1
...
M66 E1 L1

- не помогло...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 20:55
Ворон226
А при загрузке автомата - выскакивает такое сообщение: (см. скан)

И где копать?

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 21:24
Serg
Ворон226 писал(а):"Нулевое ожидание с типом ожидания не равным немедленному возврату"
Если выбираешь режим ожидания сигнала, то задавай и время ожидания...
Ворон226 писал(а):И где копать?
Очевидно предварительно определить #<_x0>

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 21:46
Ворон226
UAVpilot писал(а): Ворон226 писал(а):И где копать?


Очевидно предварительно определить #<_x0>
И как предварительно определить, если эти глобальные переменные используются в автоматически загружаемой программе при запуске? Я их определяю позднее, при выставлении начальных и конечных координат... Или отказаться от глобальных и использовать обычные переменные?

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:07
nkp
Ворон226 писал(а):не помогло...
наверно
или L0 пользовать...
или Q определять...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:09
Ворон226
Да-да... исправил и в Вики:
M66 P0 L3 Q1

А вот с глобальными переменными пока нет... Все, конечно работает, перемещается... Но ругается при загрузке. А не хотелось бы.

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:29
nkp
а нельзя эту переменную "запоминать" ну хотя бы с нулевым значением в .var файл ,если она вначале вообще не определена...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:41
nkp
мы можем "свою" переменную прописать в .var файл :
(для просмотра содержимого нажмите на ссылку)
Выделение_044.png (2596 просмотров) <a class='original' href='./download/file.php?id=35561&mode=view' target=_blank>Загрузить оригинал (64.33 КБ)</a>
и , переопределяя ее в работе, новое значение будет сохраняться
в этом файле после выхода из емс...
-------------
в ини

Код: Выделить всё

[RS274NGC]

PARAMETER_FILE =        stepper.var

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:50
Ворон226
Т.е. в VAR прописать:

_X0 0.0
_Y0 0.0
_X_MAX 0.0
_Y_MAX 0.0

а в INI:
[RS274NGC]

PARAMETER_FILE = skan.var

и все?
Пробую...
... не работает. В мануале на русском нет описания VAR :(

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 22:56
nkp
в .var прописать

Код: Выделить всё

123  0.000
а в загружаемый по дефолту код что то примерно такое:
#<_X0 > = #123
а "переписать" новое значение в конце :
#123 = #<_X0 >
=============
не помню всех детелей алгоритма - так бы точней подсказал...

Re: [WIKI] Создание конфигурации простого автомата от чайник

Добавлено: 26 окт 2014, 23:05
Ворон226
nkp писал(а):в .var прописать

123 0.000
а в загружаемый по дефолту код что то примерно такое:
#<_X0 > = #123
а "переписать" новое значение в конце :
#123 = #<_X0 >
Вроде не получится...
Вот загружаю я программу в автозагрузке, в которой в первых строках:
#<_X0 > = #123
Никто не ругается... Программа ждет своего исполнения.
Я перемещаю автомат в начальную точку и присваиваю переменной <_X0> некоторое значение.
Запускаю программу на выполнение и... первой же строкой гроблю значение переменной строкой
#<_X0 > = #123

Если только в подпрограмме назначения не прописать начальную координату не глобальной переменной <_X0>, а переменной 123 !!! Т.е. так:

o<ust0> sub

M66 E0 L0
#123 = #5399
M66 E1 L0
#124 = #5399

o<ust0> endsub