MACHINE AUTOMATION 2014
15
PACKAGING AWARDS
O_bGroupCompleted
BOOL: l’ultimo prodotto del gruppo è stato consegnato
O_rProductsCounter
REAL: incrementa ogni volt ache un prodotto è stato consegnato ed ha come reminder I_rNumberProductPerGroup
O_diStateWR
DINT: valore del the write state
O_diStateDeliveringCorr
DINT: valore del delivering Correction state
O_rRDDistanceFromTpEdgePos [units]
REAL: distanza tra la fotocellula ed il fronte del prodotto.
O_arBufferCorrections [units]
REAL[50]: buffer dei valori delle correzioni
O_rPointWR
REAL: incrementa ogni volta sul fronte positive della fotocellula
O_rPointRD
REAL: incrementa ogni volt ache un prodotto e’ stato consegnato
I_bPhotoeye
BOOL: Segnale della footcellula
I_bPositiveEdgePhotoOn
BOOL: deve essere ON se il segnale della fotocellula è ON quando rileva il prodotto o viceversa
O_rTailToHead [units]
REAL: distanza tra coda di un prodotto e fronte del prossimo prodotto
rRegistrationPositionEdgePos [units]
REAL: posizione registrata sul fronte positive del prodotto
O_rDistanceFromPositiveEdge [units]
REAL: distanza dal fronte positive durante la consegna del prodotto
O_CounterPorductWithoutGap
REAL: contatore del numero di prodotti senza gap (se =1 i prodotti non sono a contatto sulla fotocellula, =2 ho due prodotti a contatto e così via..)
O_rNumberProductInTransit
REAL: numero di prodotti in transito cioè registrati e non ancora consegnati
IO_mbMotorMaster
AXIS:assemaster
IOmbMotorSlave
AXIS: asse slave
O_diCamStatus
DINT: status del Camming motion
Bit 0=ENABLE
Bit 1=DN (done)
Bit 2=IP (in process)
Bit 3=PC (process complete)
Bit 4=ER (error)
Meaning of two STATEs of FB_GroupOrganizer
O_diStateWR:
0:
FB disabilitato (go to 10)
10:
Aspetto servo action status “ON” (go to 20)
20:
Arm registration sul fronte positivo (IO_mbMotorSlave); MAR.IP = 1 (ON) (go to 30)
30:
Aspetto la registrazione. Se la registrazione OK & I_bEnablePhotoeyeRegistration go to 35 else if NOT and I_bEnablePhotoeyeRegistration go to 20
35:
Wait la lunghezza del prodotto + “I_rDeltaPosRearmReg” per evitare rimbalzi del segnale della fotocellula (go to 50)
40:
Arma laregistrazione sul fronte positivo (IO_mbMotorSlave) ; MAR.IP = 1 (ON) (go to 50)
50:
Wait la registrazione or two products contigui (if MAR.PC = 1 (ON), then MAR.IP =0 (OFF); then go to 30 else go to 35 se ci sono due prodotti contigui) else if NOT I_bEnablePhotoeye-
Registration go to 40
O_diStateDeliveringCorr:
0:
FB disabilitato
10:
Aspetto servo action status “ON” (go to 20) and almeno 1 prodotto in transito
20:
Aspetto la consegna del prodotto (la coda del prodotto deve arrivare sul delivering axis) (go to 30)
30:
Aspetto la consegna del prodotto e se c’è almeno un prodotto in transito go to 40 else go to 10
40:
Controlla se il gruppo è completo (go to 60)
60:
Calcola la correzione per creare il gap corretto (go to 70)
70:
Se ServoActionStatus is ON lancia una cam di correzionbe (go to 80)
80:
Aspetto la lock status=ON for (PositionCamLockStatus) (go to 90)
else If ServoActionStatus è OFF go to 10
90:
Aspetto la position lock status OFF (PositionCamLockStatus) (go to 10) else If ServoActionStatus è OFF go to 10
FB_MultiplyCorrection
Occupiamoci ora del nastro A cioè del nastro che ha il compito
di fasare il prodotto nel lug conveyor. In realtà il nastro A faserà il
prodotto sul nastro ‘Double belt mechanic’ che è legato mecca-
nicamente al lug conveyor (di conseguenza è come se fasasse il
prodotto direttamente sul lug conveyor). Con il precedente algo-
ritmo FN_GroupCreator abbiamo creato un gap costante tra i pro-
dotti che arrivano sul nastro A (essi sono allo stesso passo del lug
conveyor). In altri termini i prodotti sul nastro A formano un tre-
nino con le carrozze equidistanziate, una volta corretta in fase sul
lug conveyor la locomotiva e tutti i vagoni subiranno correzioni
minime visto che sono equidistanziati. Ogni prodotto in arrivo sul