Описание

Структура (STRUCT) в языке Structured Text (ST) — это пользовательский тип данных, который объединяет несколько переменных (полей) в одну логическую сущность.

STRUCT позволяет группировать связанные данные, что упрощает работу с ними.

Основные свойства структур:
  1. Содержит набор полей с разными типами данных
  2. Используется как отдельный тип данных (DUT)
  3. Доступ к полям осуществляется через оператор «.»
Примечание:
Поля структуры могут быть как простыми типами (INT, BOOL), так и сложными (ARRAY, ENUM, другие STRUCT, FUNCTION_BLOCK).
Важно!
Порядок полей в структуре влияет на размещение данных в памяти.

Пример реализации

Пример объявления структуры:
TYPE FAN : STRUCT
 IsOn : BOOL := FALSE; // Включен ли вентилятор
 Speed : UINT := 0; // Скорость (например, 0–100)
 Temperature : REAL := 25.0; // Температура, при которой работает
END_STRUCT
END_TYPE

Пример использования:
VAR
 myFan : FAN;
END_VAR

myFan.IsOn := TRUE;
myFan.Speed := 75;
myFan.Temperature := 36.5;

Назначение

STRUCT рекомендуется использовать в следующих случаях:
  1. Группировка логически связанных данных
  2. Описание сложных объектов (например, параметры устройства)
  3. Упрощение передачи данных между функциями и блоками
Внимание!
Чрезмерно большие структуры могут усложнять поддержку и снижать читаемость кода.

Создание STRUCT в Полигон 2

Последовательность действий для создания структуры:
  1. В библиотеке проекта или отдельной библиотеки в группе типов вызовите контекстное меню и выберите «Создать».
  2. В открывшемся окне задайте имя структуры, выберите «тип данных (DUT)», затем в списке выберите «структура ST».
  3. Выберите созданный тип структуры в дереве проекта.
  4. Вызовите контекстное меню и выберите «Создать» для добавления поля структуры.
  5. В открывшемся окне задайте имя поля и его тип данных.
  6. Повторите добавление для всех необходимых полей структуры.
  7. Используйте редактор кода для проверки корректности сгенерированной структуры.

Видео-инструкция
Примечание:
Имена полей структуры должны быть уникальными в пределах одной структуры.