Блок «Малахит – Алгоритм управления клапаном тип 1»

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

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

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

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

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

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

При этом входные и выходные сигналы также разделены на «системные» (которые разработчик алгоритма управления клапаном не имеет права редактировать) и «пользовательские», которые должен определять разработчик. «Системные» входные и выходные сигналы обозначены «серым» фоном, и данные сигналы по своему смыслу являются одинаковыми и обязательными для всех блоков типа «Алгоритм управления клапаном тип 1». К входным сигналам данного типа относятся:

  1. «Пульт открыть Ду», имя сигнала:

    K<vlv_num>_PUL_DU_O, где

    <vlv_num> – номер клапана.

    Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока. Данный сигнал по умолчанию непосредственно поступает на вход «ПУ открыть» типового БУК.

  2. «Пульт закрыть Ду», имя сигнала:

    K<vlv_num>_PUL_DU_Z

    Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока. Данный сигнал по умолчанию непосредственно поступает на вход «ПУ закрыть» типового БУК.

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

    K<vlv_num>_PUL_AU

    Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока. Данный сигнал по умолчанию непосредственно поступает на вход «ПУ на АУ» типового БУК.

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

    Sbros_Z_M

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

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

    FALSE (логический ноль) или A_<prg_name>_K<vlv_num>_O, где:

    <prg_name> – имя программы (алгоритма), в котором сформирован данный сигнал автоматического управления на открытие клапана. Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока.

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

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

  6. Сигнал(ы) «Закрыть АУ», с именем сигнала(ов):

    FALSE (логический ноль) или A_<prg_name>_K<vlv_num>_Z, где:

    <prg_name> – имя программы (алгоритма), в котором сформирован сигнал на закрытие клапана. Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока.

  7. Сигнал(ы) «Открыть АЗ», с именем сигнала(ов):

    FALSE (логический ноль) или A_<prg_name>_K<vlv_num>_OAZ, где:

    <prg_name> – имя программы (алгоритма), в котором сформирован сигнал АЗ на открытие клапана. Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока.

  8. Сигнал(ы) «Закрыть АЗ», с именем сигнала(ов):

    FALSE (логический ноль) или A_<prg_name>_K<vlv_num>_ZAZ, где:

    <prg_name> – имя программы (алгоритма), в котором сформирован сигнал АЗ на закрытие клапана. Значение <vlv_num> подставляется автоматически в соответствии с именем клапана, указанным в свойствах блока.

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

  1. «Открыть», имя сигнала:

    K<vlv_num>_O

    Сигнал считывается с выхода «Открыть» типового алгоритма БУК и записывается в базу данных проекта.

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

    K<vlv_num>_PUL_ZAS_OT

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

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

    K<vlv_num>_PUL_ZAS_ERR

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

  4. «Пульт засветка автомат», имя сигнала:

    K<vlv_num>_PUL_ZAS_AU

    Сигнал считывается с выхода «Режим АУ» типового алгоритма БУК и записывается в базу данных проекта.

  5. «Пульт засветка закрыт», имя сигнала:

    K<vlv_num>_PUL_ZAS_ZK

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

  6. «Закрыть», имя сигнала:

    K<vlv_num>_Z

    Сигнал считывается с выхода «Закрыть» типового алгоритма БУК и записывается в базу данных проекта.

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

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

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

Рисунок 2. Структура блока «Малахит – Алгоритм управления клапаном тип 1»