Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Обращение к функциям

ЯЗЫК ФУНКЦИОНАЛЬНЫХ БЛОК-СХЕМ - FBD | Функции и функциональные блоки | Пример программы на языке FBD | Задания для самостоятельной работы | Нормально разомкнутый контакт | Альтернативное ответвление (Alternative branch). | Задание свойств шага | Задание действий | Объявление действий | Пример программы на языке SFC |


Читайте также:
  1. I. Обращение в сторону Каабы
  2. VIII. ВВЕДЕНИЕ В ОБРАЩЕНИЕ ЧАСТНЫХ ДЕНЕЖНЫХ ЗНАКОВ
  3. А) Обращение с врагами
  4. Аппроксимация 1s –функции электрона в атоме водорода двумя гауссовыми функциями
  5. Банкнота как разновидность кредитных денег выпускается в обращение эмиссионным банком, имеющим какое-либо обеспечение.
  6. ВТОРОЕ ОБРАЩЕНИЕ
  7. Глава 3. ОБРАЩЕНИЕ ПЕРЕГРЕТОГО СРЕДСТВА КОММУНИКАЦИИ В СВОЮ ПРОТИВОПОЛОЖНОСТЬ

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

Пример обращения к функции с одним фактическим параметром:

B:=SIN_REAL(A).

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

OUT_LIM:=LIMIT_REAL (MN:=0, IN:=IN_LIM, MX:= MAX_LIM);

В примере будет выполнено OUT_LIM=IN_LIM, если выполняется 0<IN_LIM<MAX_LIM. Если 0>IN_LIM, то IN_LIM=MIN_LIM. Если IN_LIM>MAX_LIM, то IN_LIM= MAX_LIM.

Для пояснения на рис. 5.1 приведен пример обращения к функции LIMIT_REAL в секции FBD.

 

 
 

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

В начале программы с помощью команды VAR…END_VAR должны быть объявлены все используемые в дальнейшем функциональные блоки и пользовательские функциональные блоки (EFB/DFB). Это объявление делается только один раз и применимо только для текущей секции. Если тот же самый тип EFB/DFВ должен использоваться в другой секции, он должен быть объявлен снова.

В этом объявлении каждому используемому EFB/DFB назначается уникальное имя экземпляра, которое является идентификацией функционального блока в проекте.

Пример объявления функциональных блоков:

VAR

TRIG: RS;

TIM_N1, TIM_N2: TON;

END_VAR

В примере функциональному блоку RS назначается уникальное имя экземпляра TRIG, а блоку TON имена экземпляров TIM_N1 и TIM_N2.

После объявления функциональные блоки вызываются с помощью команды, в которой следует имя экземпляра функционального блока, а затем в скобках список распределения значений фактических параметров (параметров, которые используются в программе) к входным формальным параметрам (параметрам, которые используются внутри EFB/DFВ) функциональных блоков.

Если формальному параметру не задано значение, то будет использоваться начальное значение, определенное в редакторе переменных. Если начальное значение не было определено, то будет использоваться значение, заданное по умолчанию – 0.

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

Пример вызова функциональных блоков:

TRIG (S:=START, R1:=RESET);

TIM_N1 (IN:=P_N1_N1, PT:=t#5s);

TIM_N2 (IN:=P_N2, PT:=t#1s);

В первой строке вызывается экземпляр TRIG функционального блока RS, который устанавливается в состояние лог 1 переменной START и сбрасывается переменной RESET.

Во второй строке указано, что экземпляр TIM_N1 таймера TON может запускаться переменной P_N1. Выдержка времени для этого таймера – 5с.

Во второй строке указано, что экземпляр TIM_N2 таймера TON может запускаться переменной P_N2. Выдержка времени для этого таймера – 1с.

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

Примеры обращения к выходам функциональных блоков:

(*Если START=1 и RESET=0, то переменная OUT_TRIG=1*)

START:=1;

RESET:=0;

OUT_TRIG:=TRIG.Q1;

 

(*Если RESET=1, то переменная OUT_TRIG=0*)

RESET:=1;

OUT_TRIG:=TRIG.Q1;

 


(*Если S1 и S2 = 1, то начинается выдержка времени*)

(* таймером TIM_N1 и по истечении времени 5с*)

(*переменная OUT_TIM_N1 примет значение лог. 1*)

P_N1:=S1 AND S2;

OUT_TIM_N1:= TIM_N1.Q;

 


Для пояснения на рис. 5.2 приведен пример реализации обращения к функциональным блокам в секции FBD.

 

Реализация обращения к EFB/DFB упрощается, если воспользоваться средствами редактора языка FBD. С этой целью проделайте следующие операции:

- нажмите кнопку на панели инструментов;

- в распахнувшемся окне «FFB Insertion» нажмите кнопку «Browse»;

- в окне «FFBs from Library …» нажмите кнопку «Library …»;

- в окне «Select FFB - Library …» выберите нужную библиотеку и Ok;

- в окне «FFBs from Library …» выберите нужную группу функциональных блоков и закройте окно;

- в окне «FFB Insertion» появится распечатка шаблона объявления (Declaration), вызова (Invocation) и обращения к выходам (Assign outputs) функционального блока.


Дата добавления: 2015-11-14; просмотров: 47 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Примеры использования операторов в простых инструкциях| Задания для самостоятельной работы

mybiblioteka.su - 2015-2024 год. (0.006 сек.)