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

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

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

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

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

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

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

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

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

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

Сообщение Serg »

Ворон226 писал(а):Или отказаться от глобальных и использовать обычные переменные?
Без разницы. Перед использованием значения любой переменной это самое значение нужно сначала поместить в переменную, иначе её значение не определено.
nkp писал(а):а нельзя эту переменную "запоминать" ну хотя бы с нулевым значением в .var файл ,если она вначале вообще не определена...
Нельзя, там можно "запомнить" только номерные переменные.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

nkp писал(а):а в загружаемый по дефолту код что то примерно такое:
#<_X0 > = #123
а почему-бы там просто не написать:
#<_x0 > = 0
?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

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

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

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

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

Сообщение Nick »

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

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

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

Ну да...

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

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

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

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

Сообщение Nick »

halui.mode.auto bit in
pin for requesting auto mode

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

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

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

Nick писал(а):можно в ладдере сделать
а с ним я пока не знаком... Что за зверь?
Хочешь быть счастливым? Будь им!
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

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

Сообщение NightV »

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

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

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

В описании EMC2 крайне мало про classicLadder
Как им пользоваться?
Хочешь быть счастливым? Будь им!
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

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

Сообщение NightV »

Ворон226 писал(а):Как им пользоваться?
програмируется как хардверный PLC (Programmable Logic Controller - Программируемый логический контроллер)
тоесть это типа логической коЁбочки, у которой есть входы и выходы, битовые и численные.
вкратце, внутри коЁбочки можно: сравнивать, делать математические операции, логические И\ИЛИ и так далее.
Всё просто! если знаешь КАК!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение 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)
эту функцию - на твою кнопочку
(ну это я простейший код написал - там проверки всякие можно прописать (интерпретатора и тд))
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

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

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

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

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

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

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

Сообщение nkp »

Ворон226 писал(а):Ничего не понял... Какой gui?
mygui - это же питоновский файл gui ?
вот туда все и пихать...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

Сообщение Ворон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() ? Так?

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

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

Сообщение Nick »

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

В итоге будут пины в hal на которые потом все заведешь.
Вложения
Снимок-2.png (1714 просмотров) <a class='original' href='./download/file.php?id=35625&sid=6b539eee8529cadedacecc8b80e2def2&mode=view' target=_blank>Загрузить оригинал (255.98 КБ)</a>
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

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

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

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

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

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

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

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