Overhead Crane


Overhead crane in graphical editor Overhead crane at model runtime in 3D animation

Overhead Crane is the space markup element that graphically defines an overhead crane. You can use Material Handling Library block MoveByCrane to simulate how the overhead crane transports agents (material items) between two points of simulated environment.

Crane has three different modes of operation depending on how its components - bridge, trolley, and hook - move in relation to each other.

The maximum height an agent (material item) can reach when raised by overhead crane equals the height of the crane itself.

The rails of the overhead crane can serve as an obstacle on the way of transporters moving in free space navigation mode, but they can still move between the rails.

Overhead crane element provides users with a set of actions, which are used to define additional agent behavior.

To draw an overhead crane
  1. Drag the Overhead Crane element from the Material Handling section of the Space Markup palette into the graphical editor. You will see the shape of the crane's guiding rails and the bridge between them.


  1. Overhead crane can pick up / drop off material items directly from/to a path, a conveyor, and a railway track. In this case you should connect the crane to the corresponding space markup element by placing it close enough so that the crane shape is highlighted in green (it means the connection has been established).


  2. After crane has been successfully connected, the crane shape will change color as displayed in the image below.


  3. You can adjust the width of the crane and the length of its runway , change the width of the bridge and the position of the bridge and the trolley.
  4. To customize the crane's appearance, select the type of crane in Properties view: either Gantry crane or Bridge crane. You can change the Trolley Color and the Crane color in the Properties view for both types.

Properties

General

Name - The name of the overhead crane. The name is used to identify and access the overhead crane from code and Material Handling Library blocks.

Ignore - If selected, the overhead crane is excluded from the model.

Visible on upper agent - If selected, the overhead crane is also visible on the upper agent where this agent lives.

Lock - If selected, the overhead crane's shape is locked. Locked shapes do not react to mouse clicks - it is impossible to select them in the graphical editor until you unlock them. It is frequently needed when you want to prevent editing this shape while drawing other shapes over it.

Visible - Here you specify whether the shape is visible on animation at model runtime, or not. Using the control, choose yes or no.

Material item type - The type of the material item that is transported by this overhead crane

Is obstacle - If selected, the rails of this overhead crane will be considered an obstacle for transporters moving in free space mode.

Components movement mode - Here you can choose how the crane's jib, trolley, and hook should move in relation to each other. The options are:
Step-by-step - the components will move one at a time. This mode satisfies the safety conditions of operating a crane.
Concurrent - the movement of all components will be executed at the same time. This mode is considerably faster than Step-by-step mode, but not as safe.
Independent hoist - the movement of the bridge and the trolley is executed at the same time, either before or after the movement of the hoist.

Bridge speed - Here you can specify the crane's bridge maximum speed. The property is dynamic, therefore you can set up the speed change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.mySpeed : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular speed value for the unloaded crane, the bridge will move with the default speed of 0.5 meters per second.

Trolley speed - Here you can define the crane's trolley maximum speed. The property is dynamic, therefore you can set up the speed change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.mySpeed : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular speed value for the unloaded crane, the trolley will move with the default speed of 0.3 meters per second.

Hoist speed - Here you can define the speed of the crane's hoist (lifting / lowering speed). The property is dynamic, therefore you can set up the speed change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.mySpeed : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular speed value for the unloaded crane, the trolley will move with the default speed of 0.1 meters per second.

Set acceleration/deceleration - If selected, this option allows you to specify the acceleration and deceleration for the overhead crane's bridge and trolley.

Bridge acceleration - [Visible if Set acceleration/deceleration is selected] Here you can define the acceleration of the crane's bridge. If you set this parameter to 0, the bridge will instantly accelerate to its maximum speed. The property is dynamic, therefore you can set up the acceleration change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.myAcceleration : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular acceleration value for the unloaded crane, the bridge will accelerate with the default speed of 0.3 meters per second².

Bridge deceleration - [Visible if Set acceleration/deceleration is selected] Here you can define the crane's bridge deceleration. If you set this parameter to 0, the bridge will instantly slow down to complete halt. The property is dynamic, therefore you can set up the deceleration change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.myDeceleration : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular deceleration value for the unloaded crane, the bridge will decelerate with the default speed of 0.3 meters per second².

Trolley acceleration - [Visible if Set acceleration/deceleration is selected] Here you can define the acceleration of the crane's hoist (lifting / lowering speed). If you set this parameter to 0, the trolley will instantly accelerate to its maximum speed. The property is dynamic, therefore you can set up the acceleration change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.myAcceleration : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular acceleration value for the unloaded crane, the trolley will accelerate with the default speed of 0.3 meters per second².

Trolley deceleration - [Visible if Set acceleration/deceleration is selected] Here you can define the crane's trolley deceleration. If you set this parameter to 0, the trolley will instantly slow down to complete halt. The property is dynamic, therefore you can set up the deceleration change on runtime depending on whether the crane is loaded or not. Using the local variable isLoaded of boolean type, you can, for example, set up the speed change with the conditional operator: isLoaded ? agent.myDeceleration : 1. When the crane is unloaded, the agent variable is null. If you haven't specified any particular deceleration value for the unloaded crane, the trolley will decelerate with the default speed of 0.3 meters per second².

Actions

In all the actions, the current material item is accessible as the local variable agent.

On failed - Here you can type Java code that will be executed in case of overhead crane failure.

On repaired - Here you can type Java code that will be executed when the overhead crane is repaired.

On loading - Here you can type Java code that will be executed directly after the overhead crane takes hold of the material item.

On unloading - Here you can type Java code that will be executed directly after the overhead crane releases the material item.

Appearance

Type - Here you can choose the type of crane: either either Gantry crane or Bridge crane.



Gantry crane

Bridge crane

Note that you only change the visual appearance of your crane: your choice doesn't affect the logic of its operation.

Girder type - The type of the bridge depending on the number of girders: either a Double or a Single.

Trolley color - The fill color of the overhead crane's trolley. Choose No color, if you do not want the area to be filled.

Crane color - The color of the overhead crane's shape. Choose No color, if you do not want the area to be filled.

Position and size

LevelLevel to which this element belongs.

X - X-coordinate of the point where the overhead crane is located.

Y - Y-coordinate of the point where the overhead crane is located.

Z - Z-coordinate of the point where the overhead crane is located.

Runway length - Here you can specify the crane's runway length.

Crane width - Here you can specify the width of the overhead crane itself, i.e. the distance between the crane's guiding rails.

Crane height - [Visible if Gantry crane option is selected in the Type parameter] Here you can specify the height of the crane's legs. It is calculated from the crane's Z.

Bridge width - Here you can specify the width of the overhead crane's bridge.

Bridge position - Here you can specify the position of the bridge in the crane's coordinate system.

Trolley position - Here you can specify the position of the trolley in the crane's coordinate system.

Advanced

Show in - Here you can choose whether you want the overhead crane to be shown both in 2D and 3D animation, or in 2D only, or in 3D only.

Show name - If selected, the overhead crane's name is displayed on the graphical diagram.

To adjust the width of the crane and the length of the crane's runway
  1. Drag the corner of the crane's shape to specify the width of the crane and the length of its runway.

To adjust the width of the bridge
  1. Drag the handle at the edge of the crane's bridge to change the width of the bridge.


    To adjust the position of the bridge and the trolley
    1. Drag the handle on the trolley shape to adjust the position of the bridge and the trolley.

    2. If you want to adjust only the position of the bridge and preserve the position of the trolley, hold the Shift key pressed while dragging the handle.

    Functions

    You can dynamically modify the overhead crane's properties at model runtime using the following API.
    Working state

    Function

    Description

    boolean isReady()

    Returns true if the overhead crane is ready to operate, otherwise returns false.

    boolean isFailed()

    Returns true if the overhead crane failed (broke down) and is not operating, otherwise returns false.

    boolean isLoaded()

    Returns true, if the overhead crane is currently loaded with an material item. Otherwise, this function returns false.

    void fail()

    Initiates the overhead crane's failure. The crane stops working.

    void repair()

    Repairs the overhead crane. The crane becomes available again.

    Utilization statistics

    Function

    Description

    double getUtilization()

    Returns the overhead crane utilization: the fraction of the time the crane was busy. The returned crane utilization value lies in the range [0..1].

    void resetStats()

    Resets the overhead crane utilization statistics.

    Level

    Function

    Description

    Level getLevel()

    Returns the level where this overhead crane is located.


    Obstacle

    Function

    Description

    boolean isObstacle()

    Returns true if this overhead crane is considered an obstacle by transporters moving in free space mode. Otherwise, returns false.

    void setObstacle(boolean isObstacle)

    Sets this overhead crane as an obstacle for transporters moving in free space mode.

    Parameter:
    isObstacle - if true, the crane is set as an obstacle. Otherwise, not.


    Movement

    Function

    Description

    boolean isAccelerationEnabled()

    Returns true, if the option to set acceleration / deceleration for for this overhead crane's components is enabled. Otherwise, returns false.

    void setAccelerationEnabled()

    Enables the option to set acceleration / deceleration for the components of this overhead crane.

    Parameter:
    value - if true, the option will be enabled. If false, the option will be disabled.

    OverheadCraneMovementMode getMovementMode()

    Returns the mode for the movement of the crane's bridge, trolley, and hook in relation to each other. Valid values are: OVERHEAD_CRANE_MOVEMENT_STEP_BY_STEP, OVERHEAD_CRANE_MOVEMENT_CONCURRENT, OVERHEAD_CRANE_MOVEMENT_INDEPENDENT_HOIST.

    void setMovementMode(OverheadCraneMovementMode movementMode)

    Sets the mode for the movement of crane's trolley, jib, and hook in relation to each other.

    Parameter:
    movementMode - components movement mode. Valid values are: OVERHEAD_CRANE_MOVEMENT_STEP_BY_STEP, OVERHEAD_CRANE_MOVEMENT_CONCURRENT, OVERHEAD_CRANE_MOVEMENT_INDEPENDENT_HOIST.

    double trolleySpeed(Agent agent, SpeedUnits units)

    Returns the speed of the overhead crane's trolley, as set in the crane's properties, in the specified speed units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the speed units

    double hoistSpeed(Agent agent, SpeedUnits units)

    Returns the speed of the hoisting winch operation, as set in the crane's properties, in the specified speed units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the speed units

    double bridgeSpeed(Agent agent, SpeedUnits units)

    Returns the speed of the overhead crane's bridge, as set in the crane's properties, in the specified speed units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the speed units

    Point getCurrentHookPosition()

    Returns current hook position in the crane's coordinate system (in pixels).

    double bridgeAcceleration(Agent agent,
    AccelerationUnits units)

    Returns the acceleration value for the crane's bridge, as set in the crane's properties, in specified acceleration units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the acceleration units

    double bridgeDeceleration(Agent agent,
    AccelerationUnits units)

    Returns the deceleration value for the crane's bridge, as set in the crane's properties, in specified acceleration units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the acceleration units

    double trolleyAcceleration(Agent agent,
    AccelerationUnits units)

    Returns the acceleration value for the crane's trolley, as set in the crane's properties, in specified acceleration units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the acceleration units

    double trolleyDeceleration(Agent agent,
    AccelerationUnits units)

    Returns the deceleration value for the crane's trolley, as set in the crane's properties, in specified acceleration units.

    Parameters:
    agent - an agent that's being transferred by the crane
    units - a constant defining the acceleration units


    Dimensions and components

    Function

    Description

    double getCraneHeight()

    Returns the overhead crane's height in pixels.

    double getCraneHeight(LengthUnits units)

    Returns the height of the overhead crane legs (if gantry type is selected) in specified units .

    Parameter:
    units
    - a constant defining the length units

    void setCraneHeight(double craneHeight,
    LengthUnits units)

    Sets the height of the overhead crane legs (if gantry type is selected) in specified units.

    Parameters:
    craneHeight - a new height value
    units - a constant defining the length units

    double getCraneWidth()

    Returns the crane's width in pixels.

    double getCraneWidth(LengthUnits units)

    Returns the crane's width in specified units.

    Parameter:
    units
    - a constant defining the length units

    void setCraneWidth(double craneWidth,
    LengthUnits units)

    Sets the crane's width in specified units.

    Parameters:
    craneWidth - a new crane width value
    units - a constant defining the length units

    double getBridgeWidth()

    Returns the width of the crane's bridge in pixels.

    double getBridgeWidth(LengthUnits units)

    Returns the width of the crane's bridge in specified units.

    Parameter:
    units - a constant defining the length units

    void setBridgeWidth(double bridgeWidth,
    LengthUnits units)

    Sets the width of the crane's bridge.

    Parameters:
    bridgeWidth - a new bridge width value
    units - a constant defining the length units

    double getRunwayLength()

    Returns the length of the crane's runway in pixels.

    double getRunwayLength(LengthUnits units)

    Returns the length of the crane's runway in specified units.

    Parameter:
    units - a constant defining the length units

    void setRunwayLength(double runwayLength, LengthUnits units)

    Sets the length of the crane's runway in specified units.

    Parameters:
    runwayLength - a new value of the crane's runway length
    units - a constant defining the length units

    void setInitialBridgePosition(double bridgePosition, LengthUnits units)

    Sets the initial placement of the bridge in specified length units.

    Parameters:
    bridgePosition - distance from the starting point of the crane to the initial position of the bridge
    units - a constant defining the length units

    void setInitialHookPosition(double hookHeight, LengthUnits units)

    Sets the initial height at which the hook is located in the specified length units.

    Parameters:
    hookHeight - the height at which the hook is located initially
    units - a constant defining the length units

    void setInitialTrolleyPosition(double trolleyPosition, LengthUnits units)

    Sets the initial placement of the trolley in specified length units.

    Parameters:
    trolleyPosition - distance from the starting point of the crane to the initial position of the trolley
    units - a constant defining the length units


    Crane type

    Function

    Description

    OverheadCraneType getType()

    Returns the type of the crane's appearance.

    Valid values are: OVERHEAD_CRANE_BRIDGE, OVERHEAD_CRANE_GANTRY.

    void setType(OverheadCraneType type)

    Sets the type of the crane's appearance.

    Parameter:
    type - new type of the crane's appearance. Valid values are: OVERHEAD_CRANE_BRIDGE, OVERHEAD_CRANE_GANTRY.

    void setGirderType (OverheadCraneGirderDrawingType girderType)

    Sets the bridge type for this crane: either a single flat or a double tie.

    Parameter:
    girderType - a new bridge type. Valid values are: OVERHEAD_CRANE_GIRDER_SINGLE, OVERHEAD_CRANE_GIRDER_DOUBLE.


    Сolor

    Function

    Description

    Color getColor()

    Returns the color of the overhead crane, or null if the crane has no color.

    void setColor(Color color)

    Sets the color of the overhead crane.

    Parameter:
    color - the new color

    Color getTrolleyColor()

    Returns the color of the crane's trolley, or null if the crane's trolley has no color.

    void setTrolleyColor(Color trolleyColor)

    Sets the color of the crane's trolley.

    Parameter:
    trolleyColor - the new color


    Visibility

    Function

    Description

    boolean isVisible()

    Returns true if the overhead crane is visible; returns false otherwise.

    void setVisible(boolean v)

    Sets the visibility of the overhead crane.

    Parameter:
    v - visibility. If v is true - the crane is set to be visible, if it is false - not visible.


    Position

    Function

    Description

    double getX()

    Returns the X coordinate of the center point of the crane.

    double getY()

    Returns the Y coordinate of the center point of the crane.

    double getZ()

    Returns the Z coordinate of the center point of the crane.

    Point getXYZ(Point out)

    Returns the (X, Y, Z) coordinates of the center point of the given crane

    Parameter:
    out - the output Point object to write the result to. The object may be null.


    Removal

    Function

    Description

    void remove()

    Removes the overhead crane from the presentation. If the crane is not a part of presentation, the function does nothing. Note, that removal from the presentation does not necessarily mean removing from the model logic, since logical networks and routes may have been created before the removal and survive it.



    Related topics

    Space markup for material handling models

    Material Handling Library

    API reference: Crane class