Системные переменные — одна из ключевых концепций TSMaster: они служат для наблюдения за сигналами, передачи данных между модулями, автоматизации и тестирования. Практически все функции TSMaster так или иначе связаны с системными переменными.
Ключевые слова: TSMaster, системные переменные, Internal Variable, User Variable, Panel, set_system, get_system.
1. Обзор
Системными переменными называются переменные, к которым пользователь может напрямую обращаться при работе с Panel, скриптами, калибровкой, диагностикой и другими расширенными функциями. По способу создания они делятся на два типа: Internal Variable (встроенные, генерируемые системой) и User Variable (пользовательские). Основное отличие:
- встроенные системные переменные создаются и освобождаются системой автоматически — пользователь не может добавлять или удалять их напрямую;
- пользовательские переменные создаются и управляются самим пользователем.
Архитектура системы переменных показана на рис. 1-1. Чтобы посмотреть доступные системные переменные, откройте интерфейс управления по пути Simulation → System Variable (рис. 1-2).


2. Internal Variables (встроенные системные переменные)
Встроенные переменные генерируются и освобождаются вместе с системой. Типичные встроенные системные переменные:
- системная информация;
- статистика устройств;
- переменные мини-программ (рис. 2-1).

Например, статистика устройств: если добавлено устройство CAN1, динамически генерируются переменные статистики StatisticsCAN1; при удалении устройства CAN1 эти переменные исчезают. С развитием TSMaster таких динамически генерируемых типов данных будет больше.
3. User Variables (пользовательские переменные)
Этот тип переменных определяется пользователем: их можно добавлять и удалять. Процесс создания пользовательской переменной:
- Шаг 1. В интерфейсе управления системными переменными нажмите правую кнопку мыши и выберите «Создать пользовательскую переменную» (рис. 3-1).
- Шаг 2. Задайте свойства переменной (рис. 3-2).


- Name — имя переменной.
- Category — группа переменной: упрощает управление, одноимённые переменные могут использоваться в разных приложениях.
- Comment — комментарий и описание переменной.
- Data Type — тип переменной: целочисленные, Float и др. (список раскрывается).
- ReadOnly — признак «только чтение»: такую переменную пользователь изменить не может.
- Minimum Value / Maximum Value — допустимые минимальное и максимальное значения.
- Current Value — текущее значение переменной.
После добавления в систему переменная выглядит как на рис. 3-3.

4. Типы данных системных переменных
Системные переменные TSMaster поддерживают следующие типы данных: Int32, UInt32, Int64, UInt64, UInt8 Array, Int32 Array, Int64 Array, Double, Double Array, String (рис. 4-1).

- Int32 — знаковый 32-разрядный тип; охватывает Int8, Int16 и т. п.
- UInt32 — беззнаковый 32-разрядный тип; охватывает UInt8, UInt16 и т. п.
- Int64 — знаковый 64-разрядный тип.
- UInt64 — беззнаковый 64-разрядный тип.
- UInt8 Array — массив беззнаковых 8-разрядных значений, то есть привычный массив байтов. При присваивании элементы разделяются символом «;», как на рис. 4-2 — это эквивалентно определению массива
UInt8 Var6[5] = {12,34,56,78,90};. - Int32 Array / Int64 Array — массивы 32- и 64-разрядных целых; элементы разделяются «;».
- Double — число с плавающей точкой двойной точности.
- Double Array — массив чисел двойной точности; элементы разделяются «;».
- String — строковый тип данных.

5. Доступ к системным переменным
Способ доступа одинаков и для встроенных, и для пользовательских переменных. Рассмотрим два типовых сценария: привязку переменной к Panel и чтение/запись из скрипта.
5.1. Привязка системной переменной к Panel

- Для свойства элемента управления выберите тип связанной переменной — системная переменная (SystemVar).
- Двойным щелчком раскройте панель выбора переменной.
- Выберите в панели встроенную или пользовательскую системную переменную.
5.2. Чтение и запись системных переменных из скрипта

Как видно на рис. 5-2, для доступа к системным переменным используются два семейства функций, расположенные в каталоге APP функций мини-программы.
Запись переменной (рис. 5-3). Если выделить функцию, в правом верхнем углу появится справка по её параметрам (рис. 5-4).


Чтение переменной (рис. 5-5).

Функции семейств set_system и get_system позволяют скриптам обращаться к внутренним переменным друг друга, то есть обеспечивают обмен данными между скриптами.