Remote Control Properties

What is "Remote Control"?

"Remote Control" allows an PLCVisu UI component to be controlled externally by a PLC. Instead of relying on user input within the UI, the component displays the value it receives from a connected PLC structure (via CODESYS).

When active:

  • The user still sees and can interact with the UI component.

  • However, the actual selected value comes from the PLC, not from the UI.

  • The component behaves as if it were remotely operated — the PLC decides what is shown.

Working Example: Input Select 2

Let’s take Input Select 2 as the concrete example.

Connected CODESYS structure:

TYPE sInputSelect :
STRUCT
  value    : DINT;
  options  : ARRAY[1..4] OF PLCVisu.selectOptionsStruct;
END_STRUCT

Example assignment in CODESYS:

Select1.value := 2;

Select1.options[1].id := '1';
Select1.options[1].visible := TRUE;
Select1.options[1].text := 'Option1';

Select1.options[2].id := '2';
Select1.options[2].visible := TRUE;
Select1.options[2].text := 'Option2';

What happens in the UI?
If Remote Control is ON, and Select1.value := 2,
the UI shows Option2 as selected.
The PLC value overwrites any manual user selection.

If Remote Control is OFF,
the UI uses whatever was last selected or configured statically.
No value is fetched from the PLC.

Key Rules (Simple Summary)

Behavior Description
Control Source Value always comes from the PLC when Remote Control is active
User Input Still visible, but gets overridden by PLC value
Write Direction PLC → UI only. UI does not write back into the structure
Options Limit Example uses 4 (ARRAY[1..4]), but not limited – you can use more
Fallback Handling If .text is not defined for a visible option, behavior is undefined (TBD)
.text
ARRAY[1..4]
Select1.value := 2; Select1.options[1].id := '1'; Select1.options[1].visible := TRUE; Select1.options[1].text := 'Option1'; Select1.options[2].id := '2'; Select1.options[2].visible := TRUE; Select1.options[2].text := 'Option2';
TYPE sInputSelect : STRUCT value : DINT; options : ARRAY[1..4] OF PLCVisu.selectOptionsStruct; END_STRUCT