Таблица ПЗУ
Этот шаблон организует таблицу с заданным количеством строк и столбцов, которая хранится в ПЗУ контроллера:
Параметр Начальный адрес задает стартовый адрес расположения таблицы в ПЗУ.
Параметр Конечный адрес вычисляется автоматически на основании размера таблицы и содержащихся в нем типов данных.
Внимание!!! Используемый диапазон ПЗУ не проверяется на пересечение с адресами ПЗУ локальных переменных FBD-схемы и должен контролироваться пользователем самостоятельно.
Размерность таблицы задается параметрами Количество строк таблицы и Количество полей таблицы.
Каждое поле имеет название, которое будет идентифицировать это поле в FBD-программе, и тип данных. Порядок следования полей можно менять с помощью кнопки Вверх, которая перемещает выбранное поле на одну позицию вверх по списку.
Параметр Способ выбора строки позволяет установить способ выборки из таблицы.
Существуют два варианта:
Массив – по индексу строки
Журнал событий – по порядковому номеру события
Более подробно режимы выборки будут рассмотрены далее.
Шаблонный блок таблицы ПЗУ
Для добавления шаблона в 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 и журнал можно заново заполнять значениями.