Описание библиотеки OSCAT

Прямой доступ к памяти

Названия модулей, изменяющих значения своих входных переменных с помощью указателей (например, _ARRAY_SORT), начинаются с символа нижнего подчеркивания («_»). Функция _ARRAY_SORT сортирует массив с помощью прямого доступа к памяти, что является очень эффективным решением, поскольку позволяет обойтись без промежуточных массивов (и, соответственно, сэкономить память), а также уменьшить время сортировки (т.к. не потребуется копировать данные из входного массива в промежуточные). Тем не менее, данные модули должны использоваться только опытными специалистами, поскольку их некорректный вызов может привести к серьезным ошибкам (вплоть до прекращения работы приложения). В частности, при вызове таких функций необходимо делать проверку на то, что значения указателей не являются нулевыми или неопределенными.

Названия модулей

Модули, названия которых начинаются с префикса FT_, подразумевают использование на некотором отрезке времени (например, ФБ FT_AVG вычисляет среднее значение переменной по заданному количеству срезов, и его однократный вызов не приведет к желаемому результату).

Модули, названия которых начинаются с префикса F_, подразумевают однократный вызов (например, функция F_LIN возвращает значение линейной функции с заданными коэффициентами, и ее вызов имеет смысл только в том случае, если значение одной из входных переменных изменилось).

Примечание
Данное соглашение распространяется на модули из раздела Арифметические функции и Регуляторы.
Параметры модулей

Чтобы облегчить процесс разработки и упростить работу со сложными функциями, многие модули библиотеки OSCAT имеют параметры. Параметры представляют переменные класса VAR_INPUT CONSTANT, которые задаются при вызове модуля и не могут изменить свои значения в процессе его работы.

На языке ST значения параметров задаются непосредственно при вызове модуля:

Пример вызова модуля с параметрами:

OSCAT_BASIC.SCHEDULER_0(T := tT1, T3 := T#200MS);
Отчеты о событиях и ошибках (ESR)

Модули, выполняющие сложные функции, обычно имеют выход Error, который используется для сигнализации о возникших ошибках. Значение 0 соответствует нормальной работе модуля. При возникновении ошибок выход принимает значение из диапазона 1...99 – это значение соответствует коду ошибки. Расшифровка кодов приводится в описании соответствующего модуля.

Выход Status выполняет аналогичную функцию, но содержит коды не ошибок, а состояний модуля (например, включен/остановлен/выключен). Диапазон кодов состояний: 100…199. Диапазон 200…255 зарезервирован для отладочных сообщений.

ESR-модули позволяют собирать информацию об ошибках и состояниях с метками времени, которая при необходимости может быть сохранена в архив или передана на верхний уровень АСУ (реализация архивации и передачи должны быть выполнена пользователем). Это позволяет с помощью стандартных возможностей библиотеки вести аварийные и оперативные журналы, не используя дополнительный функционал системы. Описание ESR-модулей приведено в разделе специальные функции.

Библиотека OSCAT содержит: