Conveyors move items over a distance at a given speed, with the length of each item considered to avoid them overlapping.
To start using a conveyor you need to consider the length of the conveyor (set in whatever units you like, typically metres) and its speed (units/second). The length is fixed during a run, speed can be changed as with most other conveyor properties. These are set using attribute references.
In addition, the length of items is important for a Conveyor. This can be set for an item class in the Item Class edit context menu, or per item in code using s.ItemLength.
It is important to remember that Planimate models are a schematic and with the Conveyor in particular, you need to manage the layout and icon sizes / scaling carefully if you need to display the conveyor and items to scale.
Pack vs Stop
There are two alternative Conveyor behaviours when an item ready to leave is blocked. By default, items are ‘packed’ together when the front item is blocked. Adding the ‘Stop On Block’ option changes it so all items are stopped in their current position until the front item can leave the Conveyor.
Conveyors enable items to enter only when there is sufficient distance to the previous item. The item’s length property, s.ItemLength is used. A conveyor can be configured to include an additional "minimum distance" which sets the minimum space between the "end" of an item and the "front" of the next one.
This minimum distance can be dynamically changed, leading to some interesting behaviours.
- Reducing the minimum distance while the front item is blocked causes the items to pack closer together (like cars at a traffic light).
- Increasing the minimum distance whilst items are moving in the conveyor will cause items that are too close to items in front of them to stop moving until enough space opens up. Note that items never move backwards to create space.
Conveyors can be linked so if one is stopped for any reason, they are all stopped until conditions change that enable them all to move. You interlock conveyors by setting their "Interlock Controller" attribute to the same data reference. A portal attribute is recommended for this.
You can click a conveyor's icon in paused mode for a report of its contents and why it is stopped, reasons include
* Item blocked and its a stop on block conveyor * The speed has been set to zero * The control value references an attribute/cell that has become zero * Interlock from another conveyor
Slide On vs Drop On
By default an item enters a conveyor when there is sufficient space to accommodate the entire item, as if a chute above the conveyor drops items onto it.
The Slide On option changes this so items enter the conveyor from its end, as if they are on a shelf and gradually sliding onto the moving conveyor. Combined with the Slide Off option, these options may be useful where the length of the conveyor is short, on par with the length of the items.
Slide On vs. Drop On is an important distinction when the conveyor is short relative to the items as it has a bigger impact on the running time an item spends on the conveyor vs. being blocked waiting for enough space on the conveyor.
On a conveyor moving at a constant speed, the total time an item spends on the conveyor (in seconds) is:
Slide On Conveyor: ConveyorLength * Speed Drop On Conveyor: (ConveyorLength - ItemLength) * Speed
Note that SlideOn conveyors do not accept new items when stopped whereas a drop on conveyor will, given there is sufficient space.
Slide Off vs Pick Up
By default an item exits a Conveyor when its front reaches the end, as if the item was an item was picked up off the conveyor. Normally this has no impact on other items.
A SlideOff option is available to change the behaviour so once the item exits the conveyor, a "placeholder" continues to hold the space the item occupied until the complete length of the item traverses the conveyor.
Unlike SlideOn, the SlideOff option's behaviour is very subtle and only has impact when:
- StopOnBlock is not being used
- The Conveyor gets blocked and that space the leaving item left behind is important
- The conveyor is very short and the front item directly impacts the next item to enter the conveyor.
Generally when an item traverses multiple conveyors you only need to consider the merit of using SlideOn.
This sets a value that is available to the other properties as s.ConveyorID, making it easier to use a table to define properties for a set of conveyors.
This value should be a constant. It is not available for Interlock Controller.
Sets the length of the conveytor in units (typically metres). This is read at run start only.
Sets the conveyor's speed in units per second. A value of zero stops the conveyor. No negative values allowed.
Sets extra spacing between items. Items are spaced by their length plus this value, default 0.
This value can either be edited directly using the options select dialog or specified as a bit combination from the _conveyor_options label list. Options are: StopOnBlock, SlideOn, SlideOff and HidePlaceholder which hides the placeholder icon used when SlideOff is selected.
IF this reference is set to a non-constant attribute or cell, when that data is set to zero it stops the conveyor.
When multiple conveyors refer to the same attribute or table cell, they will stop as a group if one conveyor is stopped for any reason. Do not modify or initialise this value.