loadrt [KINS]KINEMATICS loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS loadrt litexcnc connections="eth:192.168.1.20" loadrt estop_latch count=2 loadrt and2 count=2 loadrt message names=nyomas,szint messages="Olajnyomás hiba!,Olajszint hiba!" loadrt not count=1 loadrt timedelay count=2 addf timedelay.0 servo-thread addf timedelay.1 servo-thread setp timedelay.0.on-delay 1200 setp timedelay.0.off-delay 0 setp timedelay.1.on-delay 10 setp timedelay.1.off-delay 0 addf and2.0 servo-thread addf and2.1 servo-thread addf nyomas servo-thread addf szint servo-thread addf not.0 servo-thread setp FUW400-5A-75E.pwm.00.pwm_freq 20000 setp FUW400-5A-75E.pwm.01.pwm_freq 20000 setp FUW400-5A-75E.pwm.02.pwm_freq 20000 setp FUW400-5A-75E.pwm.03.pwm_freq 20000 loadrt pid names=pid.x,pid.y,pid.z,pid.s loadrt abs names=abs.spindle loadrt lowpass names=lowpass.spindle #loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10 #******************************************************************************************* # SETUP WATCHDOG # ============== setp FUW400-5A-75E.watchdog.timeout_ns 15000000 ############################################################################################ #******************************************************************************************* #addf classicladder.0.refresh servo-thread addf estop-latch.0 servo-thread addf estop-latch.1 servo-thread addf FUW400-5A-75E.read servo-thread addf FUW400-5A-75E.write servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf pid.x.do-pid-calcs servo-thread addf pid.y.do-pid-calcs servo-thread addf pid.z.do-pid-calcs servo-thread addf pid.s.do-pid-calcs servo-thread addf abs.spindle servo-thread addf lowpass.spindle servo-thread ############################################################################################ #******************************************************************************************* # External input signals # net gpio.00.in FUW400-5A-75E.gpio.00.in-not # net gpio.01.in FUW400-5A-75E.gpio.01.in-not # net gpio.02.in FUW400-5A-75E.gpio.02.in-not # net gpio.03.in FUW400-5A-75E.gpio.03.in-not # net gpio.04.in FUW400-5A-75E.gpio.04.in-not # net gpio.05.in FUW400-5A-75E.gpio.05.in-not # net gpio.06.in FUW400-5A-75E.gpio.06.in-not # net gpio.07.in FUW400-5A-75E.gpio.07.in-not # net gpio.08.in FUW400-5A-75E.gpio.08.in-not # net gpio.09.in FUW400-5A-75E.gpio.09.in-not # net gpio.10.in FUW400-5A-75E.gpio.10.in-not # net gpio.11.in FUW400-5A-75E.gpio.11.in-not # net gpio.12.in FUW400-5A-75E.gpio.12.in-not # net gpio.13.in FUW400-5A-75E.gpio.13.in-not # net gpio.14.in FUW400-5A-75E.gpio.14.in-not # net gpio.15.in FUW400-5A-75E.gpio.15.in-not # net gpio.16.in FUW400-5A-75E.gpio.16.in-not # net gpio.17.in FUW400-5A-75E.gpio.17.in-not # net gpio.18.in FUW400-5A-75E.gpio.18.in-not # net gpio.19.in FUW400-5A-75E.gpio.19.in-not # net gpio.20.in FUW400-5A-75E.gpio.20.in-not # net gpio.21.in FUW400-5A-75E.gpio.21.in-not # net gpio.22.in FUW400-5A-75E.gpio.22.in-not # net gpio.23.in FUW400-5A-75E.gpio.23.in-not # net gpio.24.in FUW400-5A-75E.gpio.24.in-not # net gpio.25.in FUW400-5A-75E.gpio.25.in-not # net gpio.26.in FUW400-5A-75E.gpio.26.in-not # net gpio.27.in FUW400-5A-75E.gpio.27.in-not ############################################################################################ #******************************************************************************************* # External output signals setp FUW400-5A-75E.gpio.28.out 0 #-K112 # setp FUW400-5A-75E.gpio.29.out 0 #-K113 setp FUW400-5A-75E.gpio.30.out 0 #-6K15A setp FUW400-5A-75E.gpio.31.out 0 #-6K15B setp FUW400-5A-75E.gpio.32.out 0 #-K116 setp FUW400-5A-75E.gpio.33.out 0 #-K117 setp FUW400-5A-75E.gpio.34.out 0 #-6K11 setp FUW400-5A-75E.gpio.35.out 0 #-K107 setp FUW400-5A-75E.gpio.36.out 0 #-K108 setp FUW400-5A-75E.gpio.37.out 0 #-K109 # setp FUW400-5A-75E.gpio.38.out 0 #-K110 setp FUW400-5A-75E.gpio.39.out 0 #- # setp FUW400-5A-75E.gpio.40.out 0 #-K100 # setp FUW400-5A-75E.gpio.41.out 0 #-K101 setp FUW400-5A-75E.gpio.42.out 0 #-K102 setp FUW400-5A-75E.gpio.43.out 0 #-6K9 setp FUW400-5A-75E.gpio.44.out 0 #-6K5 setp FUW400-5A-75E.gpio.45.out 0 #-6K7 setp FUW400-5A-75E.gpio.46.out 0 #- setp FUW400-5A-75E.gpio.47.out 0 #- setp FUW400-5A-75E.gpio.48.out 0 #- setp FUW400-5A-75E.gpio.49.out 0 #- setp FUW400-5A-75E.gpio.50.out 0 #- ############################################################################################ #******************************************************************************************* #net estop-ext <= FUW400-5A-75E.gpio.22.in-not #net home-x <= parport.0.pin-11-in #net min-x <= parport.0.pin-12-in #net din-00 <= parport.0.pin-13-in #net estop-out => parport.0.pin-01-out #net coolant-flood => parport.0.pin-14-out #net spindle-brake => parport.0.pin-16-out #net xenable => parport.0.pin-17-out ############################################################################################ #******************************************************************************************* # AXIS X JOINT 0 #******************* setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT setp pid.x.error-previous-target true net x-index-enable <=> pid.x.index-enable net x-enable => pid.x.enable net x-pos-cmd => pid.x.command net x-pos-fb => pid.x.feedback net x-output <= pid.x.output # ---PWM Generator signals/setup--- setp FUW400-5A-75E.pwm.00.scale [JOINT_0]OUTPUT_SCALE net x-output => FUW400-5A-75E.pwm.00.value net x-pos-cmd joint.0.motor-pos-cmd net x-enable joint.0.amp-enable-out => FUW400-5A-75E.pwm.00.enable # ---Encoder feedback signals/setup--- setp FUW400-5A-75E.encoder.00.x4-mode 1 setp FUW400-5A-75E.encoder.00.position-scale [JOINT_0]ENCODER_SCALE net x-pos-fb <= FUW400-5A-75E.encoder.00.position net x-vel-fb <= FUW400-5A-75E.encoder.00.velocity net x-pos-fb => joint.0.motor-pos-fb net x-index-enable joint.0.index-enable <=> FUW400-5A-75E.encoder.00.index-enable net x-pos-rawcounts <= FUW400-5A-75E.encoder.00.counts # ---setup home / limit switch signals--- #net min-home-x => joint.0.home-sw-in #net min-home-x => joint.0.neg-lim-sw-in #net max-x => joint.0.pos-lim-sw-in ############################################################################################ #******************************************************************************************* # AXIS Y JOINT 1 #******************* setp pid.y.Pgain [JOINT_1]P setp pid.y.Igain [JOINT_1]I setp pid.y.Dgain [JOINT_1]D setp pid.y.bias [JOINT_1]BIAS setp pid.y.FF0 [JOINT_1]FF0 setp pid.y.FF1 [JOINT_1]FF1 setp pid.y.FF2 [JOINT_1]FF2 setp pid.y.deadband [JOINT_1]DEADBAND setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT setp pid.y.error-previous-target true net y-index-enable <=> pid.y.index-enable net y-enable => pid.y.enable net y-pos-cmd => pid.y.command net y-pos-fb => pid.y.feedback net y-output <= pid.y.output # ---PWM Generator signals/setup--- setp FUW400-5A-75E.pwm.01.scale [JOINT_1]OUTPUT_SCALE net y-output => FUW400-5A-75E.pwm.01.value net y-pos-cmd joint.1.motor-pos-cmd net y-enable joint.1.amp-enable-out => FUW400-5A-75E.pwm.01.enable # ---Encoder feedback signals/setup--- setp FUW400-5A-75E.encoder.01.x4-mode 1 setp FUW400-5A-75E.encoder.01.position-scale [JOINT_1]ENCODER_SCALE net y-pos-fb <= FUW400-5A-75E.encoder.01.position net y-vel-fb <= FUW400-5A-75E.encoder.01.velocity net y-pos-fb => joint.1.motor-pos-fb net y-index-enable joint.1.index-enable <=> FUW400-5A-75E.encoder.01.index-enable net y-pos-rawcounts <= FUW400-5A-75E.encoder.01.counts # ---setup home / limit switch signals--- #net min-home-y => joint.1.home-sw-in #net min-home-y => joint.1.neg-lim-sw-in #net max-y => joint.1.pos-lim-sw-in ############################################################################################ #******************************************************************************************* # AXIS Z JOINT 2 #******************* setp pid.z.Pgain [JOINT_2]P setp pid.z.Igain [JOINT_2]I setp pid.z.Dgain [JOINT_2]D setp pid.z.bias [JOINT_2]BIAS setp pid.z.FF0 [JOINT_2]FF0 setp pid.z.FF1 [JOINT_2]FF1 setp pid.z.FF2 [JOINT_2]FF2 setp pid.z.deadband [JOINT_2]DEADBAND setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT setp pid.z.error-previous-target true net z-index-enable <=> pid.z.index-enable net z-enable => pid.z.enable net z-pos-cmd => pid.z.command net z-pos-fb => pid.z.feedback net z-output <= pid.z.output # ---PWM Generator signals/setup--- net z-barke-switch <= FUW400-5A-75E.gpio.27.in-not net z-enable => FUW400-5A-75E.gpio.38.out net z-barke-switch => FUW400-5A-75E.gpio.29.out setp FUW400-5A-75E.pwm.02.scale [JOINT_2]OUTPUT_SCALE net z-output => FUW400-5A-75E.pwm.02.value net z-pos-cmd joint.2.motor-pos-cmd net z-enable joint.2.amp-enable-out => FUW400-5A-75E.pwm.02.enable # ---Encoder feedback signals/setup--- setp FUW400-5A-75E.encoder.02.x4-mode 1 setp FUW400-5A-75E.encoder.02.position-scale [JOINT_2]ENCODER_SCALE net z-pos-fb <= FUW400-5A-75E.encoder.02.position net z-vel-fb <= FUW400-5A-75E.encoder.02.velocity net z-pos-fb => joint.2.motor-pos-fb net z-index-enable joint.2.index-enable <=> FUW400-5A-75E.encoder.02.index-enable net z-pos-rawcounts <= FUW400-5A-75E.encoder.02.counts # ---setup home / limit switch signals--- #net min-home-z => joint.2.home-sw-in #net min-home-z => joint.2.neg-lim-sw-in #net max-z => joint.2.pos-lim-sw-in ############################################################################################ net x-enable => FUW400-5A-75E.gpio.42.out #******************************************************************************************* # SPINDLE # ---PWM Generator spindle setp FUW400-5A-75E.pwm.03.scale 3653.061224489796 setp FUW400-5A-75E.pwm.03.offset 0.014525139664804471 # Connect the spindle with the PWM generator net spindle-speed-cmd spindle.0.speed-out => FUW400-5A-75E.pwm.03.value net spindle-on spindle.0.on => FUW400-5A-75E.pwm.03.enable ############################################################################################ #******************************************************************************************* # COOLANT net coolant-flood <= iocontrol.0.coolant-flood net coolant-flood => FUW400-5A-75E.gpio.43.out ############################################################################################ #******************************************************************************************* # loadusr -W hal_manualtoolchange # net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change # net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed # net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number # net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared # Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI # loadusr classicladder --nogui custom.clp #******************************************************************************************* # --- EMERGENCY STOP CONTROLL net latch-reset iocontrol.0.user-request-enable net latch-ok-in iocontrol.0.user-enable-out net latch-ok-in => estop-latch.0.ok-in net latch0-out <= estop-latch.0.ok-out net latch0-out => estop-latch.1.ok-in net latch-reset => estop-latch.0.reset net latch-reset => estop-latch.1.reset net latch-out iocontrol.0.emc-enable-in <= estop-latch.1.ok-out net estop-out <= estop-latch.1.fault-out # --- WATCHDOG ESTOP --- net watchdog-estop <= FUW400-5A-75E.watchdog.has_bitten net watchdog-estop => estop-latch.0.fault-in # --- EXTERNAL ESTOP SWITCH --- net external-estop <= FUW400-5A-75E.gpio.22.in net external-estop => estop-latch.1.fault-in net latch-out FUW400-5A-75E.gpio.40.out ############################################################################################ ############################################################################################ #******************************************************************************************* # LUBRICATION # Oil level check net oil_level_ok FUW400-5A-75E.gpio.26.in-not => and2.0.in1 net oil_low_warn FUW400-5A-75E.gpio.26.in-not => not.0.in net oil_low FUW400-5A-75E.gpio.26.in-not => msg.trig # Oil pump on/off net pump_timer_start timedelay.0.out => FUW400-5A-75E.gpio.45.out net oil_pump_active FUW400-5A-75E.gpio.45.out => and2.1.in0 net pump_active FUW400-5A-75E.gpio.45.out => timedelay.1.in # Oil pressure ok? net oil_pressure FUW400-5A-75E.gpio.25.in => and2.1.in1 net pressure_ok FUW400-5A-75E.gpio.25.in => timedelay.1.reset net pressure_failure timedelay.1.out => msg.trig net stop_oil_pump timedelay.1.out => not.1.in net stop_oil_pump_signal not.1.out => FUW400-5A-75E.gpio.45.out loadrt message names=low_oil_msg,no_pressure_msg addf low_oil_msg servo-thread addf no_pressure_msg servo-thread net oil_low_message msg.trig => low_oil_msg.trigger setp low_oil_msg.text "Oil low level!" net pressure_failure_message msg.trig => no_pressure_msg.trigger setp no_pressure_msg.text "Oil pressure error!."