Страница 1 из 1

макрос смены инструмента M910 не работает в версии 043.062

Добавлено: 30 июл 2018, 09:44
noahi
Здравствуйте.
Имею в наличии несколько станков фрезерных и токарных на Mach3 модернизированных мной в личных целях,и соответственно несколько компов.
Хотел разобраться с правильным подключением револьвера через Mach3.
Один из станков на сервах нарезает резьбу,но не подключен револьвер.Пишу это для того,чтоб сократить время поиска ошибки .
Был мною изготовленный револьвер токарного станка (с ладонь) для балконного мини станка и подключение револьвера хотел начать с него.
К нему был изготовлен доп-контроллер и прошит логикой.Количество миганий порта , равно данному резцу.
В данный момент на этой логике хотел остановиться,так как время нет.В дальнейшем возможна реализация по паузе..
Написан кое как макрос смены инструмента через Т. Работает. Револьвер крутится.Коррекцию учитывает в версии Mach3 042.020 .Говорят это самая стабильная для резьбы
Но столкнулся с тем ,что там не хочет работать офф лицензия.Да и хотелось версию 062.
Поставил 062.Работает лицензия но перестал работать сей макрос.Я выяснил,что возможна ошибка синтаксиса.Во время написания макроса,
находил инфу,но не могу вспомнить где.
Просьба помочь с данным макросом,потому как макросы головная боль и пока я не смог понять ,что там не так..
Всем откликнувшимся большое спасибо

'скрипт рабочий.работает и в авто M06T0100 И В РУЧНУЮ
'количество миганий равно такому же номеру инструмента

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

Sub Main()
 NewTool = GetSelectedTool()'новый инструмент = получить вновь выбранный инструмент
 OldTool = GetCurrentTool() 'старый инструмент=загрузить загруженный инструмент

 MaxToolNum = 6 'Максимальное число инструментов в магазине
 While NewTool > MaxToolNum
   NewTool = Question("Введите правильный номер инструмента, в магазине может быть только " & MaxToolNum & " инструментов.")
 Wend
 If NewTool = OldTool Then  'Если в шпинделе стоит тот же инструмент то ничего менять не надо
        Exit Sub
 End If
 
 
 If NewTool = 1 Then 
 ActivateSignal(Output2)   
 Sleep 250
 DeActivateSignal(Output2)
 End If
 
 If NewTool = 2 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 

  If NewTool = 3 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 
 If NewTool = 4 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 ActivateSignal(Output2)   
 Sleep  250
 
 DeActivateSignal(Output2)
 Sleep  250
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 
 
 
 
 
 If NewTool = 5 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250

 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 If NewTool = 6 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 
 End If
 
 End
 
 End Sub
Main
'конец скрипта

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 11:28
aftaev
noahi писал(а): End Sub
Main
Main похоже лишнее или не в той строчке.

И попробовать вообще убрать Sub Main() и End Sub Main макросы Mach3 часто без них пишутся ;)

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 11:52
noahi
Спасибо Вам большое за помощь.
Теперь output2 работает .Mигает согласно номеру инструмента.
Но в строке инструмента по прежнему стоит ноль и не берёт корректор.(промигивают оси x z)
Скрипт без упомянутых Вами строк.

'скрипт рабочий.работает и в авто M06T0100 И В РУЧНУЮ
'количество миганий равно такому же номеру инструмента

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

NewTool = GetSelectedTool()'новый инструмент = получить вновь выбранный инструмент
 OldTool = GetCurrentTool() 'старый инструмент=загрузить загруженный инструмент

 MaxToolNum = 6 'Максимальное число инструментов в магазине
 While NewTool > MaxToolNum
   NewTool = Question("Введите правильный номер инструмента, в магазине может быть только " & MaxToolNum & " инструментов.")
 Wend
 If NewTool = OldTool Then  'Если в шпинделе стоит тот же инструмент то ничего менять не надо
        
 End If
 
 
 If NewTool = 1 Then 
 ActivateSignal(Output2)   
 Sleep 250
 DeActivateSignal(Output2)
 End If
 
 If NewTool = 2 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 

  If NewTool = 3 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 
 
 
 
 
 If NewTool = 4 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 ActivateSignal(Output2)   
 Sleep  250
 
 DeActivateSignal(Output2)
 Sleep  250
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 
 
 
 
 
 If NewTool = 5 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250

 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 End If
 
 
 
 
 
 If NewTool = 6 Then 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 
 
 
 
 
 End If
 
 
 
 
 
 End
 
 

'конец скрипта

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 11:55
aftaev
noahi писал(а): и не берёт корректор.
мож чтобы взял корректор нужно G43 ?

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 12:04
noahi
в версии 020 когда я нажимаю в MDI T0101 или любой другой инструмент у меня в графе TOOL N появляется инструмент 1.
Сейчас там стоит ноль.Соответственно пока речь наверное не идёт о корректоре..
Просто макрос не ставит инструмент.Идёт разобщение сигналов и экрана,так как выход работает

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 12:09
aftaev
Значит нужно отлаживать. В макрос например добавлять msgbox ("NewTool ") , запускать макрос и смотреть что в каких переменных есть.

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 12:31
noahi
Совсем не разбираюсь в макросах .
(В макрос например добавлять msgbox ("NewTool ") , запускать макрос и смотреть что в каких переменных есть)..я не могу понять эту фразу.Если есть возможность немного расширить фразу,БЫЛО БЫ ЗДОРОГО..
Я так понимаю в макрос(куда)надо вставить это и где именно смотреть переменные.
Так же не пойму..В чём разница синтаксиса 020 от 062..Ведь там нареканий нет..

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 14:36
aftaev
noahi писал(а):Совсем не разбираюсь в макросах .
тогда тяжелый случай.
noahi писал(а):msgbox ("NewTool ")
при выполнении макроса выйдет сообщение что находится в NewTool
noahi писал(а):В чём разница синтаксиса 020 от 062..Ведь там нареканий нет..
В чем разница знает писатель Mach3. Возможно что в старой версии по умолчанию одни настройки, в новой версии другие настройки вот что то работает, что то не работает. Нужно искать.

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 15:50
NikolayUa24

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 30 июл 2018, 16:35
noahi
Сравнил есчо какието макросы с просторов.
SetCurrentTool (NewTool) 'указать номер нового инструмента
На данный момент на столе заработало благодаря данной строке
Осталось как то добавить строку,при которой после процедуры поворота с револьвера придёт сигнал на пин input что голова всё же повернулась
и можно стартовать G код далее


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

[code]'скрипт рабочий.работает и в авто M06T0100 И В РУЧНУЮ
'количество миганий равно такому же номеру инструмента

 NewTool = GetSelectedTool()'новый инструмент = получить вновь выбранный инструмент
 OldTool = GetCurrentTool() 'старый инструмент=загрузить загруженный инструмент

 MaxToolNum = 6 'Максимальное число инструментов в магазине
 While  NewTool > MaxToolNum
   NewTool = Question("Введите правильный номер инструмента, в магазине может быть только " & MaxToolNum & " инструментов.")
 Wend
 If NewTool = OldTool Then  'Если в шпинделе стоит тот же инструмент то ничего менять не надо
        
 End If
 
 
 If NewTool = 1 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep 250
 DeActivateSignal(Output2)
 Code "G4 P8"
 End If
 
 If NewTool = 2 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Code "G4 P8"
 End If
 

  If NewTool = 3 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Code "G4 P2" 
 End If
 
 
 
 
 
 If NewTool = 4 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 ActivateSignal(Output2)   
 Sleep  250
 
 DeActivateSignal(Output2)
 Sleep  250
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Code "G4 P8"
 End If
 
 
 
 
 
 If NewTool = 5 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250

 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Code "G4 P2"
 End If
 
 
 
 
 
 If NewTool = 6 Then 
 SetCurrentTool (NewTool)   'указать номер нового инструмента
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Sleep  250
 
 ActivateSignal(Output2)   
 Sleep  250
 DeActivateSignal(Output2)
 Code "G4 P2"
 
 
 
 
 End If
 
 
 
 
 
 End
 
 

'конец скрипта
[/code]

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 31 июл 2018, 07:22
noahi
Проверил на станке.Всё отлично.Импульсы идут.Корректор работает.
Но если добиваться изящности кода,то нужно добавить строку ,чтоб не шли импульсы с мача при стоящем уже в слоте нужном резце.
И соответственно не тратилось холостое время на прогон поиска инструмента.
Сейчас они идут,но их блокирует допконтроллер.

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 31 июл 2018, 08:16
FLUKE
У тебя потерялось "Exit Sub" в 12 строке

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 31 июл 2018, 09:44
noahi
Наверно это 10 строка после сравнения , если сравнение верно выходит из процедуры .
Большое Вам спасибо.
Теперь будем думать о сигнале Input для полного контроля головы в момент фиксации.
Хотя это лишний пин..
СПАСИБО ВСЕМ

'скрипт рабочий.работает и в авто M06T0100 И В РУЧНУЮ
'количество миганий равно такому же номеру инструмента

NewTool = GetSelectedTool()'новый инструмент = получить вновь выбранный инструмент
OldTool = GetCurrentTool() 'старый инструмент=загрузить загруженный инструмент

MaxToolNum = 6 'Максимальное число инструментов в магазине
While NewTool > MaxToolNum
NewTool = Question("Введите правильный номер инструмента, в магазине может быть только " & MaxToolNum & " инструментов.")
Wend
If NewTool = OldTool Then 'Если в шпинделе стоит тот же инструмент то ничего менять не надо

Exit Sub 'Выход из процедуры

End If


If NewTool = 1 Then

SetCurrentTool (NewTool) 'указать номер нового инструмента
ActivateSignal(Output2)
Sleep 250
DeActivateSignal(Output2)
Code "G4 P2"
End If

макрос смены инструмента M910 не работает в версии 043 062

Добавлено: 08 авг 2018, 14:45
Sorokinoffliz
темболее в свойствах компутера имеется возможность смены ключа. Просьба отписаться, получилось или нет

Re: макрос смены инструмента M910 не работает в версии 043.

Добавлено: 23 авг 2018, 09:14
noahi
Немного не понял о свойствах компьютера..
Поясните..