*-----------------------------------------------------------------------------
*  Spindle Oil-Air lube
*-----------------------------------------------------------------------------
*  Module Description
*
*-----------------------------------------------------------------------------

#define /s    KL_runtime_from_MP                       K -1

#define /s    ML_TS_S_lube_off                         M
#define /s    ML_TS_S_lube_on                          M
#define /s    ML_TS_S_lube_pressure                    M
#define /s    ML_S_lube_air_pressure_low               M

#define /s    BL_step_lube                             B

GLOBAL S_Lube

;----------------------------
LBL S_lube
;----------------------------

  LN     MG_spindle_active
  EMT

  LN     I_S_lube_air_pressure_ok
  AN     ML_S_lube_air_pressure_low
  IFT
    PS     K&TR_S_lube_air_pressure_low
    PS     KL_runtime_from_MP
    CM     9006

    L      MG_marker_one
    S      ML_S_lube_air_pressure_low
  ENDI

  L      ML_S_lube_air_pressure_low
  AN     TR_S_lube_air_pressure_low
  AN     I_S_lube_air_pressure_ok
  S      PN_error_S_lube_air_pressure

  L      I_S_lube_air_pressure_ok
  R      ML_S_lube_air_pressure_low

  L      NP_M4172_1st_PLC_run_after_power_on
  O      PN_error_S_lube_air_pressure
  O      PN_error_lube_spindle
  O      MG_win_CBT_S_lube_unit
  CMT    Lube_reset

  CASE   BL_step_lube
    CM     Lube_start                  ;00
    CM     Test_pressure_0             ;01
    CM     Lube_on                     ;02
    CM     Lube_time                   ;03
    CM     Lube_off                    ;04
    CM     Lube_end                    ;05
  ENDC

  PLL
  IFT
    INC    BL_step_lube
  ENDI

  L      PN_error_lube_spindle
  S      MG_start_blocked_S_lube

  L      MG_key_NC_start
  A      MG_start_blocked_S_lube
  A      MG_automatic_mode
  S      PN_error_lube_spindle

  L      I_S_lube_level_low
  =      PN_error_S_lube_level_low

  L      O_S_lube_on
  O      MG_test_lamps
  =      O_lamp_S_lube_on

  LN     O_S_lube_on
  AN     ML_TS_S_lube_off
  IFT
    PS     K&TR_S_lube_off
    PS     KL_runtime_from_MP
    CM     9006

    L      MG_marker_one
    S      ML_TS_S_lube_off
  ENDI

EM

;----------------------------
LBL Lube_start                         ;00

  L      ML_TS_S_lube_off
  AN     TR_S_lube_off
  O[
    L      MG_pulse_CE_key
    A      PN_error_lube_spindle
  ]
  O      I_key_lube_spindle
  O      MG_soft_key_S_lube
  R      PN_error_lube_spindle
  S      MG_soft_key_S_lube
  PSL

EM

;----------------------------
LBL Test_pressure_0                    ;01

  L      I_S_lube_pressure_ok
  S      PN_error_lube_spindle

  LN     I_S_lube_pressure_ok
  PSL

EM

;----------------------------
LBL Lube_on                            ;02

  L      MG_key_NC_start
  O      I_key_lube_spindle
  O      MG_pulse_CE_key
  A      MG_soft_key_S_lube
  A      PN_error_lube_spindle
  R      PN_error_lube_spindle
  R      ML_TS_S_lube_pressure

  LN     ML_TS_S_lube_pressure
  IFT
    PS     K&TR_S_waiting_lube_pressure
    PS     KL_runtime_from_MP
    CM     9006

    L      MG_marker_one
    S      ML_TS_S_lube_pressure
  ENDI

  L      TR_S_waiting_lube_pressure
  =      MG_soft_key_S_lube
  =      O_S_lube_on

  L      O_S_lube_on
  A      I_S_lube_pressure_ok
  R      ML_TS_S_lube_pressure
  PSL

  LN     TR_S_waiting_lube_pressure
  AN     I_S_lube_pressure_ok
  S      PN_error_lube_spindle
  R      ML_TS_S_lube_pressure

EM

;----------------------------
LBL Lube_time                          ;03

  LN     ML_TS_S_lube_on
  IFT
    PS     K&TR_S_lube_on
    PS     KL_runtime_from_MP
    CM     9006

    L      MG_marker_one
    S      ML_TS_S_lube_on
  ENDI

  LN     TR_S_lube_on
  R      ML_TS_S_lube_on
  PSL

EM

;----------------------------
LBL Lube_off                           ;04

  L      MG_marker_one
  R      MG_soft_key_S_lube
  R      O_S_lube_on
  R      ML_TS_S_lube_off
  PSL

EM

;----------------------------
LBL Lube_end                           ;05

  PS     MG_marker_zero

  L      MG_marker_one
  R      MG_start_blocked_S_lube
  R      PN_error_lube_spindle
  R      MG_soft_key_S_lube
  R      O_S_lube_on

LBL Lube_reset

  L      MG_marker_one
  R      O_S_lube_on
  R      MG_soft_key_S_lube
  R      ML_TS_S_lube_off
  R      ML_TS_S_lube_on
  R      ML_TS_S_lube_pressure

  L      K+0
  =      BL_step_lube

EM
