Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Votaykov

.pdf
Скачиваний:
11
Добавлен:
16.03.2015
Размер:
472.48 Кб
Скачать

здесь [] – означает необязательный параметр, | – выбор одного из параметров. Кроме того, символ «/» не может использоваться с другими параметрами (т.е. можно написать /n или n(s), но не /n(s), где n – булевская переменная). Теперь рассмотрим назначение каждого параметра. N – означает, что булевской переменной присваивается сигнал активности шага (при входе в шаг – true, на выходе – false), тот же эффект вызывает отсутствие параметров. R (RESET) – сбросить значение переменной в false. S (SET) – установить значение переменной в true. Косая черта «/» – присвоить переменной отрицание сигнала активности шага (при входе в шаг – false, на выходе – true).

Следующая группа операторов – импульсные и не сохраняемые действия. Общий синтаксис этой группы операторов следующий:

ACTION (модификатор): <тело действия>;

END_ACTION;

где «тело действия» – операторы на языке ST или IL (см. соглашения об оформлении операторов IL выше);

модификатор – один из четырех модификаторов, определяющий способ активации действия. Обратите внимание на знак двоеточия после закрывающей скобки в строкеACTION. Он поставлен не случайно – таков синтаксис этих операторов.

Рассмотрим модификаторы, которые могут использоваться в этих операторах:

P или P1 – операторы тела действия выполняются один раз при активации

шага.

P2 – операторы тела действия выполняются один раз в момент деактивации шага.

N – операторы тела действия выполняются каждый цикл все время активации шага.

В качестве иллюстрации работы модификаторов можно воспользоваться рис. 0.11.

30

цикл

t

шаг

t

P (P1)

t

P0

t

N

t

Рис. 0.11

Наконец, третья группа операторов связана с понятием дочерней программы. Дело в том, что программы SFC могут образовывать иерархическую структуру. То есть одна программа может быть дочерней по отношению к другой. Основные правила при этом заключаются в том, что дочерняя программа может быть вызвана непосредственно своей родительской программой и только ей. Дочерняя программа может быть вызвана только непосредственным родителем. Родительская и дочерняя программа выполняются параллельно. При этом родительская программа может запустить дочернюю, «убить», заморозить и перезапустить. Запуск, остановка (убийство),

заморозка и перезапуск дочерних программ осуществляются следующими операторами языка ST, соответственно, GSTART, GKILL, GFREEZE, GRST. Более подробно об иерархии программ SFC и ее принципах см. во встроенной справке ISaGRAF.

Кроме указанных операторов языка ST для работы с дочерними программами существует несколько конструкций непосредственно в текстовом расширении SFC, которые и относятся к третьей группе операторов. Общий синтаксис:

<дочерняя программа> [(N|R|S)]

31

здесь <дочерняя программа> – имя дочерней программы,

N (или отсутствие параметров) – запустить дочернюю программу в момент активации шага и «убить» в момент деактивации;

S – запустить дочернюю программу, когда шаг становится активным,

ничего не делать в момент деактивации шага;

R – убить дочернюю программу, когда шаг становиться активным, ничего не делать в момент деактивации шага.

Но кроме шагов в программе SFC есть также переходы, и к этим переходам могут быть присоединены условия, истинность которых определяет проходимость перехода. На эти условия накладывается ряд соглашений. Во-

первых, условие может определяться операторами языков ST, IL или LD. Во-

вторых, каждый язык накладывает свои ограничения:

oязык ST: в качестве условия используется любое выражение языка ST, имеющее логический тип (a<>b, not b, b, fn(5) и т.п.) и заканчивающееся точкой

сзапятой;

oязык IL: этот язык используется при описании выражений в переходах согласно следующему синтаксису:

#info=IL

«инструкция» «инструкция»

значение текущего результата (регистр IL) определяет условие, присоединенное к переходу: IL=0 – условие false, IL<>0 – условие true;

oязык LD: диаграмма языка LD состоит из штанги с витком. Значение

витка представляет условие перехода.

Таким образом, мы рассмотрели основные понятия языка последовательных функциональных схем SFC. Для получения более подробной информации можно обратиться к встроенной справке ISaGRAF.

Язык потоковых диаграмм (Flow Chart – FC)

32

Как уже упоминалось, кроме 5 стандартных языков PLC система ISaGRAF поддерживает так называемый язык потоковых диаграмм FC (Flow Chart). Концепции этого языка сходны с концепциями SFC, но это абсолютно другой язык со своей уникальной динамикой работы и своим подходом к программированию. Сходность FC и SFC позволяет построить следующее повествование в ключе сравнения двух языков.

Потоковая диаграмма состоит из действий и тестов, что роднит ее с диаграммой SFC. Между ними находятся ориентированные связи, которые представляют собой потоки данных. Как и в SFC действия и тесты определяются другими языками (ST, IL, LD).

Рассмотрим основные объекты диаграммы FC.

1.Начало и конец схемы изображаются прямоугольниками со скругленными углами и соответствующими надписями внутри (begin и end),

ипредназначены соответственно для обозначения начала и конца программы. Символ «начало» уникален в пределах диаграммы и является обязательным. Это также является отличием от SFC, в котором начальных шагов может быть несколько в пределах одной диаграммы. Аналогично символ «конец» уникален

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

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

3.Действия представляются прямоугольниками с номером и именем, написанным внутри (рис. 0.12).

NNN: Имя

Рис. 0.12

33

К номеру и имени действия предъявляются следующие требования: два разных объекта одной схемы не могут иметь одно и то же имя или логический номер.

4. Наконец, тесты позволяют производить переход на одну из двух ветвей выполнения программы в зависимости от выполнения условия, присоединенного к тесту. Тест имеет два выхода «Да» (yes) и «Нет» (No). Если условие теста выполняется (True или не 0), то программа продолжает работу по ветви «Да». Если условие не выполняется (False или 0) – «Нет». Тест всегда должен иметь входную связь и обе выходные связи. Символ, которым изображается тест, представлен на рис. 0.13.

NN: имя

Рис. 0.13

Кроме основных объектов диаграммы имеется также несколько дополнительных: вызов подпрограммы, операция ввода-вывода, соединитель и комментарий.

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

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

34

чтобы визуально выделить непереносимые части программы, облегчив тем самым ее читаемость, никакого другого смысла в их использовании нет. На рис. 0.14 представлен символ операции ввода–вывода.

NN: имя

Рис. 0.14

Соединитель изображается кружком и предназначен для передачи управления в любую точку FC программы без непосредственной прорисовки связи. Объект, на который передается управление, идентифицируется именем и номером. Номер указывается внутри круга, а имя – справа от него. Соединитель представлен на рис. 0.15.

NN имя

Рис. 0.15

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

Итак, мы рассмотрели все объекты языка FC. Необходимо также отметить, что динамика выполнения программы FC во многом отличается от динамики выполнения программы SFC. Так шаги на SFC повторяются все время их активации. В программе FC действие занимает один цикл, и команды в нем выполняются только один раз, поэтому в FC отсутствуют аналоги импульсных действий SFC. Вообще, FC программа выполняется следующим образом:

1)«начало» и «конец» занимают по одному целевому циклу на каждого. После достижения символа «конец» выполнение программы прекращается;

2)действие занимает один целевой цикл.

35

Здесь под словами «занимает один целевой цикл» следует понимать, это не значит, что одно действие занимает все время целевого цикла. Это означает, что в течение целевого цикла команды, описывающие действие («начало», «конец») выполняются только один раз, после чего выполнение FC программы до следующего цикла.

Т.о. на этом можно закончить описание языка FC и программирования в системе ISaGRAF. Читатели, которым не достаточно предоставленной в данном пособии информации, могут обратиться к встроенной справке ISaGRAF.

Контрольные вопросы и задания к главе

1.Перечислите основные общие объекты ISaGRAF.

2.Какие типы поддерживает ISaGRAF?

3.В чем состоит различие между локальными и глобальными переменными? между внутренними и внешними?

4.Перечислите правила написания констант различного типа.

5.Для чего предназначены макроопределения?

6.Перечислите основные операторы языка структурного текста ST.

7.Что такое подпрограммы (функции)? Для чего они предназначены? Каким образом происходит обращение к функции? В чем заключается особенность использования локальных переменных в функциях ISaGRAF?

8.Что такое функциональные блоки? Опишите принцип работы с отдельными экземплярами функциональных блоков. Каким образом отдельные функциональные блоки работают с локальными переменными?

9.Опишите разницу между функциями и функциональными блоками.

10.Опишите синтаксис оператора IF языка ST. То же самое сделайте для оператора CASE.

11.Какая особенность реализации ISaGRAF делает использование язык IL неоправданным?

12.Опишите общий синтаксис операторов языка IL.

13.Перечислите и кратко объясните принцип работы модификаторов языка IL.

36

14.Опишите основную структуру диаграммы языка FBD.

15.Каким образом изображаются блоки, связи, переменные на диаграмме FBD?

16.Составьте краткую программу на FBD и перечислите объекты, которые использованы на этой диаграмме. Попробуйте проанализировать принцип работы программы, составив пути следования значений входных переменных (Например, значение входной переменной а поступает на вход функционального блока b, выход блока b поступает на вход блока с и т.д.).

17.Для чего предназначен язык LD?

18.Перечислите и кратко опишите основные объекты языка LD.

19.Каким образом изображаются на диаграмме LD основные объекты?

20.Попробуйте составить краткую программу на LD, указать на ней основные объекты и проанализировать работу программы по аналогии с тем, как это описано в вопросе 16.

21.Каким образом выполняются программы на языке SFC?

22.Перечислите основные объекты SFC диаграммы и кратко их опишите? Как эти объекты изображаются на диаграмме?

23.Какие операторы используются для описания второго уровня SFC диаграммы?

24.Опишите основные объекты языка FC. Как они изображаются на диаграмме?

25.Чем отличается принцип выполнения программ на языке FC от принципа выполнения программ на языке SFC?

4.РАБОТА В СРЕДЕ ISAGRAF

Работа с проектами ISaGRAF

Модуль управления проектами ISaGRAF (Менеджер проектов – Project Manager) является основным модулем, из которого непосредственно или посредством возможностей других модулей вызываются остальные части системы. Чтобы запустить менеджер проектов, найдите иконку Projects

37

(Проекты) в меню «Пуск»–«Программы»–«First ISaGRAF», либо в том месте меню, где располагается группа «First ISaGRAF». После запуска менеджера появится окно, аналогичное тому, которое изображено на рис. 0.16.

Рис. 0.16

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

Для логической организации проектов в среде ISaGRAF используется понятие группы проектов. Физически на диске проект ISaGRAF представляет собой совокупность файлов, расположенных в одной директории. Группа проектов физически представляет одну корневую директорию, в которой расположены поддиректории, соответствующие проектам, включенным в группу. В окне Менеджера проектов (рис. 0.16) отображается одна группа проектов. Для переключения между группами используется пункт меню File –> Select Project Group. После выбора этого пункта появится окно выбора группы (рис. 0.17).

Рис. 0.17

38

Вэтом окне указывается список созданных групп. После выбора группы

ищелчка на кнопке Select (Выбрать), в окне Менеджера проектов отображается список проектов выбранной группы. Также в окне Project Group можно создать новую группу с помощью кнопки New Group (Новая группа).

Кроме просмотра списка проектов и комментариев к ним, Менеджер проектов позволяет производить обычные операции создания, копирования и удаления проектов.

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

Процесс архивации/разархивации запускается через пункт меню Tools — > Archive —> Projects. После выбора этой команды появится окно архивации (рис. 0.18), состоящее из двух списков и нескольких кнопок. Кроме того, в строке Archive location (Расположение архива) можно посмотреть и с помощью кнопки Browse (Проводник) изменить положение архива на диске.

39

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]