Skip to content

SHARK Material Flow Controller (MFC)#

The Shark Material Flow Controller (SHARK MFC) execute and coordinates, and optimizes the movement of containers, within the warehouse by means of Transport Orders generated by a WMS system. The MFC only knows about Containers and all transport of material must be done with containers. The container is an abstract representation of a physical item or group of items that need to be moved within the warehouse and it can be pallets, boxes or material with a container ID label.

It acts as an intermediary between the WMS system and SHARK WCS (such as conveyors, cranes, or robots), ensuring efficient routing, tracking, and execution of material handling tasks.

Features#

  • Integration with WMS and WCS: Seamlessly connects with Shark WMS for order management and Shark WCS for equipment control.
  • Real-time Monitoring: Provides live tracking of material movements and transport equipment status.
  • Transport Assignment: Automatically assigns transport tasks to the most suitable equipment based on availability and efficiency.
  • Routing Optimization: Calculates optimal routes for material transport to minimize delays and maximize throughput.
  • Error Handling: Detects and manages errors in material transport, ensuring quick resolution and minimal disruption.
  • 3rd Party Equipment Support: Compatible with various third-party transport equipment, allowing for flexible integration into existing systems. New equipment can be added by implementing a new SHARK WCS Driver Modele or the can integrate to other WCS systems.
  • User Interface: Offers a user-friendly interface for monitoring and managing material flow operations.
  • Reporting and Analytics: Generates reports and analytics on material flow performance, transport efficiency, and equipment utilization.
  • Scalability: Designed to handle varying volumes of material flow, from small warehouses to large distribution centers.
  • Customizable Workflows: Supports customizable workflows to adapt to specific warehouse operations and requirements.
  • Multi-Equipment Support: Compatible with various types of transport equipment, including conveyors, forklifts, and automated guided vehicles (AGVs).
  • *Client/Server Architecture: Operates on a client/server architecture, allowing for centralized control and monitoring of material flow operations.
  • Simulation and Testing: Provides simulation capabilities to test and validate material flow scenarios before implementation.

Integration of WMS and WCS#

The Shark MFC integrates with Shark WMS to receive order information and manage the flow of materials required for order fulfillment. It also connects with Shark WCS to control transport equipment, ensuring that materials are moved efficiently within the warehouse.

The WCS provides the WMS with an abstraction layer for controlling automation hardware. The WMS does not need to have any direct knowledge of the transport equipment, all handles by the WCS.

The WMS and WCS systems are connected via a REST API, allowing for seamless integration with existing systems. The WMS system sends orders to the MFC requesting 1 or more containers to be presented at a pick station. The WCS reports back to the WMS when the containers are ready at the pick station.

Example of a possible integration:

sequenceDiagram
    WMS ->> WCS: Send Outbound Order
    WCS ->> WMS: Confirm Order Received
    WMS ->> WCS: Release the Order
    loop
        WCS ->> WMS: Next container presented at pick station
        WMS ->> WCS: Container finished at pick station
    end

The WMS request a number of containers to be transported from a pick station to a delivery station. The WMS should send the order as early as possible. To allow pre-fetching of the containers if supported by the automation equipment.

When the WMS is ready to pick from the containters, it sends an "order release" to the WCS. This will start the process of presenting the containers at the requested station.

The WMS is informated for each container when it is ready. The sequence is not necessarily the same as the order.

The outbound order is a list of containers that need to be transported from a pick station to a delivery station. The minimum information in the order is:

Order Property Description
Order Number Unique identifier for the order.
Order Type Outbound.
Station Station to where the containers should be delivered.
Order lines List of containers to be achived.
flowchart TD
    WMS-Connector <-->|Transport Orders| WMS-DB
    WMS-UI[Shark WMS<br>Java Client] -->|REST API: Control and<br>status requests| WebServer
    HTML-GUI[HTML GUI] -->|HTML: Control and<br>status requests| WebServer
    subgraph MFC-UI[Shark MFC]
        direction TB
        WMS-Connector[WMS Connector]
        JobList[Transport Job Queue]
        WCS-Connector[WCS Connector]
        Sequencer[Transport Sequencer]
        Router[Transport Router]
        FlowController[Flow Controller]
        WebServer[Web Server]
        WMS-Connector -->|Update Jobs| JobList
        Sequencer --> JobList
        Sequencer -->|Calculate route| Router
        Sequencer -->|Execute a transport<br>as a flow| FlowController
        FlowController -->|WCS Commands| WCS-Connector
        WCS-Connector -->|Control transport<br>equipment| WCS1
        WCS-Connector -->|Control transport<br>equipment| WCS2
        WebServer --> Sequencer
    end
    WCS1[SHARK WCS] -->|Equipment specific drivers| EQUIP1[Transport Equipment]
    WCS2[3. PART WCS] -->|Equipment specific drivers| EQUIP2[Transport Equipment]

Location Nodes#

Transports will be done between locations in the warehouse. The locations are represented as nodes in the graph data model and called a "Location Node". Each Location Node has a unique identifier and is be connected to other nodes by Transport Paths (Edges).

A location node is defined by the following properties:

Property Name Description
ID Unique identifier for the location node
Name Human-readable name for the location node
Description Optional description of the location node
Location Expression Regular expression matching location addresses for the node.
Capacity Maximum capacity of the location node (max number of containers matching the location expression)

Transport Paths (Edges)#

The edges in the graph data model represent the transport paths between location nodes. Each edge is unidirectional, so two edges are needed to represent a bidirectional transport path. The edges are defined by the following properties:

Property Name Description
ID Unique identifier for the transport path
Source Node ID of the source location node
Target Node ID of the target location node
Cost The cost of the transport (seconds)
Capacity Maximum number of containers that can be transported on this path

Transport Orders#

The Transport Order defines the movement of containers from one location to another within the warehouse. The Router will dive the Transport Order into smaller tasks based on the transport paths.

Transport States:

State Description
CREATED The transport order has been created and is ready for processing, but not recognized by the MFC.
IDLE The transport order has been assigned or partly finished, but not yet running.
RUNNING The transport order is currently being processed, with tasks being executed.
DONE One task in the transport order has been completed, and the next task is ready to be executed.
COMPLETED The transport order has been successfully completed, and all tasks have been executed.
FAILED The transport order has encountered an error and cannot be completed.
BLOCKED No available path to the target location. This is not an error, but just that the container is not yet at an available location.
CANCELED The transport order has been canceled and will not be processed further.
stateDiagram-v2
    [*] --> CREATED: WMS creates the transport order
    CREATED --> IDLE: The order is recognized by the MFC
    IDLE --> RUNNING: The MFC starts processing the order (flow for an path/edge)
    RUNNING --> FAILED: Something went wrong
    RUNNING --> DONE: One path/edge is done.
    DONE --> IDLE: Next path/edge
    DONE --> COMPLETED: The container is at the target location
    IDLE --> BLOCKED: Capacity of the transport path is full or<br>no space at next target location
    BLOCKED --> IDLE: Path now cleared
    CREATED --> CANCELED: Cancel order
    IDLE --> CANCELED: WMS Cancel order
    FAILED --> CANCELED: WMS Cancel order
    CANCELED --> [*]: The order will be deleted.

Tasks and Flows#

A transport order is devided into tasks, which are individual steps in the transport process. Each task is implemented as a SHARK Flow and represent the edge in the graph data model.

HTML GUI#

The Shark MFC provides a web-based HTML GUI for monitoring and managing material flow operations. The GUI allows users to view real-time status of transport tasks, equipment availability, and material movements.

Status Dashboard#
Error Handling#

When a transport error occurs, the Shark MFC displays an error dialog with options for the user to take action.

ERROR DIALOG
<error description>
[ ] Fix the error and retry
[ ] Unrecoverable error, mark the transport path to be blocked.

Basically there are two types of errors:

  1. Recoverable Errors: These errors can be fixed by the user, such as a temporary equipment malfunction or a missing item.
  2. Unrecoverable Errors: These errors indicate a critical issue that cannot be resolved by the user, such as a blocked transport path or a system failure.

If the error is unrecoverable, the user can mark the transport path as blocked, preventing further transport tasks from being assigned to that path until it is resolved. The container is now on a temporary location (e.g. an AGV) and must be moved manually to the target location. This can either be done without software support or if a Transport Path is defined for th

REST API for external control and monitoring#

Integration with Shark WCS and other WCS systems#

Flows#

Triggers#

  1. Simple trigger used for normal transport orders.
  2. Error triggers, handling errors from devices.
  3. Trigger used for system events that are not handled by a transport order.

Executing a container transport from one node to another#

Name: TransportOrder

Parameters defined by the trigger:

Parameter Name Type Description
ContainerNumber Text The container number
FromLocation Text A Shark location where the container is now
ToLocation Text Where the container is heading
TransportJobID Integer The Transport Job ID (number)
FromNode Text The Shark Node where the container is now
ToNode Text The Shark Node where the container is heading
Routing String The routing flags for the current job
FromMappedNode String This is an alternative name for the FromNode, usual the naming used by the external system
ToMappedNode String This is an alternative name for the TONode, usual the naming used by the external system

Actions#

Beyond the standard actions, the following actions are available in the Shark MFC:

  • Send a command to SHARK WCS
  • Send a command to a 3rd party WCS
  • Send a query to the Shark WCS
  • Send a query to a 3rd party WCS
  • Wait for a WCS event.
  • Update the Transport Sequencer Job Status.
  • Update the container location in the Shark WMS.

Error Handling and Recovery#

If one af tasks in a Transport Order fails, the Shark MFC put the Transport Order into an error state and notifies the user via the HTML GUI/REST API. The user can then take action to resolve the error, there are two possible outcomes:

  1. Retry the Transport Order: The user can fix the error and retry the transport order, which will reassign the tasks to the transport equipment.
  2. Mark the Transport Path as Blocked: If the error is unrecoverable, the user can mark the transport path as blocked, preventing further transport tasks from being assigned to that path until it is resolved. The container will be put on the last know location and must be moved manually to a location where the transport can be recreated. If no transport path exists for that location.∏

Manuel Executed Transports#

In some cases, it may be necessary to manually execute a transport task, such as when a transport path is blocked or when an operator needs to move a container to a specific location. The Shark MFC provides a manual transport feature that allows users to execute transport tasks manually, bypassing the automatic routing and sequencing logic. This feature is useful for handling exceptional cases or for performing ad-hoc material movements within the warehouse.

Implementation: ??