digraph net {
    node [shape=record];
    sig_XYZvel [shape=diamond, label="XYZvel"]
    sig_XYvel [shape=diamond, label="XYvel"]
    sig_XZhomesw [shape=diamond, label="XZhomesw"]
    sig_Xacc [shape=diamond, label="Xacc"]
    sig_Xhomesw [shape=diamond, label="Xhomesw"]
    sig_Xhomeswpos [shape=diamond, label="Xhomeswpos"]
    sig_Xpos [shape=diamond, label="Xpos"]
    sig_Xvel [shape=diamond, label="Xvel"]
    sig_Yacc [shape=diamond, label="Yacc"]
    sig_Yhomesw [shape=diamond, label="Yhomesw"]
    sig_Yhomeswpos [shape=diamond, label="Yhomeswpos"]
    sig_Ypos [shape=diamond, label="Ypos"]
    sig_Yvel [shape=diamond, label="Yvel"]
    sig_Zacc [shape=diamond, label="Zacc"]
    sig_Zhomesw [shape=diamond, label="Zhomesw"]
    sig_Zhomeswpos [shape=diamond, label="Zhomeswpos"]
    sig_Zpos [shape=diamond, label="Zpos"]
    sig_Zvel [shape=diamond, label="Zvel"]
    sig_hal_manualtoolchange_change [shape=diamond, label="hal_manualtoolchange.change"]
    sig_hal_manualtoolchange_changed [shape=diamond, label="hal_manualtoolchange.changed"]
    sig_hal_manualtoolchange_number [shape=diamond, label="hal_manualtoolchange.number"]
    sig_iocontrol_0_tool_prepare [shape=diamond, label="iocontrol.0.tool-prepare"]
    sig_iocontrol_0_user_enable_out [shape=diamond, label="iocontrol.0.user-enable-out"]
    sig_spindle_fwd [shape=diamond, label="spindle-fwd"]
    sig_spindle_index_enable [shape=diamond, label="spindle-index-enable"]
    sig_spindle_phase_A [shape=diamond, label="spindle-phase-A"]
    sig_spindle_phase_B [shape=diamond, label="spindle-phase-B"]
    sig_spindle_phase_Z [shape=diamond, label="spindle-phase-Z"]
    sig_spindle_pos [shape=diamond, label="spindle-pos"]
    sig_spindle_rpm_filtered [shape=diamond, label="spindle-rpm-filtered"]
    sig_spindle_rps_filtered [shape=diamond, label="spindle-rps-filtered"]
    sig_spindle_rps_raw [shape=diamond, label="spindle-rps-raw"]
    sig_spindle_speed_cmd [shape=diamond, label="spindle-speed-cmd"]
    sig_spindle_speed_limited [shape=diamond, label="spindle-speed-limited"]
    sig_xena [shape=diamond, label="xena"]
    sig_xflt [shape=diamond, label="xflt"]
    sig_yena [shape=diamond, label="yena"]
    sig_yflt [shape=diamond, label="yflt"]
    sig_zena [shape=diamond, label="zena"]
    sig_zflt [shape=diamond, label="zflt"]

    sim_encoder_0 [label="<sim_encoder_0>sim-encoder.0|<phase_A>phase-A|<phase_B>phase-B|<phase_Z>phase-Z|<speed>speed"];
    hal_manualtoolchange [label="<hal_manualtoolchange>hal_manualtoolchange|<change>change|<changed>changed|<number>number"];
    scale_0 [label="<scale_0>scale.0|<out>out|<in>in"];
    iocontrol_0 [label="<iocontrol_0>iocontrol.0|<tool_change>tool-change|<tool_changed>tool-changed|<tool_prep_number>tool-prep-number|<tool_prepare>tool-prepare|<tool_prepared>tool-prepared|<emc_enable_in>emc-enable-in|<user_enable_out>user-enable-out"];
    ddt_2 [label="<ddt_2>ddt.2|<in>in|<out>out"];
    pyvcp [label="<pyvcp>pyvcp|<spindle_speed>spindle-speed"];
    or2_0 [label="<or2_0>or2.0|<out>out|<in0>in0|<in1>in1"];
    axis_1 [label="<axis_1>axis.1|<home_sw_in>home-sw-in|<motor_pos_cmd>motor-pos-cmd|<motor_pos_fb>motor-pos-fb|<amp_enable_out>amp-enable-out|<amp_fault_in>amp-fault-in"];
    axis_0 [label="<axis_0>axis.0|<home_sw_in>home-sw-in|<motor_pos_cmd>motor-pos-cmd|<motor_pos_fb>motor-pos-fb|<amp_enable_out>amp-enable-out|<amp_fault_in>amp-fault-in"];
    ddt_3 [label="<ddt_3>ddt.3|<out>out|<in>in"];
    axis_2 [label="<axis_2>axis.2|<home_sw_in>home-sw-in|<motor_pos_cmd>motor-pos-cmd|<motor_pos_fb>motor-pos-fb|<amp_enable_out>amp-enable-out|<amp_fault_in>amp-fault-in"];
    ddt_1 [label="<ddt_1>ddt.1|<out>out|<in>in"];
    ddt_0 [label="<ddt_0>ddt.0|<in>in|<out>out"];
    ddt_5 [label="<ddt_5>ddt.5|<out>out|<in>in"];
    ddt_4 [label="<ddt_4>ddt.4|<in>in|<out>out"];
    encoder_0 [label="<encoder_0>encoder.0|<index_enable>index-enable|<phase_A>phase-A|<phase_B>phase-B|<phase_Z>phase-Z|<position>position|<velocity>velocity"];
    limit2_0 [label="<limit2_0>limit2.0|<in>in|<out>out"];
    comp_1 [label="<comp_1>comp.1|<out>out|<in0>in0|<in1>in1"];
    comp_0 [label="<comp_0>comp.0|<out>out|<in0>in0|<in1>in1"];
    lowpass_0 [label="<lowpass_0>lowpass.0|<out>out|<in>in"];
    comp_2 [label="<comp_2>comp.2|<out>out|<in0>in0|<in1>in1"];
    motion [label="<motion>motion|<spindle_forward>spindle-forward|<spindle_index_enable>spindle-index-enable|<spindle_revs>spindle-revs|<spindle_speed_out>spindle-speed-out"];
    hypot_1 [label="<hypot_1>hypot.1|<out>out|<in1>in1|<in0>in0"];
    hypot_0 [label="<hypot_0>hypot.0|<out>out|<in0>in0|<in1>in1"];

    sig_iocontrol_0_tool_prepare -> iocontrol_0:tool_prepared [ dir=forward , weight=1 ] ;
    sim_encoder_0:phase_A -> sig_spindle_phase_A [ dir=forward , weight=3 ] ;
    sig_Xpos -> axis_0:motor_pos_fb [ dir=forward , weight=1 ] ;
    sig_Xpos -> comp_0:in1 [ dir=forward , weight=1 ] ;
    sig_Ypos -> axis_1:motor_pos_fb [ dir=forward , weight=1 ] ;
    sig_spindle_phase_Z -> encoder_0:phase_Z [ dir=forward , weight=1 ] ;
    sig_hal_manualtoolchange_changed -> iocontrol_0:tool_changed [ dir=forward , weight=1 ] ;
    motion:spindle_forward -> sig_spindle_fwd [ dir=forward , weight=3 ] ;
    sig_Ypos -> comp_1:in1 [ dir=forward , weight=1 ] ;
    iocontrol_0:tool_prepare -> sig_iocontrol_0_tool_prepare [ dir=forward , weight=3 ] ;
    sig_spindle_index_enable -> motion:spindle_index_enable [ dir=forward , weight=1 ] ;
    axis_2:motor_pos_cmd -> sig_Zpos [ dir=forward , weight=3 ] ;
    sig_iocontrol_0_user_enable_out -> iocontrol_0:emc_enable_in [ dir=forward , weight=1 ] ;
    ddt_3:out -> sig_Yacc [ dir=forward , weight=3 ] ;
    axis_1:amp_enable_out -> sig_yena [ dir=forward , weight=3 ] ;
    axis_1:motor_pos_cmd -> sig_Ypos [ dir=forward , weight=3 ] ;
    axis_2:amp_enable_out -> sig_zena [ dir=forward , weight=3 ] ;
    comp_0:out -> sig_Xhomesw [ dir=forward , weight=3 ] ;
    sig_Zpos -> comp_2:in1 [ dir=forward , weight=1 ] ;
    sig_Zhomesw -> or2_0:in1 [ dir=forward , weight=1 ] ;
    sig_Yvel -> hypot_0:in1 [ dir=forward , weight=1 ] ;
    sig_Ypos -> ddt_2:in [ dir=forward , weight=1 ] ;
    ddt_1:out -> sig_Xacc [ dir=forward , weight=3 ] ;
    sig_xflt -> axis_0:amp_fault_in [ dir=forward , weight=1 ] ;
    sim_encoder_0:phase_Z -> sig_spindle_phase_Z [ dir=forward , weight=3 ] ;
    sig_Xvel -> ddt_1:in [ dir=forward , weight=1 ] ;
    sig_Xpos -> ddt_0:in [ dir=forward , weight=1 ] ;
    iocontrol_0:tool_change -> sig_hal_manualtoolchange_change [ dir=forward , weight=3 ] ;
    hypot_1:out -> sig_XYZvel [ dir=forward , weight=3 ] ;
    sig_Xhomeswpos -> comp_0:in0 [ dir=forward , weight=1 ] ;
    sig_spindle_rps_filtered -> scale_0:in [ dir=forward , weight=1 ] ;
    sig_spindle_rpm_filtered -> pyvcp:spindle_speed [ dir=forward , weight=1 ] ;
    hal_manualtoolchange:change -> sig_hal_manualtoolchange_change [ dir=forward , weight=3 ] ;
    or2_0:out -> sig_XZhomesw [ dir=forward , weight=3 ] ;
    sig_Zhomeswpos -> comp_2:in0 [ dir=forward , weight=1 ] ;
    hal_manualtoolchange:changed -> sig_hal_manualtoolchange_changed [ dir=forward , weight=3 ] ;
    sig_hal_manualtoolchange_number -> hal_manualtoolchange:number [ dir=forward , weight=1 ] ;
    scale_0:out -> sig_spindle_rpm_filtered [ dir=forward , weight=3 ] ;
    ddt_0:out -> sig_Xvel [ dir=forward , weight=3 ] ;
    ddt_2:out -> sig_Yvel [ dir=forward , weight=3 ] ;
    sig_Xhomesw -> or2_0:in0 [ dir=forward , weight=1 ] ;
    iocontrol_0:user_enable_out -> sig_iocontrol_0_user_enable_out [ dir=forward , weight=3 ] ;
    sig_XZhomesw -> axis_2:home_sw_in [ dir=forward , weight=1 ] ;
    sig_spindle_phase_A -> encoder_0:phase_A [ dir=forward , weight=1 ] ;
    sig_spindle_pos -> motion:spindle_revs [ dir=forward , weight=1 ] ;
    sig_spindle_phase_B -> encoder_0:phase_B [ dir=forward , weight=1 ] ;
    axis_0:motor_pos_cmd -> sig_Xpos [ dir=forward , weight=3 ] ;
    sig_Zpos -> ddt_4:in [ dir=forward , weight=1 ] ;
    sig_XYvel -> hypot_1:in1 [ dir=forward , weight=1 ] ;
    lowpass_0:out -> sig_spindle_rps_filtered [ dir=forward , weight=3 ] ;
    motion:spindle_speed_out -> sig_spindle_speed_cmd [ dir=forward , weight=3 ] ;
    sig_spindle_rps_raw -> lowpass_0:in [ dir=forward , weight=1 ] ;
    sig_XZhomesw -> axis_0:home_sw_in [ dir=forward , weight=1 ] ;
    limit2_0:out -> sig_spindle_speed_limited [ dir=forward , weight=3 ] ;
    sig_Yvel -> ddt_3:in [ dir=forward , weight=1 ] ;
    sig_yflt -> axis_1:amp_fault_in [ dir=forward , weight=1 ] ;
    sig_Zvel -> hypot_1:in0 [ dir=forward , weight=1 ] ;
    sig_Yhomeswpos -> comp_1:in0 [ dir=forward , weight=1 ] ;
    hypot_0:out -> sig_XYvel [ dir=forward , weight=3 ] ;
    encoder_0:velocity -> sig_spindle_rps_raw [ dir=forward , weight=3 ] ;
    sig_Zpos -> axis_2:motor_pos_fb [ dir=forward , weight=1 ] ;
    sig_spindle_speed_cmd -> limit2_0:in [ dir=forward , weight=1 ] ;
    encoder_0:position -> sig_spindle_pos [ dir=forward , weight=3 ] ;
    sig_spindle_index_enable -> encoder_0:index_enable [ dir=forward , weight=1 ] ;
    axis_0:amp_enable_out -> sig_xena [ dir=forward , weight=3 ] ;
    sig_spindle_speed_limited -> sim_encoder_0:speed [ dir=forward , weight=1 ] ;
    sig_Yhomesw -> axis_1:home_sw_in [ dir=forward , weight=1 ] ;
    sig_Xvel -> hypot_0:in0 [ dir=forward , weight=1 ] ;
    iocontrol_0:tool_prep_number -> sig_hal_manualtoolchange_number [ dir=forward , weight=3 ] ;
    comp_1:out -> sig_Yhomesw [ dir=forward , weight=3 ] ;
    ddt_5:out -> sig_Zacc [ dir=forward , weight=3 ] ;
    ddt_4:out -> sig_Zvel [ dir=forward , weight=3 ] ;
    comp_2:out -> sig_Zhomesw [ dir=forward , weight=3 ] ;
    sig_Zvel -> ddt_5:in [ dir=forward , weight=1 ] ;
    sim_encoder_0:phase_B -> sig_spindle_phase_B [ dir=forward , weight=3 ] ;
    sig_zflt -> axis_2:amp_fault_in [ dir=forward , weight=1 ] ;
} }
