About Sequencing

The Sequencing tab provides a simple way to program resources such as robots, humans, or tool devices, and to synchronize them at the organizational level.

The resource program is defined by a task.

  • A task is composed of instructions, such as robot and human activities.
  • Control flow statements ( loops, conditions, tasks calls and so on) allow you to order the different activities.
  • You can also define variables, constants, and input and output parameters called IOs. These objects can be defined in a task or at the resource level.

This page discusses:

Tasks

Tasks represent a resource program.

There are different types of tasks:

  • Services
  • Internal tasks
  • Nominal tasks
  • Subroutines



Internal Tasks

An internal task is local to a resource.

In the tree, it is identified by the icon , such as RobotTask1 in the image above.

An internal task cannot be simulated stand alone. It must be called from a nominal task or a service defined in the current resource.

Services

A service is created inside an organizational or non-organizational resource. A service is intended to be called from other resources, such as the parent resource of a sibling programmable resource. If no such resource calls it, it is not run during the simulation unless it is the root task being simulated.

In the tree, it is identified by the icon , such as RobotTask in the image above.

Unlike internal tasks, a service can be called from other resources:

  • The organizational resource parent.
  • A programmable resource defined under the same organizational resource.

When you click Play on the Compass, you can simulate services.

Nominal Tasks

A nominal task is created inside organizational resources. A nominal task is not callable, it is run by default whenever the resource owner is included in the simulation.

In the tree, it is identified by the icon , such as Task in the image above.

Like an internal task, a nominal task cannot be called from other resources.

You can create only one nominal task inside a resource.

When you click Play on the Compass, you execute the nominal task.

Subroutines

A subroutine is created inside an existing task.

In the tree, it is identified by the icon , such as SubRoutine in the image above.

A subroutine can only be called from its parent task.

Scoping

Inside a resource, the visibility of the tasks is bottom up: a task can only "see," and therefore call, the tasks above it in the tree.

For example, in the schema above, RobotTask can call RobotTask1 but RobotTask1 cannot call RobotTask.

IOs

A IO is a parameter of a task or a resource.

IOs are considered global when they are defined for a resources; local when they are defined for a task. Inside an organizational resource, you can map the IOs defined in its child resources.

If a IO is defined in a task, you have to assign a value to this IO when the task is called from another task.

Variables

A variable can be created in a resource or a task.

Variables are considered global when they are defined for a resources; local when they are defined for a task. A variable defined at the resource level can be used in any task defined in the resource.

A variable defined at the task level can only be used in the task.

Constants

A constant can be created in a resource or a task.

Constants are considered global when they are defined for a resources; local when they are defined for a task. A constant defined at the resource level can be used in any task defined in the resource.

A constant defined at the task level can only be used in the task.