Управляется плазморез отличной программой 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

