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

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

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

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

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

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

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

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

Добавлено: 26 окт 2014, 23:08
Serg
Ворон226 писал(а):Или отказаться от глобальных и использовать обычные переменные?
Без разницы. Перед использованием значения любой переменной это самое значение нужно сначала поместить в переменную, иначе её значение не определено.
nkp писал(а):а нельзя эту переменную "запоминать" ну хотя бы с нулевым значением в .var файл ,если она вначале вообще не определена...
Нельзя, там можно "запомнить" только номерные переменные.

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

Добавлено: 26 окт 2014, 23:10
Serg
nkp писал(а):а в загружаемый по дефолту код что то примерно такое:
#<_X0 > = #123
а почему-бы там просто не написать:
#<_x0 > = 0
?

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

Добавлено: 26 окт 2014, 23:17
Ворон226
Переписал программу без глобальных переменных, используя только номерные, которые прописал в VAR.
Все работает и не ругается... И запоминается.
Значит действительно не надо было заморачиваться глобальными переменными. Если только они будут нужны графической программе. Но тогда их назначение пропишу в подпрограммах назначения границ сканирования и все. ;)

Спасибо!
Проверяю дальше и правлю статью в Вики...

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

Добавлено: 27 окт 2014, 11:11
Nick
Я правильно понимаю, что #<Current_X> = #<_x0> должно задавать начальную точку сканирования в текущем положении?

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

Добавлено: 27 окт 2014, 13:09
Ворон226
Ну да...

Очередная ошибка:

Я привязал кнопку ПУСК к halui.program.run
При проверке конфигурации на Axis смог запустить только "штатной" кнопкой Axis-а.
А вот моя кнопка ПУСК не запускает программу сканирования. Axis ругается:
"Не могу делать это (EMC_TASK_PLAN_RUN) в ручном режиме"
Если перехожу во вкладку MDI - тоже ругается.

Так через какой пин правильно запускать программу сканирования?

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

Добавлено: 27 окт 2014, 13:14
Nick
halui.mode.auto bit in
pin for requesting auto mode

а потом уже run, можно в ладдере сделать

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

Добавлено: 27 окт 2014, 13:34
Ворон226
Nick писал(а):можно в ладдере сделать
а с ним я пока не знаком... Что за зверь?

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

Добавлено: 27 окт 2014, 14:26
NightV
Ворон226 писал(а):а с ним я пока не знаком... Что за зверь?
ClassicLader имеется ввиду :)

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

Добавлено: 27 окт 2014, 14:38
Ворон226
В описании EMC2 крайне мало про classicLadder
Как им пользоваться?

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

Добавлено: 27 окт 2014, 16:49
NightV
Ворон226 писал(а):Как им пользоваться?
програмируется как хардверный PLC (Programmable Logic Controller - Программируемый логический контроллер)
тоесть это типа логической коЁбочки, у которой есть входы и выходы, битовые и численные.
вкратце, внутри коЁбочки можно: сравнивать, делать математические операции, логические И\ИЛИ и так далее.

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

Добавлено: 27 окт 2014, 17:31
nkp
Ворон226 писал(а):Очередная ошибка:
как вариант :
можно сделать как в том же 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)
эту функцию - на твою кнопочку
(ну это я простейший код написал - там проверки всякие можно прописать (интерпретатора и тд))

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

Добавлено: 27 окт 2014, 17:38
nkp
Ворон226 писал(а):В описании EMC2 крайне мало про classicLadder
я там темку начинал с описанием - но далеко дело не зашло))
ты разберёшся - может на досуге опишешь ладдер "для чайников" - у тебя хорошо получается...
а ладдер вещь мощная (и наглядная)

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

Добавлено: 27 окт 2014, 18:12
Ворон226
nkp писал(а):как вариант :
можно сделать как в том же axis - у тебя же есть "основной" файл gui (.py)
вот там и прописать функцию запуска ...
Ничего не понял... Какой gui?
nkp писал(а):эту функцию - на твою кнопочку
Как mdi-команду?

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

Добавлено: 27 окт 2014, 18:14
Ворон226
nkp писал(а):я там темку начинал с описанием - но далеко дело не зашло))
ты разберёшся
Угу... на досуге... Хотя (как я уже писал) мне ближе программировать в самом HAL

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

Добавлено: 27 окт 2014, 18:23
nkp
Ворон226 писал(а):Ничего не понял... Какой gui?
mygui - это же питоновский файл gui ?
вот туда все и пихать...

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

Добавлено: 27 окт 2014, 18:35
nkp
Ворон226 писал(а):Как mdi-команду?
нет - просто привязать выполнение функции(в данном
случае run()) по нажатию кнопки...
это можно сделать двумя способами (один правильный - другой простой))
в Glade открываешь свою панельку и выбираешь нужную кнопку:
(для просмотра содержимого нажмите на ссылку)
Рабочий стол 1_046.png (1850 просмотров) <a class='original' href='./download/file.php?id=35623&mode=view' target=_blank>Загрузить оригинал (212.31 КБ)</a>
там на нужном нам действии пропишем имя нашей функции...
(по правильному это все прописывается в самом файле .py)

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

Добавлено: 27 окт 2014, 18:43
Ворон226
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 вставить:

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

#!/usr/bin/python

import pygtk
pygtk.require("2.0")
import gtk
import gladevcp.makepins
from gladevcp.gladebuilder import GladeBuilder
import hal

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)

import sys,os
xmlname = "mygui.glade"
...
А кнопочку в Glade прописать команду run() ? Так?

(очень сомневаюсь, что понял правильно...)

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

Добавлено: 27 окт 2014, 18:47
Nick
На classic ladder все гораздо нагляднее.
Вот твой пример, когда нажимаем кнопку - сигнал идет на выставление режима auto.
Как только включится auto - нажимаем run.

В итоге будут пины в hal на которые потом все заведешь.

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

Добавлено: 27 окт 2014, 18:51
Ворон226
Nick писал(а):На classic ladder все гораздо нагляднее.
Это я понял, но ведь невозможно СРАЗУ взять и написать на Ladder-е и подключить к кнопке визуальной панели "чайнику". Тут разбираться нужно. По-порядку...
Для этого нужно не только освоить программу написания ладдера, но и освоить подключение этого компонента и его настройки и т.п.

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

Добавлено: 27 окт 2014, 19:06
Ворон226
Похоже, не мой сегодня день.
Стал запускать автомат на MyGUI без AXIS-а и получил при нажатии кнопки с mdi-командой:
Starting LinuxCNC...
emc/task/emctask.cc 374: interp_error: Файл не найден
Файл не найден
emc/task/emctask.cc 374: interp_error: Файл не найден
Файл не найден

Какой такой файл? Все переписал как разбирался, все пересмотрел, адреса перепроверил...
Буду заново все сравнивать с вариантом с Axis-ом...