• Home
  • User Manual
  • Tutorials
  • Updates
Search Results for

    Show / Hide Table of Contents
    • Welcome to twin
    • Getting Started
      • Install and uninstall twin
      • Install and uninstall a licence
      • Start twin
    • Simulation Component Library
      • Automation
        • ScriptComponent
        • Sequence
      • BitManipulator
        • BitsToBytesConverter
        • BytesToBitsConverter
        • EndiannessChanger
      • BooleanOperations
        • BooleanFunction
        • Invert
        • InputSwitch
      • ControlPanel
        • ControlPanel
      • Conveyor
        • Conveyor
        • VacuumConveyor
      • Debug
        • Counter
      • DataManipulator
        • DataReader
        • DataTypeConverter
        • DataWriter
      • FMU
        • FMU
      • Gripper
        • KinematicGripper
        • ObjectCoupler
        • VacuumGripper
      • HardwareConnector
        • PLCConnector
        • RobotControllerConnector
      • Math
        • Gain
        • LinearFunction
        • LowPassFilter
        • NumberComparer
        • Sum
      • Motor
        • FCControlledMotor
        • ServoMotor
      • Movers
        • BoolToSignedDirection
        • DynamicCylinder
        • DynamicRotationMover
        • DynamicTranslationMover
        • KinematicCylinder
        • KinematicPathMover
        • KinematicRotationMover
        • KinematicTranslationMover
      • ObjectManipulator
        • Colorizer
        • Object3DCutter
        • VisiblityChanger
      • Sensors
        • AngleLimitSwitch
        • CollisionObserver
        • DistanceSensor
        • DynamicObjectDetector
        • LightBarrier
        • PositionLimitSwitch
        • PositionTracker
      • Sinks
        • FileLogger
        • CollisionSink
        • RaySink
      • Sources
        • BoolConstant
        • BoxSource
        • DoubleConstant
        • Object3DFileSource
        • Object3DSource
        • RandomBoolean
        • RandomNumber
        • SinusGenerator
        • SphereSource
        • StringConstant
      • Timers
        • IntervalTrigger
        • TOF
        • TON
    • Collision Detection
      • What is essential for collision detection?
      • Where can I find the mesh simplifiers?
      • Which mesh simplification methods are available?
    • twin Mirror
      • Install the twin Mirror
      • Embed the twin Mirror into your HMI
      • React on user-events
      • Manipulate 3D objects
      • Add labels and buttons
    • Video Guides
      • How to install twin
      • How to organize projects
      • How to import CAD files
      • How to handle 3D objects
      • How to activate physics in your simulation
      • How to simulate conveyor systems
      • How to simulate cylinders
      • How to simulate axis systems and portals
      • How to simulate sensors
      • How to simulate grippers
      • How to create program sequences
      • How to connect to PLCs
      • How to simulate robots
      • How to model complex mechanical motion systems
      • How to debug and analyse signals in twin

    Sequence

    With this simulation component, you can create a sequence by simply dragging and dropping blocks and use it to control your machine.

    Sequence

    When to use

    Use this simulation component when you want to control the behavior of a machine using task sequences. This is particularly useful for prototyping automation processes, designing logical flows, or building state machines without programming.

    The sequence component is especially suitable for concept studies or simulation scenarios where task-based logic (e.g., waiting for input, setting outputs, moving a robot) needs to be modeled visually and executed during simulation.

    How to use

    Add this simulation component from the component library. Then define the inputs and outputs the sequence should have.

    Now you are ready to visually model the sequence by simply assembling blocks with different tasks such as reading inputs, modifying variables, setting outputs, or moving robots.

    Tip

    The blocks can be modified during the running simulation. As soon as the "apply button" is pressed, the current arrangement of the blocks is applied. It is like programming a PLC online.

    Parameters

    AdditionalInputs

    The number of inputs the sequence has. You can link these inputs to other simulation components and you can then use the values of the inputs within the sequence by waiting for a specific value or simply reading out the current value.

    AdditionalOutputs

    The number of outputs the sequence has. You can link these outputs to other simulation components and you can then change the values of the outputs within the sequence.

    Sequence

    The sequence itself, modeled visually by blocks with different tasks. Use the edit button to open the editor. The sequence is applied after you pressed "apply" within the editor.

    Inputs

    Inputs are created dynamically according to the defined number of inputs.

    Outputs

    Outputs are created dynamically according to the defined number of outputs.

    Blocks

    I/O

    Set Output 'output' to 'value'

    This block allows you to select an configured output from a dropdown menu and assign a value to it.

    SetValueToOutput

    Wait until Input 'input_xy' is 'value'

    This block allows you to select a configured input from a dropdown menu. The block completes once the input reaches the specified value.

    Sequence WaitUntilInputHasValue

    Value of Input 'input_xy'

    This block provides the current value of an input. The value can be used as a variable in conditions or assignments.

    Sequence ValueOfInput

    Robot

    Move robot 'robotController' to position 'position'

    This block lets you select a robot and a teached position from dropdown menus. It sends a movement command to the robot and waits until the movement is completed.

    Sequence MoveRobotToPosition

    Move robot 'robotController' to position 'position' with offsets

    This block lets you select a robot and a teached position from dropdown menus. You can also specify offsets in X, Y, Z or in Alpha, Beta, and Gamma, relative to the robot’s base coordinate system. The block sends the movement command with the offsets to the robot and waits until the movement is completed.

    Sequence MoveRobotToPositionWithOffset2

    Statements

    If-Else-Statement

    The If-Else block compares two values using various operators (e.g., equal, greater than, less than). If the comparison is true, the "If" branch is executed; otherwise, the "Else" branch runs.

    Sequence IfElseCondition

    Time

    Wait 'value' s

    The Wait block allows you to specify a time in seconds. Once the time has elapsed, the block is completed.

    Sequence WaitBlock

    Utility

    Comment block

    The Comment block can be used to add any kind of notes or comments.

    Sequence Comment

    Constants

    Boolean Constant

    This block allows you to specify a boolean constant, either true or false.

    Sequence BoolConstant

    Numeric Constant

    This block allows you to specify a numeric constant, including values with decimals (floating point).

    Sequence NumericConstant

    Variables

    Declaration of a boolean variable

    A boolean variable can be created with an optional initial value. This variable can then be used in various blocks to set values or for comparisons.

    Sequence BooleanVariable

    Declaration of a numeric variable

    A numeric variable can be created with an optional initial value. This variable can then be used in various blocks to set values or for comparisons.

    Sequence NumericVariable

    Value of a variable 'variableName'

    This block allows you to use the current value of the variable, selected via the dropdown, in different blocks for setting values or comparisons.

    Sequence ValueOfVariable

    Editing variable 'variableName' with 'value'

    This block enables you to modify the value of a variable—for example, setting it to a specific value, adding or subtracting a value, dividing, or multiplying it.

    Sequence EditVariable

    Example

    In this example, a simple sequence using blocks is shown, in which a box is conveyed forward on a conveyor belt and then picked up and stacked by a robot.

    Sequence Example Screenshot Project

    As soon as the light barrier is interrupted and a delay time has elapsed, the box is aligned by a cylinder. After alignment, the box is picked up and stacked by a robot. The stacking pattern is generated dynamically after each cycle based on the declared variable, as this variable is used as an offset.

    Sequence Example Screenshot Sequence

    The following image shows the component diagram. It illustrates how the sequence communicates with the actuators and sensors.

    One output directly controls the conveyor belt. Another output is responsible for extending the cylinder. A separate output triggers the source of the box, and another activates the vacuum at the gripper. Additionally, there is feedback from the cylinder sensor indicating whether the cylinder is retracted, as well as from the sensor detecting whether the box has reached the front.

    The sequence is manually triggered.

    Sequence Example Screenshot Diagram

    Further Information

    For more details visit the Video Guides section, where you can find a video guide demonstrating this topic under Graphical programming of sequences.

    In This Article
    Back to top Copyright © Eberle Automatische Systeme GmbH & Co KG