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

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Часто возникает необходимость создания конфигурации простого автомата на LinuxCNC.
Попробую сделать это тут для новичков (к коим и себя отношу).

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

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

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

Продолжу вечером...
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

в принципе есть извращенный путь (при условии , что в о-кодее сравнительно немного строк)...
так давненько делали...
кождую команду mdi в отдельную строку в HALUI и в ладдере делается последовательное включение этого набора...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

А почему у меня в 2.5.3 всё работает (в смысле, вызов подпрограмм по MDI?)
Чудес не бывает. Бывают фокусы.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Сергей Саныч писал(а):А почему у меня в 2.5.3 всё работает (в смысле, вызов подпрограмм по MDI?)
у ТС тоже всё работает , но только с Axis...
а со своей панелью - не желает ...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

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

Сообщение Сергей Саныч »

Понятно, вопрос снимается.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Т.е. в axis mdi-command работает, а без него нет? Получается halui чудит?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Nick писал(а):Получается halui чудит?
скорей всего - нет...
простые mdiкоманды выполняются , и М-коды вызываются...
проблема именно в O....call
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Значит нужно в Вики прописать, что конфигурация работоспособна на версии 2.6 и выше?
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Ворон226 писал(а):Значит нужно в Вики прописать, что конфигурация работоспособна на версии 2.6 и выше?
по моему это само собой разумеется:
статья написана с актуальной версией 2.6 ...
в дальнейшем ,с разработкой новых версий, думаю всё будет работать ...
ну а кто додумается конфиг из статьи примерять на емс 2.2 - тот сам себе...))
=========
ну а если пропишешь - тоже хорошо...
кстати - некоторые сборки 2.6 так же не работают...
ну то начальные сборки ...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Исправил.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Установил 2.6 - конфигурация сразу заработала...
Продолжаем разговор.
Осталось
- разобраться с кнопкой ПУСК (оказалось, что к halui.program.run можно обращаться только в режиме AUTO, к которому можно перейти через halui.mode.auto),
- дополнить панель элементами индикации,
- описать способ проверки конфигурации без "живого" автомата.

Кнопка ПУСК:
nkp писал(а):можно сделать как в том же axis - у тебя же есть "основной" файл gui (.py)
вот там и прописать функцию запуска ...
примерно так:

import linuxcnc
s = linuxcnc.stat() # на будущее)
c = linuxcnc.command()
def run():
program_start_line = 0
c.mode(linuxcnc.MODE_AUTO)
c.auto(linuxcnc.AUTO_RUN, program_start_line)

эту функцию - на твою кнопочку
(ну это я простейший код написал - там проверки всякие можно прописать (интерпретатора и тд))
Насколько я понял: это все прописывается в файле mygui (о котором я вообще не упомянул в статье)
А вот "функцию на кнопочку" - это уже в Glade делается.
Буду пробовать и результаты сюда выкладывать (ох, и любят же меня внештатные ситуации - то ли ещё будет?)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

Наверное (скорее наверняка) неверно прописал в mygui (файл ниже) - при запуске в терминале ругается так:
F

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

ile "./mygui", line 11
SyntaxError: Non-ASCII character '\xd0' in file ./mygui on line 11, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
Shutting down and cleaning up LinuxCNC...
А кнопочку в Glade прописал так:
Снимок-9.png (2069 просмотров) <a class='original' href='./download/file.php?id=35888&sid=e9dfc09aab8854580960a26c515cbe66&mode=view' target=_blank>Загрузить оригинал (42.07 КБ)</a>
Вложения
mygui.tar.gz
(684 байт) 917 скачиваний
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

второй строчкой добавь:

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

# -*- coding: utf-8 -*-
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

UAVpilot писал(а):второй строчкой добавь:

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

# -*- coding: utf-8 -*-
Добавил - теперь ругается по-другому:

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

Starting LinuxCNC...
  File "./mygui", line 13
    c = linuxcnc.command()
    ^
IndentationError: unexpected indent
Shutting down and cleaning up LinuxCNC...

Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

И правильно ругается, питон очень строг к отступам - от них зависит логика работы программы...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

UAVpilot писал(а):И правильно ругается, питон очень строг к отступам - от них зависит логика работы программы...
Я подозревал... Подправил. Запустил:

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

/home/sun/linuxcnc/start-SKANER: строка 2: scripts/rip-environment: Нет такого файла или каталога
LINUXCNC - 2.6.3-74-g0ee553b
Machine configuration directory is '/home/sun/linuxcnc/configs/skaner'
Machine configuration file is 'skaner.ini'
Starting LinuxCNC...
./mygui:27: RuntimeWarning: missing handler 'run()'
  self.builder.connect_signals(self)
Но панель запускается, кнопки отрабатывают. А вот ПУСК, похоже, не хочет... Скорее всего я неправильно прописал кнопку в GLADE.
Файл mygui и стартовый файл стали такими:
Вложения
mygui.tar.gz
(660 байт) 921 скачивание
start-SKANER.tar.gz
(204 байт) 905 скачиваний
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Ну да, у тебя в коде нет функции run().

P.S. Если ты надеешься написать прогу на питоне не зная азов его синтаксиса и базовых понятий, то это утопическая идея...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

в файле mygui подправь чтоб было так:

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

class Mygui(object):
	def run(self,widget): 
        	program_start_line = 0
        	c.mode(linuxcnc.MODE_AUTO)
        	c.auto(linuxcnc.AUTO_RUN, program_start_line)
а в Glade пропиши так:
Выделение_053.png (2035 просмотров) <a class='original' href='./download/file.php?id=35903&sid=e9dfc09aab8854580960a26c515cbe66&mode=view' target=_blank>Загрузить оригинал (75.61 КБ)</a>
то есть просто run (без скобок)
============
кстати (ты может и пользуешся ) - для контроля над происходящим запускаем из отдельного терминала halshow
и контролируем любые элементы HAL:
Выделение_052.png (2035 просмотров) <a class='original' href='./download/file.php?id=35902&sid=e9dfc09aab8854580960a26c515cbe66&mode=view' target=_blank>Загрузить оригинал (103.76 КБ)</a>
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

При нажатии ПУСК не происходит перехода в режим АВТО и, потому, программа не запускается (сигнал halui.program.run появляется).
Хочешь быть счастливым? Будь им!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Ворон226 писал(а):(сигнал halui.program.run появляется).
эта строка уже не нужна
#net start mygui.hal_button14 halui.program.run
теперь по нажатию "ПУСК" будет отрабатывать функция run
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

Сообщение Ворон226 »

А все равно не запускается...
Хочешь быть счастливым? Будь им!
Ответить

Вернуться в «LinuxCNC»