Управляется плазморез отличной программой Mach3. Он был выбран по некоторым причинам и теперь есть необходимость перейти на что-то более стабильное. Что то более стабильное из доступного и интересного оказался LinuxCNC.
Есть некоторые достижения в этом направлении, но еще много чего не понятно.
Сделан конфиг под параметры моего станка(это было самым легким), и по аналогии со скринсетом для Mach3, который дополнен своими руками, создал панель GladeVCP для LinuxCNC. Завести мигающие LED-ки, связать кнопки с MDI-коммандами никаких проблем не составило.
В Mach3 алгоритм включения плазмы и прокола записаны в макросе M03. параметры включения плазмы и прокола берутся в реальном времени из скринсета, тоесть в любой момент можно скорректировать высоту прокола, высоту подпрыжки, добавить задержку, скорректировать скорость нащупывания металла. Т.к. есть необходимость в контроле этих параметров, то хотелось бы продолжить их контролировать и в EMC2, по привычному алгоритму, т.е. через окно программы. Соответствующие кнопки добавлены в панель GladeVCP, но не хватает мозгов соединить их с выполнением команд.
Как можно задать переменные в .ngc-файле, значения которых будут браться из панели GladeVCP?
Макрос включения плазмы взят с просторов бескрайнего и чуток подпилен под свои нужды и выглядит так:
Код: Выделить всё
Dim A As long 'назначаем переменные
Dim B As long
Dim C As long
Dim D As long
Dim E As long
A = GetOEMDRO(1001) 'высота прожига
B = GetOEMDRO(1002) 'высота подпрыжки
C = GetOEMDRO(1003) 'высота резки
D = GetOEMDRO(1004) 'задержка рпожига
E = GetOEMDRO(1005) 'Скорость оси Z
CurrentFeed = GetOemDRO(818) 'запоминаем значение текущей подачи
Code "G31 Z-200" &E 'опускаем горелку до срабатывания датчика касания
While IsMoving() 'ждём выполнения
Sleep 0.1 'задержка 100мс
Wend
Code "G92 Z0" 'обнуляем координату Z
Code "G0 Z" &A 'поднимаем горелку на высоту прожига
While IsMoving ()
Sleep 0.1
Wend
DoSpinCW() 'включение плазмотрона
While IsMoving ()
Sleep 0.1
Wend
Code "G0 Z" &B 'перемещение на высоту подпрыжки
Code "G0 Z" &C 'перемещение на высоту резки
Code "G04 P" &D '"аппаратная" задержка на прожиг
StartTHC() 'включаем THC
While IsMoving ()
Sleep 0.1
Wend
Code "F" &CurrentFeed 'возврат к скорости заданной в УП
Буду рад любой конструктивной помощи и критике.
забыл добавить ссылку, может кому так удобней:
https://github.com/daiman444/my_plasma