Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
22
Добавлен:
01.05.2014
Размер:
754.69 Кб
Скачать

2.3. Пример применения fbk

В качестве практического примера рассмотрим задачу сохранения значений цифровых входов в регистрах и выдачу этих значений на цифровые выходы. Такая задача может возникнуть при необходимости программной реализации на ПЛК режима ручного управления, когда от управляющего устройства требуется только передача управляющих воздействий от пульта ручного управления на объект. С этой целью рассмотрим следующие FBK:

BTOR упаковка битов в регистр (подкаталог UTILITY)

┌────────────────┐

│ PACK BITS INTO │

│ DATA REGISTERS │

├────────────────┤

1 ──┤ ENABLE BTOR │

│ │

1 ──┤ 8BITS │

│ │

[ADR] 2 ──┤ SOURCE │

│ │

[ADR] 2 ──┤ DEST │

└────────────────┘

Вход/выход

Описание

Рекомендуемые типы адресов

ENABLE

Если ENABLE=1, то FBK будет выполняться. Если ENABLE=0, то таблица регистров, начальный адрес которой указан DEST, не изменится.

R, F, #

8BITS

Определяет число битов, пакуемых в регистры: 8BITS=0 - 16 битов в 2-байтовый регистр; 8BITS=1 - 8 битов в 1-байтовый регистр.

R, F, #

SOURCE

Начальный адрес 1-битовых переменных, пакуемых в регистры.

[ADR]F, [ADR]I, [ADR]O

DEST

Адрес хранения упакованной битовой информации. В зависимости от входа 8BITS будет использован либо 1-байтовый (8BITS=1), либо 2-байтовый (8BITS=0) регистр.

[ADR]R

RTOB распаковка регистра в биты (подкаталог UTILITY)

┌──────────────────┐

│ UNPACK DATA │

│ REGISTERS TO BIT │

├──────────────────┤

1 ──┤ ENABLE RTOB │

│ │

1 ──┤ 8BITS │

│ │

[ADR] 2 ──┤ SOURCE │

│ │

[ADR] 2 ──┤ DEST │

└──────────────────┘

Вход/выход

Описание

Рекомендуемые типы адресов

ENABLE

Если ENABLE=1, то FBK будет выполняться. Если ENABLE=0, то массив, определенный начальным адресом DEST, не изменится.

R, F, #

8BITS

Определяет число распаковываемых битов:

8BITS=0 - 2-байтовый регистр в 16 битов;

8BITS=1 - 1-байтовый регистр в 8 битов.

R, F, #

SOURCE

Начальный адрес хранения распаковываемой информации. Значение входа 8BITS определяет длину регистра:1 или 2 байта.

[ADR] R

DEST

Начальный адрес 1-битовых переменных, в которые производится распаковка.

[ADR] F,

[ADR] I

[ADR] O

Следует сделать несколько замечаний о входе ENABLE. Он присутствует во всех стандартных FBK и выполняет одну и ту же функцию: разрешение/запрещение выполнения FBK в данном программном цикле. В связи с этим существуют следующие основные способы его применения:

  1. Уменьшение времени цикла программы. Когда нет необходимости в выполнении какого-либо FBK в каждом программном цикле, целесообразно использовать ENABLE для управляемого отключения функционального блока.

  1. Создание модулей начальной (стартовой) инициализации. Для этой цели используется так называемый флажок первого сканирования (T D64). Он автоматически устанавливается операционной системой равным 1 в начале первого цикла программы и сбрасывается в 0 при его завершении. После этого он сохраняет нулевое значение непрерывно до перезагрузки ПЛК. Таким образом, флажок первого сканирования может быть подан на ENABLE тех FBK, которые необходимо выполнить только один раз, в ходе первого цикла программы.

Необходимо также иметь в виду, что стандартные FBK используют регистры R 0863 - R 0889 в качестве памяти временного хранения. Из этого вытекают ограничения на использование этих регистров в пользовательских программах - их можно использовать лишь для временного хранения данных, причем во время хранения не должно совершаться ни одного обращения к FBK.

Приведенных выше сведений достаточно для составления LAD-диаграммы:

00 ┌────────────────┐

│ │ PACK BITS INTO │

│ │ DATA REGISTERS │

│ #00001 ├────────────────┤

01──┤ ├─────────┤ ENABLE BTOR │

│ │ │

│ │ │

│ #00000 │ │

02──┤ ├─────────┤ 8BITS │

│ │ │

│ │ │

│ I 060 │ │

03 [ADR ├─────┤ SOURCE │

│ │ │

│ │ │

│ R 2000 │ │

04 [ADR ├─────┤ DEST │

│ └────────────────┘

05 ┌──────────────────┐

│ │ UNPACK DATA │

│ │ REGISTERS TO BIT │

│ #00001 ├──────────────────┤

06───┤ ├────────┤ ENABLE RTOB │

│ │ │

│ │ │

│ #00001 │ │

07───┤ ├────────┤ 8BITS │

│ │ │

│ │ │

│ R 2000 │ │

08 [ADR ├─────┤ SOURCE │

│ │ │

│ │ │

│ O 070 │ │

09 [ADR ├─────┤ DEST │

│ └──────────────────┘

Для выполнения настоящей лабораторной работы потребуются следующие модули:

BCDU Преобразование двоичных данных в двоично-десятичный формат (подкаталог UTILITY)

┌────────────────┐

│ CONVERT BINARY │

│ TO BCD │

├────────────────┤

1 ──┤ ENABLE BCDU │

│ │

1 ──┤ #DIG ERROR ├── 1

│ │

1 ──┤ LENGTH OVFL ├── 1

│ │

[ADR] 2 ──┤ SOURCE #POI ├── 1

│ │

[ADR] 2 ──┤ DEST │

└────────────────┘

Вход/выход

Описание

Рекомендуемые типы адресов

ENABLE

Если ENABLE=1, то FBK будет выполняться.

R, F, #

#DIG

Указывает число ДКД разрядов (от 1 до 4)

#

LENGTH

Определяет число преобразуемых двоичных значений (от 1 до 16)

#

SOURCE

Начальный адрес таблицы регистров, содержащей преобразуемые двоичные значения. Длина таблицы зависит от #DIG и LENGTH

[ADR] R

DEST

Начальный адрес таблицы регистров, хранящих преобразованные в ДКД формат числа.

[ADR] R

ERROR

Выход равен 1, если один из входов неверно определен или не подсоединен.

R, F

OVFL

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

#DIG Макс. Значение

1 9

2 99

3 999

4 9999

R, F

#POI

При возникновении переполнения на этом выходе указывается номер соответствующего двоичного значения. Если переполнение имеет место для нескольких двоичных значений, то на этом выходе указывается номер последнего преобразованного двоичного значения, которое привело к переполнению

R

LD## Загрузка константы в регистр (подкаталог UTILITY)

┌────────────────┐

│ LOAD REGISTER │

│ WITH CONSTANT │

├────────────────┤

1 ──┤ ENABLE LD## │

│ │

1 ──┤ 8BITS │

│ │

1 ──┤ LENGTH │

│ │

2 ──┤ VALUE │

│ │

[ADR] 2 ──┤ DEST │

└────────────────┘

Вход/выход

Описание

Рекомендуемые типы адресов

ENABLE

Если ENABLE=1, то FBK будет выполняться. Если ENABLE=0, то массив с начальным адресом DEST не изменится

R, F, I

8BITS

Указывает формат массива:

8BITS=0 - 2-байтовый формат

8BITS=1 - 1-байтовый формат

#, R

LENGTH

Определяет число записей в массиве (от 1 до 32).

#

VALUE

Значение, которое необходимо записать в массив.

#, R

DEST

Начальный адрес таблицы регистров. Конечный адрес зависит от LENGTH и 8BITS

[ADR] R

Соседние файлы в папке Лабораторные работы