Полноценная стойка на стол плазменного раскроя на базе ЕМС2
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Посмотри, что происходит на пинах:
sum2.thc.in0
sum2.thc.out
sum2.thc.in0
sum2.thc.out
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
а на sum2.thc.in1?
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Есть какое-то значение, изменяется в зависимости от положения оси Z, но не равняется ему.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
странно sum2.thc.in1 не 0 и sum2.thc.out =0....
а sum2.thc.gain1 чему равен?
----------
а понял в чем дело, мы sum2 не обновляем.
напиши
после
а sum2.thc.gain1 чему равен?
----------
а понял в чем дело, мы sum2 не обновляем.
напиши
Код: Выделить всё
addf sum2.thc servo-thread
Код: Выделить всё
# загружаем sum2
loadrt sum2 names=sum2.thc
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Все равно не работает, на sum2.thc.in0 ноль, updown.thc.count изменяется при замыкании соответствующих пинов LPT
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Как так?
Ведь есть net updownd sum2.thc.in0 updown.thc.count
А если поменять setp sum2.thc.gain0 0.001 на другое значение? Хотя на in0 оно влиять не должно, только на общую сумму...
Ведь есть net updownd sum2.thc.in0 updown.thc.count
А если поменять setp sum2.thc.gain0 0.001 на другое значение? Хотя на in0 оно влиять не должно, только на общую сумму...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Может им еще надо conv_s32_float добавить... sum2.thc.in0 должен быть float, а updown.thc.count это целое число.
Код: Выделить всё
loadrt conv_s32_float names = conv_s32_float.updown
addf conv_s32_float.updown servo-thread
net conv-in => conv_s32_float.updown.in <= updown.thc.count
net conv-out => conv_s32_float.updown.out <= sum2.thc.in0
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Ура, заработало!!! Спасибо за помощь! Теперь бы еще modbus подключить, чтоб задавать и читать напряжение. Я так понял нужно ClassicLadder осваивать?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Угу его самого...
Вот эту тему почитай: LinuxCNC и modbus #1
Вот эту тему почитай: LinuxCNC и modbus #1
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
С модбасом разобрался, работает, только напрягает, что появились лишние окна. Но все так же остается вопрос: как зделать, чтоб числа в полях ввода сохранялись, и при следующей загрузке не нужно было бы их вводить? А вообще не плохо было бы зделать выпадающую таблицу с толщинами металла, напряжением, высотой подпрыжки, и только выбирать нужную строку, такое возможно?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Создаешь файл my-glade.pylobzik писал(а): Но все так же остается вопрос: как зделать, чтоб числа в полях ввода сохранялись, и при следующей загрузке не нужно было бы их вводить?
В строчку загрузки gladevcp добавляешь -u my-glade.py
В этом файле пишем как написано тут , т.е. что-то вроде:
Код: Выделить всё
def __init__(self, halcomp,builder,useropts):
self.halcomp = halcomp
self.builder = builder
self.useropts = useropts
self.defaults = {
# the following names will be saved/restored as method attributes
# the save/restore mechanism is strongly typed - the variables type will be derived from the type of the
# initialization value. Currently supported types are: int, float, bool, string
IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"},
# to save/restore all widget's state which might remotely make sense, add this:
IniFile.widgets : widget_defaults(builder.get_objects())
# a sensible alternative might be to retain only all HAL output widgets' state:
# IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)),
}
self.ini_filename = __name__ + '.ini'
self.ini = IniFile(self.ini_filename,self.defaults,self.builder)
self.ini.restore_state(self)
import gtk
def on_destroy(self,obj,data=None):
self.ini.save_state(self)
Плюс нужно какому-нибудь объекту на форме привязать сигнал destroy к функции on_destroy
В разделе HAL Python есть виджет Combobox - это как раз выпадающий список.lobzik писал(а):А вообще не плохо было бы зделать выпадающую таблицу с толщинами металла, напряжением, высотой подпрыжки, и только выбирать нужную строку, такое возможно?
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Это вообще не понял как делаетсяNick писал(а):Плюс нужно какому-нибудь объекту на форме привязать сигнал destroy к функции on_destroy
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Выделяешь какой-нибудь объект, например главный контейнер и вот сюда пишешь on_destroy
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Че-то не работает, появился в пвпке моего станка файл my-glade.pyc и все, значения не сохраняются
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Скинь свои glade, hal, ini и py файлы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Поколдовал над my-glade.py, вроде работает:
Стырил практически все отсюда: http://psha.org.ru/cgit/psha/emc2.git/p ... complex.py
и отсюда: http://linuxcnc.org/docs/html/gui/glade ... n_gladevcp
Код: Выделить всё
import hal
import glib
import time
import gtk
from gladevcp.persistence import IniFile,widget_defaults,set_debug,select_widgets
import os,sys
class HandlerClass:
def __init__(self, halcomp,builder,useropts):
self.halcomp = halcomp
self.builder = builder
self.useropts = useropts
self.defaults = {
# the following names will be saved/restored as method attributes
# the save/restore mechanism is strongly typed - the variables type will be derived from the type of the
# initialization value. Currently supported types are: int, float, bool, string
IniFile.vars : { 'nhits' : 0, 'a': 1.67, 'd': True ,'c' : "a string"},
# to save/restore all widget's state which might remotely make sense, add this:
IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)),
# a sensible alternative might be to retain only all HAL output widgets' state:
# IniFile.widgets: widget_defaults(select_widgets(self.builder.get_objects(), hal_only=True,output_only = True)),
}
(directory,filename) = os.path.split(__file__)
(basename,extension) = os.path.splitext(filename)
self.ini_filename = os.path.join(directory,basename + '.ini')
self.ini = IniFile(self.ini_filename,self.defaults,self.builder)
self.ini.restore_state(self)
def on_destroy(self,obj,data=None):
self.ini.save_state(self)
def get_handlers(halcomp,builder,useropts):
'''
this function is called by gladevcp at import time (when this module is passed with '-u <modname>.py')
return a list of object instances whose methods should be connected as callback handlers
any method whose name does not begin with an underscore ('_') is a callback candidate
the 'get_handlers' name is reserved - gladevcp expects it, so do not change
'''
return [HandlerClass(halcomp,builder,useropts)]
и отсюда: http://linuxcnc.org/docs/html/gui/glade ... n_gladevcp
- lobzik
- Кандидат
- Сообщения: 53
- Зарегистрирован: 22 ноя 2012, 14:33
- Репутация: 32
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
Все прекрасно работает, спасибо за помощь, но вот возникла еще небольшая проблемка, у меня электрод поиска метала должен отключаться при зажигании плазмы. Как в О-коде зделать выход, который будет включать и выключать реле контрольного електрода?
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Полноценная стойка на стол плазменного раскроя на базе Е
M64 P0 - включит motion.digital-out-00 (этот пин соеденяем в хал с выходом месы или парпорта)
M65 P0 - включит motion.digital-out-00
http://www.linuxcnc.org/docs/2.5/html/g ... _m62_m65_a
M65 P0 - включит motion.digital-out-00
http://www.linuxcnc.org/docs/2.5/html/g ... _m62_m65_a