Блок «Малахит – Алгоритм состояний ФГ на 4 режима»

Блок предназначен для реализации алгоритма перехода ФГ в новое состояние, и использует стандартный типовой алгоритм управления состоянием ФГУ (аналогичный блоку управления клапаном и блоку управления приводом).

Блок также является субмоделью (аналогично блоку ФГУ), с автоматизированным заполнением штампа и нумерацией страниц.

В свойствах блока (см. Рисунок 1) необходимо указать:

  1. Имя режима ФГ путем выбора его из выпадающего меню. Пункты выпадающего меню набираются автоматически из категории «ФГ» базы данных.
  2. Имена первого, второго и третьего связанных режимов. Эти имена также выбираются из категории «ФГ» базы данных, и не должны совпадать с именем основного режима ФГ данного блока.
  3. Имя сигнала съема мигания – имя переменной (сигнала) проекта, которая предназначается для съема мигания засветки на пульте управления.
  4. Свойство «Описание режима ФГ» заполняется автоматически из базы данных, в соответствии с тем описанием, которое есть в БД для данного режима ФГ (поле «Descr» в соответствующей группе сигналов категории «ФГ»).
  5. Свойство «Номер страницы» заполняется автоматически.

Рисунок 1. Свойства блока «Малахит – Алгоритм состояний ФГ на 4 режима»

Внутренняя структура данного блока, представленная на рисунке (Рисунок 2), состоит (условно) из входных сигналов, логики формирования сигналов управления на блок типового алгоритма управления ФГУ, а также выходных сигналов. При этом входные и выходные сигналы разделены на «системные» (которые разработчик алгоритма перехода ФГ в данный режим не имеет права редактировать) и «пользовательские», которые должен определять разработчик. «Системные» входные и выходные сигналы обозначены «серым» фоном, и данные сигналы по своему смыслу являются одинаковыми и обязательными для всех блоков типа «Алгоритм состояний ФГ на 4 режима».

В именах всех таких сигналов (как входных, так и выходных) есть сочетание:

...<fg_num>_<fg_bort>_<reg_name>... , где

<fg_num> – номер функциональной группы;

<fg_bort> – литера борта («L» – левый борт; «R» – правый борт; «M» – не относится к борту);

<reg_name> – литера режима функциональной группы.

Значение <fg_num>_<fg_bort>_<reg_name> во всех подобных сигналах (см. ниже) подставляется автоматически в соответствии с именем режима ФГ, указанным в свойствах блока.

К входным сигналам «системного» типа относятся:

  1. «Включить», имя сигнала:

    FG<fg_num>_<fg_bort>_<reg_name>_VK_isp

    Данный сигнал поступает на вход «ПУ включить» типового алгоритма управления ФГУ.

  2. «Съем зв/миг», имя сигнала по умолчанию:

    Sbros_Z_M

    Имя берется из свойства блока «Имя сигнала съема мигания». Данный сигнал поступает на вход «Съем зв/миг» типового алгоритма управления ФГУ.

  3. Три сигнала типа «Исполняется», имена сигналов:

    FG<fg_num>_<fg_bort>_<reg_name1>_isp

    FG<fg_num>_<fg_bort>_<reg_name2>_isp

    FG<fg_num>_<fg_bort>_<reg_name3>_isp , где

    <reg_name1>, <reg_name2>, <reg_name3> – литеры связанных режимов функциональной группы.

    Значения <fg_num>_<fg_bort>_<reg_name1>, ...<reg_name2>, ...<reg_name3> берутся из свойств блока для связанных режимов. Данные три сигнала при своем появлении формируют импульс и по логике «ИЛИ» он поступает на вход «Отключить» типового алгоритма управления ФГУ. Эти же сигналы осуществляют сброс триггера и установку «в ноль» входного сигнала «Выполнен» типового алгоритма управления ФГУ.

  4. Сигнал типа «Исполняется», с именем:

    FG<fg_num>_<fg_bort>_<reg_name>_isp

    Данный сигнал по умолчанию не используется и может быть использован разработчиком алгоритма.

  5. Сигнал(ы) «Включить АУ...», с именем сигнала(ов):

    FALSE (логический ноль) или A_<prg_name>_FG<fg_num>_<fg_bort>_<reg_name>_ON, где:

    <prg_name> – имя программы (алгоритма), в котором сформирован данный сигнал на включение ФГ. Значение <fg_num>_<fg_bort>_<reg_name> подставляется автоматически в соответствии с именем режима ФГ, указанным в свойствах блока.

Данный сигнал (или несколько сигналов) автоматически подставляется из категории «Алгоритмы» БД проекта и может быть сформирован разработчиком алгоритмов в любом другом месте проекта, при помощи блока «Запись команды алгоритма на вход режима ФГ». Если сигналов автоматического включения в базе данных (и соответственно в проекте) несколько, то на этапе инициализации проекта в рассматриваемом блоке появится несколько строк с перечислением существующих сигналов. Все они по логике «ИЛИ» формируют входной сигнал «АУ Включить» для типового алгоритма управления ФГУ.

Если подобных сигналов в БД не обнаружено, на данном входе формируется логический ноль (при помощи именованной константы FALSE).

К выходным сигналам «системного» типа, не редактируемым пользователем, относится три сигнала:

  1. «Исполняется», имя сигнала:

    FG<fg_num>_<fg_bort>_<reg_name>_isp

    Сигнал считывается с выхода «Исполняется» типового алгоритма управления ФГУ и записывается в базу данных проекта.

  2. «Пульт выполнен», имя сигнала:

    FG<fg_num>_<fg_bort>_<reg_name>_ZAS_ON

    Данный сигнал считывается с выхода «ПУ Выполнен» типового алгоритма управления ФГУ и записывается в базу данных проекта.

  3. «Пульт неисполнение», имя сигнала:

    FG<fg_num>_<fg_bort>_<reg_name>_ZAS_nisp

Данный сигнал считывается с выхода «Неисполнение» типового алгоритма управления ФГУ и записывается в базу данных проекта.

Остальные входные и выходные сигналы могут быть произвольно добавлены разработчиком алгоритма и в свободной части листа алгоритма также может быть дописана требуемая смысловая логика.

Рассматриваемый блок может реализовать от 2 до 4 режимов работы (состояний) ФГУ. Например, для того чтобы блок реализовал всего 2 режима работы (состояния ФГ), достаточно в качестве имени 2-го и 3-го связанных режимов указать имя 1-го связанного режима.

Блоки типа «Алгоритм состояний ФГ на 4 режима» должны быть размещены на втором уровне вложенности проекта, внутри блоков типа «Малахит – Функционально-групповое управление», и описывать логику переходов из режима в режим (из состояния в состояние) только для данной ФГ.

Используемый здесь типовой алгоритм управления ФГУ (другими словами, стандартная подпрограмма управления ФГУ) является единым алгоритмом для всего проекта КСУ ТС, и физически он находится в отдельном файле проекта с именем «../subroutines/mal_fg01.prt». Данное решение позволяет, во-первых, использовать по всему проекту один раз созданный и отлаженный алгоритм, а во-вторых, в случае необходимости его доработки в будущем, позволит легко ее осуществить в одном месте проекта, и доработка автоматически «размножится» на весь проект в целом.

В стандартной подпрограмме управления ФГУ реализованы следующие функциональные возможности:

  1. Таймер на выполнение команды.
  2. Выключение, в случае пуска другой команды.
  3. Блокировка повторного запуска команды в процессе ее выполнения.

Рисунок 2. Структура блока «Малахит – Алгоритм состояний ФГ на 4 режима