Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка Индивидуальное задание.doc
Скачиваний:
77
Добавлен:
10.06.2015
Размер:
704.51 Кб
Скачать

Вызов функций из программы на языке st

Функции могут участвовать в выражениях. Операнд или операнды функции указываются в скобках при вызове функции:

Y := 10.0*INT_TO_REAL(X)+6.5+SIN_REAL(Z);

Несколько операндов указываются через запятую.

Z := LIMIT_REAL (0.0, Y, 100.0 );

Стандарт IEC61131-3 требует указывать имена входных переменных, которым передаются фактические значения переменных при вызове функции.Conceptпозволяет не указывать имена входных переменных. В этом случае фактические значения переменных должны передаваться в том же порядке, в котором они указаны в описании функции. Возможные варианты вызова функцииLIMIT_REALиллюстрируют описанную ситуацию.

Z := LIMIT_REAL (0.0, Y, 100.0 );

Z := LIMIT_REAL (MN := 0.0, IN := Y, MX := 100.0 );

Z := LIMIT_REAL (IN := Y, MN := 0.0, MX := 100.0 );

Если при вызове функции не передается ни один параметр, при вызове функции указываются пустые скобки:

MS := FREERUN ();

Вызов функциональных блоков из программы на языке st

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

  1. В разделе описаний секции должен быть описан объект соответствующего типа.

  2. В теле программы нужно выполнить вызов объекта с указанием значений или переменных, подаваемых на вход функционального блока.

  3. Присвоить значения с выходов объекта переменным проекта.

Все описанные действия могут быть выполнены с помощью специального интерфейса пакета Conceptv.2.5 для добавления в секцию вызова функционального блока.

Пример

В секцию на языке STнужно добавить вызов функционального блока, реализующего таймер задержки выключения.

  1. Выбор функционального блока из библиотеки функциональных блоков

Находясь в редакторе языка STнужно щёлкнуть по кнопкена панели управляющих кнопок или выполнить командуInsert FFB (Добавить функцию/функциональный блок) из менюObjects(Объекты). При этом на экран будет вызвано окноFBB Insertion (Добавление функции/функцио­нального блока). Нажатие на кнопкуBrowse(Просмотр) приводит к вызову списка функций и функциональных блоков пакетаConcept. С его помощью можно выбрать необходимый функциональный блок или функцию. В нашем случае это функциональный блокTOFиз группыTimer(рис. 11). После выбора функционального блока окно со списком можно закрыть.

Рис. 11. Окно FFB Insertion

  1. Ввод имени объекта типа TOF

В поле FFBокнаFFB Insertionавтоматически формируются фрагменты исходного кода программы на языкеSTдля копирования соответствующих фрагментов в раздел описания (Declaration), в раздел исполнения при вызове объекта (Invocation) и при обращении к выходам объекта (Assigment(s)). Пользователь может задать имя объекта в полеInstance Nameи оно будет автоматически подставлено во все фрагменты кода.

  1. Раздел описаний

Раздел описаний секции программы на языке STзаключается в структурные скобкиVAR … END_VAR. Здесь перечисляются все объекты, использующиеся в секции с указанием типа объекта. Скопировать описание объекта из окнаFBB Insertion можно либо воспользовавшись стандартными средствамиWindows, либо установив курсор на нужную позицию и нажав кнопкуDeclarationв окнеFBB Insertion.

  1. Вызов объекта

Вызов объекта может выполняться в любом месте программы. По синтаксису вызов объекта напоминает вызов процедуры на языке Pascal. В скобках при вызове указываются значения всех входов блока.

  1. Обращение к выходам объекта

Обращение к выходам объекта может также осуществляться в любом месте программы, однако рекомендуется располагать обращение после вызова объекта. В противном случае при обращении выходам объекта будут возвращены значения, рассчитанные во время последнего вызова объекта на предыдущем цикле исполнения программы. Не обязательно «использовать» все выходы объекта, можно остановиться на использовании только тех выходов, которые необходимы.

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

VAR T1 : TOF; AT %QX1 : BOOL; AT %IX1 : BOOL; END_VAR T1 (IN := %IX1, PT := t#3s750ms); %QX1 := T1.Q;