Обозначение


Описание

Блок служит для хранения архива сообщения в виде файла на диске. В качестве диска используется RAM или CMOS – диски с батарейкой. В нем регистрируются события, которые определяются блоком Текстовое сообщение архива, подсоединном к входам bi. События регистрируются вместе с датой и временем.

Вместе с сообщениями в файле можно регистрировать значения аналоговых параметров. Для этого их надо объединить в Массив (вход md). Тогда при возникновении какого-нибудь сообщения к нему в файле приписываются текущие значения этих параметров.

Файл архива (путь и имя файла задается на входе fmn) организован как циклический буфер, в нем хранится всегда не больше сообщений, чем задано при инициализации на входе max. Когда достигается конец файла, сообщения начинают писаться с начала.

Блок обеспечивает просмотр архива оператором на операторской панели: входы curr, up и down управляют просмотром, определяя какие сообщения выводятся на выходах.

Назначение входов и выходов

ВходыТипОписание
fmnstrпуть к файлу архива
maxl32максимальное число сообщений, хранящихся в файле
numintчисло сообщений одновременно считываемых для отображения (шаг экрана). Это число должно быть равно количеству выходов si
langb
currbсигнал на выдачу на выходы si последнего сообщения и (num-1) предыдущих
upbкоманда пролистать на num предыдущих сообщений
downbкоманда пролистать на num последующих сообщений
mdmd1связь с блоком Массив, который содержит параметры для записи вместе с сообщениями. Если этого не требуется, вход не задействуется
bimsgвход для связи с блоком Текстовое сообщение архива. Блок Архива сохраняет и обрабатывает сообщения, которые находятся в подсоединенных блоках сообщений
ВыходыТипОписание
crunsтекущий номер сообщения для отображения
arunsобщее число сообщений
sistrтекст сообщения для отображения. Количество данных выходов должно быть равно значению на входе num. Текущие сообщения для отображения выбираются входами curr, up, down

Инициализация

  1. На этапе инициализации проверяется наличие по указанному пути файла архива.
  2. Если файл не найден создается новый файл архива.
  3. Файл сразу же формируется на максимальное число записей.
  4. Длина файла определяется по следующей формуле:
    6 * max + 4 * кол-во_переменных_для_регистрации
  5. Если места по указанному пути нет, то этап инициализации завершается с сообщением об ошибке.
  6. Если файл существовал, то определяется местонахождение текущей записи.
Важно!
1. Если места по указанному пути нет, то этап инициализации завершается с сообщением об ошибке.
2. Если файл существовал, то определяется местонахождение текущей записи.

Алгоритм

Блок обрабатывает запросы двух типов:
  1. Регистрация сообщения
  2. Выдача сообщений для просмотра
Примечание:
При регистрации сообщений с номером большим, чем зарезервированное максимальное количество, затирается самое старое сообщение.

Ссылки