Таблица ПЗУ

Этот шаблон организует таблицу с заданным количеством строк и столбцов, которая хранится в ПЗУ контроллера:

_images/rom_table_1.png

Параметр Начальный адрес задает стартовый адрес расположения таблицы в ПЗУ.

Параметр Конечный адрес вычисляется автоматически на основании размера таблицы и содержащихся в нем типов данных.

Внимание!!! Используемый диапазон ПЗУ не проверяется на пересечение с адресами ПЗУ локальных переменных FBD-схемы и должен контролироваться пользователем самостоятельно.

Размерность таблицы задается параметрами Количество строк таблицы и Количество полей таблицы.

Каждое поле имеет название, которое будет идентифицировать это поле в FBD-программе, и тип данных. Порядок следования полей можно менять с помощью кнопки Вверх, которая перемещает выбранное поле на одну позицию вверх по списку.

Параметр Способ выбора строки позволяет установить способ выборки из таблицы.

Существуют два варианта:

  1. Массив – по индексу строки

  2. Журнал событий – по порядковому номеру события

Более подробно режимы выборки будут рассмотрены далее.

Шаблонный блок таблицы ПЗУ

Для добавления шаблона в FBD-программу необходимо перетащить его из дерева Навигатора проекта на FBD-схему. В зависимости от выбранного параметра Способ выбора строки блок будет выглядеть по-разному. Кроме того, состав входов и выходов блока меняется в зависимости от параметра Тип блока, который устанавливается в его свойствах. Этот параметр может принимать три значения: Чтение, Запись, Сброс.

Массив – по индексу строки

Запись:

_images/rom_table_2.png

Чтение:

_images/rom_table_3.png

Этот способ использует произвольную выборку и запись строк по индексу (номеру строки). Индексы начинаются с 0.

В режиме Чтение блок имеет один вход – row, на который подается номер нужной строки. Тип входа – беззнаковый целый 2-х байтовый. Значение, подаваемое на вход, должно быть меньше количества строк, указанного в настройке шаблона, т.е. в диапазоне от 0 до <кол-во строк> - 1. На логический выход err выдается сигнал в том случае, если значение, поданное на вход row выходит за допустимый предел. На остальных выходах, названия которых соответствует названиям полей, заданных в шаблоне, устанавливаются значения, взятые из соответствующей строки таблицы. Тип данных для этих выходов так же соответствует типу данных, заданному в полях шаблона.

В режиме Запись блоки также имеет вход row, указывающий номер строки. Вход en активирует запись параметров в строку таблицы. Остальные входы служат для установки значений в соответствующие поля таблицы. Выход err сигнализирует об ошибке, аналогично блоку чтения.

Журнал событий – по порядковому номеру события

Чтение:

_images/rom_table_4.png

Запись:

_images/rom_table_5.png

Сброс:

_images/rom_table_6.png

В этом режиме таблица организована в виде журнала, который хранит некоторое количество последних записей. Это количество задается параметром шаблона Количество строк таблицы. Кроме того, шаблон хранит номер последнего записываемого события.

Пример журнала:

_images/rom_table_7.png

На рисунке схематично представлен способ хранения информации. В данном примере таблица состоит из 4 строк, то есть хранит последние 4 записи журнала, от записи 4 до записи 7.

Режим Чтение журнала блока имеет один вход event, который в отличие от входа предыдущего режима, задает номер события для выборки. На выходах from и to устанавливаются номера событий начала и конца журнала, которые хранятся в ПЗУ в данный момент. Выход err сообщает об ошибке выборки события, поданного на вход event. На остальных выходах, название которых соответствует названию полей, заданных в шаблоне, устанавливаются значения, взятые из соответствующего события журнала.

У блока записи отсутствует вход, указывающий записываемый номер события, так как блок нумерует автоматически. Выходы from и to, аналогично блоку чтения, отображают диапазон событий, хранящихся в журнале. Режим сброса используется в том случае, если нужно очистить журнал. При подачи сигнала на вход en внутренний счетчик событий сбрасывается в 0 и журнал можно заново заполнять значениями.