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

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение 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
'конец скрипта
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

noahi писал(а): End Sub
Main
Main похоже лишнее или не в той строчке.

И попробовать вообще убрать Sub Main() и End Sub Main макросы Mach3 часто без них пишутся ;)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение 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
 
 

'конец скрипта
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

noahi писал(а): и не берёт корректор.
мож чтобы взял корректор нужно G43 ?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение noahi »

в версии 020 когда я нажимаю в MDI T0101 или любой другой инструмент у меня в графе TOOL N появляется инструмент 1.
Сейчас там стоит ноль.Соответственно пока речь наверное не идёт о корректоре..
Просто макрос не ставит инструмент.Идёт разобщение сигналов и экрана,так как выход работает
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Значит нужно отлаживать. В макрос например добавлять msgbox ("NewTool ") , запускать макрос и смотреть что в каких переменных есть.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение noahi »

Совсем не разбираюсь в макросах .
(В макрос например добавлять msgbox ("NewTool ") , запускать макрос и смотреть что в каких переменных есть)..я не могу понять эту фразу.Если есть возможность немного расширить фразу,БЫЛО БЫ ЗДОРОГО..
Я так понимаю в макрос(куда)надо вставить это и где именно смотреть переменные.
Так же не пойму..В чём разница синтаксиса 020 от 062..Ведь там нареканий нет..
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

noahi писал(а):Совсем не разбираюсь в макросах .
тогда тяжелый случай.
noahi писал(а):msgbox ("NewTool ")
при выполнении макроса выйдет сообщение что находится в NewTool
noahi писал(а):В чём разница синтаксиса 020 от 062..Ведь там нареканий нет..
В чем разница знает писатель Mach3. Возможно что в старой версии по умолчанию одни настройки, в новой версии другие настройки вот что то работает, что то не работает. Нужно искать.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
NikolayUa24
Мастер
Сообщения: 1407
Зарегистрирован: 31 июл 2013, 20:05
Репутация: 256
Настоящее имя: Николай
Контактная информация:

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

Сообщение NikolayUa24 »

Страдания ведут человека к совершенству.
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение 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]
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение noahi »

Проверил на станке.Всё отлично.Импульсы идут.Корректор работает.
Но если добиваться изящности кода,то нужно добавить строку ,чтоб не шли импульсы с мача при стоящем уже в слоте нужном резце.
И соответственно не тратилось холостое время на прогон поиска инструмента.
Сейчас они идут,но их блокирует допконтроллер.
Аватара пользователя
FLUKE
Мастер
Сообщения: 843
Зарегистрирован: 11 мар 2013, 21:18
Репутация: 187
Настоящее имя: Сергей
Откуда: Смоленск
Контактная информация:

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

Сообщение FLUKE »

У тебя потерялось "Exit Sub" в 12 строке
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение 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
Sorokinoffliz
Новичок
Сообщения: 3
Зарегистрирован: 21 июл 2018, 22:36
Репутация: 0
Настоящее имя: Sorokinoffliz
Откуда: Россия
Контактная информация:

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

Сообщение Sorokinoffliz »

темболее в свойствах компутера имеется возможность смены ключа. Просьба отписаться, получилось или нет
noahi
Кандидат
Сообщения: 42
Зарегистрирован: 15 дек 2015, 09:45
Репутация: 0
Настоящее имя: Эдуард
Откуда: Москва
Контактная информация:

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

Сообщение noahi »

Немного не понял о свойствах компьютера..
Поясните..
Ответить

Вернуться в «Windows / Mach»