Системные переменные — одна из ключевых концепций 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).

Архитектура системных переменных
Рис. 1-1. Архитектура системных переменных TSMaster
Интерфейс управления системными переменными
Рис. 1-2. Открытие интерфейса управления системными переменными

2. Internal Variables (встроенные системные переменные)

Встроенные переменные генерируются и освобождаются вместе с системой. Типичные встроенные системные переменные:

  1. системная информация;
  2. статистика устройств;
  3. переменные мини-программ (рис. 2-1).
Встроенные системные переменные
Рис. 2-1. Типичные встроенные системные переменные

Например, статистика устройств: если добавлено устройство CAN1, динамически генерируются переменные статистики StatisticsCAN1; при удалении устройства CAN1 эти переменные исчезают. С развитием TSMaster таких динамически генерируемых типов данных будет больше.

3. User Variables (пользовательские переменные)

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

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

После добавления в систему переменная выглядит как на рис. 3-3.

Переменная в списке
Рис. 3-3. Пользовательская переменная добавлена в систему

4. Типы данных системных переменных

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

Типы данных системных переменных
Рис. 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 — строковый тип данных.
Присваивание массива байтов
Рис. 4-2. Присваивание значений массиву типа UInt8 Array

5. Доступ к системным переменным

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

5.1. Привязка системной переменной к Panel

Привязка переменной к элементу Panel
Рис. 5-1. Привязка системной переменной к элементу Panel
  1. Для свойства элемента управления выберите тип связанной переменной — системная переменная (SystemVar).
  2. Двойным щелчком раскройте панель выбора переменной.
  3. Выберите в панели встроенную или пользовательскую системную переменную.

5.2. Чтение и запись системных переменных из скрипта

Функции доступа к переменным
Рис. 5-2. Функции доступа к системным переменным в каталоге APP

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

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

Функции записи переменных
Рис. 5-3. Функции записи системных переменных
Справка по функции
Рис. 5-4. Описание параметров функции

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

Функции чтения переменных
Рис. 5-5. Функции чтения системных переменных

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