Skip to main content

Tag Usage

Every tag declares a usage that says where its value comes from. Usage controls where the tag appears in the editor and whether the program can write to it.

UsageMeaning
InputValue passed into the AOI. Read-only inside the AOI.
OutputValue set by the AOI and returned to the caller.
LocalPrivate internal memory used only inside the AOI.

Choosing a usage

  • A pushbutton or limit switch → Input BOOL
  • A motor contactor or pilot light → Output BOOL
  • A sensor reading a real-world value → Input DINT or REAL
  • A setpoint or running total → Local DINT or REAL
  • Any TIMER, COUNTER, FBD_TIMER, or FBD_COUNTERLocal (structured tags cannot be I/O tags)

Reading vs writing

Coils and math instructions write to tags, which means they require Output or Local usage. Trying to drive an Input tag from logic produces a compile-time diagnostic:

Operand 'Cmd_Reset' is an input parameter and should not be modified

If you need to drive a value from logic, create an Output or Local tag — do not mark it Input.

In the Studio editor

  • I/O Panel — only Input parameters can be modified at runtime. Output and Local tags are read-only in the panel.
  • TrendLocal tags are not plotted. Use Input or Output if you want a signal to appear on the Trend.