Таблица ПЗУ¶
Этот шаблон организует таблицу с заданным количеством строк и столбцов, которая хранится в ПЗУ контроллера:
Параметр Начальный адрес
задает стартовый адрес расположения таблицы в ПЗУ.
Параметр Конечный адрес
вычисляется автоматически на основании размера таблицы и содержащихся в нем типов данных.
Внимание! Используемый диапазон ПЗУ не проверяется на пересечение с адресами ПЗУ локальных переменных FBD-схемы и должен контролироваться пользователем самостоятельно.
Размерность таблицы задается параметрами Количество строк таблицы
и Количество полей таблицы
.
Каждое поле имеет название, которое будет идентифицировать это поле в FBD-программе, и тип данных. Порядок следования полей можно менять с помощью кнопки Вверх
, которая перемещает выбранное поле на одну позицию вверх по списку.
Параметр Способ выбора строки
позволяет установить способ выборки из таблицы.
Существуют три варианта этого параметра:
- Массив – по индексу строки
- Журнал событий – по порядковому номеру события
- Поиск строки по значению 1-го поля
Более подробно режимы выборки будут рассмотрены далее.
Шаблонный блок таблицы ПЗУ
Для добавления шаблона в FBD-программу необходимо перетащить его из дерева Навигатора проекта на FBD-схему. В зависимости от выбранного параметра Способ выбора строки
блок будет выглядеть по-разному. Кроме того, состав входов и выходов блока меняется в зависимости от параметра Тип блока
, который устанавливается в его свойствах. Этот параметр может принимать три значения: Чтение
, Запись
, Сброс
.
Массив – по индексу строки
Запись:
Чтение:
Этот способ использует произвольную выборку и запись строк по индексу (номеру строки). Индексы начинаются с 0.
В режиме чтения блок имеет один вход – row
, на который подается номер нужной строки. Тип входа – беззнаковый целый 2-х байтовый
. Значение, подаваемое на вход, должно быть меньше количества строк, указанного в настройке шаблона, т.е. в диапазоне от 0 до <кол-во строк> - 1. На логический выход err
выдается сигнал в том случае, если значение, поданное на вход row
, выходит за допустимый предел. На остальных выходах, названия которых соответствует названиям полей, заданных в шаблоне, устанавливаются значения, взятые из соответствующей строки таблицы. Тип данных для этих выходов так же соответствует типу данных, заданному в полях шаблона.
В режиме записи блоки также имеет вход row
, указывающий номер строки. Вход en
активирует запись параметров в строку таблицы. Остальные входы служат для установки значений в соответствующие поля таблицы. Выход err
сигнализирует об ошибке, аналогично блоку чтения.
Журнал событий – по порядковому номеру события
Чтение:
Запись:
Сброс:
В этом режиме таблица организована в виде журнала, который хранит некоторое количество последних записей. Это количество задается параметром шаблона Количество строк таблицы
. Кроме того, шаблон хранит номер последнего записываемого события.
Пример журнала:
На рисунке схематично представлен способ хранения информации. В данном примере таблица состоит из 4 строк, то есть хранит последние 4 записи журнала, от записи 4 до записи 7.
Режим чтения журнала блока имеет один вход event
, который в отличие от входа предыдущего режима, задает номер события для выборки. На выходах from
и to
устанавливаются номера событий начала и конца журнала, которые хранятся в ПЗУ в данный момент. Выход err
сообщает об ошибке выборки события, поданного на вход event
. На остальных выходах, название которых соответствует названию полей, заданных в шаблоне, устанавливаются значения, взятые из соответствующего события журнала.
У блока записи отсутствует вход, указывающий записываемый номер события, так как блок нумерует автоматически. Выходы from
и to
, аналогично блоку чтения, отображают диапазон событий, хранящихся в журнале.
Режим сброса используется в том случае, если нужно очистить журнал. При подачи сигнала на вход en
внутренний счетчик событий сбрасывается в 0 и журнал можно заново заполнять значениями.
Поиск строки по значению 1-го поля:
Этот способ работы аналогичен журналу событий, за исключением работы блока в режиме чтения.
При выборе этого способа вход event
заменяется на вход value
. Этот вход соответствует первому полю таблицы и имеет такой же тип данных. При установке значения на этот вход блок чтения журнала выдаст на выход данные с первой найденной строкой, у которой первое поле равно этому значению. Если таковых строк не найдено, то на выходе err
будет выдан сигнал ошибки.