Package org.openpnp.spi
Interface Feeder
-
- All Superinterfaces:
Identifiable
,Named
,PropertySheetHolder
,Solutions.Subject
,WizardConfigurable
- All Known Implementing Classes:
AbstractFeeder
,AbstractPandaplacerVisionFeeder
,AdvancedLoosePartFeeder
,BambooFeederAutoVision
,BlindsFeeder
,Neoden4Feeder
,PhotonFeeder
,RapidFeeder
,ReferenceAutoFeeder
,ReferenceDragFeeder
,ReferenceFeeder
,ReferenceHeapFeeder
,ReferenceLeverFeeder
,ReferenceLoosePartFeeder
,ReferencePushPullFeeder
,ReferenceRotatedTrayFeeder
,ReferenceSlotAutoFeeder
,ReferenceStripFeeder
,ReferenceTrayFeeder
,ReferenceTubeFeeder
,SchultzFeeder
,SlotSchultzFeeder
public interface Feeder extends Identifiable, Named, WizardConfigurable, PropertySheetHolder, Solutions.Subject
A Feeder is an abstraction that represents any type of part source. It can be a tape and reel feeder, a tray handler, a single part in a specific location or anything else that can be used as a pick source.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.openpnp.spi.PropertySheetHolder
PropertySheetHolder.PropertySheet
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description boolean
canTakeBackPart()
void
feed(Nozzle nozzle)
Commands the Feeder to do anything it needs to do to prepare the part to be picked by the specified Nozzle.int
getFeedRetryCount()
If feed() throws an Exception during job processing, the job processor will retry the feed() call this many times before raising the error.Location
getJobPreparationLocation()
Some feeders need preparation for a Job that is best done up front and in bulk, such as vision calibration, actuating covers, checking OCR labels etc.Part
getPart()
Get the Part that is loaded into this Feeder.Location
getPickLocation()
Gets the Location from which the currently available Part should be picked from.int
getPickRetryCount()
If post pick checks such as isPartOn() fail during job processing, the job processor will retry the pick and check process this many times before raising the error.boolean
isEnabled()
Return true is the Feeder is currently enabled and can be considered in Job planning.default boolean
isPartHeightAbovePickLocation()
void
postPick(Nozzle nozzle)
void
prepareForJob(boolean visit)
Prepares a Feeder for usage in a Job.void
setEnabled(boolean enabled)
void
setPart(Part part)
Set the Part that is loaded into this Feeder.void
takeBackPart(Nozzle nozzle)
Asks the feeder to take back the part currently on the nozzle.-
Methods inherited from interface org.openpnp.model.Identifiable
getId
-
Methods inherited from interface org.openpnp.spi.PropertySheetHolder
getChildPropertySheetHolders, getPropertySheetHolderActions, getPropertySheetHolderIcon, getPropertySheetHolderTitle, getPropertySheets
-
Methods inherited from interface org.openpnp.model.Solutions.Subject
findIssues, getSubjectIcon, getSubjectText
-
Methods inherited from interface org.openpnp.spi.WizardConfigurable
getConfigurationWizard
-
-
-
-
Method Detail
-
isEnabled
boolean isEnabled()
Return true is the Feeder is currently enabled and can be considered in Job planning.- Returns:
-
setEnabled
void setEnabled(boolean enabled)
-
getPart
Part getPart()
Get the Part that is loaded into this Feeder.- Returns:
-
setPart
void setPart(Part part)
Set the Part that is loaded into this Feeder.
-
getPickLocation
Location getPickLocation() throws java.lang.Exception
Gets the Location from which the currently available Part should be picked from. This value may not be valid until after a feed has been performed for Feeders who update the pick location. The location Z might mean part underside or part surface, depending on the feeder type, as determined byisPartHeightAbovePickLocation()
.- Returns:
- Throws:
java.lang.Exception
-
isPartHeightAbovePickLocation
default boolean isPartHeightAbovePickLocation()
- Returns:
- True if the part height needs to be added to the pick location. The distinction is needed for part height probing
-
getJobPreparationLocation
Location getJobPreparationLocation()
Some feeders need preparation for a Job that is best done up front and in bulk, such as vision calibration, actuating covers, checking OCR labels etc. Some prep requires the head moving to the feeder. For efficiency the JobProcessor uses a Travelling Salesman algorithm to visit all these feeders. The locations for these visits are gathered using getJobPreparationLocation().- Returns:
- The location for the feeder Job preparation visit or null if none.
-
prepareForJob
void prepareForJob(boolean visit) throws java.lang.Exception
Prepares a Feeder for usage in a Job. This is done for all the feeders that are enabled and contain Parts that are used in pending placements. Preparation is done when the Job is started, so it can perform bulk initialization that should not be postponed until the Nozzle.feed()- Parameters:
visit
- true for visits along the getJobPreparationLocation() travel path, false for general preparation (second pass for visited feeders).- Throws:
java.lang.Exception
-
feed
void feed(Nozzle nozzle) throws java.lang.Exception
Commands the Feeder to do anything it needs to do to prepare the part to be picked by the specified Nozzle. If the Feeder requires Head interaction to feed it will perform those operations during this call.- Parameters:
nozzle
- The Nozzle to be used for picking after the feed is completed. The Feeder may use this Nozzle to determine which Head, and therefore which Actuators and Cameras it can use for assistance.- Throws:
java.lang.Exception
-
postPick
void postPick(Nozzle nozzle) throws java.lang.Exception
- Throws:
java.lang.Exception
-
canTakeBackPart
boolean canTakeBackPart()
-
takeBackPart
void takeBackPart(Nozzle nozzle) throws java.lang.Exception
Asks the feeder to take back the part currently on the nozzle.- Throws:
java.lang.Exception
-
getFeedRetryCount
int getFeedRetryCount()
If feed() throws an Exception during job processing, the job processor will retry the feed() call this many times before raising the error.- Returns:
-
getPickRetryCount
int getPickRetryCount()
If post pick checks such as isPartOn() fail during job processing, the job processor will retry the pick and check process this many times before raising the error. Note that this does not include re-feeding the part.- Returns:
-
-