Пример синхронизации с одинаковыми шагами синхронизации

Пусть заданы следующие параметры проектов:
  • в группе "Основные параметры":
    • проект A: "Минимальный шаг" = "Максимальный шаг" = 1
    • проект B: "Минимальный шаг" = "Максимальный шаг" = 0.2
    • проект C: "Минимальный шаг" = "Максимальный шаг" = 0.1
    • для проектов A, B, C: "Шаг синхронизации задачи" = 1
  • в группе "Управление расчетом" для проектов A, B, C:
    • "Записывать сигналы только на шаге синхронизации в синхронизирующем потоке" = "Да"
    • "Режим записи сигналов при синхронном обмене" = "Отложенная на шаг синхронизации"
Схематическое представление синхронизации этих проектов в составе пакета проектов по шагам представляется следующим образом:
  1. В начальный момент времени t0 текущие модельные времена всех трех проектов совпадают и равны t0. Текущее время пакета совпадет с модельными временами всех проектов и равно t0 (Рисунок 1).


    Рис. 1. Первый круг синхронизации
  2. На первом этапе все проекты совершают расчетные шаги до времени t1, причем каждый из проектов совершает различное число расчетных шагов в соответствии со своими шагами интегрирования. Каждый из проектов запишет рассчитанные значения в базу данных на следующем круге синхронизации, и эти значения будут использоваться другими проектами при расчете на следующем круге синхронизации.

    Модельные времена всех трех проектов совпадают и равны t1. Текущее время пакета равно t1 (Рисунок 2). В общем случае модельные времена проектов, входящих в пакет, на каждом шаге синхронизации могут быть различными.



    Рис. 2. Второй круг синхронизации
  3. На следующем этапе все проекты совершают расчетные шаги до времени t2, используя значения, записанные в базу данных с предыдущего шага синхронизации t1. Модельные времена всех трех проектов совпадают и равны t2.Текущее время пакета равно t2 (Рисунок 3).


    Рис. 3. Третий круг синхронизации
    На следующем круге синхронизации проекты совершают расчетные шаги до времени t3, используя значения, записанные в базу данных с предыдущего шага синхронизации t2. Далее циклы будут повторяться до тех пор, пока пакетный расчет не будет остановлен по достижении конечного времени расчета хотя бы одним из проектов.

    Если параметр "Записывать сигналы только на шаге синхронизации в синхронизирующем потоке" имеет значение "Нет", то запись будет осуществляться на каждом шаге моделирования, и, как следствие, отстающие проекты могут получить данные с шагов, которых еще не достигли, то есть могут получить данные из моделируемого "будущего", что не является желательным.