Страница 14 из 14
[WIKI] Создание конфигурации простого автомата от чайника
Добавлено: 15 окт 2014, 11:40
Ворон226
Часто возникает необходимость создания конфигурации простого автомата на LinuxCNC.
Попробую сделать это тут для новичков (к коим и себя отношу).
А начнем с постановки задачи.
Задача.
Сконфигурировать простой автомат "Планшетный широкоформатный сканер" на базе LinuxCNC со своей панелью управления и встроенной перепрограммируемой программой обработки заготовки.
Для начала определим необходимые направления работы:
1. Описание логики работы сканера
2. Создание файла INI
3. Создание визуальной панели
4. Создание связей между HAL, визуальной панелью и программами/подпрограммами
5. Создание HAL
6. Написание программы сканирования
7. Способы проверки и тестирования конфигурации
Продолжу вечером...
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 08 дек 2014, 23:55
Ворон226
Кхе... А счетчик нумерации кадров тоже в скрипте отрабатывать?
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 09 дек 2014, 00:40
Serg
Вот только не надо говорить что этот счётчик у тебя отрабатывается внутри fswebcam и convert...

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 09 дек 2014, 02:23
NightV
Ворон226 писал(а):Решил вставить в пользовательский компонент skanform команду обрезания фотографии:
и это чайник......? тогда я кусок глины из которого сделают миску

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 09 дек 2014, 13:23
Ворон226
UAVpilot писал(а):Вот только не надо говорить что этот счётчик у тебя отрабатывается внутри fswebcam и convert...

Т.е. в самом обращении к скрипту должно быть значение переменных - так?
NightV писал(а):и это чайник......? тогда я кусок глины из которого сделают миску
(по секрету, я и половины советов не понимаю... Только учусь. понимать)
Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 09 дек 2014, 13:29
Serg
Ворон226 писал(а):Т.е. в самом обращении к скрипту должно быть значение переменных - так?
Ну да, надеюсь тебе религия не запрещает написать что-то вроде такого:
Код: Выделить всё
sCommand = '/где/там/твой/скрипт --save /tmp/webcam_%02d%02d.png -d /dev/video0 -r 640x480 --png 0' % (NN, MM)

Re: [WIKI] Создание конфигурации простого автомата от чайник
Добавлено: 12 дек 2021, 22:58
Ворон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...
Re: [WIKI] Создание конфигурации простого автомата от чайника
Добавлено: 16 дек 2021, 11:22
Ворон226
Итак...
Сделал как и написано выше и запустил конфигурацию через терминал...
Конфигурация запустилась без вопросов.
По команде все оси вышли в HOME.
(прописал исполняемую программу очень просто:
, а в 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()