Conveyor

Properties

Name Type Description
ProductCount Integer Gets the number of products currently on the conveyor
Speed Number Gets/Sets the speed of the conveyor
DefaultSpeed Number Gets/Sets the default speed of the conveyor. Can not be zero
BeltDirectionAngle Number Gets/Sets the belt direction angle (in degrees) when using the Skew mode. Default is 30 degrees.
Running Boolean Gets/Sets the running state of the conveyor
Reverse Boolean Gets/Sets the travel direction of the conveyor
PreviousConnection Connection Gets previous connection object
NextConnection Connection Gets next connection object
Products Array of Product Gets an array of products that are currently on the conveyor
PESensors Array of PE Sensor Gets an array of PESensors that are on the conveyor
OperationMode String Gets/Sets the Operation Mode of the conveyor (refer to table below)
StartDelay Number Gets/Sets the delay in milliseconds before the conveyor cascade starts
Indexing Boolean Gets/Sets the indexing mode for a cascade conveyor
IndexingGap Number Gets/Sets the Distance between bags when the conveyor is indexing
Metering Boolean Gets/Sets the metering mode for a cascade conveyor
UseHeadToHead Boolean Gets/Sets the metering mode to ensure a minimum distance between product heads
HeadToHead Number Gets/Sets the distance to use if UseHeadToHead is true
UseHeadToTail Boolean Gets/Sets the metering mode to ensure a minimum distance between products from tail of the first product to head of the following product
HeadToHead Number Gets/Sets the distance to use if UseHeadToTail is true
ClearanceTime Number Gets/Sets the number of seconds the conveyor stops at each product when OperationMode is set to "Screening Station"
Priority Number In Window Reservation mode, a higher number means a higher priority. Priority only applies when there are two or more conveyors 'competing' for the same window.
IsFixedWindow Boolean Gets/Sets the use of a fixed window length in "Window Reservation" mode
FixedWindowLength Number Gets/Sets the length of the reservation window when IsFixedWindow is set to true
Length Number Gets/Sets the length of the conveyor
AccumulationEnabled Boolean New in V5.2. Gets/Sets the Conveyor to accumulate product (behave like a Chute) instead of overlapping them when the destination Conveyor stops. Only in Manual mode.
AccelerationEnabled Boolean New in V5.2. Gets/Sets the Conveyor to accelerate/decelerate to the target (default) speed using the acceleration/deceleration values set. Only in Manual mode.
StartStopRequest Boolean New in V5.2. Gets/Sets the Conveyor to gradually start or stop
Acceleration Number New in V5.2. Gets/Sets the Conveyor acceleration value in the units chosen when the project was created (metres or feet) / second squared. Can not be zero
Deceleration Number New in V5.2. Gets/Sets the Conveyor deceleration value in the units chosen when the project was created (metres or feet) / second squared. Can not be zero
UseAccelerationInTimeMode Boolean New in V8.3. Default is true i.e 'Use Time (in seconds)'. Allows the selection of the acceleration time in Speed/Time or a simple time in seconds to reach the speed.
AccelerationInSeconds Number New in V8.3. Gets/Sets the simple acceleration time in seconds to reach the speed
DecelerationInSeconds Number New in V8.3. Gets/Sets the simple deceleration time in seconds to reach the speed
SurfaceColor String New in V7.0. Gets/Sets the name of the color of the surface
BaseColor String New in V7.0. Gets/Sets the name of the color of the base
LeftSidePanelColor String New in V7.0. Gets/Sets the name of the color of the left side panel
RightSidePanelColor String New in V7.0. Gets/Sets the name of the color of the right side panel
LineColor String New in V7.0. Gets/Sets the name of the color of the line
SurfaceVisible Boolean New in V7.0. Gets/Sets the visibility of the surface
BaseVisible Boolean New in V7.0. Gets/Sets the visibility of the base
LeftSidePanelVisible Boolean New in V7.0. Gets/Sets the visibility of the left side panel
RightSidePanelVisible Boolean New in V7.0. Gets/Sets the visibility of the right side panel
LineVisible Boolean New in V7.0. Gets/Sets the visibility of the line
EncoderEnabled Boolean New in V7.23. Gets/Sets to enable the calculation of DistanceTravelled by transporter
DistanceTravelled Number New in V7.23. Gets the distance travelled by the transporter since the simulation is started, measured in millimeter for metric(metres) and inches for imperial(feet) units
MaxDistanceTravelled Number New in V8.0. Gets/Sets Max value for distance Travel by the transporter in the currently defined system units
 

The OperationMode can be set through scripting by setting the property to one of the following strings;

 
OperationModeString
Manual""
Screening Station"ScreeningStationController"
Cascade"CascadeController"
Window Reservation"MergeSourceController"
Inductor"InductorController"
External Control"ExternalController"

Events

OnConveyorSpeedChange

Invoked when the speed of the conveyor is changed

Callback Signature

void xxxxxxxxxxxxxxxxx(sender: object);

 

NameTypeDescription
senderObjectThe object associated with the changed property

If Enable Acceleration is enabled, this event is triggered when the Conveyor reaches the Default speed (or when the current speed or direction is changed).

 

OnConveyorRunningStateChange

Invoked when the running state of the conveyor is changed

Callback Signature

void xxxxxxxxxxxxxxxxx(sender: object);

 

NameTypeDescription
senderObjectThe object associated with the changed property

If Enable Acceleration is enabled, this event is triggered when the Conveyor reaches the target speed (Default speed or stopped).

 

OnConveyorReverseStateChange

Invoked when the reverse state of the conveyor is changed

Callback Signature

void xxxxxxxxxxxxxxxxx(sender: object);

 

NameTypeDescription
senderObjectThe object associated with the changed property

 

OnProductAdded

Invoked when a product is added to the conveyor

Note: This event does not support multiple subscription. Previous subscription will be lost if subscribe twice.

Callback Signature

void xxxxxxxxxxxxxxxxx(sender: object, product: Product);

 

NameTypeDescription
senderObjectThe object associated with the changed property
productProductThe added product
 

OnProductRemoved

Invoked when a product is removed from the conveyor

Note: This event does not support multiple subscription. Previous subscription will be lost if subscribe twice.

Callback Signature

void xxxxxxxxxxxxxxxxx (sender: object, product: Product);

 

NameTypeDescription
senderObjectThe object associated with the changed property
productProductThe removed product

 

Functions

Array GetProductInArea(start: double, end: double)

Called to get an array of 'Product' objects within the specified range along the conveyor

NameTypeDescription
startDoubleThe start distance of the area to check in the units chosen when the project was created (metres or feet)
endDoubleThe end distance of the range to check in the units chosen when the project was created (metres or feet)

Return value - An Array object that contains product object references, the return value may also be null if no product is found

 

Array GetCurrentSpeed()

New in V6.2. Gets the current speed. Can be used during acceleration/deceleration

Return value - (double) current speed value in the units chosen when project was created

 

void SetPreviousConnection (previous: object, distance: double)

Called to set the previous transporter

NameTypeDescription
previousobjectThe conveyor to set as the target, if target is 'None' set object to 0
distanceDoubleThe connection distance in the units chosen when the project was created (metres or feet)

Return value - None

 

void SetNextConnection(next: object, distance: double)

Called to set the next transporter

NameTypeDescription
nextobjectThe conveyor to set as the target, if target is 'None' set object to 0
distanceDoubleThe connection distance

Return value - None

The connections set using SetPreviousConnection and SetNextConnection are evaluated when product is placed on the conveyor. Any product on the conveyor when the connections are changed will use the old connections.

 

blockagehandle CreateBlockage(distance: double, blockagehandle: integer)

New in v5.2

Called to set a blockage on the Conveyor at the specified distance from the beginning of the Conveyor with an optionally specified handle. The handle returned is the blockage handle to reference this blockage. If a handle was specified it will be the same handle returned.

NameTypeDescription
distanceDoubleThe distance of the blockage from the beginning of the Conveyor in the units chosen when the project was created (metres or feet)
blockageHandleIntegerOptional. If not specified, returns a new handle otherwise returns the handle specified

Return value - blockagehandle

 

By calling CreateBlockage with the same handle the blockage can be moved to a new distance.

 

Using a Product object as the blockage handle can be used to create a blockage linked to a product.

 

 

blockagehandle CreateRangeBlockage(distanceFrom: double, distanceTo: double, blockageHandle: integer)

New in v7.14

Called to set a blockage on the Conveyor at the specified range of the Conveyor with an optionally specified handle. The handle returned is the blockage handle to reference this blockage. If a handle was specified it will be the same handle returned.

All products will be blocked if the product has any part in the zone [distanceFrom - distanceTo]

NameTypeDescription
distanceFromDoubleThe minimum distance of the blockage from the beginning of the Conveyor
distanceToDoubleThe maximum distance of the blockage from the beginning of the Conveyor
blockageHandleIntegerOptional. If not specified, returns a new handle otherwise returns the handle specified

Return value - blockagehandle

 

Note: Working only for straight conveyors.

 

void RemoveBlockage(blockageHandle: integer)

New in v5.2

Called to remove a previously created blockage on the Conveyor

NameTypeDescription
blockageHandleIntegerThe handle for the blockage to remove

Return value - Void

 

No error is produced if RemoveBlockage is called with a non-existent Blockage handle.

A Blockage can only be removed by specifying its handle.

 

Example script:

var oBlockConv;
var oConv = GetComponentByNameAndType("Conveyor1", "Conveyor");

function OnSimulationStart() {
  LogDebug("OnSimulationStart called");
  oBlockConv = oConv.CreateBlockage(1);
  SetTimerEx(1234, 5000, "ClearBlockage", null);
  MoveProduct(CreateProduct(), "Conveyor1", 0);
}

...

function ClearBlockage(timerid, object) {
  LogDebug("Products=" + oConv.ProductCount );
  oConv.RemoveBlockage(oBlockConv);
}