Состав пользовательской подпрограммы

Типовые задачи  Предыдущий  Следующий

Общие сведения

Пользовательская программа в общем случае состоит из одной или нескольких строк. В проекте конфигурации не допускается наличие «пустых» пользовательских подпрограмм.

Формат строки подпрограммы

Общий вид строки подпрограммы выглядит следующим образом:

[[public] ЛогИмя = ] НазвАлгоблока([~]Вх1[; [~]Вх2; …; [~]ВхN])

Вся строка или ее окончание может содержать комментарии (см. одноименный подраздел).

Логическое наименование

ЛогИмя — задаваемое пользователем логическое наименование (идентификатор) конкретного экземпляра стандартного алгоблока, которое после выполнения будет содержать рассчитанное значение/состояние. Его можно использовать во входах других алгоблоков. Если результат работы алгоблока в дальнейшем не используется, то наименование можно не указывать.

В наименовании допустимо использовать латинские буквы, цифры и знак подчеркивания. Недопустимо повторение наименования в одной под­прог­рамме, а также полное совпадение с названием стандартного алго­блока. Логическое наименование алгоблока также должно начинаться с буквы.

Внимание: Заданные пользователем логические наименования алгоблоков хранятся только в файле проекта конфигурации и не загружаются в Контроллер.

При извлечении подпрограмм из Контроллера логические наименования алгоблоков будут в виде: block1, block2, block3, ...

Логические наименования являются регистронезависимыми, то есть b10 и B10 — это одинаковые наименования.

Допустимо дублировать логические наименования в разных подпрограммах (только если перед ними не стоит префикс public — см. ниже).

Префикс public

public — префикс, показывающий, что алгоблок будет доступен не только в текущей подпрограмме, но и во всех других подпрограммах (недопустимо повторение наименования ЛогИмя после префикса public в любой из под­прог­рамм).

Наименование стандартного алгоблока

НазвАлгоблока — наименование стандартного алгоблока (полный перечень доступных стандартных алгоблоков с их описанием приведен в Приложении А).

Аргументы

Вх1, Вх2, …, ВхN — входы конкретного экземпляра стандартного алгоблока.

В общем случае на входы алгоблоков можно подавать следующее:

значения аналоговых каналов (например, AI1.1, AI3.8, AO1.1, AO2.5 или их пользовательские идентификаторы, указанные при конфигурировании соответствующих каналов);

состояния дискретных каналов (например, DI1.1, DI5.2, DO2.2, DO3.10 или их идентификаторы, указанные при конфигурировании соответствующих каналов);

числовые константы (например, 0; 1; 45,2; 1e-5; 1e4); обеспечивается точность при значениях от ±1х10-5 до ±1х105;

проценты открытия клапанов контуров регулирования (например, REG1, REG12, REG100 или их идентификаторы, указанные при конфигурировании);

аналоговые и логические значения выходов других алгоблоков (например, B1, BLOCK5);

выражения, заключенные в квадратные скобки (описание выражений см. в одноименном подразделе).

Признак инверсии

~ — признак инверсии входа алгоблока.

Дополнительные возможности

В пользовательской подпрограмме можно дополнительно использовать:

до 200 ячеек памяти для хранения логических значений, например, состояний физи­чес­ких выходных каналов при сбоях питания (см. описание алгоблока MEMORY) и пр.;

до 215 пользовательских таблиц (в каждой таблице до 256 ячеек) для хранения аналоговых значений, например, для изменения значения уставок и пр. (таблицы кодируются специальными словами TBL1, TBL2, ..., TBL215 или их идентификаторами, указанными при конфигурировании соответствующих таблиц) — подробное описание см. в специальном подразделе;

до 100 контуров регулирования (контура кодируются специальными словами REG1, REG2, ..., REG100 или их идентификаторами, указанными при конфигурировании соответствующих контуров регулирования) — подробное описание см. в специальном разделе;

до 31 аргумента в вызываемой подпрограмме (аргументы кодируются специальными словами ARG1, ARG2, ..., ARG31).

Группы алгоблоков

Стандартные алгоблоки Контроллера можно разбить на следующие группы:

математические алгоблоки;

функциональные алгоблоки;

логические алгоблоки;

сложные логические алгоблоки;

алгоблоки для работы с таблицами;

алгоблоки для работы с таймерами, счетчиками и временем;

алгоблоки условных/безусловных переходов и вызовов подпрограмм;

алгоблоки для определения состояния системы;

алгоблоки для работы при резервировании;

алгоблоки для работы с контурами регулирования;

алгоблоки для вывода результатов.

Детальное описание всех стандартных алгоблоков приведено в Приложении А.

См. Также

Индекс стандартных алгоблоков (английский);

Индекс стандартных алгоблоков (русский).