Страница 1 из 1
Необычный глюк Mach3
Добавлено: 09 окт 2024, 12:34
AlanDerby
Коллеги, столкнулся с неожиданной странностью в работе Mach 3 при загрузке g-кода. Мне это открытие стоило расквашенного в фарш пальца на руке и отломанной крышки энкодера на серводвигателе.

Для понимания опишу, как настроено железо. Есть релейный блок на ModBus. В коде соответственно есть М-команды, первая из которых включает реле, следующая выключает. Реле переключает двигатель с режима положения на режим скорости. Так вот, при загрузке g-кода, когда происходит чтение и проверка строк, при попадании на строку с командой на включение режима скорости команда срабатывает, реле включается, соответственно двигатель включается на вращение, а при попадании на команду выключения, выключается. Напомню, все это происходит самостоятельно просто при загрузке g-кода.
Столкнулся с таким впервые и ранее никогда не замечал, чтобы М-команды выполнялись при загрузке кода и даже не подозревал, что такое вообще возможно. К слову, в g-коде много других M-команд и они почему-то не исполняются при загрузке. Будьте осторожны и аккуратны!
Отключить исполнение M-команд при загрузке кода, оказывается можно в General Control, поставив галочку "Ignore M calls while loading".
Re: Необычный глюк Mach3
Добавлено: 10 окт 2024, 05:19
vtgmfg
а что за коды то?
Re: Необычный глюк Mach3
Добавлено: 10 окт 2024, 15:53
AlanDerby
Просто в g-коде идет M-команда (собственный скрипт) на включение реле ModBus. Когда загружается g-код, мач построчно проверяет программу на предмет ошибок и когда доходит до этой M-команды начинает выполняет ее. Т.е. в этот момент реле включается. Реле, в свою очередь, управляет включением шпинделя. Таким образом при загрузке g-кода шпиндель включился, отчего сильно пострадал палец. Если интересно, могу снять видео, как это все происходит.
Re: Необычный глюк Mach3
Добавлено: 11 окт 2024, 07:53
Argentum47
это у вас ещё комп не ребутался, когда инструмент меняли, даже charge pump не спасает. Функционал мача трудно переоценить конечно, но дыр всех мастей в нём очень много.
Re: Необычный глюк Mach3
Добавлено: 11 окт 2024, 10:53
vtgmfg
AlanDerby писал(а): ↑
Таким образом при загрузке g-кода шпиндель включился,
ну это какой то кастомный M3 что ли?
Re: Необычный глюк Mach3
Добавлено: 11 окт 2024, 18:44
AlanDerby
vtgmfg писал(а): ↑
ну это какой то кастомный M3 что ли?
В общем, проще видео снять и показать, чем много писать. Да и нагляднее будет

Сделал себе ТФО (токарно-фрезерную ось). Она у меня и в режиме 4-й оси, и в режиме передней бабки токарного станка. Позволяет из фрезерного сделать токарно-фрезерный. Удобная штука. На форуме где-то есть небольшая тема о ней. К слову, у меня на станке почти все команды кастомные, т.к. стандартные мои задачи не решают
На видео ниже показал, как происходит срабатывание при загрузке g-кода.
В момент загрузки ключ был вставлен в патрон и рука лежала на ключе. Из-за неожиданного включения ключ ударил по крышке энкодера двигателя и сломал ее, да еще палец между ними оказался.

Как писал выше, нужно в General Control, поставить галочку "Ignore M calls while loading", чтобы такого не случалось.
https://vk.com/video872420804_456239034
Re: Необычный глюк Mach3
Добавлено: 11 окт 2024, 18:59
AlanDerby
Argentum47 писал(а): ↑
это у вас ещё комп не ребутался, когда инструмент меняли, даже charge pump не спасает. Функционал мача трудно переоценить конечно, но дыр всех мастей в нём очень много.
Я Мачем доволен. Проблем с ним не испытываю вообще. По мне так отличная гибкая настраиваемая система, хотя и несколько архаичная. Позволяет вытворять с ним почти что угодно. Управляющая электроника у меня подключена через Ethernet, так что сбои - очень большая редкость. Пока не встречал задачу, которую нельзя решить в mach, т.к. на все можно написать скрипт. Сейчас вот, например, планирую заставить Mach отправлять мне уведомления об окончании работы. Чтобы не стоять и не ждать окончания долгой операции, а заниматься другими делами и подходить к станку только когда это действительно требуется.
Есть конечно в Маче вещи, которые можно улучшить. Мне, например, не хватает в VB команд для прямого управления устройствами ModBus. Так чтобы не через Brains, а напрямую обращаться к нужному устройству по заданному адресу, типа дать команду "01 06 00 01 FF 00" или типа того. Даже в Mach4, на сколько мне известно, в этом плане ничего не улучшилось, хотя не понятно почему бы это не сделать. Это бы сильно расширило функционал и гибкость системы.
Re: Необычный глюк Mach3
Добавлено: 12 окт 2024, 08:54
vtgmfg
AlanDerby писал(а): ↑
На видео ниже показал, как происходит срабатывание при загрузке g-кода.
на вк я не захожу, сорри. мачем не пользуюсь.
собственно интересно было что за м-код который выполняется при загрузке и зачем. так то я тоже могу в М3 понаписать всякого.. но он выполниться в тот момент когда до него дойдет дело
Re: Необычный глюк Mach3
Добавлено: 14 окт 2024, 08:14
Argentum47
AlanDerby писал(а): ↑
Управляющая электроника у меня подключена через Ethernet
Вот это ключевой момент, интерфейс для софта не родной и реализован через плагины, которые то ли никто не в состоянии без глюков написать, то ли это в принципе невозможно, у меня когда-то ESS нормально так неприятностей доставлял, про китайское говно даже и говорить нечего.
Re: Необычный глюк Mach3
Добавлено: 14 окт 2024, 11:26
AlanDerby
Argentum47 писал(а): ↑14 окт 2024, 08:14
AlanDerby писал(а): ↑
Управляющая электроника у меня подключена через Ethernet
Вот это ключевой момент, интерфейс для софта не родной и реализован через плагины, которые то ли никто не в состоянии без глюков написать, то ли это в принципе невозможно, у меня когда-то ESS нормально так неприятностей доставлял, про китайское говно даже и говорить нечего.
На самом деле, как оказалось, исполнение М-команд при загрузке изначально заложено в Mach. Не понятно только зачем. И есть возможность соответствующей галочкой отключить эту функцию. Вот, что написано в документации про эту галочку:
Ignore M calls while loading disables M call execution while the GCode is being interpreted to draw the tool path. Some M calls do things like start spindles, turn on oil pumps, etc., which should execute only when the part program is actually run.,
Перевод:
Игнорирование M вызовов во время загрузки отключает выполнение M вызовов во время интерпретации кода для построения траектории инструмента. Некоторые M вызовов выполняют такие действия, как запуск шпинделей, включение масляных насосов и т.д., которые должны выполняться только при фактическом запуске программы обработки деталей.
Смущает другое. Я использую много различных собственных М-команд и никогда они не срабатывали и не срабатывают при загрузке. Сработали только те, которые управляли устройством ModBus. Почему?
Единственное объяснение у меня в том, что эти команды просто меняют значение переменной, что тут же транслируются через Brains, а по тому их выполнение происходит мгновенно, без дальнейшего участия Mach3. На исполнение обычных команд, типа ActivateSignal у Mach просто не хватает времени, по этому они не исполняются.