Файл 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

