Re: EMC2 и неровная поверхность гравировки [РЕШЕНО]
Добавлено: 23 мар 2012, 12:45
На русском, и немного изменил расположение элементов.
Файл compensation_pyvcp.xml
Работает при costom_postgui.hal
Nick, на мой взгляд (с точки зрения юзабилити) нужно еще сделать чтобы кнопочка "Обновить"("Reset"), становилась неактивной если компенсация включена (то есть чекбокс - есть галочка), а при отключенной компенсации была активной. Подобно "Аварийная остановка"(F1) и "Питание станка"(F2) Как это сделать я незнаю, подскажешь?
Файл compensation_pyvcp.xml
Код: Выделить всё
<pyvcp>
<labelframe text="Компенсация">
<vbox>
<hbox>
<checkbutton>
<halpin>"enable"</halpin>
<text>"Вкл./выкл."</text>
</checkbutton>
<vbox>
<labelframe text="Статус">
<rectled>
<halpin>"enable-led"</halpin>
<height>"50"</height>
<width>"50"</width>
<on_color>"green"</on_color>
<off_color>"red"</off_color>
</rectled>
</labelframe>
<labelframe text="Ошибки">
<rectled>
<halpin>"error-led"</halpin>
<height>"50"</height>
<width>"50"</width>
<on_color>"green"</on_color>
<off_color>"red"</off_color>
</rectled>
</labelframe>
</vbox>
</hbox>
<labelframe text="Карта высот">
<button>
<halpin>"reset"</halpin>
<text>"Обновить"</text>
</button>
<rectled>
<halpin>"reset-led"</halpin>
<height>"10"</height>
<width>"145"</width>
<on_color>"green"</on_color>
<off_color>"red"</off_color>
</rectled>
</labelframe>
<labelframe text="Значение компенсации">
<number>
<halpin>"current-comp"</halpin>
<font>("Helvetica",24)</font>
<format>"+4.4f"</format>
</number>
</labelframe>
<labelframe text="Значение оси Z">
<number>
<halpin>"current-z"</halpin>
<font>("Helvetica",24)</font>
<format>"+4.4f"</format>
</number>
</labelframe>
<labelframe text="Зонд">
<checkbutton>
<halpin>"beep"</halpin>
<text>"Звук (бипер)"</text>
</checkbutton>
<rectled>
<halpin>"probe-led"</halpin>
<height>"300"</height>
<width>"145"</width>
<on_color>"green"</on_color>
<off_color>"gray"</off_color>
</rectled>
</labelframe>
</vbox>
</labelframe>
</pyvcp>
Код: Выделить всё
# Include your customized HAL commands here
# The commands in this file are run after the AXIS GUI (including PyVCP panel) starts
loadrt or2 count=2
loadrt sum2 count=1
loadusr -Wn compensation python compensation.py filename.txt
#beep
loadusr -Wn beep python beep.py
net probe-in => beep.in
#setp beep.enable 1
net beep-enable <= pyvcp.beep => beep.enable
addf or2.0 servo-thread
addf or2.1 servo-thread
addf sum2.0 servo-thread
net xpos-cmd => compensation.x-map
net ypos-cmd => compensation.y-map
# отключаем сигналы управления обратной связи оси Z
unlinkp stepgen.2.position-cmd
unlinkp axis.2.motor-pos-cmd
unlinkp stepgen.2.position-cmd
unlinkp axis.2.motor-pos-fb
# заново назначаем сингалы упралвления и обратной связи
net zpos-cmd <= axis.2.motor-pos-cmd
net zpos-cmd => axis.2.motor-pos-fb
net zpos-cmd => sum2.0.in0
net comp compensation.out => sum2.0.in1
net zpos-cmd-comp sum2.0.out => stepgen.2.position-cmd
# это мы делаем так, что бы M62 P0 (цифровой вывод №1) включал компенсацию
net dout-00 <= motion.digital-out-00
net dout-00 => or2.0.in0
net pyvcp-enable pyvcp.enable => or2.0.in1
net comp-enable or2.0.out compensation.enable
# это мы настраиваем функцию reset.
net dout-01 <= motion.digital-out-01
net dout-01 => or2.1.in0
net pyvcp-reset pyvcp.reset => or2.1.in1
net comp-reset or2.1.out compensation.reset
#это мы настраиваем led
net comp-enable => pyvcp.enable-led
net comp-reset => pyvcp.reset-led
net comp-error compensation.error => pyvcp.error-led
net probe-in => pyvcp.probe-led
#это мы настраиваем отображение
net zpos-cmd-comp => pyvcp.current-z
net comp => pyvcp.current-comp