#CONFIGURAZIONE#
#VERSIONE PROGETTO#
3.7.7
3.0.2
1.3.1
# GENERALI #
SNAP:
1
VISUALIZZA GRIGLIA:
1
START PAGE:
1
PIXEL GRIGLIA:
5
TAU:
2,
LUCE:
30
DEBUG:
1
# PROTOCOLLO #
PROTOCOLLO:
nessuno
BAUD:
19200
PARITA:
O
BIT:
8
STOP:
1
TIMEOUT:
500
DELAY:
4
ERRORI:
0
# PROTOCOLLO CAN #
PROTOCOLLO:
canopen
PROTOCOLLO ETHCAT:
nessuno
BAUD:
500000
SYNC:
1
SLOWPX:
1
CHECKCAN:
2
INTERPOLA:

# MEMORIA #
TOTALE MEM:
 12 
BLOCCHI MEM:
 1 
PROGRAMMI MEM:
 1 
# FRAMEWORK #
CREA FRAMEWORK:
 0 
NOME OGGETTO:

#END CONFIGURAZIONE#
#TABELLA VAR#
DigitalInputs,UINT,0,0,,
Node_1_Error,CHAR,0,0,,
#TABELLA BIT#
Fc_Home,DigitalInputs,0,0,0,
#TABELLA FIXED#
#TABELLA VSD#
#TABELLA DEFINE#
#TABELLA STATIC#
#TABELLA STRUCT#
#TASK PLC#
#INIT TASK
pos1.msof=10000 ' motor 10000 i/rev
pos1.dsof=5000 ' 5 mm per revolution motor

#TASK CICLO
DigitalInputs=ng_di(0) ' read digital inputs
pos1.ext_fcz=Fc_Home ' home input

#TASK CICLO 1

#TASK CICLO 2

#TASK CICLO 3

#TASK CICLO 4

#TASK CICLO 5

#TASK CICLO 6

#TASK CICLO 7

#TASK CICLO 8

#TASK CICLO 9

#TASK TIME#
5
#INIT PAGINA

#MASTER EVENT

#MASTER CICLO

#PRIVATE SUB

#MAIN#
1
#INIT PAGINA

#MASTER EVENT

#MASTER CICLO

#PRIVATE SUB
'*******************
' Enable Axis
'*******************
function Enable() as void
	pos1.Enable()
endfunction
'*******************
' Disable Axis
'*******************
function Disable() as void
	pos1.Disable()
endfunction
'*******************
' Preset Axis
'*******************
function Preset(Val as long) as void 
pos1.Preset(Val)
endfunction
'*************************
' Return 1 if axis move
'        0 Axis stop
'*************************
function Wait_Move() as char
	Wait_Move=pos1.move()
endfunction
'*******************
' Axis Stop Move
'*******************
function Stop() as void
	pos1.Stop()
endfunction
'*****************************
' Start Homing
' Homing input see in task plc
'*****************************
function StartHome() as void
	pos1.StartHome()
endfunction
'*****************************
' Check if homing finished
' Return 1 if finished
'*****************************
function CheckHome() as char
	CheckHome=pos1.status_home 
endfunction
'*****************************
' Stop home function
'*****************************
function StopHome() as void
	pos1.StopHome()
endfunction
'**********************************************************
' Move Axis
' Vel=  vel Axis in mm/min
' Flg if 1 move without buffer
'        0 move in buffer mode
' Px  Axis value in 0.001 mm
'Return 1 if movement is inserted in the buffer
'       0 The movement is not inserted in the buffer
'         in this case, is necessary reload the movement
'**********************************************************
function Move_Axis(Vel as long, Flg as char, Px as long) as char
	Vel=Vel*TAU/60 ' Transform in mm/min
	Move_Axis=pos1.moveto(Vel, Flg, Px)
endfunction
'**********************************************************
' Set ACC
' Value Acc value in count
'**********************************************************
function Acc_Axis(Value as long) as void
	pos1.acc=Value
endfunction
'***********************
' Error check
' CanOpen node
'***********************
function cancfgerr(node as int,err as uchar) as void
Node_1_Error=err ' copy the code error
endfunction
'***********************
' Close init CanOpen
'***********************
function close_cancfgerr() as void
endfunction
'***********************
' Custom error init
' CanOpen node
'***********************
function open_cancfgerr(node as int) as void
' Reset node 1 status error
Node_1_Error=0
endfunction


#CODICE#
\Oggetti\CObjPos.vco
100

#PROPRIETA#
p1="Nome",Pos1,V,T
p2="Left",25,F,N
p3="Top",30,F,N
p4="",40,F,N
p5="",40,F,N
p6="",0,F,N
p7="",0,F,N
p8="",40,F,N
p9="",40,F,N
p10="",0,F,C
p11="",6,F,C
p12="",2,F,N
p13="",2,F,N
p14="",37,F,N
p15="",37,F,	
p16="",C:\Programmi Promax\VTB\Res\objpos.bmp,F,B
p17="",1,V,N
p18="N.TRATTI",8,V,N
p19="Vper",1024,V,V
p20="Div. Vper",1024,V,V
p21="AccQstop",10,F,V
p22="Acc",5,V,N
p23="RzeroMode",1,V,N
p24="RzeroOffset",0,V,N
p25="RzeroPreset",0,V,N
p26="RzeroVel",10,V,N
p27="RzeroVelf",5,V,N
p28="RzeroAcc",10,V,N
p29="Msof",10000,V,N
p30="Dsof",5000,V,N
p31="LimitN",-99999999,V,N
p32="LimitP",99999999,V,N
p33="Gioco",0,V,N
p34="Vgioco",1,V,N
p35="MsofV",1,V,N
p36="DsofV",1,V,N
p37="",0,V,N
p38="",0,V,N
p39="",0,V,N
p40="RZERO ENABLE",1,V,O
p41="AXIS TYPE",1,V,N
p42="VTB AXIS OBJECT",CanPos1,F,V
p43="PDO NAME",qx,F,V
p44="STEP CHANNEL",0,V,N
p45="STEP NODE",1,V,N
p46="",0,V,N
p47="",0,V,N
p48="",0,V,N
p49="",0,V,N
p50="",0,V,N
p51="",0,V,N
p52="",0,V,N
p53="",0,V,N
p54="",0,V,N
p55="",0,V,N
p56="",0,V,N
p57="",0,V,N
p58="",0,V,N
p59="",0,V,N
p60="",0,V,N
#END PROPRIETA#
#EVENTI OGGETTO#
#END EVENTI OGGETTO#
#OGGETTI#
frame(p2,p3,p4,p5)
box(p6,p7,p8,p9,p10,p11)
bmp(p12,p13,p14,p15,p16)
#END OGGETTI#

#CODICE#
\Oggetti\CStdCanOpen.vco
614

#PROPRIETA#
p1="Name",CanPos1,V,T
p2="Left",75,F,N
p3="Top",30,F,N
p4="",40,F,N
p5="",40,F,N
p6="",0,F,N
p7="",0,F,N
p8="",40,F,N
p9="",40,F,N
p10="",0,F,C
p11="",6,F,C
p12="",2,F,N
p13="",2,F,N
p14="",37,F,N
p15="",37,F,N
p16="",C:\Programmi Promax\VTB\Res\ds402.bmp,F,B
p17="Node",1,F,N
p18="Mode",0,F,N
p19="Speed",0,F,N
p20="Position",0,F,N
p21="Abs",1,F,O
p22="State",0,F,O
p23="home_delay",0,F,N
#END PROPRIETA#
#EVENTI OGGETTO#
-EVENT-
?p1?_OnEndMove()

-EVENT-
?p1?_OnError(?P1?_coderr as long)

#END EVENTI OGGETTO#
#OGGETTI#
frame(p2,p3,p4,p5)
box(p6,p7,p8,p9,p10,p11)
bmp(p12,p13,p14,p15,p16)
#END OGGETTI#
