Главная Обратная связь

Дисциплины:






Использование выхода функционального блока и блока DFB



Выходы FB/DFB могут всегда использоваться, если переменная (доступная только для чтения) также может использоваться.

Пример использования выхода функционального блока и блока DFB приведен на рисунке 9.8.

Рисунок 9.8 – Использование выхода функционального блока

Пример на рисунке 9.9 показывает, объявление и вызов функционального блока на языках IL и FBD.

Рисунок 9.9 – Объявление и вызов функционального блока на языках IL и FBD

Обращения к функциям.Чтобы найти имена доступных функций, следует обратиться к библиотекам блоков.

Функции вызываются списком команд, состоящим из первого фактического параметра, загруженного в аккумулятор, и имени функции. В случае необходимости этот список сопровождается списком дополнительных фактических параметров. Важную роль играет порядок распечатки формальных параметров в обращении к функции. Список фактических параметров может иметь конец строки сразу же после запятой. После выполнения функции ре­зультат функции сохраняется в аккумуляторе и в операнде с по­мощью оператора ST или используется для прямой дальнейшей обработки.

Пример обращения к функции с фактическим параметром при­веден на рисунке 9.10, а пример обращения к функции с несколькими фактическими параметрами – на рисунке 9.11.

Рисунок 9.10 – Обращения к функции с фактическим параметром

Рисунок 9.11 – Обращения к функции с несколькими фактическими параметрами

Функция может также вызываться списком команд, состоя­щим из первого фактического параметра, загруженного в аккумулятор, и имени функции. Этот список сопровождается спи­ском присвоения значений фактических параметров формаль­ным параметрам. Порядок распечатки формальных параметров в этом случае не имеет значения. Однако фактический параметр, загруженный с помощью оператора LD, продолжает быть первым параметром функции.

Пример обращения к функции с несколькими фактическими параметрами приведен на рисунке 9.12.

Рисунок 9.12 – Обращение к функции с несколькими фактическим параметрами

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

Пример обращения к функ­ции с обработкой значения ак­кумулятора:

LIMIT_REAL B,C

ST result

Если обработка результата должна продолжиться немедленно, команда сохранения может быть опущена.

Пример обращения к функции с прямой непрерывной обработкой результата:

LD A

LIMIT_REAL B,C

MUL E

Пример объявления и обращения к функции на языках IL и FBD приведен на рисунке 9.13

Рисунок 9.13 – Объявление и обращение к функциям на языках IL и FBD

Комментарии. В IL-редакторе комментарии начинаются с символьной цепочки «(* и заканчиваются символьной цепочкой *)». Любой комментарий может быть введен между этими двумя символьными цепочками. Комментарии отображаются в цвете.



Согласно стандарту комментарии позволяются только в конце строки. Стандарт не разрешает также вложение комментариев.

Проверка синтаксиса и генерация объектного кода. Генерация объектного кода будет выполнятся вместе с проверкой синтаксиса, когда секция закрывается. Любые найденные ошибки затем отображаются в окне сообщений.

Оптимизация кода во время выполнения программы достигается реализацией арифметики целого числа (например «+» или «-») через простые команды процессора вместо вызовов блоков EFB. Команды процессора выполняются намного быстрее, чем вызов блоков EFB, но они не генерируют сообщения об ошибках типа переполнения арифметики или массива. Эта опция должна использоваться, только если есть уверенность, что не имеется никаких арифметических ошибок в программе.

Пример самого быстрого кода:

LD in1

ADD 1

ST out1

Опция Fastest code (restricted checking). (Project → Code generation options). Если выбрать эту опцию, сложение in1+1 будет выполняться командой процессора add. В этом случае код выполняется быстрее, чем при вызове блока EFB ADD_INT. Однако ошибка во время выполнения программы не будет сгенерирована, если in1 есть 32767. В этом случае разрядная сетка переменной out1 переполняется из 32767 в – 32768!

Опция Unassigned parameters cause warnings. (Option → Preferences → Analysis). Стандарт разрешает вызывать функции и функциональные блоки без распределения всех входных параметров. Этим неиспользуемым параметрам неявно присваивается 0 или они сохраняют значение из последнего вызова (только функциональные блоки).

Активизация флажка опции отобразит список неиспользуемых параметров в окне сообщения во время генерации объектного кода.

Опция Enable Loop Control. (Project → Code generation options) При активизации флажка осуществляется проверка внутри IL- и ST-секций для контуров, чтобы определить, можно ли эти контуры покинуть снова внутри некоторого периода времени. Разрешенное время для контуров зависит от определенного времени сторожа (Watchdog time). Разрешенное время всегда немного меньше, чем время сторожа. Использование этой опции предотвратит зацикливание программы на воспроизведение контура (бесконечный контур). Если бесконечный контур обнаруживается, обработка вызванной секции завершается и обрабатывается сразу следующая секция. Последующее сканирование обработает секцию снова, пока бесконечный контур не будет обнаружен или пока секция правильно не завершится.

Интерактивные функции. Редакторы языков IL и ST делают доступными три режима анимации:

· анимацию двоичных переменных;

· анимацию выбранных переменных;

· создание контролируемых полей.

Анимация прямых адресов и прямых входов/выходов блоков FB невозможна.

Анимация двоичных переменных. Анимация двоичных значений активизируется командой меню Online → Animate binary values. Этот режим отображает текущее сигнальное состояние двоичных переменных в окне редактора:

· переменная красного цвета имеет значение 0;

· переменная зеленого цвета имеет значение 1;

· переменная желтого цвета – не двоичная переменная.

Анимация выбранных переменных. Диалоговое окно, которое отображает текущие сигнальные состояния выбранных переменных, активизируется командой меню Online → Animate Selected. Для анимации выбранных переменных секция должна быть анимирована. Иначе следует активизировать анимацию с помощью команды Online → Animate binary values.

Выбираемые переменные и многоэлементные переменные идентифицируются в буквенном обозначении:

· переменная красного цвета имеет значение 0;

· переменная зеленого цвета имеет значение 1;

· переменная желтого цвета – не двоичная переменная.

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

Диалоговое окно остается открытым, пока не будет закрыто или анимация не будет завершена. Если открывается несколько секций текстовых языков и в них вызывается диалоговое окно, то оно может быть открыто для каждой секции. Имя секции отображается в названии диалогового окна.

Несколько переменных или многоэлементных переменных могут быть вставлены в диалоговое окно. Для этого следует выбрать соответственно желаемые переменные или многоэлементные переменные и принять их с помощью команды Online → Animate Selected в диалоговое окно.

Пример 9.1. Согласно условиям примера 7.1 реализовать решение задачи на языке IL.

Решение на языке IL представлено ниже

VAR

FBI_1_1 : RS;

FBI_1_2 : RS;

FBI_1_3 : TON;

END_VAR

 

LD vu

ST FBI_1_1.S

LD td

ST FBI_1_1.R1

CAL FBI_1_1

 

LD FBI_1_1.Q1

ST FBI_1_3.IN

LD t#3s

ST FBI_1_3.PT

CAL FBI_1_3

 

LD FBI_1_3.Q

ST td

 

LD FBI_1_3.Q

ST FBI_1_2.S

LD nu

STN FBI_1_2.R1

CAL FBI_1_2

 

LD FBI_1_2.Q1

ST zd

На рисунке 9.14 представлено окно редактор переменных.

 

Рисунок 9.14 – Окно редактора переменных





sdamzavas.net - 2020 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...