Tags, data types and arrays

A tag is a named piece of PLC memory. Open the tag list from the project tree (Ctrl+T).

Type Holds
BOOL TRUE / FALSE
SINT, INT, DINT 8, 16, 32-bit integers
REAL floating point
TIME a duration, T#2s500ms
TIMER .PRE .ACC .DN .EN .TT (IEC: .PT .ET .Q .IN)
COUNTER .PRE .ACC .DN .CU .CD .OV .UN (IEC: .PV .CV .Q)
CONTROL .LEN .POS .DN .EN … for shift and sequencer instructions
PID setpoint, gains, limits, alarms and modes of a PID loop

Integer math wraps around and sets Overflow.

I/O and marker addresses

You may use addresses directly, or give them a tag name (an alias with a description): %I0.0 input bit, %Q0.0 output bit, %IW64 analog input word, %M10.0 marker bit, %MW20 marker word.

Arrays

DINT[10] (or Array[1..5] of INT), indexed by a constant or a tag: Values[Step]. An index out of range is a major fault.

Data types

Your own structures: Project → New data type…, add members of any type (other data types and arrays included). Recipe[2].FillTime reads a member of an element of an array of a data type.

Forcing

Right-click an I/O point in the tag list or the ladder to force it ON or OFF. Forced inputs are applied after the input scan, forced outputs before the output scan, and the FORCE light is on while any force is set.