DF Support DF Support

NavWiz 3.2 — Task Templates Guide

9 min read · NavWiz

Task Templates — Concepts and Structure

Task Templates are the core programming mechanism in NavWiz. They define flowchart-based sequences of actions that control all AMR operations. Users can add, edit, clone, and delete task templates within the ConfigPanel. Only active task templates can be executed by the AMR.

Each task template has several key properties:

PropertyDescription
NameA descriptive name for the task template (e.g., Delivery to Station A)
CategoryGroups task templates for filtering on the list page
ActiveFlag to activate or deactivate the template without deleting it. Deactivated templates are hidden from UserPanel
Top-level TemplateIf checked, the template appears in UserPanel and can be run directly by users. Non-top-level templates are hidden and can only be called from other templates
Suspend Task InitiallyIf checked, the task will be suspended immediately after being triggered from the task runner

Params allow users to add customizable variables to a task template. For example, a "Delivery Station" parameter of type Station lets users select the destination dynamically when the task is executed rather than hard-coding it into the template. When a parameterized task template is run, a prompt window appears asking for parameter values.

Outcomes define the possible results of a task template. This feature is only available for non-top-level templates (top-level templates always end with a single End outcome). Outcomes enable branching logic — for example, a sub-template could have "ok" and "timeout" outcomes that route to different next actions.

Structure is the flowchart editor where actions are arranged and linked. Key tools include:

ToolFunction
SaveSaves changes (soft reboot required to apply)
Auto Layout / Free LayoutToggle between automatic or manual arrangement of actions
SelectDrag to pan the view, click to select actions for configuration
LinkConnect two actions or an outcome to an action by clicking each in sequence
Add ActionInsert a new action into the template
Cut / Copy / PasteMove or duplicate selected actions (Ctrl+X, Ctrl+C, Ctrl+P)
Undo / RedoUndo or redo changes (Ctrl+Z, Ctrl+Y)
Note EditorAdd hover-notes to individual actions
DeleteRemove a selected action or link

Registers are variables that can be manipulated inside task template execution. The register data type is a 32-bit signed integer (range: -2,147,483,648 to 2,147,483,647). Three types of registers are available:

Register TypeScopeAvailable Registers
Local RegisterInitialized to zero at task start; cleared when the current task template endsA0–A9, B0–B9, C0–C9
Global RegisterInitialized to zero at task runner start; retained across multiple task templates; cleared when task runner exitsGB0–GB9
Persistent RegisterRetains its value even when the AMR is powered offVaries by configuration

Task Templates — Action Types Reference

NavWiz provides a comprehensive set of built-in actions for task templates. Each action has a name (yellow box), parameters (middle area), and outcomes (blue boxes). The following table lists all available action types grouped by category.

CategoryActionDescription
NavigationNavigate ToNavigate from current position to a destination station using shortest path
NavigationReverse Navigate ToNavigate to a destination station using reverse motion
NavigationReset AGV PositionReset AMR position to a specific station (resets trackless localization)
NavigationReset AGV Position TrackerReset AMR position tracker without resetting trackless localization
NavigationCheck AGV PositionCheck if AMR is currently at a selected station
NavigationCheck AGV Position PrefixCheck if current station name starts with a given prefix
NavigationCheck AGV Position SuffixCheck if current station name ends with a given suffix
NavigationCheck AGV Position RFIDCheck if AMR is at a junction matching a configured RFID (track only)
NavigationIs AGV HomedCheck if AMR is at its configured home position
Trackless MovementForward (trackless)Move forward a set distance without track guidance
Trackless MovementReverse (trackless)Move in reverse a set distance without track guidance
Trackless MovementBezier Forward (trackless)Move forward along a Bezier curved path
Trackless MovementBezier Reverse (trackless)Move in reverse along a Bezier curved path
Trackless MovementDynamic Forward (trackless)Move forward using dynamic path planning
Trackless MovementDynamic Reverse (trackless)Move in reverse using dynamic path planning
Trackless MovementDynamic Bezier Forward (trackless)Move forward on a Bezier curve using dynamic path planning
Trackless MovementDynamic Bezier Reverse (trackless)Move in reverse on a Bezier curve using dynamic path planning
Trackless MovementForward (wait IO) (trackless)Move forward and stop on IO trigger or distance
Trackless MovementReverse (wait IO) (trackless)Move in reverse and stop on IO trigger or distance
WaypointGo To WaypointNavigate to X/Y coordinates using dynamic path planning
WaypointGo To Station WaypointNavigate to a station using dynamic path planning
WaypointGo To Marker WaypointPerform docking via dynamic path planning to a marker
DockingForward Dock (trackless)Approach a target marker moving forward
DockingReverse Dock (trackless)Approach a target marker moving in reverse
DockingForward Undock (trackless)Move away from a docked position moving forward
DockingReverse Undock (trackless)Move away from a docked position moving in reverse
RotationRotate Left (trackless)Rotate AMR to the left (trackless)
RotationRotate Right (trackless)Rotate AMR to the right (trackless)
RotationRotate to Heading (trackless)Rotate AMR to a specific heading angle
Track MovementForwardMove forward following the magnetic tape track
Track MovementReverseMove in reverse following the magnetic tape track
Track MovementBranch Forward LeftTake the left branch at a junction (forward)
Track MovementBranch Forward RightTake the right branch at a junction (forward)
Track MovementBranch Reverse LeftTake the left branch at a junction (reverse)
Track MovementBranch Reverse RightTake the right branch at a junction (reverse)
Track MovementForward (by distance)Move forward a set distance on track
Track MovementReverse (by distance)Move in reverse a set distance on track
Track MovementForward (wait IO)Move forward on track and stop on IO trigger
Track MovementReverse (wait IO)Move in reverse on track and stop on IO trigger
Track RotationRotate LeftRotate AMR left on track
Track RotationRotate RightRotate AMR right on track
Track RotationU-Turn LeftPerform a U-turn to the left
Track RotationU-Turn RightPerform a U-turn to the right
Track RotationRotate 3-Q LeftPerform a three-quarter rotation left
Track RotationRotate 3-Q RightPerform a three-quarter rotation right
Track RotationRotate (By Angle)Rotate AMR by a specific angle
Line SearchSearch Line LeftSearch for the magnetic line to the left
Line SearchSearch Line RightSearch for the magnetic line to the right
Line SearchFind MarkerSearch for a specific marker on the track
Profile SelectionSelect Navigation ProfileSwitch to a specified navigation profile
Profile SelectionSelect Laser ProfileSwitch to a specified laser sensor profile
Profile SelectionScan Laser AreaScan a laser area with specified parameters
Profile SelectionSelect Dimension ProfileSwitch to a specified dimension profile
Wait / User InputWaitWait for a specified duration
Wait / User InputWait AcknowledgeWait for user acknowledgement on the LCD touchscreen
Wait / User InputWait ConfirmWait for user confirmation with Yes/No options
Wait / User InputWait KeypadWait for user keypad input
Wait / User InputWait ResumeWait until the task is resumed
Wait / User InputSleepPut the AMR to sleep for a specified duration
Battery / PowerDock ChargerDock to a charging station
Battery / PowerUndock ChargerUndock from a charging station
Battery / PowerCheck BatteryCheck battery level against a threshold
Battery / PowerCalibrate BatteryCalibrate the battery reading
Battery / PowerReboot AGVSoft reboot the AMR
Battery / PowerPower Off AGVPower off the AMR
AudioPlay MusicStart playing a predefined music file
AudioPause MusicPause music playback
AudioStop MusicStop music playback
AudioPlay AlarmStart playing an alarm sound
AudioStop AlarmStop alarm playback
I/OIO ReadRead a value from an IO pin
I/OIO WriteWrite a value to an IO pin
I/OIO Read RegisterRead an IO value into a register
I/OIO Write RegisterWrite a register value to an IO pin
Register / LogicSet Register ValueSet a register to a specified value
Register / LogicCompare and Set RegisterCompare registers and set a value based on result
Register / LogicIncrement RegisterIncrement a register value by 1
Register / LogicDecrement RegisterDecrement a register value by 1
Register / LogicAdd RegisterAdd a value to a register
Register / LogicSubtract RegisterSubtract a value from a register
Register / LogicMultiply RegisterMultiply a register by a value
Register / LogicDivide RegisterDivide a register by a value
Register / LogicCopy RegisterCopy value from one register to another
Register / LogicDisplay Register ValueDisplay a register value on screen
Register / LogicCounterIncrement a counter and compare against a target
ComparisonCompare RegisterCompare two register values
ComparisonCompare Register and IntegerCompare a register against an integer constant
ComparisonCompare IntegersCompare two integer values
ComparisonCompare DoublesCompare two double values
ComparisonCompare StationsCompare two station values
ComparisonCompare Stations PrefixCompare station prefixes
ComparisonCompare Stations SuffixCompare station suffixes
ComparisonCompare StringsCompare two string values
ComparisonCompare BooleansCompare two boolean values
ComparisonCheck TimeCheck current time against a schedule
Remote I/ORemote IO ReadRead from a remote IO module
Remote I/ORemote IO WriteWrite to a remote IO module
Remote I/ORemote IO Read RegisterRead remote IO value into a register
Remote I/ORemote IO Write RegisterWrite register value to remote IO
ModbusModbus ReadRead a value via Modbus protocol
ModbusModbus WriteWrite a value via Modbus protocol
ModbusModbus Read RegisterRead a Modbus value into a register
ModbusModbus Write RegisterWrite a register value via Modbus
RFIDRead RFID and Compare StringRead an RFID tag and compare with a string
RFIDReset RFIDReset the RFID reader
HTTPHTTP GETSend an HTTP GET request to a URL
HTTPHTTP POSTSend an HTTP POST request with a payload
HTTPHTTP PUTSend an HTTP PUT request with a payload
HTTPHTTP DELETESend an HTTP DELETE request to a URL
Task ControlLog MessageLog a custom message to the activity log
Task ControlUpdate Task ProgressUpdate the task progress message
Task ControlAbort TaskAbort the current task execution
VariablesSet BoolSet a boolean task template variable
VariablesSet IntegerSet an integer variable
VariablesSet Integer From RegisterSet an integer variable from a register value
VariablesSet DoubleSet a double variable
VariablesSet StringSet a string variable
VariablesSet String from IntConvert an integer to string and set a variable
VariablesSet String from DoubleConvert a double to string and set a variable
VariablesSet String from StationConvert a station to string and set a variable
VariablesSet StationSet a station variable
VariablesCompose StringBuild a string using a template with %s replacement

Task Template Groups, Users, and Variables

NavWiz provides access control for task templates through user groups and individual user assignments. Task templates can be restricted so only specific users or groups can see and execute them.

To configure access for a task template, click the group/user icon in the task template list. Assign the template to user groups (for bulk access) or individual users. A user can access a template if they are either listed as an allowed user or belong to an allowed group.

Task Template Global Parameters are constant values accessible from all task templates. This avoids hard-coding the same value in multiple templates. Global parameters support the following types: Bool, Int, Double, Str, Station, and Register.

Task Template Variables are also accessible from all task templates, but unlike global parameters, their values can be changed at runtime through task template actions such as Set Bool, Set Integer, Set String, Set Double, and Set Station. Variable types include: Bool, Int, Double, Str, and Station.

Was this article helpful?

Still stuck? How can we help?

Reach out to our support team on WhatsApp for personalized assistance.

Chat with us on WhatsApp

Updated on August 28, 2026