Страница 38 из 53

Re: GladeVCP и PyVCP для начинающих

Добавлено: 03 июл 2015, 13:49
alexandr1988
Немного не понял принцип работы sample_hold. Он будет сохранять значение axis.1.motor-pos-fb при активации пина sample-hold.N.hold?
Как будет происходить сброс в этом случае?
Я думал просто хоумить ось Y для сброса, так как датчика на ней нет и просто обнулится координата.

Re: GladeVCP и PyVCP для начинающих

Добавлено: 03 июл 2015, 14:43
Nick
по моему да.
Ну как сохраняешь значение, потом его запихиваем в scale.offset. Только надо наверное со знаком минус его сделать = нужен еще 1 scale :).
alexandr1988 писал(а):Я думал просто хоумить ось Y для сброса, так как датчика на ней нет и просто обнулится координата.
Можно и так. Кстати можно для этого кнопочку добавить в gladevcp ;)

Re: GladeVCP и PyVCP для начинающих

Добавлено: 03 июл 2015, 15:06
alexandr1988
Кнопочка уже имеется, но хоумит две оси. Сделаю еще одну, проблем никаких.
Получается, в Glade можно сделать и уставку для счетчика, чтобы при определенной наработке срабатывал пин и то, что к нему подключено с помощью компонента comp?

Re: GladeVCP и PyVCP для начинающих

Добавлено: 04 июл 2015, 00:19
Nick
Да, примерно так

Re: GladeVCP и PyVCP для начинающих

Добавлено: 04 июл 2015, 13:58
alexandr1988
alexandr1988 писал(а): нужно взять пин axis.1.motor-pos-fb (для Y) и с ним уже производить операции
хоумить ось Y для сброса
В ходе экспериментов выяснилось, что такой счетчик не сбрасывается хоумом оси.
Чтобы сброс работал, нужно использовать axis.1.joint-pos-fb вместо axis.1.motor-pos-fb.
А так все работает отлично. Nick, спасибо!

Теперь ищу способ сбрасывать счетчик при запущенном gcode, так как кнопка хоума оси неактивна во время работы программы.

Re: GladeVCP и PyVCP для начинающих

Добавлено: 06 июл 2015, 10:09
Nick
alexandr1988 писал(а):Теперь ищу способ сбрасывать счетчик при запущенном gcode, так как кнопка хоума оси неактивна во время работы программы.
Делай, как я говорил - 2 scale и 1 hold

Re: GladeVCP и PyVCP для начинающих

Добавлено: 06 июл 2015, 12:44
alexandr1988
А как в таком случае изменить знак axis.1.joint-pos-fb для offset'а? Можно прогнать через mult2, умножив на -1, но может есть более изящное решение?

Re: GladeVCP и PyVCP для начинающих

Добавлено: 06 июл 2015, 12:51
Nick
еще один scale ;). но если хочешь - можешь и через mult.

Re: GladeVCP и PyVCP для начинающих

Добавлено: 09 июл 2015, 12:47
alexandr1988
В итоге работает такой вариант, в hal

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

net positionY axis.1.joint-pos-fb mult2.0.in0 scale.1.in
setp mult2.0.in1 -0.001
net conversion conv-float-s32.0.in mult2.0.out
net SH_in sample-hold.0.in conv-float-s32.0.out
net SH_out sample-hold.0.out conv-s32-float.0.in
setp scale.1.gain 0.001
net offset1 scale.1.offset conv-s32-float.0.out
в Postgui

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

net counter gladevcp.counter scale.1.out
net button gladevcp.reset sample-hold.0.hold
В glade кнопка + label

Re: GladeVCP и PyVCP для начинающих

Добавлено: 20 июл 2015, 13:47
raddd
что бы не писать в теме о Gmoccapy перенес вопрос сюда:
вот суть вопроса http://www.cnc-club.ru/forum/viewtopic. ... 68#p207446

установил мастера. все хорошо. но громоздко(((
хотелось бы более независимых инструментов.
вот что я смог дополнить, в архиве.
как сделать чтобы эти параметры передались в MDI?
в формате o<compensation_map> call [50] [50] [1] [1] [4] [25] [1] [2] [0.1] [0]
M02
%

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 00:31
raddd
вобщем пока баловался получилось.. осталось только "марафет"навести.

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 01:47
raddd
как зделать что бы помнило последние значения?

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 11:32
Nick
raddd писал(а):как зделать что бы помнило последние значения?
В файл сохранять...

я не совсем понимаю, ты эту строчку из MDI вызываешь?
o<compensation_map> call [50] [50] [1] [1] [4] [25] [1] [2] [0.1] [0]

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 11:38
raddd
наоборот в в МДИ вбиваю значения из SpinButton в виде o<compensation_map> call [${Xsize]] [${Ysize]] и так далее...
так вот как запомнить последние данные в SpinButton?

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 15:35
verser
raddd писал(а):..как запомнить последние данные в SpinButton?
Добавить в python модуль такой класс
(для просмотра содержимого нажмите на ссылку)

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

from linuxcnc import ini
import ConfigParser

cp = ConfigParser.RawConfigParser
class preferences(cp):
    types = {
        bool: cp.getboolean,
        float: cp.getfloat,
        int: cp.getint,
        str: cp.get,
        repr: lambda self, section, option: eval(cp.get(self, section, option)),
    }

    def __init__(self, path = None):
        cp.__init__(self)
        if not path:
            path = "~/.my_preferences"
        self.fn = os.path.expanduser(path)
        self.read(self.fn)

    def getpref(self, option, default = False, type = bool):
        m = self.types.get(type)
        try:
            o = m(self, "DEFAULT", option)
        except Exception, detail:
            print detail
            self.set("DEFAULT", option, default)
            self.write(open(self.fn, "w"))
            if type in(bool, float, int):
                o = type(default)
            else:
                o = default
        return o

    def putpref(self, option, value, type = bool):
        self.set("DEFAULT", option, type(value))
        self.write(open(self.fn, "w"))
и такую функцию
(для просмотра содержимого нажмите на ссылку)

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

    def get_preference_file_path(self):
        # we get the preference file, if there is none given in the INI
        # we use my.pref in the config dir
        temp = self.inifile.find("DISPLAY", "PREFERENCE_FILE_PATH")
        if not temp:
            machinename = self.inifile.find("EMC", "MACHINE")
            if not machinename:
                temp = os.path.join(CONFIGPATH, "my.pref")
            else:
                machinename = machinename.replace(" ", "_")
                temp = os.path.join(CONFIGPATH, "%s.pref" % machinename)
        print("**** PREFERENCE GETINIINFO **** \n Preference file path: %s" % temp)
        return temp
Далее создать объект класса preferences при инициализации

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

self.prefs = preferences( self.get_preference_file_path() )
И использовать при необходимости сохраниться

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

 self.prefs.putpref( "param_for_saving", self.param_for_saving, float )
или, если извлечь сохраненное

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

self.param_for_saving=self.prefs.getpref( "param_for_saving",0, float)

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 19:49
raddd
паять и гайки крутить пожалуйста! а вот тут без пояснений никак(((
пробовал копипастить все пропадает и кнопки и вобщем все пропадает...
да и чего пробовать если я не программер)))

куда чего вставлять? в начало в конец? в средину али посля ХХХ строки?
verser писал(а):И использовать при необходимости сохраниться
так мне надо будт сохранять при необходимости?

мне надо как простому юзеру открыл AXIS - Compesation_z а там значения в spinbutton те что были до закрытия...

хелп ми плиз!

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 20:03
verser
Инструкция предназначалась не для copy-paste. Она подробно демонстрирует принцип сохранения параметров, который можно применять в разных приложениях. Когда Вы начали вносить свои правки в код, то перестали быть "да-и-чего-пробовать-если-я-не-программер". И это здорово! Вы сможете сделать так, чтобы всё выглядело по-вашему. :good:

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 20:43
raddd
пока что поправки я внес только в Glade.. там я ооочень мало но разобрался... (там все графическое оно попроще)
в питоне я как кролик в питоне)) по лапкам связан.
даже когда приперло для AVR простенькую прошивку написать писал на ASSEMBLER (там в отладке проще) си и прочие высокоуровневые языки мне непонятны...
вот и прошу того кто шарит.... и я заодно чегото в свою голову положу....

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 20:47
raddd
verser писал(а):Инструкция предназначалась не для copy-paste. Она подробно демонстрирует принцип сохранения параметров, который можно применять в разных приложениях
я вчера находил на нашем форуме от Ника сообщение с сылками и исправленым кодом (помоему человек для плазмореза Z управление делал). с такой же проблемой...по ссылкам ходил... за пивом ходил.. нифига непонял)))

Re: GladeVCP и PyVCP для начинающих

Добавлено: 21 июл 2015, 21:13
raddd
ну а пока "вбил" начальные значения через Glade...
все методом научного тыка))))
hal и python файлы не трогал..