Дело было вечером, делать было нечего ... вот и дошли ручки, наконец, зачесать автоматизированное управление шпинделем. Что имеем:
Станок CNC-Magic J с установленным шпинделем ET65A-800W
Нажмите для просмотра прикрепленного файла
Преобразователь частоты фирмы Schneider Electric - Altivar 71
Нажмите для просмотра прикрепленного файла
Преобразователь интерфейса RS232/RS485
Нажмите для просмотра прикрепленного файла
Mach3 v.3.042.029
Задача - реализовать на основе Mach3 управление частотником по протоколу ModBus/RS485. Вот, собственно, блок-схема модели управления:
Нажмите для просмотра прикрепленного файла
Для начала конфигурируем мач:
ставим галочку для разрешения работы по ModBus
Нажмите для просмотра прикрепленного файла
снимаем лишние галки в подменю настройки шпинделя
Нажмите для просмотра прикрепленного файла
в меню general conf дописываем строчку инициализации
Нажмите для просмотра прикрепленного файла
Далее, для работы нам необходимо как минимум два регистра в ПЧ - слово управления CMD и регистр уставки. Я для удобства выбрал в качестве уставки обороты двигателя.
Конфигурируем поллинг:
Нажмите для просмотра прикрепленного файла
Параметры связи 19200 8-N-1. Частота сканирования диалоговой таблицы 10Hz. Поллинг необходим для самодиагностики связи преобразователем частоты. Если сетевой обмен прекращается на величину заданного тайм-аута, пч вываливается в ошибку.
Правим VBA скрипты:
M3
SetModOutput(0,&H0006)
SetModOutput(1,0)
DoSpinCW()
SetModOutput(0,&H000F)
M4
SetModOutput(0,&H0006)
SetModOutput(1,0)
DoSpinCCW()
SetModOutput(0,&H000F)
M5
SetModOutput(0,&H0006)
SetModOutput(1,&H0000)
DoSpinStop()
SPINDLESPEED
rpm = GetRPM()
SetSpinSpeed( rpm )
SetModOutput(1,rpm)
И, наконец, подправил постпроцессор:
@start_tool
if only_xyz eq false
if tool_direction eq CW then
mcode = 4
else ; CCW
mcode = 3
endif
call @gen_nb
; {'S'spin:integer_def_f, ' M'mcode}
{'M'mcode}
call @gen_nb
{'S'spin:integer_def_f}
call @gen_nb
{'M8'}
endif
endp
Работаю в связке SolidWorks/SolidCAM.
В отличие от преобразователей ШИМ-напряжение такой метод управления имеет, на мой взгляд, след. преимущества:
- гарантированное отключение мотора шпинделя при нулевой скорости;
- возможность двустороннего обмена данными между ПЧ и управляющей программой;
- однозначная интерпритация задания ПЧ и реальных оборотов мотора;
- высокая помехоустойчивость при больших дистанциях линии связи (до 1км) .