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

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

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

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

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

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

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

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

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

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

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

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

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

Сообщение Serg »

Вот только не надо говорить что этот счётчик у тебя отрабатывается внутри fswebcam и convert... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

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

Сообщение NightV »

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

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

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

UAVpilot писал(а):Вот только не надо говорить что этот счётчик у тебя отрабатывается внутри fswebcam и convert... :)
Т.е. в самом обращении к скрипту должно быть значение переменных - так?
NightV писал(а):и это чайник......? тогда я кусок глины из которого сделают миску
(по секрету, я и половины советов не понимаю... Только учусь. понимать)
Хочешь быть счастливым? Будь им!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Ворон226 писал(а):Т.е. в самом обращении к скрипту должно быть значение переменных - так?
Ну да, надеюсь тебе религия не запрещает написать что-то вроде такого:

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

sCommand = '/где/там/твой/скрипт --save /tmp/webcam_%02d%02d.png -d /dev/video0 -r 640x480 --png 0' % (NN, MM)
:)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

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

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

Ворон226 писал(а): 01 ноя 2014, 21:57 А все равно не запускается...
Вот и вернулся я к кнопке ПУСК)))

Что было рекомендовано для создания кнопки ПУСК в собственной панели управления станком на linuxcnc:

1. В Glade в свойствах кнопки ПУСК в Сигналы добавить clicked run (обязательно без скобочек!!!)

2. В файле, описывающем визуальную панель (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()

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

import sys,os
xmlname = "mygui.glade"

class Mygui(object):
def run(self, widget):
program_start_line = 0
c.mode(linuxcnc.MODE_AUTO)
c.auto(linuxcnc.AUTO_RUN, program_start_line)

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

	def on_window1_destroy(self, widget, data=None):
		print "quit++"
		gtk.main_quit()
	def __init__(self):
		self.builder = gtk.Builder()
		self.builder.add_from_file(xmlname)
		halcomp = hal.component("mygui")
		self.builder.connect_signals(self)
		self.window = self.builder.get_object("window1")
		self.window.show()
		#self.window.fullscreen()
		panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)


if __name__ == "__main__":
	app = Mygui()
	res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "./mode.hal"])
	if res: raise SystemExit, res
	gtk.main()
После этого нет необходимости прописывать кнопку визуальной панели в mode.hal

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

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

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

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

Итак...
Сделал как и написано выше и запустил конфигурацию через терминал...
Конфигурация запустилась без вопросов.
По команде все оси вышли в HOME.
(прописал исполняемую программу очень просто:

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

G21

G1 X150 Y-200 F500
G0 X0 Y0

M2
, а в INI прописано так:

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

[DISPLAY]


OPEN_FILE = /home/telex-2-3/linuxcnc/configs/PRINT1/print1.ngc
В эту папочку и положил исполняемую программу.)
Нажимаю кнопку "ПУСК"
и вижу в терминале:

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

emc/task/emctask.cc 411: interp_error: File not open
File not open
Конечно, программа и не думала начать исполняться...
Посмотрел emc/task/emctask.cc - нет такой папки! Кто же к ней хочет обратиться? И где это обращение прописано? И как переправить на нужное?

На всякий прикладываю файл 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() 
import sys,os
xmlname = "mygui.glade"

class Mygui(object):
	def run(self, widget):
		program_start_line = 0
		c.mode(linuxcnc.MODE_AUTO)
		c.auto(linuxcnc.AUTO_RUN, program_start_line) 
	def on_window1_destroy(self, widget, data=None):
		print "quit++"
		gtk.main_quit()
	def __init__(self):
		self.builder = gtk.Builder()
		self.builder.add_from_file(xmlname)
		halcomp = hal.component("mygui")
		self.builder.connect_signals(self)
		self.window = self.builder.get_object("window1")
		self.window.show()
		#self.window.fullscreen()
		panel = gladevcp.makepins.GladePanel( halcomp, xmlname, self.builder, None)


if __name__ == "__main__":
	app = Mygui()
	res = os.spawnvp(os.P_WAIT, "halcmd", ["halcmd", "-f", "./mode.hal"])
	if res: raise SystemExit, res
	gtk.main()
Хочешь быть счастливым? Будь им!
Ответить

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