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


Фотография

Макросы на Ncstudio v8


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

#1 OFFLINE   mihams

mihams

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 328 сообщений
  • Из:Kovrov

Отправлено 29 Август 2022 - 23:32

попросили сделать макрос на врезку замков... а я с нц особо не работал.

есть какая документация по макросам?

желательно вообще весь интерфейс нц убрать и оставить форму с парой кнопок и несколькими полями ввода.

 

саму подпрограмму я сделаю... как интерфейс к ней замутить?


  • 0

#2 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

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

Отправлено 29 Август 2022 - 23:58

Как делаю я.
1. Получаю список процессов, нахожу там процесс ncstudio.exe
2. Получаю список всех окон, принадлежащих этому процессу, выбираю там нужное главное окно программы.
3. Отправляю этому окну сообщение о нажатии клавиши меню диалога открытия файла.
4. Нахожу хендл окна диалога.
5. Нахожу в диалоге хендл едитбокса имени файла по классу окна и координатам.
6. Засылаю в эдитбокс имя файла.
7. Нахожу в диалоге хендл кнопки открыть.
8. Эмулирую нажатие кнопки.
9. Нахожу в главном окне энцехи статусный лабель по имени класса, координатам на родителе, классу родителя,..., и по нему определяю, что энцеха прочитала файл.
10. Эмулирую нажатие клавиши меню F9 RUN.


Чтобы не ждать раскрутки шпинделя.
11. Программа отрабатывает цикл, голова уходит в безопасную зону.
12. Программа ожидает замыкания датчика инструмента (кнопка), после чего начинает новый цикл.


Ну а само окно энцехи конечно можно спрятать.

Сообщение отредактировал lkbyysq: 30 Август 2022 - 00:00

  • 0

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


#3 OFFLINE   mihams

mihams

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 328 сообщений
  • Из:Kovrov

Отправлено 30 Август 2022 - 00:05

слишком муторно)
 
у нц в mdi есть выборка, квадрат, окружность.
туда еще можно запихнуть свою?
 
где то видел кнопки свои добавляли в главном окне... поля ввода можно так же запихнуть?
  • 0

#4 OFFLINE   mihams

mihams

    Гуру CNC

  • Пользователи+
  • PipPipPipPipPipPipPipPipPipPip
  • 1 328 сообщений
  • Из:Kovrov

Отправлено 30 Август 2022 - 00:36

в принципе можно выборку в Ncui.dll переделать

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


  • 0

#5 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

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

Отправлено 30 Август 2022 - 09:12

где то видел кнопки свои добавляли в главном окне... поля ввода можно так же запихнуть?

Считаю, что нет.

В пятерке можно добавить несколько кнопок только потому, что они там задуманы разработчиками для некоторых конфигурациий. Привязка к кнопкам подпрограмм в публике на мой взгляд жестко прописано в экзешнике.


Сообщение отредактировал lkbyysq: 30 Август 2022 - 11:16

  • 0

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


#6 OFFLINE   Smith2007

Smith2007

    Бакалавр CNC

  • Пользователи+
  • PipPipPip
  • 134 сообщений
  • Пол:Мужчина
  • Из:Башкортостан

Отправлено 31 Август 2022 - 00:57

в public.dat можно описать кнопки

и связать их через ncstudio.plc

 

 Таким образом можно читать и записывать в порты. А на входной порт подвесить кнопку.

'LD      80001
'OUT     92201
'=======================================
O"K1"
	#ST1=0
	G906 PLC[91508] LEVEL1 P50
	IF(#SYNTIMEOUT < 0) G65 P"M110" L1; #ST1=1;
	IF(#ST1==1) M17
	G65 P"M111" L1
M17
'################################################################################

'ФЪPLCЦРјУИлИзПВґъВлЈ¬їЙТФИГГж°еµДK2°ґјьµчУГЎ°K2Ў±ЧУіМРт
'LD      80001
'OUT     92202
'=======================================
O"K2"
	M901 PLC[91509] LEVEL1

	M901 PLC[91509] LEVEL0
M17
'################################################################################

'ФЪPLCЦРјУИлИзПВґъВлЈ¬їЙТФИГГж°еµДK3°ґјьµчУГЎ°K3Ў±ЧУіМРт
'LD      80001
'OUT     92203
'=======================================
O"K3"
	M901 PLC[91510] LEVEL1

	M901 PLC[91510] LEVEL0
M17
'################################################################################

'ФЪPLCЦРјУИлИзПВґъВлЈ¬їЙТФИГГж°еµДK4°ґјьµчУГЎ°K4Ў±ЧУіМРт
'LD      80001
'OUT     92204
'=======================================
O"K4"
	M901 PLC[91511] LEVEL1

	M901 PLC[91511] LEVEL0
M17

; -------------------------------------------------------
; ЛщУРЦб»ШФ­µгЎўµҐЦб»ШФ­µгЎўKEY20
;LD		89124
;@MSG	#0x111, #46513, #0

;LD		80001
;OUT		89524

;LD		89125
;@MSG	#0x111, #46514, #0

;LD		80001
;OUT		89525

LD		89124
@MSG	#0x111, #46584, #0

LD		74517
OUT		89524

LD		89125
@MSG	#0x111, #46586, #0

LD		74518
OUT		89525

LD		89126
@MSG	#0x111, #46588, #0

LD		74519
OUT		89526



  • 0

#7 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

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

Отправлено 31 Август 2022 - 02:18

в public.dat можно описать кнопки
и связать их через ncstudio.plc

А что мне почитать, чтоб расшифровать ncstudio.plc?
  • 0

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


#8 OFFLINE   Smith2007

Smith2007

    Бакалавр CNC

  • Пользователи+
  • PipPipPip
  • 134 сообщений
  • Пол:Мужчина
  • Из:Башкортостан

Отправлено 31 Август 2022 - 17:11

А что мне почитать, чтоб расшифровать ncstudio.plc?

 

Документа по файлу я не встречал.

Но из его логики понял примерно следующее:

Есть физические порты (входы и выходы), которые можно мониторить на страничке мониторинга состояния портов.

Далее эти сигналы обрабатываются в ncstudio.plc взводя или сбрасывая уже виртуальные порты (сигналы), которые в свою очередь используются в скриптах.

Сейчас далеко от компа нужного. Позже выложу сюда фрагмент, где я задействовал отдельную кнопку для управления выходным портом. Отключил "светофор" с выходного порта и подключил на этот порт реле для управления включения охлаждением.

Далее создал свою команду М112/М113 описав ее в public.dat

Теперь управление портом как с кнопки внешней так и из УП


  • 0

#9 OFFLINE   Smith2007

Smith2007

    Бакалавр CNC

  • Пользователи+
  • PipPipPip
  • 134 сообщений
  • Пол:Мужчина
  • Из:Башкортостан

Отправлено 31 Август 2022 - 21:16

Выходные порты

2022-08-31_20-14-36.png

 

Опытным путем определил порт кнопки на панели и порт светодиода кнопки

Добавил описание команды

2022-08-31_20-07-34.png 2022-08-31_20-08-56.png 2022-08-31_20-17-31.png

 

Ссылка на файлы


Сообщение отредактировал Smith2007: 31 Август 2022 - 21:20

  • 1




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

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