продолжение работы после отключения питания компьютера

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 14:18

fredy79 писал(а):Тое-сть станок должен во время работы запоминать исполненные кадры, после отключения питания и его возобновлении должен автоматически загрузить файл прерванной обработки, обнулиться и предложить продолжить работу с прерванного кадра.

я имею в виду что при возобновлении питания нажимаем кнопку "идти в дом" при этом должна быть загружена незавершенная программа, и должна быть кнопка "продолжить незавершенную работу"
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 15:07

fredy79 писал(а):я имею в виду что при возобновлении питания нажимаем кнопку "идти в дом" при этом должна быть загружена незавершенная программа, и должна быть кнопка "продолжить незавершенную работу"

Я ж только что привёл пример того, что опасно "продолжать незавершенную работу" из какой попало точки...
Предварительно выставив инструмент в некую безопасную точку и запустить обработку с повтора последнего исполненного кадра нет проблем.
Хотя всётаки есть: для полного счастья этот кадр должен содержать движение по всем задействованным осям, а т.к. такое довольно редко, то придётся перед продолжением выполнить некоторые операции вручную.

P.S. Вашу цитату я поправил, чтобы ваши слова не приписывались мне. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение nkp » 22 ноя 2017, 15:07

запоминание места ,где остановила авария:
файл numstr.py
Код: Выделить всёРазвернуть
#!/usr/bin/python
import hal
h = hal.component("numstr")
h.newpin("in", hal.HAL_S32, hal.HAL_IN)
h.ready()
tmp = 0
flog = '/home/nkp/linuxcnc-reverse-run/configs/sim/axis/line-number.log'
f = open(flog,'w')
f.write('0')
f.close()
try:
    while 1:
       if h['in'] == 0:
          continue
       else:
         if h['in'] > tmp:
            f = open(flog,'w')
            f.write(str(int(h['in'])))
            f.close()
            tmp = h['in']
except KeyboardInterrupt:
    raise SystemExit


помещаем в папку конфига и делаем исполняемым

-------------------------
в хал файл допишем :
loadusr -Wn numstr python numstr.py
net line motion.program-line => numstr.in
---------------------------
редактируем наше "окошко" (файл restart.py)^
Код: Выделить всёРазвернуть
#!/usr/bin/env python
# --*-- coding:utf-8 --*--

import pygtk
pygtk.require('2.0')
import gtk
import re
import os,sys
import linuxcnc

class WRestart:
    def delete_event(self, widget, event, data=None):
        gtk.main_quit()
        return False
       
    def go(self):
        s = linuxcnc.stat()
        s.poll()
        filename = s.file
        f = open(filename, "r")
        lines = f.readlines()
        number_line = int(self.entry.get_text())
        string=''
        w=0
        while not re.search("M2\s*",lines[w], re.I):
            w+=1
            if (w <= number_line):
                try:
                    tool =  int(re.search("T\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass
                try:
                    speed = int(re.search("S\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass
                try:
                    feed =  int(re.search("F\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass                                       
            if (w >= number_line):
                string+=lines[w]
        string +='M2\n'
        print 'M6 T',tool
        print 'F',feed
        print 'M3 S',speed
        sys.stdout.write(string)
        gtk.main_quit()
             
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("restart")
        self.window.connect("delete_event", self.delete_event)
        self.window.set_border_width(20)

        self.vbox = gtk.VBox(True, 2)
        self.window.add(self.vbox)
       
        #self.entry = gtk.Label()
        #self.entry.set_text("№ line")
        #self.vbox.pack_start(self.entry, True, True, 2)
        #self.entry.show()
               
        fr = open('/home/nkp/linuxcnc-reverse-run/configs/sim/axis/line-number.log','r')
        ls = fr.readlines()
        l = re.sub("^\s+|\n|\r|\s+$", '',  ls[0] )
       
        self.entry = gtk.Entry()
        self.entry.set_max_length(10)
        self.entry.set_text(l)
        self.vbox.pack_start(self.entry, True, True, 2)
        self.entry.show()
       

                     
        self.button = gtk.Button("Open")
        self.button.connect("clicked", lambda x: self.go())
        self.vbox.pack_start(self.button, True, True, 2)
        self.button.show()
        self.vbox.show()
       
       
       
        self.window.set_position(gtk.WIN_POS_CENTER)
        self.window.show()
       
def main():   
    gtk.main()
    return 0       
if __name__ == "__main__":
    WRestart()
    main()
   
   

теперь оно берет номер строки...
----------------
путь к файлам разумеется подправляем...
nkp
Мастер
 
Сообщения: 7420
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 15:14

UAVpilot писал(а):опасно "продолжать незавершенную работу" из какой попало точки...

так для этого и делается кнопка, отвел на безопасную позицию и нажал))
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 15:27

fredy79 писал(а):так для этого и делается кнопка, отвел на безопасную позицию и нажал))

А есть понимание какая позиция безопасна для продолжения? :)
Например если пилим паз или делаем раскрой, то перед нажатием кнопки "продолжение" придётся сначала инструмент во включенном шпинделе завести точно в прорезанный паз - ибо только именно эта позиция будет безопасна всегда (ну почти всегда).
Я думаю пока не стоит заострять внимание, что электричество предпочитает пропадать не строго между кадрами, а где-то посередине выполняемого. :)

fredy79 писал(а):отвел на безопасную позицию и нажал

Т.е. про "функцию автоматического продолжения работы после отключения питания" всётаки уже не говорим? :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 15:37

говорим, шпиндель естественно должен включиться до того момента как ось Z пойдет вниз, оси Х и У уже должны стоять в нужном месте и в этом случае фреза опускается вниз со включенным шпинделем при приближении шпинделя к заданной точке скорость оси должна уменьшиться.
UAVpilot писал(а):"функцию автоматического продолжения работы после отключения питания"
и подразумевает нажатие кнопки оператором без поиска нужной строки и позиции. То есть если нет никаких препятствий движению фрезы то нажал кнопку и станок поехал в нужную точку и продолжил, если есть, отвел оси в безопасное место, нажал кнопку и станок продолжил работу.
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 15:40

UAVpilot писал(а):Я думаю пока не стоит заострять внимание, что электричество предпочитает пропадать не строго между кадрами, а где-то посередине выполняемого.

я писал ранее что продолжение работы должно быть с номера кадра = номер последнего кадра -1
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 16:05

Допустим этот кадр выглядит так:
Код: Выделить всёРазвернуть
X100

что именно стано должен будет сделать?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 16:28

система должна при этом знать позицию У и Z, скорость и направление шпинделя, скорость подачи осей , у строки Х100 есть номер, допустим 50 , продолжение должно быть со строки 50-1=49
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 16:39

fredy79 писал(а):и подразумевает нажатие кнопки оператором без поиска нужной строки и позиции.

Так с этим никаких проблем нет - решение не раз описывалось на этом форуме и в этой теме.

fredy79 писал(а):система должна при этом знать позицию У и Z, скорость и направление шпинделя, скорость подачи осей , у строки Х100 есть номер, допустим 50 , продолжение должно быть со строки 50-1=49

Код: Выделить всёРазвернуть
...
N49 X90
N50 X100
...

:)

Ах да, чуть не забыл:
Код: Выделить всёРазвернуть
...
N40 G90 G98 G81 X0 Y0 Z-10 R5
...

:)

P.S. LinuxCNC развивается с 2000-ого года. Вы правда считаете разработчиков LinuxCNC настолько глупыми, что они за 17 лет так и не смогли реализовать сию фичу?.. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 16:50

так я этой фичи не вижу, или я не туда смотрю?
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 17:09

автоматического продолжения нет и скорее всего не будет. Причины тут 100500 раз описывались, например в #110.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение fredy79 » 22 ноя 2017, 17:20

так она особо не нужна там, где время обработки небольшое и обрабатываемый материал не дорогой, эта функция нужна там, где коды из поста 110 не используются, как это реализовано в дешевой Nc-studio? как это реализовано в пультах RichAuto? я работаю с камнем и деревом, в основном гравировка надписей и 3D рельефы, да и многие кому интересна эта функция занимаются подобной работой, так если китайцы смогли это реализовать, неужели это невозможно сделать в Linuxcnc?
fredy79
Кандидат
 
Сообщения: 93
Зарегистрирован: 03 июн 2014, 20:22
Репутация: 3

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 22 ноя 2017, 21:28

fredy79 писал(а):я работаю с камнем и деревом, в основном гравировка надписей и 3D рельефы, да и многие кому интересна эта функция занимаются подобной работой

Видимо все вы выбрали не ту систему ЧПУ, наверно надо было брать Nc-studio и RichAuto.

fredy79 писал(а):так если китайцы смогли это реализовать, неужели это невозможно сделать в Linuxcnc?

Сделать чтобы иногда работало, а иногда крушило фрезы, заготовки, оснастку можно - в этой теме описывалось несколько способов по несколько раз.
Китайцы без проблем сделают какую угодно фигню и назовут её как нравится покупателям, а когда эта фигня что-то у вас порушит, то просто не ответят на ваши претензии/вопросы или ответят с стиле "сам дурак", ибо ваши деньги уже давно у них.
Я, например, ни разу не встречал подобную фичу в стойках Fanuc - неужели не могут сделать?.. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение nkp » 22 ноя 2017, 22:10

добавил сканирование "модальных" жкодов:
(т.н. строка безопасности и не только)
в массив
Код: Выделить всёРазвернуть
        self.gcodes = [
                      ['G90','G91'], ['G20','G21'], ['G17','G18','G19'],['G54','G55','G56'],
                      ['G41','G42','G40'],
                      ]

помещаем "модальные" группы, выводится активный (один из группы)
Код: Выделить всёРазвернуть
#!/usr/bin/env python
# --*-- coding:utf-8 --*--

import pygtk
pygtk.require('2.0')
import gtk
import re
import os,sys
import linuxcnc

class WRestart:
    def delete_event(self, widget, event, data=None):
        gtk.main_quit()
        return False
         
    def go(self):
        s = linuxcnc.stat()
        s.poll()
        filename = s.file
        f = open(filename, "r")
        lines = f.readlines()
        number_line = int(self.entry.get_text())
        string_f = ''
        string_s = ''
        str_code = ''
        w=0
        while not re.search("M2\s*",lines[w], re.I):
            w+=1
            if (w <= number_line):
           
                for i in range(len(self.gcodes)):
                    for n in range(len(self.gcodes[i])):
                        if (re.search(str(self.gcodes[i][n]),lines[w], re.I)):
                            self.G[i].append(str(self.gcodes[i][n]))
                           
                try:
                    tool = int(re.search("T\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass                                                         
                try:
                    speed = int(re.search("S\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass
                try:
                    feed =  int(re.search("F\s*([0-9.]+)",lines[w], re.I).group(1))
                except:
                    pass
                                                           
            if (w >= number_line):
                string_s += lines[w]
               
        string_f += 'M6 T%d\n' % tool
        string_f += 'M3 S%d\n' % speed
        string_f +=' F%d\n'    % feed
       
        for i in self.G:
            try:
                str_code += i[-1] 
            except:
                pass           
        string =  str_code + '\n' + string_f + string_s           
        sys.stdout.write(string)
        gtk.main_quit()
             
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("restart")
        self.window.connect("delete_event", self.delete_event)
        self.window.set_border_width(20)

        self.vbox = gtk.VBox(True, 2)
        self.window.add(self.vbox)
       
        self.gcodes = [
                      ['G90','G91'], ['G20','G21'], ['G17','G18','G19'],['G54','G55','G56'],
                      ['G41','G42','G40'],
                      ]
        self.G = []
        for i in range(len(self.gcodes)):
            self.G.append([])     
        fr = open('line-number.log','r')
        ls = fr.readlines()
        l = re.sub("^\s+|\n|\r|\s+$", '',  ls[0] )
       
        self.entry = gtk.Entry()
        self.entry.set_max_length(10)
        self.entry.set_text(l)
        self.vbox.pack_start(self.entry, True, True, 2)
        self.entry.show()
                             
        self.button = gtk.Button("Open")
        self.button.connect("clicked", lambda x: self.go())
        self.vbox.pack_start(self.button, True, True, 2)
        self.button.show()
        self.vbox.show()
       
       
       
        self.window.set_position(gtk.WIN_POS_CENTER)
        self.window.show()
       
def main():   
    gtk.main()
    return 0       
if __name__ == "__main__":
    WRestart()
    main()
   
   
nkp
Мастер
 
Сообщения: 7420
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Re: продолжение работы после отключения питания компьютера

Сообщение nkp » 24 ноя 2017, 23:16

https://www.youtube.com/watch?v=fwC-rRY ... e=youtu.be
подумалось еще о таком варианте:
просто сканировать все коды подряд(кроме ж1,2,3) и вставлять их в таком же порядке в шапку "нового" файла
nkp
Мастер
 
Сообщения: 7420
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 25 ноя 2017, 02:16

Всякие M6 порушат всю автоматику. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение nkp » 25 ноя 2017, 15:12

UAVpilot писал(а):Всякие M6 порушат всю автоматику. :)

не совсем понял даже кому это адресовано))
но на всякий случай,если мне - то я не пытаюсь сделать какую то "автоматику" :)
просто ,можно сказать:
1). проверяю выложенные "решения" (вот например в этой теме (наверно) никто так и не попробовал код Ника,
потому что он с ошибкой :) (ну или промолчал))
2). собираю "до кучи" эти мелкие фичи(загрузка последнего файла, запоминание номера строки, старт с этой строки)
пока так ;)
вот между делом убрал везде явные пути, прописываем только в ини файле:
Код: Выделить всёРазвернуть
#!/usr/bin/env python
# --*-- coding:utf-8 --*--

import pygtk
pygtk.require('2.0')
import gtk
import re
import os,sys
import linuxcnc

dir_ini = str(os.getcwd())
all_files = os.listdir(os.getcwd())
n_ini = filter(lambda x: x.endswith('.ini'),all_files)
if len(n_ini)>1 : print 'ini file > 1'
f_ini = os.path.join(dir_ini, n_ini[0])
inifile = linuxcnc.ini(f_ini)

main_file =  inifile.find("RESTART", "MAIN_NAME")
open_file  = inifile.find("DISPLAY", "OPEN_FILE")

class WRestart:
    def delete_event(self, widget, event, data=None):
        gtk.main_quit()
        return False
               
    def go(self):
        s = linuxcnc.stat()
        s.poll()
        filename = s.file
        if (os.path.basename(filename) == main_file):
            filename = open_file
        f = open(filename, "r")
        lines = f.readlines()
        f.close()
        self.number_line = int(self.entry.get_text())-2

        string_f = ''       
        string_s = ''
        str_code = ''
        s=-1
        while not re.search("M2\s*",lines[s], re.I):
            s+=1
            if (s <= self.number_line):
           
                for i in range(len(self.gcodes)):
                    for n in range(len(self.gcodes[i])):
                        if (re.search(str(self.gcodes[i][n]),lines[s], re.I)):
                            self.G[i].append(str(self.gcodes[i][n]))
                           
                try:
                    tool = int(re.search("T\s*([0-9.]+)",lines[s], re.I).group(1))
                except:
                    pass                                                         
                try:
                    speed = int(re.search("S\s*([0-9.]+)",lines[s], re.I).group(1))
                except:
                    pass
                try:
                    feed =  int(re.search("F\s*([0-9.]+)",lines[s], re.I).group(1))
                except:
                    pass
                try:
                    pos_Z = float(re.search("Z\s*([-0-9.]+)",lines[s], re.I).group(1))
                except:
                    pass                   
                if (s == self.number_line):
                    try:
                        pos_X = float(re.search("X\s*([-0-9.]+)",lines[s], re.I).group(1))
                    except:
                        pass 
                    try:
                        pos_Y = float(re.search("Y\s*([-0-9.]+)",lines[s], re.I).group(1))
                    except:
                        pass                                                                 
            if (s > self.number_line):
                    string_s += lines[s]                   
        try:
            string_f += 'M3 S%d \n' % speed       
            string_f += 'M6 T%d \n' % tool
            string_f += 'F%d \n\n'   % feed
           
            #self.string_add(string_f,'G0 X%f\n',pos_X)
            #self.string_add(string_f,'G0 Y%f\n',pos_Y)
           
            string_f += 'G0 X%f\n'  % pos_X             
            string_f += 'G0 Y%f\n'  % pos_Y
           
            string_f += 'G0 Z%f \n\n'  % (pos_Z + 5)
            string_f += 'F%d \n'   % (feed * 0.1)
            string_f += 'G1 Z%f \n'  % pos_Z
            string_f += 'F%d \n\n'   % feed
        except:
            pass
           
        for i in self.G:
            try:
                str_code += str(i[-1] + ' ')
            except:
                pass
                           
        string =  str_code + '\n' + string_f + string_s + '\n'
        try:
            sys.stdout.write(string)
        finally:
           
            filename = open_file
            f = open(filename, "w")
            f.write(string)
            f.close()
        gtk.main_quit()
       
    def chang(self):
        if self.check.get_active():
            self.go()
        else:
            self.go()     
    def string_add(self,s,reg,v):
        try:
            s += 'reg' % v
        except:
            pass                 
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_title("restart")
        self.window.connect("delete_event", self.delete_event)
        self.window.set_border_width(20)

        self.vbox = gtk.VBox(True, 2)
        self.window.add(self.vbox)
       
        self.gcodes = [
                      ['G90','G91'], ['G20','G21'], ['G17','G18','G19'],['G54','G55','G56'],
                      ['G41','G42','G40'],['G49'],
                      ]
        self.G = []
        for i in range(len(self.gcodes)):
            self.G.append([])     
        fr = open('line-number.log','r')
        ls = fr.readlines()

        l = re.sub("^\s+|\n|\r|\s+$", '',  ls[0] )
               
        self.entry = gtk.Entry()
        self.entry.set_max_length(10)
        self.entry.set_text(l)
        self.vbox.pack_start(self.entry, True, True, 2)
        self.entry.show()
                             
        self.button = gtk.Button("Open")       

        self.button.connect("clicked", lambda x: self.chang())
           
        self.vbox.pack_start(self.button, True, True, 2)
        self.button.show()
        self.vbox.show()

        self.hbox = gtk.HBox(False, 0)
        self.vbox.add(self.hbox)
        self.hbox.show()
                                 
        self.check = gtk.CheckButton("All codes")
        self.hbox.pack_start(self.check, True, True, 0)
        self.check.set_active(0)
        self.check.show()       
       
        self.window.set_position(gtk.WIN_POS_CENTER)
        self.window.show()
       
def main():   
    gtk.main()
    return 0       
if __name__ == "__main__":
    WRestart()
    main()
   
   
nkp
Мастер
 
Сообщения: 7420
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Re: продолжение работы после отключения питания компьютера

Сообщение UAVpilot » 25 ноя 2017, 16:36

nkp писал(а):не совсем понял даже кому это адресовано))
но на всякий случай,если мне - то я не пытаюсь сделать какую то "автоматику" :)

Ну эта тема про автоматическое возобновление... :)
Если забыть про это, то всё решается просто - отдельный компонент, который мониторит состояние LinuxCNC (координаты, активные G-коды, номер строки и т.п.) и периодически пишет его в файл. При необходимости продолжения восстанавливает записанное состояние.
Правда всё равно будут нюансы со всякими локальными нестандартными кодами и пинами.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 16727
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4119
Медальки:
Настоящее имя: Сергей

Re: продолжение работы после отключения питания компьютера

Сообщение nkp » 25 ноя 2017, 16:42

UAVpilot писал(а):Ну эта тема про автоматическое возобновление..

если ТС посчитает,что мои потуги здесь неуместны - я открою отдельныю тему))
UAVpilot писал(а):Если забыть про это, то всё решается просто - отдельный компонент, который мониторит состояние LinuxCNC (координаты, активные G-коды, номер строки и т.п.) и периодически пишет его в файл. При необходимости продолжения восстанавливает записанное состояние.

так я и выкладываю УЖЕ это решение :)
а "просто" - видать не всем,потому в теме одна вода ))
nkp
Мастер
 
Сообщения: 7420
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1254
Медальки:

Пред.След.

Вернуться в LinuxCNC

Кто сейчас на конференции

Зарегистрированные пользователи: AlekseySP, anivan, Argon-11, Bing [Bot], crazy2k, D.L., drey82, dumpdr, ElFriendo, fara8018, Google [Bot], Kahendra, kang2k, Lokk, Lunatic, Maxekb77, maxx2000orel, MGG, michalych, mikehv, Newengine, nik1, NikolayUa24, Nixon, nizamus, raddd, reb, rlan, Rodion88, selenur, SeReGa Sh, shalek, Shev, sn0wflake, spryt, Stephan67, Umnik, Yandex [bot], Yarrr, пансо

Поделиться

Reputation System ©'