PROC HEAD_O(REAL OSA_CC,REAL OSA_BB)
;   OTACENI HLAVY O
DEF INT H_TEST,_HLAVA,POSUV_C=2000
DEF REAL _CA,_CA1,KROK1,KROK=0.15,SKOK=2.5

  OSA_CC=-OSA_CC
IF $P_SIM GOTOF KONEC
IF $P_SEARCH GOTOF KONEC

_UPNUTO:
   H_TEST=0
   _HLAVA=0
IF $A_IN[18]==1
   H_TEST=H_TEST+1
   _HLAVA=1     ; VK
  ENDIF 
IF $A_IN[19]==1
   H_TEST=H_TEST+1
   _HLAVA=2     ; VKE
  ENDIF 
IF $A_IN[20]==1
   H_TEST=H_TEST+1
   _HLAVA=3     ; VA1
  ENDIF 
IF $A_IN[21]==1
   H_TEST=H_TEST+1
   _HLAVA=4     ; VA2
  ENDIF 
IF $A_IN[22]==1
   H_TEST=H_TEST+1
   _HLAVA=5     ; VP1
  ENDIF 
IF $A_IN[23]==1
   H_TEST=H_TEST+1
   _HLAVA=6     ; VP2
  ENDIF 
IF $A_IN[24]==1
   H_TEST=H_TEST+1
   _HLAVA=7     ; VO
  ENDIF 
   IF H_TEST>1 GOTOB _UPNUTO
ENDLABEL:

    _HEAD=_HLAVA
  IF _HLAVA<>7 GOTOF KONEC

IF $A_IN[29]==0     ; HLAVA NENI V ZAKL. POLOZE
    M85 
   G4 F1
   STOPRE
    M70
IF C_AXIS >0
   SKOK=-ABS(SKOK)
 ELSE
   SKOK=ABS(SKOK)
 ENDIF
_ZACA:
IF $A_IN[29]==1 GOTOF _KONA
    M86
   G4 F1
 G1 CA=IC(-SKOK) F=POSUV_C
 G1 CA=IC(SKOK-KROK) F=POSUV_C
   G4 F1
    M85 
   G4 F1
   STOPRE
GOTOB _ZACA
_KONA:  ; G1 CA=IC(360) F=3*POSUV_C
   STOPRE
CA_AKT=$AA_IM[CA]
C_AXIS=0.001
 C_AXIS= (CA_AKT-C_VERT)*(26/27)
IF C_AXIS>182
 C_AXIS=C_AXIS-360
   ENDIF
IF C_AXIS<-182
 C_AXIS=C_AXIS+360
   ENDIF
     M5
 C_AXIS=C_AXIS
  MSG("ZKONTROLUJ C_AXIS")
   M00
  MSG("")
 G4 F0.1
 STOPRE
   ENDIF

 R1=ROUND(OSA_CC/2.5)*2.5
 R2=R1-OSA_CC
IF R2<>0
  MSG("POZADOVANA POLOHA NENI S KROKEM 2.5")
   M00
 RET
  ENDIF

;IF $A_IN[30]==1     ; VERT. POLOHA
;  C_AXIS=0
; CA_AKT=C_VERT
;   ENDIF

  IF C_AXIS==OSA_CC GOTOF TOC_B

    STOPRE
   TRAFOOF
     TRANS
G1 B0 F1000

   S100 M5
     M41

IF $A_IN[9]==1 
    S100 M3
    G4 F2
     M5
    ENDIF
   M5

; _CA=C_VERT+C_AXIS*(27/26)
  _CA=CA_AKT
   SPOS=_CA
   G4 F1
    M84   ; UVOLNENI
_POM1: STOPRE
  G4 F0.1
IF $A_IN[28]==0 GOTOB _POM1

IF (OSA_CC*C_AXIS)<0 
 IF C_AXIS<0 
  G1 CA=ACP(C_VERT) F=POSUV_C
 ELSE
  G1 CA=ACN(C_VERT) F=POSUV_C
 ENDIF
  STOPRE
 C_AXIS=0
 CA_AKT=C_VERT
  ENDIF

UPRAV_CA:
 IF _CA>360
   _CA=_CA-360
 ENDIF
 IF _CA<0
   _CA=_CA+360
 ENDIF
ENDLABEL:

 IF OSA_CC>C_AXIS 
  _CA=C_VERT+VULE_PLUS+OSA_CC*(27/26)
   REPEAT UPRAV_CA
 G1 CA=ACP(_CA) F=POSUV_C
    SKOK=ABS(SKOK)
  ELSE
  _CA=C_VERT+VULE_MINUS+OSA_CC*(27/26)
   REPEAT UPRAV_CA
 G1 CA=ACN(_CA) F=POSUV_C
    SKOK=-ABS(SKOK)
  ENDIF
  STOPRE
 C_AXIS=OSA_CC
 CA_AKT=_CA

   G4 F0.5
    M85   ; ZPEVNENI
   G4 F2
    STOPRE

IF $A_IN[29]==0    ; NENI V POLOZE 
   KROK1=KROK
_ZACC:
   _CA=_CA+KROK1
   REPEAT UPRAV_CA
_STEP:  M86
 G4 F1
    _CA1=_CA
   _CA=_CA+SKOK
   REPEAT UPRAV_CA
 G1 CA=DC(_CA) F=POSUV_C
    _CA=_CA1
 G1 CA=DC(_CA) F=POSUV_C
 G4 F1
    M85 
   G4 F1
   STOPRE
ENDLABEL:
IF $A_IN[29]==1 GOTOF _KONC
   _CA=_CA-KROK1-KROK1
   REPEAT UPRAV_CA
   REPEAT _STEP
IF $A_IN[29]==1 GOTOF _KONC
   _CA=_CA+KROK1
  KROK1=KROK1+KROK
  GOTOB _ZACC
_KONC:   CA_AKT=_CA
  ENDIF

TOC_B:
G1 B=OSA_BB F1000
  B_AXIS=OSA_BB
   M5
   M40
KONEC: STOPRE

 $TC_CARR13[1]=B_AXIS
 $TC_CARR14[1]=-C_AXIS
RET


