PLC example

Integrating the structure in a 3S PLC program:

VAR

  (* Use generated structure descriptions *)

  p_ve_chan_1 : POINTER TO VE_CHANNEL_DATA_CH_1;

  p_ve_glob   : POINTER TO VE_GLOBAL_DATA_FROM_CH_1;

  text        : STRING(20);

  init_ve_ptr : BOOL := TRUE;

END_VAR

(* Ensure that the internal management data is initialised *)

Hli(Start := TRUE);

IF Hli.Initialised = TRUE AND Hli.Error = FALSE THEN

  IF init_ve_ptr = TRUE THEN

    (* Provide pointer to structure(s) *)

    p_ve_chan_1 := ADR( gpVECH[0]^.ext_var32[0]);

    p_ve_glob   := ADR(gpVEGlobal^.ext_var32[0]);

  END_IF;

  (* Work with the variables (read, write) *)

  text := p_ve_chan_1^.TEXT[0].token;

  p_ve_chan_1^.FARBE[1] := 2;

END_IF