Типы программных модулей


Подпрограммы связываются с их родительскими программами деревом иерархии (рисунок 1).

 
 

Рисунок 1 – Дерево иерархии проекта ISaGRAF

В системе ISaGRAF могут быть объявлены программные модули следующих типов:

1) функции;

2) функциональные блоки;

3) подпрограммы;

4) подпрограммы-потомки языка SFC.

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

Например, оператор языка ST

I:=5*F(X);

вызывает функцию F с аргументом Х, умножает возвращаемое значение на 5 и присваивает результат переменной I.

 

В системе ISaGRAF программы верхнего уровня иерархии (modul1, modul2) называются родительскими программами. Подпрограмма, функции и функциональные блоки выполняются из своей родительской программы. Выполнение родительской программы приостанавливается до завершения подпрограммы или функции.

Рисунок 2 – Порядок исполнения программных модулей

 
 

Подпрограммы и функции отличаются областью видимости. Например, подпрограмму kub можно вызвать из основной программы modul1, но нельзя из основной программы modul2. Подпрограмму второго уровня level2 можно вызвать только из подпрограммы первого уровня prev. Функции и функциональные блоки могут быть вызваны из любой программы и подпрограммы любого раздела только текущего проекта.

Примечание: Для того, чтобы предоставить функции и функциональные блоки в использование другим проектам, необходимо использовать библиотеки (Library) ISaGRAF, описанные в разделе 2.

Функции, функциональные блоки, подпрограммы во всех секциях пишутся на всех языках за исключением SFC. Для написания подпрограмм‑потомков в секции sequential используется только язык SFC.

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

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

Родительская программа и программа-потомок должны быть описаны на языке SFC. Программы на языке SFC соединяются вместе в основное иерархическое дерево на базе “родственных” отношений “предок-потомок”.

Каждая программа на языке SFC может управлять (запускать, уничтожать и т.д.) другими программами на языке SFC. Такие программы называются дочерними программами для программы на языке SFC, которая ими управляет.

 

Когда родительская программа запускает программу-потомка, она активизирует каждый начальный шаг программы-потомка. Когда родительская программа завершает выполнение программы-потомка, она деактивизирует все активные шаги.

Основные правила иерархической структуры:

· Родительская программы на языке SFC активизируются системой ISaGRAF при запуске прикладной программы.

· Программа может иметь несколько дочерних программ.

· Дочерняя программа не может иметь более одного родителя.

· Дочерней программой управляет только её родительская программа.

· Родительская программа не может управлять дочерней программой одной из своих дочерних программ.



Дата добавления: 2020-08-31; просмотров: 472;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.