Выгрузка скорректированных параметров подачи Fanuc 31i через Python для OEE и оптимизации
-

На Fanuc 31i скорректированные параметры подачи прячутся в системных переменных. Python-скрипт вытаскивает их без лишней возни с SCADA. Это решает проблему ручного подсчета OEE - автоматически считаешь доступность, производительность и качество.
Данные идут на оптимизацию режимов: подача, шпиндель, износ инструмента. Станок сам корректирует параметры по нагрузке, а скрипт их логирует. Получаешь точные метрики для 2026 года - без простоев и с максимальной выработкой.
Что такое скорректированные параметры подачи на Fanuc 31i
Скорректированные параметры - это когда стойка сама меняет подачу по нагрузке шпинделя, износу или отклонениям. В Fanuc 31i они живут в системных переменных #3000+ и O-параметрах. Станок мониторит амперы, обороты, время резания - и подкручивает F, S под реальность.
Пример: фрезеруешь нержу, инструмент тупится - стойка снижает подачу на 15%, чтобы не сорвать. Без логов не поймешь, сколько реально ушло на коррекцию. А для OEE это критично: цикл удлинился, производительность просела. Скрипт через FOCAS тянет эти данные в реал-тайм, парсит и суммирует.
- #3901-#3920: коррекция подачи по нагрузке (AMP1-AMP8 для осей)
- #3010-#3020: статус коррекции шпинделя и осей
- #5001: общая длительность с коррекцией
Параметр Описание Диапазон #3902 Коррекция X по AMP1 0-200% #3910 Общая подача F после корр. 1-9999 мм/мин #3015 Время коррекции шпинделя секунды Нюанс: перед чтением включи FOCAS в параметрах стойки #8100=1.
Подключение Python к Fanuc 31i через FOCAS
FOCAS - это API от Fanuc для чтения системных переменных. Подключаешься по Ethernet, без доп. железа. В 2026-м это стандарт: стойка на сети, Python на ноуте у оператора или сервере. Библиотека pyfocas или focas-python - твой лучший друг.
Пример: станок режет сотку, нагрузка скачет - скрипт каждые 5 сек пингует #3902, видит коррекцию +10%. Логирует в CSV с timestamp. Потом агрегируешь: сколько % времени стойка корректировала, влияние на OEE. Без этого - слепой полет по приборам.
- Установи библиотеку:
pip install focas - Инициализируй соединение:
h = cnc_allclib(cnc_handle()) - Читай переменную:
cnc_rdmacro(h, 3902, 10, data)
# Пример чтения коррекции подачи import focas h = focas.cnc_allclib('192.168.1.100') data = focas.cnc_rdmacro(h, 3902, 10) print(f'Коррекция X: {data} %')Важно: проверь firewall на стойке, порт 8193 открыт.
Расчет OEE из скорректированных данных
OEE = Доступность x Производительность x Качество. Скорректированные параметры дают точную Производительность: реальное время резания vs план. Python парсит логи, вычитает коррекции - и вуаля, метрика на лицо. Для алюминия коррекция 5%, для нержи - 25%, OEE падает.
Реальный кейс: серия 100 деталей, план 2 мин/шт, с коррекцией - 2.3 мин. Скрипт считает delta, предлагает снизить подачу заранее или сменить инструмент. Оптимизация режимов: подкрути #3921 для предиктивной коррекции.
- Доступность: время простоя / коррекций (из #3010)
- Производительность: план vs реал с учетом F-коррекции
- Качество: % брака по нагрузке (если >150% - сбой)
Метрика OEE Формула Пример для Fanuc Доступность (Время_работы / План) x100 92% (коррекции 8 мин) Производительность (Идеал_скорость / Реал) x100 85% (подача -12%) OEE итог Произведение 78% Выводи в дашборд на Streamlit - оператор видит онлайн.
Оптимизация режимов на основе выгрузки
С логами коррекций подбираешь оптимальные F/S заранее. Скрипт анализирует историю: для той же нержи средняя коррекция +18% - ставь подачу ниже изначально. Или меняй геометрию инструмента по #2001-#2010.
Пример: данные за неделю показывают пики коррекций на глубине 10 мм - уменьши вылет на 2 мм. Интеграция с Excel-макросом: импортируй CSV, считай регрессию. В 2026-м это норма - стойка + Python = умный цех без операторских ошибок.
- Парсинг:
df['corr'] = df['param3902'] - 100 - Агрегация:
avg_corr = df.groupby('tool')['corr'].mean() - Рекомендация: if avg_corr > 10: ‘Сменить инструмент’
Сохраняй raw_data в папке, processed - с графиками matplotlib.
Когда скрипт не тянет - типичные косяки
Не всегда гладко: FOCAS глючит на старых прошивках, переменные недоступны. Или сеть рвет - добавь retry в код. Тестируй на эмуляторе Fanuc перед боем. Осталось докрутить ML для предикта коррекций по нагрузке - но это уже следующий уровень.
Здравствуйте! Похоже, вас заинтересовал этот пост, но у вас ещё нет аккаунта.
Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост мог бы стать ещё лучше 💗
Зарегистрироваться Войти© 2022 - 2026 InvestSteel, Inc. Все права защищены.