Flow Conveyor
Overview and Key Concepts
The flow conveyor is used to allow continuous flow to be transported during a non-zero time, and potentially be buffered (accumulated) when the downstream capacity is insufficient. The conveyor may represent a belt or screw with which 'dry bulk' can be discharged and transported to the end of the conveyor. The conveyor has a speed that is used to calculate the time required for a product to reach the output of the conveyor. Together with the width of the conveyor the speed also determines the height of the product on the conveyor, based on the input rate. At the output point the maximum outflow rate is a result of the speed of the conveyor and the height of the product, the actual outflow rate can of course be restricted by downstream objects in which case the conveyor will accumulate.
The mass flow conveyor is an accumulating object. When the actual output rate is lower than the requested output rate, the material that cannot exit will stack up against the output end of the conveyor up to a predefined maximum height. If you wish the conveyor to be non-accumulating, you can connect a flow sink to the last output port to absorb any excess material, or write custom logic to stop and restart the conveyor when necessary.
Events
The flow conveyor uses the standard events that are common to almost all FloWorks objects. See FloWorks Triggers for an explanation of these events.
The flow conveyor has the following additional events:
On Product Change
This event occurs whenever the product leaving the conveyor changes. This event is commonly used to switch output ports or take some other action based on the new product type. The provided dropdown options include an option to pass the new product downstream - this will set the product of a specified output object to the new type. You can use this to link multiple conveyors or pipes and conveyors together and automatically create a multi-product pipeline based on the actual output product of a conveyor.
It has the following parameters:
Event Parameter | Explanation |
---|---|
curproducttype | The product ID or name of the product type that was leaving prior to this event. |
newproducttype | The product ID or name of the product type that will be leaving after this event. |
On Output Blocked
This event only occurs when the conveyor is non-accumulating, and the calculated outflow rate is less than what it should be to discharge all the material currently at the exit point. You can indicate whether the conveyor should stop (with or without sending a message to the output console) so that you can resume it later. You can also take an action immediately in the trigger, such as slowing down the conveyor or increasing the input rate of the receiving objects; then re-evaluate the network to try and avoid the accumulation stop.
It has the following parameters:
Event Parameter | Explanation |
---|---|
rate | The calculated possible output rate of the conveyor. |
requested | The output rate the conveyor should have to avoid accumulation. |
maxspeed | The maximum speed the conveyor can have without adjusting any rates to avoid accumulation. |
From within the trigger, you can return one of the values of the FlowConveyorUnblockAction enumeration, that will determine the behavior of the conveyor after the trigger has run:
- FlowConveyorUnblockAction.StopObjectWithError (default) will popup the Output Console, if it is not yet open, and print an error message. It will stop the conveyor as if you called
Object.stop()
on it. After removing the cause for the accumulation stop (for example, by decreasing the conveyor speed or increasing the downstream flow capacity) you can call the correspondingObject.resume()
command manually. - FlowConveyorUnblockAction.StopObjectSilently behaves similar to the previous option, except it does not open the output console or print an error message.
- FlowConveyorUnblockAction.RequestRecalculation schedules the flow control to recalculate the flow rates. If the On Output Blocked trigger contains any logic to remove the cause for the accumulation stop, you can return this value to try and avoid the stop completely.
Use this option with caution: if the logic in your trigger does not manage to avoid the stop completely, the trigger will fire again and you may create an infinite loop!
States
For statistical purposes, the conveyor's FloWorks state profile will be in one of the following states at various points during a simulation run:
Empty
The conveyor is empty and there is no flow.
Filling
The conveyor's inflow rate exceeds the outflow rate.
Releasing
The conveyor's outflow rate exceeds the inflow rate.
Not empty
The conveyor is not empty but there is no net flow because the input rate is equal to the output rate.
Idle
The conveyor has stopped because the requested output rate exceeds the downstream capacity.
Statistics
The (mass) flow conveyor tracks the following statistics. These can be viewed by clicking on the object and then viewing the Statistics panel in Properties.
Input / Output
The total number amount of flow, measured in fluid units, that has entered or exited the (mass) flow conveyor.
Flow rates
The current input and output rate of the (mass) flow conveyor, measured in fluid units per time unit.
Content
The current content of the (mass) flow conveyor, which is the difference between the output amount and the input amount.
Properties Panels
The (mass) flow conveyor objects use the following properties panels:
Properties
The Flow Conveyor object shares several properties with all fixed resources and flow objects:
Additionally, the Queue object uses the following properties:
Property | Type |
---|---|
BatchSize | |
DoBatching | Boolean |
FlushContent | Boolean |
ItemPlacement | Options |
LIFO | Boolean |
MaxBatchTime | Unit |
StackBaseZ | Unit |
Custom coding
You may control the behavior of the conveyor dynamically by writing FlexScript, for example in a Script window or by changing the code behind one of the options in an object trigger.
The conveyor is an instance of the FlowObject
class, see the class reference
for information about its properties.