# load realtime modules
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES
loadrt at_pid num_chan=4 debug=1
loadrt ddt count=4
loadrt s8i48o24

#########
loadrt timedelay count=2
loadrt oneshot count=2
loadrt and2 count=11
loadrt or2 count=1
loadrt not count=8
loadrt mux8 count=1
loadrt flipflop count=4
loadrt minmax count=2
loadrt debounce cfg="6"
loadrt conv_s32_float count=5
loadrt conv_float_s32 count=4
loadrt scale count=6
loadrt mult2 count=2  #######17 10 2012

#######НАЧАЛО ИЗМЕНЕНИЙ##################################################################################

loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder custom2.clp

addf classicladder.0.refresh servo-thread
#########################################################################################################



loadusr -W hal_manualtoolchange




#loadusr -W hidcomp -ini test_ocf_1m.ini hid/cnc_remote.0.hid hid/cnc_io.hid hid/keyb_panel.hid


#loadusr -Wn remote hidcomp -n remote -ini 16K20test.ini hid/cnc_remote.hid
#loadusr -Wn teensy_io hidcomp -n teensy_io -ini 16K20test.ini hid/cnc_io.hid
loadusr -Wn keyb_panel hidcomp -n keyb_panel -ini 16K20.ini hid/keyb_panel.hid
loadusr halui -ini 16K20.ini
loadusr -Wn iopanel pyvcp -c iopanel 16K20test_vcp.xml

##### 13 09 2012
# Servo cycle
addf s8i48o24.read                          servo-thread
addf motion-command-handler                 servo-thread
addf motion-controller                      servo-thread	
addf pid.0.do-pid-calcs                     servo-thread
addf pid.1.do-pid-calcs                     servo-thread
addf pid.2.do-pid-calcs                     servo-thread
addf scale.0                                servo-thread
addf scale.1                                servo-thread
#addf mux2.0                                 servo-thread
addf pid.3.do-pid-calcs                     servo-thread
##addf mux4.0                                 servo-thread
#addf pid.4.do-pid-calcs                     servo-thread
addf conv-s32-float.0                       servo-thread
addf scale.2                                servo-thread
#addf pid.5.do-pid-calcs                     servo-thread
addf conv-s32-float.2                       servo-thread
addf scale.3				                servo-thread	
#addf pid.6.do-pid-calcs                     servo-thread
addf s8i48o24.write                         servo-thread
addf mult2.0                                 servo-thread  #######17 10 2012

addf mult2.1                                 servo-thread 
####### addf near.0                          servo-thread
addf scale.4				                servo-thread
addf scale.5				                servo-thread
# Axis
addf ddt.0                                  servo-thread
addf ddt.1                                  servo-thread
addf ddt.2                                  servo-thread
addf ddt.3                                  servo-thread

net Xpos-cmd                             => ddt.0.in
net Xvel                                 <= ddt.0.out
net Ypos-cmd                             => ddt.1.in
net Yvel                                 <= ddt.1.out
net Zpos-cmd                             => ddt.2.in
net Zvel                                 <= ddt.2.out
net Spos-cmd                             => ddt.3.in
net Svel                                 <= ddt.3.out

addf oneshot.0 servo-thread
addf oneshot.1 servo-thread
addf and2.0 servo-thread
addf and2.1 servo-thread
addf and2.2 servo-thread
addf and2.3 servo-thread
addf and2.4 servo-thread
addf and2.5 servo-thread
addf and2.6 servo-thread
addf and2.7 servo-thread
addf and2.8 servo-thread
addf and2.9 servo-thread
addf and2.10 servo-thread
addf or2.0 servo-thread
addf not.1 servo-thread
addf not.2 servo-thread
addf not.3 servo-thread
addf not.4 servo-thread
addf not.5 servo-thread
addf not.6 servo-thread
addf not.7 servo-thread
addf timedelay.0 servo-thread
addf timedelay.1 servo-thread
##addf abs.spindle servo-thread
addf flipflop.0 servo-thread
addf flipflop.1 servo-thread
addf flipflop.2 servo-thread
addf flipflop.3 servo-thread
addf debounce.0 servo-thread
addf minmax.0 servo-thread
addf minmax.1 servo-thread



setp s8i48o24.encoder.0.scale [AXIS_0]INPUT_SCALE   # X
#setp s8i48o24.encoder.1.scale [AXIS_1]INPUT_SCALE  #  Y
setp s8i48o24.encoder.1.scale [AXIS_2]INPUT_SCALE   #  Z
setp s8i48o24.encoder.2.scale [SPINDLE_9]INPUT_SCALE  #  S
####27 09 2012
setp s8i48o24.pwm.0.scale -2     #  X
setp s8i48o24.pwm.1.scale -1   # Z
setp s8i48o24.pwm.2.scale -4000  # S  1000

#############
# general signals
net strob-man      <= halui.mode.is-manual
net strob-auto    <= halui.mode.is-auto => not.5.in
net strob-auto-not <= not.5.out
net strob-mdi     <= halui.mode.is-mdi
net power-on       => halui.machine.is-on
net lube-is-on    => halui.lube.is-on
#net timer-elapsed => timedelay.0.elapsed
net is-running    <= halui.program.is-running
net is-paused     <= halui.program.is-paused
net is-idle     <= halui.program.is-idle
net is-home-x      <= halui.joint.0.is-homed => and2.6.in0
net is-home-z     <= halui.joint.2.is-homed => and2.6.in1
net is-home-out <= and2.6.out               => not.7.in
net is-home-out-not <= not.7.out

##13 09 2012


######  AXIS   X  ##########

net Xpos-fb           s8i48o24.encoder.0.position
net Xpos-fb            => axis.0.motor-pos-fb
net Xpos-cmd          <= axis.0.motor-pos-cmd

#  X  PWM    ( chanel 0 )
net Xvel-cmd           s8i48o24.pwm.0.value
net Xенабле      <= axis.0.amp-enable-out
net Xенабле         s8i48o24.pwm.0.enable

# X   PID

setp pid.0.maxoutput                        26.0
setp pid.0.Pgain                            [AXIS_0]P
setp pid.0.Igain                            [AXIS_0]I
setp pid.0.Dgain                            [AXIS_0]D
setp pid.0.bias                             [AXIS_0]BIAS
setp pid.0.FF0                              [AXIS_0]FF0
setp pid.0.FF1                              [AXIS_0]FF1
setp pid.0.FF2                              [AXIS_0]FF2
setp pid.0.deadband                         [AXIS_0]DEADBAND


net Xpos-cmd                             => pid.0.command
net Xpos-fb                              => pid.0.feedback
net Xенабле                              => pid.0.enable
net Xvel-cmd                             <= pid.0.output




######  AXIS   Z  ##########

net Zpos-fb s8i48o24.encoder.1.position 
net Zpos-fb => axis.2.motor-pos-fb
net Zpos-cmd          <= axis.2.motor-pos-cmd

#    Z   PWM  ( chane1 1 )
net Zvel-cmd s8i48o24.pwm.1.value
net Zенабле      <= axis.1.amp-enable-out
net Zенабле s8i48o24.pwm.1.enable

# Z  PID

setp pid.2.maxoutput                        26.0
setp pid.2.Pgain                            [AXIS_2]P
setp pid.2.Igain                            [AXIS_2]I
setp pid.2.Dgain                            [AXIS_2]D
setp pid.2.bias                             [AXIS_2]BIAS
setp pid.2.FF0                              [AXIS_2]FF0
setp pid.2.FF1                              [AXIS_2]FF1
setp pid.2.FF2                              [AXIS_2]FF2
setp pid.2.deadband                         [AXIS_2]DEADBAND

net Zpos-cmd                             => pid.2.command
net Zpos-fb                              => pid.2.feedback
net Zенабле                              => pid.2.enable
net Zvel-cmd                             <= pid.2.output


# 25 09 2012
#*******************
#  SPINDLE S
#*******************
loadrt abs count=2 
loadrt lowpass names=lowpass.spindle

loadrt near
loadrt mux4 names=mux4.gear

#addf scale.gear servo-thread
addf mux4.gear servo-thread
addf abs.0 servo-thread
addf abs.1 servo-thread
#addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf near.0 servo-thread

    # ---PWM Generator signals/setup---

  
    net  Svel-cmd =>  abs.1.in

    net Svel-abs  abs.1.out 
    
    
  
    net Senable        => s8i48o24.pwm.2.enable 

    # ---Encoder feedback signals/setup---

    setp     s8i48o24.encoder.2.scale  [SPINDLE_9]INPUT_SCALE
    setp     s8i48o24.encoder.2.index-enable TRUE
                  

net Spos-fb   s8i48o24.encoder.2.position  
net Svel-fb   s8i48o24.encoder.2.velocity
    # ---setup spindle control signals---






 ##net spindle-vel-cmd-rps    <=  motion.spindle-speed-out-rps
    net Svel-cmd        <=  motion.spindle-speed-out
    net Senable         <=  motion.spindle-on
    net Scw             <=  motion.spindle-forward
    net Sccw            <=  motion.spindle-reverse
    net Sbrake          <=  motion.spindle-brake
    net Spos-fb           =>  motion.spindle-revs
    net Sat-speed       =>  motion.spindle-at-speed
    net Svel-fb         =>  motion.spindle-speed-in                
    net Sindex-enable  <=>  motion.spindle-index-enable

    # ---Setup spindle at speed signals---
    net Svel-fb-RPM abs.0.in
    net Svel-fb-RPM-abs abs.0.out
    net Svel-abs    =>  near.0.in1
    net Svel-fb-RPM-abs  =>  near.0.in2  ### в обертах в хвилину
    net Sat-speed       <=  near.0.out
    setp near.0.scale 1.5   # приблизна РІВНІСТЬ оборотів 

    #---Setup spindle scale for gear change----
    # МУЛЬТИПЛЕКСОР НА 2 ВХОДИ КІНЦЕВИКІВ І 4 ВИХОДИ СИГНАЛІВ -КОЕФІЦІЄНТІВ ПЕРЕДАЧІ КОРОБКИ ШВИДКОСТЕЙ
    net Gear_selected mux4.gear.out  # 
    net Gear1 => mux4.gear.sel0  => s8i48o24.din.42  iopanel.led-42 #  706 дріт   діапазон 1
    net Gear2 => mux4.gear.sel1 =>  s8i48o24.din.26  iopanel.led-26 # 708 дріт   діапазон 3
 #    # 707 дріт   діапазон 2
    
    setp mux4.gear.in0 14.08
    setp mux4.gear.in2 3.52
    setp mux4.gear.in3 1  # &&&& не використовується
    setp mux4.gear.in1 1.408
    
    net Svel-cmd   =>      mult2.1.in0   # множення одного на друге число
    net   Gear_selected => mult2.1.in1    # 


net Svel-cmd-mux <= mult2.1.out     # призначення вихода результату множення
net    Svel-cmd-mux =>             s8i48o24.pwm.2.value #  напровлення на фізичний вихід ЦАП 2

# ---PWM Generator signals/setup---
# ---Encoder feedback signals/setup---

setp    s8i48o24.encoder.2.scale  [SPINDLE_9]ENCODER_SCALE

# ---setup spindle control signals---


#

#RPM оберти в хвилину
#convert from RPS to RPM
net Svel-fb => mult2.0.in0
setp mult2.0.in1 60
#output is RPM
net Svel-fb-RPM <= mult2.0.out

####  Кінець Шпінделю   #########



setp iocontrol.0.emc-enable-in TRUE

net	sin00	s8i48o24.din.00
net	sin01	s8i48o24.din.01
net	sin02	s8i48o24.din.02
net	sin03   s8i48o24.din.03-not	
net	sin04	s8i48o24.din.04
#net	sin05	s8i48o24.din.05‭
net	sin06	s8i48o24.din.06
net	sin07	s8i48o24.din.07
net	sin08	s8i48o24.din.08
net	sin09	s8i48o24.din.09
net	sin10	s8i48o24.din.10
net	sin11	s8i48o24.din.11
### net	sin12	s8i48o24.din.12
net	sin13	s8i48o24.din.13
# net	sin14	s8i48o24.din.14
net	sin15	s8i48o24.din.15
net	sin16	s8i48o24.din.16
net	sin17	s8i48o24.din.17
net	sin18	s8i48o24.din.18
net	sin19	s8i48o24.din.19
net	sin20	s8i48o24.din.20
net	sin21	s8i48o24.din.21
net	sin22	s8i48o24.din.22
net	sin23	s8i48o24.din.23
net	sin24	s8i48o24.din.24
net	sin25	s8i48o24.din.25
#net	sin26	s8i48o24.din.26
net	sin27	s8i48o24.din.27

net	x-limit-plus    s8i48o24.din.28 => axis.0.pos-lim-sw-in => iopanel.led-28
net	x-limit-minus   s8i48o24.din.37 => axis.0.neg-lim-sw-in => iopanel.led-37 
net z-limit-plus    s8i48o24.din.30 => axis.2.pos-lim-sw-in => iopanel.led-30
net z-limit-minus   s8i48o24.din.32 => axis.2.neg-lim-sw-in => iopanel.led-32


net x-home-switch   s8i48o24.din.34 => axis.0.home-sw-in => iopanel.led-34
net z-home-switch   s8i48o24.din.38 => axis.2.home-sw-in => iopanel.led-38


#  Виїзд в 0 індекс 


net x-index-enable						<=> s8i48o24.encoder.0.index-enable
net x-index-enable						 => axis.0.index-enable

net z-index-enable						 => s8i48o24.encoder.1.index-enable
net z-index-enable						 => axis.2.index-enable

net Sindex-enable						 => s8i48o24.encoder.2.index-enable 
####net S-index-enable						 => axis.[SPINDLE_9].index-enable 


###net stop1 s8i48o24.din.47 => halui.program.pause => iopanel.led-47 

##############
# net lube   s8i48o24.din.14-not       =>    halui.lube.on => iopanel.led-14 ????  treba na control avtomatyky

                  
net	sin29	s8i48o24.din.29
#net	sin30	s8i48o24.din.30
net	sin31	s8i48o24.din.31
#net	sin32	s8i48o24.din.32
net	sin33	s8i48o24.din.33
#net	sin34	s8i48o24.din.34
net	sin35	s8i48o24.din.35
net	sin36	s8i48o24.din.36
#net	sin37	s8i48o24.din.37
#net	sin38	s8i48o24.din.38
#net	sin39	s8i48o24.din.39
#net	sin40	s8i48o24.din.40
net	sin41	s8i48o24.din.41
# net	  sin42
net	sin43	s8i48o24.din.43
net	sin44	s8i48o24.din.44 
net	sin45	s8i48o24.din.45
net	sin46	s8i48o24.din.46
#net	sin47	s8i48o24.din.47

#net remote-feedrate remote.0.feedrate.raw
#net remote-spindle  remote.0.Sspeed.raw
#net remote-jog      remote.0.jog.raw
#net remote-led1     remote.0.led-1.out
#net remote-led2     remote.0.led-2.out
#net remote-led3     remote.0.led-3.out
#net remote-led4     remote.0.led-4.out
#net remote-key01    remote.0.key-01.in
#net remote-key02    remote.0.key-02.in
#net remote-key03    remote.0.key-03.in
#net remote-key04    remote.0.key-04.in
#net remote-key05    remote.0.key-05.in
#net remote-key07    remote.0.key-07.in
#net remote-key08    remote.0.key-08.in
#net remote-key09    remote.0.key-09.in
#net remote-key10    remote.0.key-10.in
#net remote-key11    remote.0.key-11.in
#net remote-key12    remote.0.key-12.in
#net remote-key13    remote.0.key-13.in
#net remote-key14    remote.0.key-14.in
#net remote-key15    remote.0.key-15.in



################00
### KEYB_PANEL
###################



#net	din08	keyb_panel.0.din-08.in
#net	din09	keyb_panel.0.din-09.in
#net	din10	keyb_panel.0.din-10.in
#net	din11	keyb_panel.0.din-11.in
####net	din12	keyb_panel.0.din-12.in
####net	din13	keyb_panel.0.din-13.in
###net	din14	keyb_panel.0.din-14.in
### net	din15	keyb_panel.0.din-15.in
#net	din16	keyb_panel.0.din-16.in
#net	din17	keyb_panel.0.din-17.in
#net	din18	keyb_panel.0.din-18.in
net	din19	keyb_panel.0.din-19.in
net	din20	keyb_panel.0.din-20.in
net	din21	keyb_panel.0.din-21.in
net	din22	keyb_panel.0.din-22.in
net	din23	keyb_panel.0.din-23.in

#net dout08 keyb_panel.0.dout-08.out
#net dout21 keyb_panel.0.dout-21.out




#net	sin48	teensy_io.0.din-00.in
#net	sin49	teensy_io.0.din-01.in
#net	sin50	teensy_io.0.din-02.in
#net	sin51	teensy_io.0.din-03.in
#net	sin52	teensy_io.0.din-04.in
#net	sin53	teensy_io.0.din-05.in
#net	sin54	teensy_io.0.din-06.in
#net	sin55	teensy_io.0.din-07.in
#net	sin56	teensy_io.0.din-08.in
#net	sin57	teensy_io.0.din-09.in
#net	sin58	teensy_io.0.din-10.in
#net	sin59	teensy_io.0.din-11.in
#net	sin60	teensy_io.0.din-12.in
#net	sin61	teensy_io.0.din-13.in
#net	sin62	teensy_io.0.din-14.in
#net	sin63	teensy_io.0.din-15.in
#net	sin64	teensy_io.0.din-16.in
#net	sin65	teensy_io.0.din-17.in
#net	sin66	teensy_io.0.din-18.in
#net	sin67	teensy_io.0.din-19.in
#net	sin68	teensy_io.0.din-20.in
#net	sin69	teensy_io.0.din-21.in
#net	sin70	teensy_io.0.din-22.in
#net	sin71	teensy_io.0.din-23.in
#net	sout24	teensy_io.0.dout-00.out
#net	sout25	teensy_io.0.dout-01.out
#net	sout26	teensy_io.0.dout-02.out
#net	sout27	teensy_io.0.dout-03.out
#net	sout28	teensy_io.0.dout-04.out
#net	sout29	teensy_io.0.dout-05.out
#net	sout30	teensy_io.0.dout-06.out
#net	sout31	teensy_io.0.dout-07.out
#net	sout32	teensy_io.0.dout-08.out
#net	sout33	teensy_io.0.dout-09.out
#net	sout34	teensy_io.0.dout-10.out
#net	sout35	teensy_io.0.dout-11.out
#net	sout36	teensy_io.0.dout-12.out
#net	sout37	teensy_io.0.dout-13.out
#net	sout38	teensy_io.0.dout-14.out
#net	sout39	teensy_io.0.dout-15.out
#net	sout40	teensy_io.0.dout-16.out
#net	sout41	teensy_io.0.dout-17.out
#net	sout42	teensy_io.0.dout-18.out
#net	sout43	teensy_io.0.dout-19.out
#net	sout44	teensy_io.0.dout-20.out
#net	sout45	teensy_io.0.dout-21.out

##################
# START-PROGRAMM #
##################
#signal from BUTTON to MESA card
#test is homed first!!!
net is-home-out      => and2.7.in0
####net start-program-btn <= keyb_panel.0.din-10.in => and2.7.in1
#set in TRUE only if all axes homed and pressed button START
net start-program <= and2.7.out
net start-program => and2.5.in0
net strob-auto-not => and2.5.in1
#set auto mode
net set-auto      <= and2.5.out
net set-auto      => halui.mode.auto
#reset minmax ferror values in both axes
net set-auto      => minmax.0.reset
net set-auto      => minmax.1.reset
#set oneshot impulse length = 2 sec
setp oneshot.1.width 2
#make impulse lenth 2 sec
net set-auto      => oneshot.1.in
net start-program-out => oneshot.1.out
net start-program-out => halui.program.run
#################
# STOP PROGRAMM #
#################
net is-running      => and2.8.in0
####net stop-program-btn <= keyb_panel.0.din-11.in => and2.8.in1
net set-pause      <= and2.8.out          => halui.program.pause
#det program stop delay 1 sec
setp timedelay.1.on-delay 1
setp timedelay.1.off-delay 0
net is-paused       => timedelay.1.in
net stop-program <= timedelay.1.out           => halui.program.stop


### 18 09 2012
##############################################################
# --- ENABLE ---
net enable =>  keyb_panel.0.din-17.in => halui.machine.on
net power-on halui.machine.is-on => s8i48o24.dout.10 => keyb_panel.0.dout-17.out => s8i48o24.dout.06 #### ВКЛ ПРИВОДА і шпинделя пускачами 



#setp s8i48o24.dout.03.is_output true
############################################################## 

##############################################################
# --- ESTOP-OUT ---
net machineoff =>  keyb_panel.0.din-16.in => halui.machine.off
net estopout halui.estop.is-activated => s8i48o24.dout.19 => keyb_panel.0.dout-16.out
#setp s8i48o24.dout.03.is_output true
############################################################## 


#######НАЧАЛО ИЗМЕНЕНИЙ##################################################################################
 


###net tool-change iocontrol.0.tool-change => classicladder.0.in-00               # сигнал по М6 посылаем на контакт Start
###net start  keyb_panel.0.din-14.in =>  classicladder.0.in-00

# create signals for tool loading loopback


net tool-prep-loop iocontrol.0.tool-prepare iocontrol.0.tool-prepared
net tool-change-loop iocontrol.0.tool-change iocontrol.0.tool-changed => classicladder.0.in-00

net dat1  s8i48o24.din.06-not => classicladder.0.in-02               # получаем сигнал от датчика положения головки
net dat2  s8i48o24.din.07-not => classicladder.0.in-03           # получаем сигнал от датчика положения головки
net dat3  s8i48o24.din.08-not => classicladder.0.in-04             # получаем сигнал от датчика положения головки
net dat4  s8i48o24.din.09-not => classicladder.0.in-05             # получаем сигнал от датчика положения головки
net dat5  s8i48o24.din.10-not => classicladder.0.in-06            # получаем сигнал от датчика положения головки
net dat6  s8i48o24.din.11-not => classicladder.0.in-07            # получаем сигнал от датчика положения головки
net rzFix    s8i48o24.din.03 => classicladder.0.in-08            #           RZFIX
###net rzFix    keyb_panel.0.din-15.in-not => classicladder.0.in-08


####net dat1  keyb_panel.0.din-10.in      => classicladder.0.in-01               # получаем сигнал от датчика положения головки
####net dat2  keyb_panel.0.din-11.in-not => classicladder.0.in-02           # получаем сигнал от датчика положения головки
####net dat3  keyb_panel.0.din-12.in => classicladder.0.in-03             # получаем сигнал от датчика положения головки
####net dat4  keyb_panel.0.din-13.in => classicladder.0.in-04             # получаем сигнал от датчика положения головки
####net dat5  keyb_panel.0.din-14.in => classicladder.0.in-05            # получаем сигнал от датчика положения головки



###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-00      # передаем номер следующего инструмента в переменную 
###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-01      # передаем номер следующего инструмента в переменную 
###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-02      # передаем номер следующего инструмента в переменную 
###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-03      # передаем номер следующего инструмента в переменную 
###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-04     # передаем номер следующего инструмента в переменную 
###net tool-number iocontrol.0.tool-prep-number  =>  classicladder.0.s32in-05     # передаем номер следующего инструмента в переменную 

net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-00      # передаем номер следующего инструмента в переменную 
net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-01      # передаем номер следующего инструмента в переменную 
net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-02      # передаем номер следующего инструмента в переменную 
net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-03      # передаем номер следующего инструмента в переменную 
net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-04     # передаем номер следующего инструмента в переменную 
net tool-number iocontrol.0.tool-number  =>  classicladder.0.s32in-05     # передаем номер следующего инструмента в переменную 



###net done classicladder.0.out-03  =>  iocontrol.0.tool-changed        # сигнал - продолжаем выполнять программу
net VPERED classicladder.0.out-03  =>  s8i48o24.dout.09        # сигнал - продолжаем выполнять программу
net REVERS classicladder.0.out-02  =>  s8i48o24.dout.12
####net done classicladder.0.out-03  =>  s8i48o24.dout.12
####net done classicladder.0.out-03  =>  s8i48o24.dout.12  









############
# FLOOD
############
#net  flood halui.flood.is-on => s8i48o24.dout.03  

############
# LUBE
############
net  lube-is-on halui.lube.is-on   #######=> s8i48o24.dout.07  

#set 3sec delay impulse for first switch-on bed lube
setp oneshot.0.width 30
#switch bed-lube with maschine start

net power-on oneshot.0.in
net delay oneshot.0.out => or2.0.in0
net timer-delay         => or2.0.in1
net bed-lube            => or2.0.out
net bed-lube  => s8i48o24.dout.07 
setp s8i48o24.dout.15 true                           
setp s8i48o24.dout.16 true                          
#create timer for bed-lube
#the impulse will be 3 sec
#the delay between impulse will be 60min = 60*60=3600 sec

setp timedelay.0.on-delay 4                ####3600
setp timedelay.0.off-delay 30
#setp timedelay.0.tmax 20 
net lube-is-on => and2.4.in0
net timer-in => and2.4.in1
net timer-in-1 => and2.4.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.4.in
net timer-in <= not.4.out


################################
# FLOOD ON/OFF EXTERNAL BUTTON #
################################
##net flood-on => halui.flood.on => teensy_io.0.din-00.in
##net flood-off => halui.flood.off => teensy_io.0.din-01.in
####out from CNC
net coolant-flood halui.flood.is-on => s8i48o24.dout.03  
#setp hm2_5i20.0.gpio.043.is_output true
#setp hm2_5i20.0.gpio.043.invert_output true

############################
# HOME ALL EXTERNAL BUTTON #
############################
#net home-on-btn        => and2.1.in0 <= keyb_panel.0.din-18.in
#net home-on-btn  halui.home-all  <= keyb_panel.0.din-18.in 
#net strob-man        => and2.1.in1
#net home-strob        <= and2.1.out => halui.home-all
#net is-home-out-not => and2.1.in1
#net home-on          <= and2.1.out => and2.9.in0
#net strob-man        => and2.9.in1
#net home-strob        <= and2.9.out => halui.home-all
##################################
# SPINDLE ON/OFF EXTERNAL BUTTON #
##################################
#START SPINDLE
net Son       => and2.2.in0 <= keyb_panel.0.din-08.in 
net strob-man        => and2.2.in1 <= 
net Son-strob <= and2.2.out => halui.spindle.start
net Sis-on <= halui.spindle.is-on => s8i48o24.dout.05 => keyb_panel.0.dout-08.out #### М03 ВКЛ Шпинделя без пускача
#STOP SPINDLE
net Soff     => and2.3.in0 <= keyb_panel.0.din-09.in 
net strob-man        => and2.3.in1
net Soff-strob <= and2.3.out => halui.spindle.stop => keyb_panel.0.dout-09.out
# --- SAT-SPEED ---
###net Sat-speed <= hm2_5i20.0.gpio.033.in

##################################
# ABORT EXTERNAL BUTTON #
##################################
net abort => halui.abort => keyb_panel.0.din-14.in

net	sout00	s8i48o24.dout.00	
net	sout01	s8i48o24.dout.01	
net	sout02	s8i48o24.dout.02	
#net	sout03	s8i48o24.dout.03	
net	sout04	s8i48o24.dout.04	

##### 17 10 2012
#net	sout05	s8i48o24.dout.05
	
#net	sout06	s8i48o24.dout.06	
#net	sout07	s8i48o24.dout.07	
net	sout08	s8i48o24.dout.08	
####net	sout09	s8i48o24.dout.09	
#net	sout10	s8i48o24.dout.10	
net	sout11	s8i48o24.dout.11	
#net	sout12	s8i48o24.dout.12	
net	sout13	s8i48o24.dout.13	
###########
#net	sout14	s8i48o24.dout.14	
#net	sout15	s8i48o24.dout.15	
#net	sout16	s8i48o24.dout.16	
net	sout17	s8i48o24.dout.17	
#net	sout18	s8i48o24.dout.18	
#net	sout19	s8i48o24.dout.19	
net	sout20	s8i48o24.dout.20	
net	sout21	s8i48o24.dout.21	
net	sout22	s8i48o24.dout.22	
net	sout23	s8i48o24.dout.23



setp s8i48o24.dout.24 TRUE
setp s8i48o24.dout.25 TRUE
setp s8i48o24.dout.26 TRUE
setp s8i48o24.dout.27 TRUE
setp s8i48o24.dout.28 TRUE
setp s8i48o24.dout.29 TRUE
setp s8i48o24.dout.30 TRUE
setp s8i48o24.dout.31 TRUE
setp s8i48o24.dout.32 TRUE
setp s8i48o24.dout.33 TRUE
setp s8i48o24.dout.34 TRUE
setp s8i48o24.dout.35 TRUE
setp s8i48o24.dout.36 TRUE
setp s8i48o24.dout.37 TRUE
setp s8i48o24.dout.38 TRUE
setp s8i48o24.dout.39 TRUE
###13 09 2012
#net Xpos-fb-cnt iopanel.enc0-num <= s8i48o24.encoder.0.count
#net Ypos-fb-cnt iopanel.enc1-num <= s8i48o24.encoder.1.count
#net Zpos-fb-cnt iopanel.enc2-num <= s8i48o24.encoder.1.count
#net Apos-fb-cnt iopanel.enc3-num <= s8i48o24.encoder.3.count
###26 09 2012 ###


net Spos-fb-cnt iopanel.enc4-num <= s8i48o24.encoder.2.count# показуе значення





net Xena iopanel.pwm0-chkbtn
net Yena iopanel.pwm1-chkbtn
net Zena iopanel.pwm2-chkbtn

###25 09 2012 ### net Sena iopanel.pwm4-chkbtn

################13 09 2012
# net Xvel-cmd iopanel.pwm0-scl-f
# net Yvel-cmd iopanel.pwm1-scl-f
# net Zvel-cmd iopanel.pwm2-scl-f

###25 09 2012 ### net Svel-cmd iopanel.pwm4-scl-f






net remote-feedrate iopanel.feed-num
#net remote-spindle  iopanel.Snum
net remote-jog      iopanel.jog-num
net remote-led1     iopanel.led1-chkbtn
net remote-led2     iopanel.led2-chkbtn
net remote-led3     iopanel.led3-chkbtn
net remote-led4     iopanel.led4-chkbtn
net remote-key01    iopanel.key01-led
net remote-key02    iopanel.key02-led
net remote-key03    iopanel.key03-led
net remote-key04    iopanel.key04-led
net remote-key05    iopanel.key05-led
net remote-key07    iopanel.key07-led
net remote-key08    iopanel.key08-led
net remote-key09    iopanel.key09-led
net remote-key10    iopanel.key10-led
net remote-key11    iopanel.key11-led
net remote-key12    iopanel.key12-led
net remote-key13    iopanel.key13-led
net remote-key14    iopanel.key14-led
net remote-key15    iopanel.key15-led

net	sin00	iopanel.led-00 # ПІНОЛЬ ЗАЖАТА
net	sin01	iopanel.led-01
net	sin02	iopanel.led-02
net	sin03	iopanel.led-03 
net	sin04	iopanel.led-04
net	sin05	iopanel.led-05
net	sin06	iopanel.led-06
net	sin07	iopanel.led-07
net	sin08	iopanel.led-08
net	sin09	iopanel.led-09
net	sin10	iopanel.led-10
net	sin11	iopanel.led-11
net	sin12	iopanel.led-12
net	sin13	iopanel.led-13
#########
#net	sin14	iopanel.led-14
#net	sin15	iopanel.led-15
#net	sin16	iopanel.led-16
net	sin17	iopanel.led-17
net	sin18	iopanel.led-18
net	sin19	iopanel.led-19
net	sin20	iopanel.led-20
net	sin21	iopanel.led-21
net	sin22	iopanel.led-22
net	sin23	iopanel.led-23
net	sin24	iopanel.led-24
net	sin25	iopanel.led-25
#net	sin26	iopanel.led-26
net	sin27	iopanel.led-27
# net	x-limit-plus	iopanel.led-28
net	sin29	iopanel.led-29
#net	sin30	iopanel.led-30
net	sin31	iopanel.led-31
#net	sin32	iopanel.led-32
net	sin33	iopanel.led-33
#net	sin34	iopanel.led-34
net	sin35	iopanel.led-35
net	sin36	iopanel.led-36   # 37_Стоп подачи_X1.19
#net	sin37	iopanel.led-37
# net	sin38	iopanel.led-38
net	sin39	iopanel.led-39
net	sin40	iopanel.led-40
net	sin41	iopanel.led-41
# net	sin42	iopanel.led-42
net	sin43	iopanel.led-43
net	sin44	iopanel.led-44
net	sin45	iopanel.led-45
net	sin46	iopanel.led-46
net	sin46   iopanel.led-47
net	sin48	iopanel.led-48
net	sin49	iopanel.led-49
net	sin50	iopanel.led-50
net	sin51	iopanel.led-51
net	sin52	iopanel.led-52
net	sin53	iopanel.led-53
net	sin54	iopanel.led-54
net	sin55	iopanel.led-55
net	sin56	iopanel.led-56
net	sin57	iopanel.led-57
net	sin58	iopanel.led-58
net	sin59	iopanel.led-59
net	sin60	iopanel.led-60
net	sin61	iopanel.led-61
net	sin62	iopanel.led-62
net	sin63	iopanel.led-63
net	sin64	iopanel.led-64
net	sin65	iopanel.led-65
net	sin66	iopanel.led-66
net	sin67	iopanel.led-67
net	sin68	iopanel.led-68
net	sin69	iopanel.led-69
net	sin70	iopanel.led-70
net	sin71	iopanel.led-71

net	sout00	iopanel.chkbtn-00
net	sout01	iopanel.chkbtn-01
net	sout02	iopanel.chkbtn-02
#net	sout03	iopanel.chkbtn-03
net	sout04	iopanel.chkbtn-04
net	sout05	iopanel.chkbtn-05 =>

####net	sout05 =>   sin44


net	sout06	iopanel.chkbtn-06
#net	sout07	iopanel.chkbtn-07
net	sout08	iopanel.chkbtn-08
net	sout09	iopanel.chkbtn-09
net	sout10	iopanel.chkbtn-10
net	sout11	iopanel.chkbtn-11
net	sout12	iopanel.chkbtn-12
net	sout13	iopanel.chkbtn-13
#########
# net	sout14	iopanel.chkbtn-14
net	sout15	iopanel.chkbtn-15
net	sout16	iopanel.chkbtn-16
net	sout17	iopanel.chkbtn-17
net	sout18	iopanel.chkbtn-18
net	sout19	iopanel.chkbtn-19
net	sout20	iopanel.chkbtn-20
net	sout21	iopanel.chkbtn-21
net	sout22	iopanel.chkbtn-22
net	sout23	iopanel.chkbtn-23
net	sout24	iopanel.chkbtn-24
net	sout25	iopanel.chkbtn-25
net	sout26	iopanel.chkbtn-26
net	sout27	iopanel.chkbtn-27
net	sout28	iopanel.chkbtn-28
net	sout29	iopanel.chkbtn-29
net	sout30	iopanel.chkbtn-30
net	sout31	iopanel.chkbtn-31
net	sout32	iopanel.chkbtn-32
net	sout33	iopanel.chkbtn-33
net	sout34	iopanel.chkbtn-34
net	sout35	iopanel.chkbtn-35
net	sout36	iopanel.chkbtn-36
net	sout37	iopanel.chkbtn-37
net	sout38	iopanel.chkbtn-38
net	sout39	iopanel.chkbtn-39
net	sout40	iopanel.chkbtn-40
net	sout41	iopanel.chkbtn-41
net	sout42	iopanel.chkbtn-42
net	sout43	iopanel.chkbtn-43
net	sout44	iopanel.chkbtn-44
net	sout45	iopanel.chkbtn-45
