Package org.openpnp.spi
Interface Nozzle
-
- All Superinterfaces:
HeadMountable
,Identifiable
,Locatable
,Movable
,MovableMountable
,Named
,PropertySheetHolder
,Solutions.Subject
,WizardConfigurable
- All Known Implementing Classes:
AbstractNozzle
,ContactProbeNozzle
,ReferenceNozzle
public interface Nozzle extends HeadMountable, WizardConfigurable, PropertySheetHolder
A Nozzle is a tool capable of picking up parts and releasing them. It is attached to a Head and may move entirely with the head or partially independent of it. A Nozzle has a current NozzleTip that defines what types of Packages it can handle and it may have the capability of changing it's NozzleTip.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Nozzle.PartOffStep
static class
Nozzle.PartOnStep
static class
Nozzle.RotationMode
Nozzle pick-to-place rotation mode.-
Nested classes/interfaces inherited from interface org.openpnp.spi.Locatable
Locatable.LocationOption
-
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 void
addCompatibleNozzleTip(NozzleTip nt)
void
calibrate()
java.util.Set<NozzleTip>
getCompatibleNozzleTips()
java.util.Set<NozzleTip>
getCompatibleNozzleTips(Part part)
NozzleTip
getNozzleTip()
Get the NozzleTip currently attached to the Nozzle.Part
getPart()
Get the part that is currently picked on the Nozzle, or null if none is picked.Nozzle.RotationMode
getRotationMode()
java.lang.Double
getRotationModeOffset()
default Length
getSafePartHeight()
Length
getSafePartHeight(Part part)
boolean
isAligningRotationMode()
boolean
isCalibrated()
boolean
isNozzleTipChangedOnManualFeed()
boolean
isPartOff()
Returns true if a part appears to be off the nozzle.boolean
isPartOffEnabled(Nozzle.PartOffStep step)
Returns true if the isPartOff() method is available.boolean
isPartOn()
Returns true if a part appears to be on the nozzle.boolean
isPartOnEnabled(Nozzle.PartOnStep step)
Returns true if the isPartOn() method is available.default void
loadNozzleTip(NozzleTip nozzleTip)
Changer interface: Command the Nozzle to load the given NozzleTip as it's current NozzleTip.void
loadNozzleTip(NozzleTip nozzleTip, boolean withCalibration)
void
moveToPickLocation(Feeder feeder)
Move the Nozzle to the given feeder pick location.void
moveToPlacementLocation(Location placementLocation, Part part)
Move the Nozzle to the given placementLocation.void
pick(Part part)
Commands the Nozzle to perform it's pick operation.void
place()
Commands the Nozzle to perform it's place operation.void
prepareForPickAndPlaceArticulation(Location pickLocation, Location placementLocation)
Prepare the Nozzle for the next placement rotation.void
removeCompatibleNozzleTip(NozzleTip nt)
void
setRotationModeOffset(java.lang.Double rotationModeOffset)
Set the rotation mode offset to be applied.void
unloadNozzleTip()
Changer interface: Unload the current NozzleTip from the Nozzle, leaving it empty.-
Methods inherited from interface org.openpnp.spi.HeadMountable
getCameraToolCalibratedOffset, getHead, getHeadOffsets, setHead, setHeadOffsets, toHeadLocation, toHeadMountableLocation, waitForCompletion
-
Methods inherited from interface org.openpnp.model.Identifiable
getId
-
Methods inherited from interface org.openpnp.spi.Locatable
getApproximativeLocation, getLocation
-
Methods inherited from interface org.openpnp.spi.Movable
getEffectiveSafeZ, getSafeZ, getSafeZZone, home, isInSafeZZone, isReachable, moveTo, moveTo, moveToSafeZ, moveToSafeZ
-
Methods inherited from interface org.openpnp.spi.MovableMountable
getAxis, getAxisRotation, getAxisX, getAxisY, getAxisZ, getMappedAxes, toRaw, toTransformed
-
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
-
getNozzleTip
NozzleTip getNozzleTip()
Get the NozzleTip currently attached to the Nozzle.- Returns:
-
getRotationMode
Nozzle.RotationMode getRotationMode()
- Returns:
- the RotationMode of the Nozzle. See
Nozzle.RotationMode
.
-
getRotationModeOffset
java.lang.Double getRotationModeOffset()
- Returns:
- the rotation mode offset currently set.
-
setRotationModeOffset
void setRotationModeOffset(java.lang.Double rotationModeOffset)
Set the rotation mode offset to be applied.- Parameters:
rotationModeOffset
-
-
isAligningRotationMode
boolean isAligningRotationMode()
- Returns:
- Whether the bottom vision aligment of parts adjust the Rotation Mode of the nozzle to include the alignment rotation offset.
-
prepareForPickAndPlaceArticulation
void prepareForPickAndPlaceArticulation(Location pickLocation, Location placementLocation) throws java.lang.Exception
Prepare the Nozzle for the next placement rotation. This will apply a rotation offset to the Nozzle that implements theNozzle.RotationMode
and is subject to articulation limits, if present.- Parameters:
pickLocation
-placementLocation
-- Throws:
java.lang.Exception
-
moveToPickLocation
void moveToPickLocation(Feeder feeder) throws java.lang.Exception
Move the Nozzle to the given feeder pick location. This will move at safe Z and position the Nozzle so it is ready forpick(Part)
. This might or might not involve offsets and actions for contact-probing e.g. to determine the feeder's calibrated Z.- Parameters:
feeder
-- Throws:
java.lang.Exception
-
pick
void pick(Part part) throws java.lang.Exception
Commands the Nozzle to perform it's pick operation. Generally this just consists of turning on the vacuum. When this is called during job processing the processor will have already positioned the nozzle over the part to be picked and lowered it to the correct height. Some implementations may choose to do further work in pick(), such as firing air cylinders, monitoring pressure sensors, probing for contact etc.- Throws:
java.lang.Exception
-
moveToPlacementLocation
void moveToPlacementLocation(Location placementLocation, Part part) throws java.lang.Exception
Move the Nozzle to the given placementLocation. This will move at safe Z and position the Nozzle so it is ready forplace()
. This might or might not involve offsets and actions for contact-probing.- Parameters:
placementLocation
-part
- Part to be placed, null on discard.- Throws:
java.lang.Exception
-
place
void place() throws java.lang.Exception
Commands the Nozzle to perform it's place operation. Generally this just consists of releasing vacuum and may include a puff of air to set the Part. When this is called during job processing the processor will have already positioned the nozzle over the part to be placed and lowered it to the correct height.- Throws:
java.lang.Exception
-
loadNozzleTip
default void loadNozzleTip(NozzleTip nozzleTip) throws java.lang.Exception
Changer interface: Command the Nozzle to load the given NozzleTip as it's current NozzleTip. If this returns without Exception then subsequently calling getNozzleTip() should return the same NozzleTip as was passed to this call. If the specified NozzleTip is already loaded this method should do nothing.- Parameters:
nozzleTip
-withCalibration
-- Throws:
java.lang.Exception
-
loadNozzleTip
void loadNozzleTip(NozzleTip nozzleTip, boolean withCalibration) throws java.lang.Exception
- Throws:
java.lang.Exception
-
unloadNozzleTip
void unloadNozzleTip() throws java.lang.Exception
Changer interface: Unload the current NozzleTip from the Nozzle, leaving it empty. After this call getNozzleTip() should return null.- Throws:
java.lang.Exception
-
getPart
Part getPart()
Get the part that is currently picked on the Nozzle, or null if none is picked. Should typically be non-null after a pick operation and before a place operation and null after a pick operation. Of note, it should be non-null after a failed pick operation so that the system can determine which part it may need to discard. It may also be null if a user initiated, manual, pick is performed with no Part to reference.
-
isPartOnEnabled
boolean isPartOnEnabled(Nozzle.PartOnStep step)
Returns true if the isPartOn() method is available. Some machines do not have vacuum sensors or other part detection sensors, so this feature is optional.- Parameters:
step
- determines which JobProcessor Step wants to perform the check- Returns:
-
isPartOffEnabled
boolean isPartOffEnabled(Nozzle.PartOffStep step)
Returns true if the isPartOff() method is available. Some machines do not have vacuum sensors or other part detection sensors, so this feature is optional.- Parameters:
step
- determines which JobProcessor Step wants to perform the check- Returns:
-
isPartOn
boolean isPartOn() throws java.lang.Exception
Returns true if a part appears to be on the nozzle. This is typically implemented by checking a vacuum level range, but other methods such as laser or vision detection are possible.- Returns:
- Throws:
java.lang.Exception
-
isPartOff
boolean isPartOff() throws java.lang.Exception
Returns true if a part appears to be off the nozzle. This is typically implemented by checking a vacuum level range, but other methods such as laser or vision detection are possible.- Returns:
- Throws:
java.lang.Exception
-
getCompatibleNozzleTips
java.util.Set<NozzleTip> getCompatibleNozzleTips()
- Returns:
- A set of nozzle tips compatible with this nozzle.
-
getCompatibleNozzleTips
java.util.Set<NozzleTip> getCompatibleNozzleTips(Part part)
- Parameters:
part
-- Returns:
- A set of nozzle tips compatible with this nozzle and the given part.
-
addCompatibleNozzleTip
void addCompatibleNozzleTip(NozzleTip nt)
-
removeCompatibleNozzleTip
void removeCompatibleNozzleTip(NozzleTip nt)
-
isNozzleTipChangedOnManualFeed
boolean isNozzleTipChangedOnManualFeed()
-
calibrate
void calibrate() throws java.lang.Exception
- Throws:
java.lang.Exception
-
isCalibrated
boolean isCalibrated()
-
getSafePartHeight
default Length getSafePartHeight()
- Returns:
- The height of the part currently on the nozzle. If the part height is not yet known, the maximum part height configured on the nozzle tip is returned. If no part is on the nozzle, a zero Length is returned.
-
-