RobFlow System States
This page documents the backend enum values RobFlow exposes over Profinet for the Robot's operation mode, Robot state, and safety state.
Operation_mode Values
These are the current RobFlow backend enum values, not SRCI operation-mode IDs. Changing their semantics requires a coordinated backend and PLC release.
The Kind column in this and the following state tables uses the backend's
numeric grouping convention:
- concrete is one exact state value.
- abstract grouping is a parent used by state-selection checks. A value
ending in one zero covers the next ten-value range (
210covers210..219); a value ending in two zeroes covers the next hundred-value range (200covers200..299). This is not a bit mask. - abstract/temporary is a grouping that may also be used temporarily until a more specific state is available.
- concrete/grouping is a valid generic fallback and also the parent of more specific values.
Abstract values remain valid enum values and may be published in edge cases. Consumers must handle the exact parent value as well as its concrete children.
| Value | Enum | Kind |
|---|---|---|
| 100 | TEACH | concrete |
| 200 | FLOW | abstract grouping |
| 210 | FLOW_CONTINUOUS | abstract grouping |
| 211 | FLOW_CONTINUOUS_RUNNING | concrete |
| 212 | FLOW_CONTINUOUS_RESUME | concrete |
| 220 | FLOW_CONTINUOUS_PAUSED_STATES | abstract grouping |
| 221 | FLOW_CONTINUOUS_PAUSED_ON_TRAJECTORY | concrete |
| 222 | FLOW_CONTINUOUS_PAUSED_NOT_ON_TRAJECTORY | concrete |
| 500 | ERROR | concrete |
| 600 | CRITICAL | concrete |
Robot_state Values
| Value | Enum | Kind |
|---|---|---|
| 100 | IDLE_STATES | abstract grouping |
| 101 | DISABLED | concrete |
| 102 | SWITCHED_ON | concrete |
| 103 | IDLE | concrete |
| 104 | TRANSITION | concrete |
| 110 | IDLE_PAUSED_STATES | abstract grouping |
| 111 | IDLE_PAUSED_ON_TRAJECTORY | concrete |
| 112 | IDLE_PAUSED_NOT_ON_TRAJECTORY | concrete |
| 200 | MOVING | abstract/temporary |
| 210 | MOVING_COMMAND | abstract grouping |
| 211 | MOVING_PTP | concrete |
| 212 | MOVING_LINEAR | concrete |
| 213 | RESUME | concrete |
| 220 | DECELERATING | concrete |
| 221 | STREAMING | concrete backend state; unrelated to reserved Cmd_id=14 implementation status |
| 222 | ROS_CONTROL | concrete |
| 230 | MANUAL_MOVEMENT | abstract grouping |
| 231 | JOGGING | concrete |
| 232 | HAND_GUIDING | concrete |
| 500 | ERROR | abstract grouping |
| 510 | CONNECTION_ERROR | abstract grouping |
| 511 | BACKEND_CONNECTION_ERROR | concrete/reserved completeness |
| 512 | CONTROLLER_CONNECTION_ERROR | concrete |
| 513 | ROBOT_CONNECTION_ERROR | concrete |
| 514 | UNKNOWN_CONTROLLER_API_VERSION_ERROR | concrete |
| 515 | INVALID_CONTROLLER_API_VERSION_ERROR | concrete |
| 520 | MOVEMENT_ERROR | abstract grouping |
| 521 | CLOSE_TO_SINGULARITY_ERROR | concrete |
| 522 | LINEAR_MOTION_ERROR | concrete |
| 523 | VELOCITY_ERROR | concrete |
| 524 | INVALID_APPROACH_MODE_ERROR | concrete |
| 525 | ANGLE_OUT_OF_LIMIT_ERROR | concrete |
| 530 | MODULE_ERROR | concrete/grouping |
| 531 | MODULE_OVERHEAT_ERROR | concrete |
| 600 | CRITICAL | concrete |
Safety_state Values
| Value | Enum | Kind |
|---|---|---|
| 100 | MANUAL | concrete |
| 200 | AUTO | concrete |
| 300 | SAFE_STOP | abstract grouping |
| 301 | SAFE_STOP_0 | concrete |
| 302 | SAFE_STOP_1 | concrete |
| 303 | SAFE_STOP_2 | concrete |
| 500 | ERROR | concrete |
| 501 | NOT_CONNECTED | RobFlow-specific concrete state |