Подключение двух нормально-замкнутых датчиков к одному входу
Дополнение к
этой и
этой программам написал и делится наш форумчанин
artsemi , позволяет подключить по
логике ИЛИ нормально-замкнутые центроискатель и датчик длины инструмента
к одному входу probe-input, что является не совсем тривиальной задачей.
Зачем нужна логика ИЛИ ?
-можно при необходимости отключать физически любой из датчиков, оставляя другой при этом работающим (актуально, например, для беспроводного центроискателя, чтобы зря не садить батарейку),
-не выдает ошибок при случайной сработке probe от вибрации в режимах ручного или MDI перемещения (датчики имеют возможность "активироваться" только в момент измерения),
-если что-то не упомянул, artsemi дополнит
Физически датчики подключаются к разным входам (в прилагаемых исходниках это входы контроллера mesa, файл tool.hal) и по определенной логике, открывающей дополнительные удобства, микшируются в пользовательском bmux4.comp
Код: Выделить всё
FUNCTION(_) {
if(sel1) {
if(sel0) out = in3;
else out = in2;
} else {
if(sel0) out = in1;
else out = in0;
}
}
сигнал out передаётся на probe-input.
Активация-деактивация входов sel0 и sel1 прямо из g-code
Код: Выделить всё
#M64 P2 - activate toolsetter
#M64 P3 - activate probe
#M65 P2 - deactivate toolsetter
#M65 P3 - deactivate probe
например, при обмере вниз
Код: Выделить всё
o<down> sub
O<down-if> IF [#<_hal[probe.set_zero]> EQ 5]
(cancel Z offsets)
G92.1
G49
G10 L20 P0 Z[#<_hal[axis.2.joint-pos-cmd]>]
O<down-if> ENDIF
#<z>=#<_z> (save current Z position)
G91
F #<_hal[probe.ps_searchvel]>
M64 P3
G38.2 Z[-#<_hal[probe.ps_probe_max]>]
G1 Z[#<_hal[probe.ps_probe_latch]>] F#<_ini[TOOLSENSOR]RAPID_SPEED>
F #<_hal[probe.ps_probevel]>
G4 P0.5
G38.2 Z[-#<_hal[probe.ps_probe_latch]>*2]
M65 P3
G90
(back to start point)
G1 Z#<z> F#<_ini[TOOLSENSOR]RAPID_SPEED>
o<down> endsub
M2
P.S. Артемий, оставьте здесь свой комментарий, чтобы можно было Вас плюсовать
