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

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

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

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

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

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

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

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

Добавлено: 31 окт 2014, 09:25
nkp
в принципе есть извращенный путь (при условии , что в о-кодее сравнительно немного строк)...
так давненько делали...
кождую команду mdi в отдельную строку в HALUI и в ладдере делается последовательное включение этого набора...

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

Добавлено: 31 окт 2014, 09:28
Сергей Саныч
А почему у меня в 2.5.3 всё работает (в смысле, вызов подпрограмм по MDI?)

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

Добавлено: 31 окт 2014, 09:35
nkp
Сергей Саныч писал(а):А почему у меня в 2.5.3 всё работает (в смысле, вызов подпрограмм по MDI?)
у ТС тоже всё работает , но только с Axis...
а со своей панелью - не желает ...

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

Добавлено: 31 окт 2014, 09:36
Сергей Саныч
Понятно, вопрос снимается.

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

Добавлено: 31 окт 2014, 09:51
Nick
Т.е. в axis mdi-command работает, а без него нет? Получается halui чудит?

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

Добавлено: 31 окт 2014, 10:11
nkp
Nick писал(а):Получается halui чудит?
скорей всего - нет...
простые mdiкоманды выполняются , и М-коды вызываются...
проблема именно в O....call

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

Добавлено: 31 окт 2014, 10:21
Ворон226
Значит нужно в Вики прописать, что конфигурация работоспособна на версии 2.6 и выше?

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

Добавлено: 31 окт 2014, 10:28
nkp
Ворон226 писал(а):Значит нужно в Вики прописать, что конфигурация работоспособна на версии 2.6 и выше?
по моему это само собой разумеется:
статья написана с актуальной версией 2.6 ...
в дальнейшем ,с разработкой новых версий, думаю всё будет работать ...
ну а кто додумается конфиг из статьи примерять на емс 2.2 - тот сам себе...))
=========
ну а если пропишешь - тоже хорошо...
кстати - некоторые сборки 2.6 так же не работают...
ну то начальные сборки ...

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

Добавлено: 31 окт 2014, 10:43
Ворон226
Исправил.

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

Добавлено: 01 ноя 2014, 15:11
Ворон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 делается.
Буду пробовать и результаты сюда выкладывать (ох, и любят же меня внештатные ситуации - то ли ещё будет?)

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

Добавлено: 01 ноя 2014, 15:41
Ворон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 (2141 просмотр) <a class='original' href='./download/file.php?id=35888&sid=da5981558bf58ebd542ac06637f5aa27&mode=view' target=_blank>Загрузить оригинал (42.07 КБ)</a>

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

Добавлено: 01 ноя 2014, 15:50
Serg
второй строчкой добавь:

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

# -*- coding: utf-8 -*-

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

Добавлено: 01 ноя 2014, 15:59
Ворон226
UAVpilot писал(а):второй строчкой добавь:

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

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

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

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


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

Добавлено: 01 ноя 2014, 18:02
Serg
И правильно ругается, питон очень строг к отступам - от них зависит логика работы программы...

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

Добавлено: 01 ноя 2014, 18:57
Ворон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 и стартовый файл стали такими:

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

Добавлено: 01 ноя 2014, 20:05
Serg
Ну да, у тебя в коде нет функции run().

P.S. Если ты надеешься написать прогу на питоне не зная азов его синтаксиса и базовых понятий, то это утопическая идея...

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

Добавлено: 01 ноя 2014, 20:25
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 (2107 просмотров) <a class='original' href='./download/file.php?id=35903&sid=da5981558bf58ebd542ac06637f5aa27&mode=view' target=_blank>Загрузить оригинал (75.61 КБ)</a>
то есть просто run (без скобок)
============
кстати (ты может и пользуешся ) - для контроля над происходящим запускаем из отдельного терминала halshow
и контролируем любые элементы HAL:
Выделение_052.png (2107 просмотров) <a class='original' href='./download/file.php?id=35902&sid=da5981558bf58ebd542ac06637f5aa27&mode=view' target=_blank>Загрузить оригинал (103.76 КБ)</a>

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

Добавлено: 01 ноя 2014, 21:20
Ворон226
При нажатии ПУСК не происходит перехода в режим АВТО и, потому, программа не запускается (сигнал halui.program.run появляется).

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

Добавлено: 01 ноя 2014, 21:23
nkp
Ворон226 писал(а):(сигнал halui.program.run появляется).
эта строка уже не нужна
#net start mygui.hal_button14 halui.program.run
теперь по нажатию "ПУСК" будет отрабатывать функция run

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

Добавлено: 01 ноя 2014, 21:57
Ворон226
А все равно не запускается...