Перейти к содержимому


Фотография

Недокументированные возможности NC Studio 5.60 (по-крайней мере об одной вы не знали)

Возможности NcStudio

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 176

#1 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 26 Март 2018 - 17:11

Добрый день.

 

Давайте соберем в этой ветке всё вместе с форума, и с Умных Мозгов. Для начала:

 

1. Меню во вкладке IO State - Ctrl+Alt+Shift, правая кнопка мышки на пине. Можно пошарится в меню, важно на лимитах уметь переключать полярность (если станок едет в дом в другую сторону).

2. Полное меню параметров: Ctrl+Alt+Shift левой кнопкой мыши дабл-клик по кнопке "Настройка". Выведет список параметров из NCSTUDIO.DAT файла. С редактированием и похоже без проверки на валидность.

3. Несколько дополнительных кнопок под быстрый запуск макросов можно вывести, отредактировав ресурсы (я нашел 3), и вывести их на панель (об этом уже писалось на форуме).

4. Префикс для макрокоманды M802 "Моё сообщение".

а) Если в сообщении поставить

|W| - это сообщение желтого цвета.
|E| - это сообщение красного цвета.
|F| - сообщение модальное, в окне.
|D| - сообщение с анимацией (по идее в китайском варианте должно быть что-то красивое)

б) Интереснее:

M801 "|%|99", вместо 99 можно поставить процент от 0 до 100 - это прогресс бар.

в) Самое необычная магическая последовательность:

M801 "func//:_OnLogPos?arg1=XYZ"

выводит в лог файл(NCSTUDIO.LOG) текущие машинные координаты.

 

Кто-что ещё знает - прошу писать ниже.

 


O121

M801 "|W|Варнинг"
G4 P2000
M801 "|E|Ошибка"
G4 P2000
M801 "|F|Месседж бокс"
G4 P2000
M801 "|D|Запуск..."
G4 P2000
M801 "|%|10"
G4 P100
M801 "|%|20"
G4 P100
M801 "|%|30"
G4 P100
M801 "|%|40"
G4 P100
M801 "|%|50"
G4 P100
M801 "|%|60"
G4 P100
M801 "|%|70"
G4 P100
M801 "|%|80"
G4 P100
M801 "|%|90"
G4 P100
M801 "|%|100"
G4 P100
M801 ""

M17


  • 3

#2 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 27 Март 2018 - 18:26

Что ж, продолжаем разговор.

Кому нужен backslash? Его есть у меня:

 

The lead screw error compensation file is named axeserr.dat. This file can be found in the installation directory. Screw error compensation file format:
(1) First specify the length unit, the currently supported length is in mm, unit = mm
(2) Specify the error sequence for each axis,
        [Axis.<Axis name>]
        <Nominal machine coordinate>, <Reverse error value>, <Forward error value>
        <Nominal machine coordinate>, <Reverse error value>, <Forward error value>
        <Nominal machine coordinate>, <Reverse error value>, <Forward error value>
        <Nominal machine coordinate>, <Reverse error value>, <Forward error value>
        ......
        Where <axis name> is: X, Y, Z, ... (case-insensitive).
The nominal mechanical coordinates refer to the mechanical coordinates relative to the reference point calculated according to the given pitch and pulse equivalent (that is, the length calculated from the nominal value of the pitch, rather than the actual physical length), with a sign, when arranged small The first and the last are the big ones. The nominal machine coordinate must be within the travel range, otherwise the compensation will be invalid.
The above content must be arranged in the order of the nominal machine coordinate values ??from small to large, otherwise it cannot work normally!!! The reverse error value is the error generated when moving to the direction of decreasing coordinate value. The forward error value is the increase in the coordinate value. The error in the direction of motion. Each nominal mechanical coordinate does not have to be equally spaced, and the density and number of points recorded are not limited.
        Error value = nominal machine coordinate - real machine coordinate
        Here special attention should be paid to the sign of nominal mechanical coordinates and real machine coordinates. Especially when using laser interferometers and other equipment, the measured length values ??should first be converted into the corresponding mechanical coordinates and then calculated, otherwise it will cause erroneous results.
(3) comments, comments must be on a separate line, and begin with a semicolon, syntax:
        ;<Comments>
        Note that the semicolon must be the first character of the line, that is, the semicolon cannot be preceded by other characters, such as spaces.
Example (1): Unit = mm
            [Axis.X]
                        570.025, 0.027, 0.083
                        450.020, 0.025, 0.077
                        330.015, 0.015, 0.068
                        210.010, 0.000, 0.057
                        90.005, 0.010, 0.046
                        0.000, 0.000, 0.030
Example (2): If an axis only compensates for the backlash, you can simply write the data at the two ends of the axis. Set the Y-axis backlash to 0.03mm, range: 0 a 1000, then:
               Unit = mm
           [Axis.Y]
                        0.000, 0.000, 0.030
                        1000.00, 0.000, 0.030
Note: If you modify the data in the screw error compensation file, you need to restart the software to make the modified error compensation file work. (This parameter can be directly modified in the software interface parameter settings)

 

 

[перевод с китайского на английский]


Сообщение отредактировал cnc-kursk: 27 Март 2018 - 18:29

  • 0

#3 OFFLINE   2ar

2ar

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 668 сообщений
  • Пол:Мужчина
  • Город:Новосибирск
  • Интересы:Сервисное обслуживания станков
  • Из:Новосибирск

Отправлено 27 Март 2018 - 18:33

Где меняется скорость движения в дом при определении реферных точек в nc5?
  • 0

#4 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 27 Март 2018 - 18:39

Где меняется скорость движения в дом при определении реферных точек в nc5?

В файле public.dat:

O101 -  O104:

 

G904 Z=200 K1 H1
    'axis Z move negative, until signal 1 appears
G04 P10
G904 Z=-200/3 K1 H1
    'axis Z move negative, until signal 1 appears
G04 P10
G904 Z=-200/9 K1 H0
    'axis Z move positive, until 1 disappears
 

В данном случае Z=xxxx это скорость units per minute (мм в мин) по оси Z


  • 2

#5 OFFLINE   3D-BiG

3D-BiG

    Абсолем CNC:)

  • Модератор
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 14 427 сообщений
  • Пол:Мужчина
  • Город:Ареал обитания - вся страна, но обычно встречаюсь в Новосибирске...
  • Интересы:Полежать на диване, пофлудить на форуме....
  • Из:СССР

Отправлено 27 Март 2018 - 18:46

А как открываются дополнительные кнопки на интерфейсе?


  • 0

Лужу, паяю, станки ЧПУ починяю....
Еще частенько здесь болтаю: Телеграм сообщество ЧПУшников: t.me/cncunion

 

 


#6 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 27 Март 2018 - 19:02

Добрый день!

 

А как открываются дополнительные кнопки на интерфейсе?

 

Тоже на этом форуме почерпнута информация.

 

Детально так:

1. Скачиваем http://www.angusj.com/resourcehacker/

2. Открываем им файл NCUI.DLL.

3. Слева видим дерево ресурсов. ID кнопок я брал с Dialog / 101. Конкретно нашел для макросов O16, O17, O121.

4. Заходим в Dialog / 1113. Создаём где хотим новые кнопки с ID -14288,-14276,-14275.

   CONTROL "1", -14288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 187, 93, 13
   CONTROL "2", -14276, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 202, 93, 13
   CONTROL "3", -14275, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 217, 93, 13

Примерно так. Сохраняем.

5. Идём править public.dat с макросами.

 

Кто не сдюжил - выкладываю свой NCUI.DLL, с этими кнопками:

 

https://files.fm/u/mn6f4fu5

 

Безымянный11111.jpg

 


Сообщение отредактировал cnc-kursk: 27 Март 2018 - 19:40

  • 0

#7 OFFLINE   2ar

2ar

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 668 сообщений
  • Пол:Мужчина
  • Город:Новосибирск
  • Интересы:Сервисное обслуживания станков
  • Из:Новосибирск

Отправлено 27 Март 2018 - 19:03

K1 H1

Ткни носом, где можно прочитать, что это за команды.  :bestbook:


  • 0

#8 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 27 Март 2018 - 19:04

Ткни носом, где можно прочитать, что это за команды.  :bestbook:

 

Это отдельная тема. Сейчас попробую на этом же форуме найти автора поиска центра отверстия. Там "не всё так однозначно":

 

Тема:

 

http://mir-cnc.ru/to...пятой-nc/page-2

 

Собственно автор, наковырявший кнопки:

 

http://mir-cnc.ru/to...e-3#entry227570


Сообщение отредактировал cnc-kursk: 27 Март 2018 - 19:07

  • 0

#9 OFFLINE   2ar

2ar

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 668 сообщений
  • Пол:Мужчина
  • Город:Новосибирск
  • Интересы:Сервисное обслуживания станков
  • Из:Новосибирск

Отправлено 27 Март 2018 - 19:06

автора поиска центра отверстия

Я помню автора. Мне бы какой учебник, чтоб разобраться, а не спрашивать весь алфавит.


  • 0

#10 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 27 Март 2018 - 19:38

Я помню автора. Мне бы какой учебник, чтоб разобраться, а не спрашивать весь алфавит.

Ну какой может быть учебник по китайской программе двадцатилетней давности.

Просто она работает хорошо. Я тут обжегся на Mach4 + контроллер XHC, вернулся к родной NC...

Кто знает, современные контроллеры weighong ещё не взломали? Нет дешевых многоосевых плат-клонов?


Я помню автора. Мне бы какой учебник, чтоб разобраться, а не спрашивать весь алфавит.

 

Давайте разбираться:

 

 

G904 Y=-1500 J0 Q1

G904 X=-1500 I0 P1

Значение параметра должно соответствовать номеру канала датчика калибровки, т.е. "0"


Грубо

Представим, что ЧПУ состоит из трех одноосевых контроллеров движения X, Y, Z.

По этой команде программа

 - соединяет датчик номер 2 с контроллером Y (сокращенно "J2")

 - устанавливает  условие остановки движения на контроллере Y - "1" ("Q1")

 - устанавливает скорость движения  на контроллере Y "-1500" ("Y-1500")

 - устанавливает контроллерам X и Z скорость 0

 

  - и потом говорит всем контроллерам: -"Ну, давайте!"

 

 

 

 

G904 - Идти по условию X,Y,Z = xxxx - скорость. J,I,H, K - датчики Home-X,Y,Z и мобильный соответственно. 

Цифра после?

 P,Q,H - опять оси X,Y,Z ?

Цифра после - это до включения датчика, или до выключения.


Сообщение отредактировал cnc-kursk: 27 Март 2018 - 19:39

  • 0

#11 OFFLINE   3D-BiG

3D-BiG

    Абсолем CNC:)

  • Модератор
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 14 427 сообщений
  • Пол:Мужчина
  • Город:Ареал обитания - вся страна, но обычно встречаюсь в Новосибирске...
  • Интересы:Полежать на диване, пофлудить на форуме....
  • Из:СССР

Отправлено 27 Март 2018 - 19:44

Тоже на этом форуме почерпнута информация. Детально так: 1. Скачиваем http://www.angusj.com/resourcehacker/ 2. Открываем им файл NCUI.DLL. 3. Слева видим дерево ресурсов. ID кнопок я брал с Dialog / 101. Конкретно нашел для макросов O16, O17, O121. 4. Заходим в Dialog / 1113. Создаём где хотим новые кнопки с ID -14288,-14276,-14275. CONTROL "1", -14288, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 187, 93, 13 CONTROL "2", -14276, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 202, 93, 13 CONTROL "3", -14275, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 11, 217, 93, 13 Примерно так. Сохраняем. 5. Идём править public.dat с макросами. Кто не сдюжил - выкладываю свой NCUI.DLL, с этими кнопками.

Спасибо.


  • 0

Лужу, паяю, станки ЧПУ починяю....
Еще частенько здесь болтаю: Телеграм сообщество ЧПУшников: t.me/cncunion

 

 


#12 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 27 Март 2018 - 19:53

До интерфейса.
Я обнаружил, что в версии 5.5.60 в окне УП не поднято контекстное меню по правой кнопке. А в тех энцехах, что я юзаю есть. Редактирование ncui.dll позволяет поднять. Удобно. Там включается нумерация строк, слежение за активной строкой, выгрузка и загрузка УП, загрузка текущей УП в редактор.

Скрытый текст

 
А кнопок дополнительных семь поднял. 
И добавил O16 и O17, они за калибровку по стационарному датчику отвечают. Кому не надо, тот может под себя заточить. А может это я из других версий О16 и О17 воткнул в публик, не помню.

Итого девять кнопок

Скрытый текст

 

0_1d785f_56cbaf63_M.jpg

Ну и соответственно файлы
https://cloud.mail.r.../AkCA/trNvoBUv2 и  https://yadi.sk/d/4zM13x-T3TpGGD

В публике я тупо прописал в подпрограммах перемещение в координату X= номер подпрограммы (в конце файла лежат).

О16 и О17 в начале, по алфавиту.

Прикрепленные файлы


  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#13 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 27 Март 2018 - 20:54


G904 - это команда с именованными параметрами (как и все команды с параметрами)


В контроллере есть регистры (триггеры, флажки, каналы).

Регистр 0 отражает состояние датчика калибровки.

Регистр 1 отражает состояние датчика Zhome.
Регистр 2 отражает состояние датчика Yhome.
Регистр 3 отражает состояние датчика Xhome.

G904 Xx Ii Pp, - двигаться по оси X со скоростью x до тех пор, пока состояние регистра i не станет равно p.

G904 Yy Jj Qq, - двигаться по оси Y со скоростью y до тех пор, пока состояние регистра j не станет равно q.

G904 Zz Kk Hh, - двигаться по оси Z со скоростью z до тех пор, пока состояние регистра k не станет равно h.


G904 Xx Ii Pp Yy Jj Qq Zz Kk Hh - двигаться сразу по всем осям (X,Y,Z), прекращать движение по любой оси не зависимо от других когда указанный для этой оси (параметры I,J,K) регистр примет заданное состояние (параметры P,Q,H) .


Иначе можно записать так (и энцеха съест)

G904 X=x I=i P=p Y=y J=j Q=q Z=z K=k H=h


Т.е. условие останова для оси Х определяется значениями двух параметров - I и P, где в параметре I необходимо указать номер регистра , а в параметре P - состояние этого регистра при котором нужно прекратить движение.



from 5.5.60

G904 Z-60 K0 H1 'tools drop to the surface of the calibration (ось инвертирована, поэтому значение отрицательное)
G904 X=-800 I3 P1 'axis X move negative, until signal 3 appears
G904 Y=-800 J2 Q1 'axis Y move negative, until signal 2 appears
G904 Z=400 K1 H1 'axis Z move negative, until signal 1 appears (ось инвертирована, поэтому значение отрицательное)
G904 X=-800 I3 P1 Y=-800 J2 Q1 'axis X(Y) move positive(positive), until signal 3(2) appears

Сообщение отредактировал lkbyysq: 27 Март 2018 - 22:20

  • 1

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#14 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 28 Март 2018 - 13:40

Если в ncui.dll (по крайней мере в той, что я выложил)  посмотреть на диалог 101, то там есть эти "недокументированные контролы".

Скрытый текст

Красным я выделил то, что подключить не удалось.

Скорее всего я с какой другой энцехи сюда дернул этот диалог.


Сообщение отредактировал lkbyysq: 28 Март 2018 - 13:56

  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#15 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 31 Март 2018 - 22:04

КАШМАР!

 

Подкорректировал тут Public.dat, вставил туда строчку M801 "func//:_OnLogPos?arg1=X"

Скрытый текст
Ну чтоб посмотреть как датчик по X срабатывания повторяет.

 

Загрузил программку

Скрытый текст

 

И обнаружил, что точность позиционирования по датчику X +-0,5мм!  

Посмотрел что за датчик. 

8мм срабатывание.

10% гистерезис.

Задумался.

Решил проверить энцеху. Приладил индикатор. Паузу секундную после М801 воткнул. 

...

Не врет энцеха.

КАШМАР!


Сообщение отредактировал lkbyysq: 31 Март 2018 - 22:18

  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#16 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 31 Март 2018 - 22:30

M902 H0

Если удалить это - ошибка сохраняется?

 

Никогда не доверял этим индуктивным датчикам. Они для другого.


  • 0

#17 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 31 Март 2018 - 22:40

Конечно.
Я ведь смотрю ошибку между последним и текущим обнулением.
  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#18 OFFLINE   cnc-kursk

cnc-kursk

    Студент

  • Пользователи+
  • PipPip
  • 48 сообщений
  • Пол:Мужчина
  • Из:Курск

Отправлено 31 Март 2018 - 22:42

Конечно.
Я ведь смотрю ошибку между последним и текущим обнулением.

Спасибо за инфу. Я на самом деле его тоже использовал, для позиционирования относительно поворотки ( Home + G00 Xuuuu), получается надо городить датчик центра отверстия. Потестирую Ваш код, и выложу результат.


  • 0

#19 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 526 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 02 Апрель 2018 - 23:40

И обнаружил, что точность позиционирования по датчику X +-0,5мм!  

 

А вот и сам дурак.

Погонял с выключенным шпинделем и в хвост и в гриву.

Резюме. 

Выборка 100 измерений.

Максимальная ошибка - 0,02 

Средняя ошибка - 0,007 

Если брать пять последовательных измерений, отбрасывать максимальную ошибку и усреднить - 0,01 

 

Если включить шпиндель.

Максимальная ошибка - 0,4 

Средняя ошибка - 0,07 

Если брать пять последовательных измерений, отбрасывать максимальную ошибку и усреднить - 0,06

  • 1

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#20 OFFLINE   T-Rex

T-Rex

    Реаниматор CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 3 989 сообщений
  • Пол:Мужчина
  • Из:Йошкар-Ола

Отправлено 08 Апрель 2018 - 04:51

Погонял с выключенным шпинделем и в хвост и в гриву. Максимальная ошибка - 0,02

Если включить шпиндель. Максимальная ошибка - 0,4

Станислав - если не лень будет, сооруди "волшебный дроссель" на кабель шпинделя и повтори прогон с включенным шпинделем...

Какая-никакая, но количественная оценка его влияния (степени подавления ВЧ-помех) получится. Любопытно знать. 


  • 0





Темы с аналогичным тегами Возможности NcStudio

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных