УП написана для токарно-фрезерного станка Takisawa LA-250M со стойкой Fanuc
Далее разберу подробно каждый кадр.
В первых трёх кадрах ничего интересного - номер, название УП, строка безопасности.
Потом следует переход во фрезерный режим (M76), выход в станочные нули, возвращение в токарный режим (M75).
Внимание! M - коды на разных станках могут отличаться! Нужно это учесть при использовании УП.
В седьмой строке мы переходим в систему координат G59, после чего начинается уже интересное.
Системная переменная #5321отвечает за ячейку координаты по оси X в системе координат G59. Мы видим, что она будет равна -150.
Это значит, что программа, при отработке данного кадра внесет значение -150 в эту ячейку. Сделано это для того, чтобы не вносить нужное "безопасное"значение каждый раз вручную. И вообще больше не вспоминать об этом - пришёл на смену, запустил УП и пошел на перекур, пока станок сам греется.
В следующей строке тоже самое, но по оси Z. Далее в четырёх строках сбрасываются значения корректора номер 49 на ноль, как в разделе геометрии, так и в износе. Из тех же соображений, что были описаны выше.
В четырнадцатой строке написано, что переменная #500=500. Толкование будет чуть позже, хотя в принципе в комментариях на скрине и так понятно, за что она будет отвечать.
В пятнадцатой строке похожая ситуация.
Дальше следует запись #3901=0. Системная переменная #3901 отвечает за ячейку PART COUNT, то есть за счетчик отработанных УП. Обычно его вручную обнуляют перед запуском партии для подсчета деталей. Здесь же это делает сама УП.
Далее, в семнадцатой строке ещё одна пользовательская переменная #503=149.
И уже в следующей за ней строке становится понятно, за что она будет отвечать.
Как мы видим, далее следует T - код, обычно отвечающий за вызов инструмента. Этот случай - не исключение, только вместо конкретного номера мы используем переменную #503, которая равна 149. То есть станок прочтет данную запись как T149, вызвав первый инструмент с 49ым корректором.
М8 - думаю, всем понятно.
В кадре N1, в семнадцатой строке значится, что обнуляется системная переменная #3001, отвечающая за время работы станка. В ячейке, за которую она отвечает, ведёт подсчет времени работы в миллисекундах.
В последующем кадре N2 записана очередная пользовательская переменная #502, и утверждается, что она равна значению 120000.
Дальше следует условие, в переводе с фануковского на русский означающее - "если переменная #3001 больше или равна переменной #502, тогда переменная #500 будет равна переменной #500 плюс 250.
Забегая немного вперед, мы можем понять, что, если таймер натикает до 120000 миллисекунд и больше, обороты шпинделя повысятся до 750.
Но уже в следующей строке, при том же условии следует переход по GOTO на кадр N1, где снова обнуляется таймер и начинается новый отсчет. При этом, обороты также остаются равны 750.
В строках 24-30 в принципе, все понятно - запускаются обороты, идет перемещение в режиме круговой интерполяции.
В тридцать первой строке мы в счетчике прибавляем значение 1. Для чего это нужно - будет написано ниже.
И снова несколько условий - строке 32 записано условие "если системная переменная #4119 (текущие обороты шпинделя) больше или равна переменной #501, то следует переход на кадр N4" - то есть, на завершение УП с обязательным возвращением в G54 и переход в режим перемещения миллиметр на оборот (G99).
В строке 33 условие "если в счетчике записано значение 2 или более, то следует переход на кадр N3". Так как в конце каждого круга перемещений у нас счетчик увеличивается на значение 1, то из этого следует, что при завершении двух кругов УП перескочит на кадр N3.
В строке 34 условие "если время работы более нуля, то следует переход на кадр N2". Во время написания поста понял, что тут вроде достаточно было бы написать просто GOTO2, без всяких условий.
С кадра N3 следует фрагмент, отвечающий за смену инструмента. Как было сказано выше, смена происходит после того, как в счетчике появится значение 2. Или после двух кругов.
В последующих строках параметр #503 увеличивается на 100, тем самым номер вызываемого инструмента каждый раз меняется на 1, но когда доходит до 12 (число позиций в револьвере на моем станке) - обнуляется и при следующей смене начинает снова с первого. Также обнуляется и счетчик.
А дальнейшие строки, думаю, всем понятны, тем более, что я про них и без того написал выше.
Для съемки видео параметр #502=10000, то есть обороты шпинделя повышаются примерно раз в 10 секунд
Вот такая незамысловатая УП у меня вышла.
А вы как решаете подобный вопрос? Делитесь в комментариях - обмен опытом, это хорошо:)