Общая статистика работы
-
- Кандидат
- Сообщения: 44
- Зарегистрирован: 14 мар 2014, 22:52
- Репутация: 8
- Откуда: Беларусь
- Контактная информация:
Общая статистика работы
Здравствуйте. Можно как то просмотреть общую статистику наработки станка на linuxcnc?
Опыт приходит с опытом.
CO2 Home Made 1500x1000
CO2 Home Made 1500x1000
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Общая статистика работы
Никак. Ибо никто не мешает управлять станком ещё и какой-нибудь другой программой/компом.
Учёт времени работы программы с каким-нибудь станком сделать можно.
В станок можно встроить что-нибудь такое:
https://www.youtube.com/watch?v=otWwoI1AaJU
Учёт времени работы программы с каким-нибудь станком сделать можно.
В станок можно встроить что-нибудь такое:
https://www.youtube.com/watch?v=otWwoI1AaJU
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Кандидат
- Сообщения: 44
- Зарегистрирован: 14 мар 2014, 22:52
- Репутация: 8
- Откуда: Беларусь
- Контактная информация:
Re: Общая статистика работы
Я думал что сама программа ведет статистику, было бы интересно посмотреть сколько там оси набегали километров)))UAVpilot писал(а):Ибо никто не мешает управлять станком ещё и какой-нибудь другой программой/компом.
Опыт приходит с опытом.
CO2 Home Made 1500x1000
CO2 Home Made 1500x1000
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Общая статистика работы
"Ведёт", но только для каждой УП:
Суммированиие придётся самостоятельно делать.
Суммированиие придётся самостоятельно делать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Общая статистика работы
подсчитать время можно компонентом
есть стандартный компонент time,
но он считает только время обработки по программе
немного изменив его получаем время при любом движении любой оси ...
заодно подсчитываем пробег
между сессиями сохраняем наше значение в файле,
и в пин выводим время в часах(думаю наработка с точностью до секунд не нужна )
и расстояние "пробега" осей в метрах
в Hal :
осталось как то поудобней выводить информацию...
то есть - читать пины:
есть стандартный компонент time,
но он считает только время обработки по программе
немного изменив его получаем время при любом движении любой оси ...
заодно подсчитываем пробег
Код: Выделить всё
// . ./scripts/rip-environment
// halcompile --install statistics.comp
component statistics "total time on in seconds";
description """net start:calculate statistics.velxy <= motion.current-vel""";
license "GPL";
option singleton yes;
pin in float velxy "current velocity";
pin out u32 ts "totalseconds";
pin out float pathxy "total path";
variable double totalnsec;
function _;
;;
#include "rtapi_math.h"
FUNCTION(_) {
rtapi_u32 totalseconds;
if(velxy){
totalnsec = totalnsec + period;
totalseconds = totalnsec * 0.000000001;
ts = totalseconds;
}
pathxy = pathxy + velxy * fperiod;
}
и в пин выводим время в часах(думаю наработка с точностью до секунд не нужна )
и расстояние "пробега" осей в метрах
Код: Выделить всё
#!/usr/bin/python
import hal, time
h = hal.component('pystat')
h.newpin('pathmm', hal.HAL_FLOAT, hal.HAL_IN)
h.newpin('totalseconds', hal.HAL_U32, hal.HAL_IN)
h.newpin('pathmeter', hal.HAL_FLOAT, hal.HAL_OUT)
h.newpin('totalhours', hal.HAL_U32, hal.HAL_OUT)
h.ready()
filename = '.statistics'
f = open(filename, 'r')
lines = f.readlines()
sec_add = int(lines[0])
path_add = float(lines[1])
try:
while 1:
w = open(filename, 'w')
ts = h['totalseconds']
p = h['pathmm']
w.write(str(sec_add + ts)+'\n'+str(path_add + p))
h['pathmeter'] = round((path_add + p) / 1000 ,1)
h['totalhours'] = (sec_add + ts) / 3600
time.sleep(20)
except KeyboardInterrupt:
raise SystemExit
Код: Выделить всё
loadusr -Wn pystat python pystat.py
loadrt statistics
addf statistics servo-thread
net start:calculate statistics.velxy <= motion.current-vel
net pathmm pystat.pathmm <= statistics.pathxy
net totalseconds pystat.totalseconds <= statistics.ts
то есть - читать пины:
Код: Выделить всё
(debug, #<_hal[pystat.totalhours]>)
(debug, #<_hal[pystat.pathmeter]>)
m2
-
- Мастер
- Сообщения: 473
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Общая статистика работы
Это будет расстояние пробега инструмента, пробег осей будет больше.nkp писал(а):расстояние "пробега" осей
Например G1 X50 Y50 Z50 перемещение осей = 150мм, перемещение по траектории = ~86мм.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Общая статистика работы
да,скорей всего ты правD.L. писал(а):Это будет расстояние пробега инструмента, пробег осей будет больше.
Например G1 X50 Y50 Z50 перемещение осей = 150мм, перемещение по траектории = ~86мм.
честно говоря это всё "на коленке" написал(проверил правда чтоб как то работало )
надо подпилить))
-
- Мастер
- Сообщения: 473
- Зарегистрирован: 25 авг 2018, 10:11
- Репутация: 152
- Настоящее имя: Дмитрий
- Откуда: Киров
- Контактная информация:
Re: Общая статистика работы
И ещё бы пробег для каждого инструмента считать, без учёта быстрых перемещений.
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Общая статистика работы
это несложноD.L. писал(а):И ещё бы пробег для каждого инструмента считать, без учёта быстрых перемещений.
номер инстра у нас есть
motion.type тоже есть
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Общая статистика работы
пробег ,как подсказали , пока кажет некорректно,но мото_часы вроде правильно...
Axis как бы устаревший ,но многие пользуют его на станках
вот как можно выводить какую нибудь доп_инфу (с любого пина):
в .axisrc прописываем
в postgui.hal:
будет примерно так:
Axis как бы устаревший ,но многие пользуют его на станках
вот как можно выводить какую нибудь доп_инфу (с любого пина):
в .axisrc прописываем
Код: Выделить всё
if hal_present == 1 :
ucomp = hal.component("axisui.user")
ucomp.newpin('ttime', hal.HAL_U32, hal.HAL_IN)
ucomp.ready()
W = root_window.tk.call
W('label','.pane.top.tabs.fmanual.jogf.zerohome.ttime','-text','ttime')
W('grid','.pane.top.tabs.fmanual.jogf.zerohome.ttime','-column','0','-row','2','-sticky','w')
def user_live_update():
W('.pane.top.tabs.fmanual.jogf.zerohome.ttime','configure','-text','TTime: %s' % str(ucomp['ttime']))
Код: Выделить всё
net gui:ttime axisui.user.ttime pystat.totalhours