Обозначение

Описание
Блок служит для хранения архива сообщения в виде файла на диске. В
качестве диска используется RAM или CMOS – диски с батарейкой. В нем
регистрируются события, которые определяются блоком Текстовое сообщение архива, подсоединном
к входам bi.
События регистрируются вместе с датой и временем.
Вместе с сообщениями в файле можно регистрировать значения аналоговых параметров. Для этого их надо объединить в Массив (вход md). Тогда при возникновении какого-нибудь сообщения к нему в файле приписываются текущие значения этих параметров.
Файл архива (путь и имя файла задается на входе fmn) организован как циклический буфер, в нем хранится всегда не больше сообщений, чем задано при инициализации на входе max. Когда достигается конец файла, сообщения начинают писаться с начала.
Блок обеспечивает просмотр архива оператором на операторской панели: входы curr, up и down управляют просмотром, определяя какие сообщения выводятся на выходах.
Вместе с сообщениями в файле можно регистрировать значения аналоговых параметров. Для этого их надо объединить в Массив (вход md). Тогда при возникновении какого-нибудь сообщения к нему в файле приписываются текущие значения этих параметров.
Файл архива (путь и имя файла задается на входе fmn) организован как циклический буфер, в нем хранится всегда не больше сообщений, чем задано при инициализации на входе max. Когда достигается конец файла, сообщения начинают писаться с начала.
Блок обеспечивает просмотр архива оператором на операторской панели: входы curr, up и down управляют просмотром, определяя какие сообщения выводятся на выходах.
Назначение входов и выходов
| Входы | Тип | Описание |
| fmn | str | путь к файлу архива |
| max | l32 | максимальное число сообщений, хранящихся в файле |
| num | int | число сообщений одновременно считываемых для отображения (шаг экрана). Это число должно быть равно количеству выходов si |
| lang | b | |
| curr | b | сигнал на выдачу на выходы si последнего сообщения и (num-1) предыдущих |
| up | b | команда пролистать на num предыдущих сообщений |
| down | b | команда пролистать на num последующих сообщений |
| md | md1 | связь с блоком Массив, который содержит параметры для записи вместе с сообщениями. Если этого не требуется, вход не задействуется |
| bi | msg | вход для связи с блоком Текстовое сообщение архива. Блок Архива сохраняет и обрабатывает сообщения, которые находятся в подсоединенных блоках сообщений |
| Выходы | Тип | Описание |
| cr | uns | текущий номер сообщения для отображения |
| ar | uns | общее число сообщений |
| si | str | текст сообщения для отображения. Количество данных выходов должно быть равно значению на входе num. Текущие сообщения для отображения выбираются входами curr, up, down |
Инициализация
- На этапе инициализации проверяется наличие по указанному пути файла архива.
- Если файл не найден создается новый файл архива.
- Файл сразу же формируется на максимальное число записей.
- Длина файла определяется по следующей формуле:
6 * max + 4 * кол-во_переменных_для_регистрации
- Если места по указанному пути нет, то этап инициализации завершается с сообщением об ошибке.
- Если файл существовал, то определяется местонахождение текущей записи.
Важно!
1. Если места по указанному пути нет, то этап инициализации завершается с сообщением об ошибке.
2. Если файл существовал, то определяется местонахождение текущей записи.
1. Если места по указанному пути нет, то этап инициализации завершается с сообщением об ошибке.
2. Если файл существовал, то определяется местонахождение текущей записи.
Алгоритм
Блок обрабатывает запросы двух типов:
- Регистрация сообщения
- Выдача сообщений для просмотра
Примечание:
При регистрации сообщений с номером большим, чем зарезервированное максимальное количество, затирается самое старое сообщение.
При регистрации сообщений с номером большим, чем зарезервированное максимальное количество, затирается самое старое сообщение.