Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Создание проекта в среде ISaGRAF на языке SFC




ELSE

ELSE

Создание проекта в среде ISaGRAF на языке ST

Цель работы: Знакомство c языком программирования ST.

Задание на лабораторную работу: в ходе работы разработать приложение на языке ST для виртуального контроллера, реализующую вычисление арифметических и логических выражений, представленных в задании на лабораторную работу №1:

Краткие сведения о языке ST

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

ST программа - это список ST операторов. Каждый оператор заканчивается точкой с запятой (;).Основные операторы языка ST:

· оператор присвоения (variable:= expression);

· вызов подпрограммы или функции;

· вызов функционального блока;

· операторы выбора (IF, THEN, ELSE, CASE);

· итеративные операторы (FOR, WHILE, REPEAT);

· управляющие операторы (RETURN, EXIT);

· специальные операторы для связи с такими языками как SFC.

Вызов функций в ST осуществляется в соответствии со следующим синтаксисом:

<rezult>:=<function>(<par1>, <par2>,…);

где <rezult> - имя переменной, которой присваивается результат выполнения функции; < function> – имя вызываемой функции; <par1>, <par2>,… -список операндов. Например:

y:= sin(x1);

z:= real(100*x2);

Использование в ST функциональных блоков производится в соответствии со следующим синтаксисом:

< blockname > ( < p1 >, < p2 >... );

< result_1 > := < blockname >. < ret_param1 >;

...

< result_N > := < blockname >. < ret_paramN >;

где < blockname> – имя экземпляра вызываемого функционального блока (перед использованием экземпляр функционального блока должен быть определен в словаре); <result_1>, … <result_N>- переменные, которым присваиваются результаты выполнения блока; <par1>, <par2>,… -список операндов; >; < ret_param1 >, …,< ret_paramN > - выходные поля функционального блока. Например:

blink1(run, t#2s );

y:= blink1.q;

Здесь blink1 – экземпляр функционального блока blink; q – выходное поле блока blink (наименование выходных полей следует смотреть в описании функционального блока).

Оператор IF предназначен для организации ветвлений, при этом выполняются 1 или 2 списка ST-операторов. Выбор осуществляется в соответствии со значением булевского выражения. Синтаксис оператора IF имеет вид:

IF < boolean_expression > THEN

<statement >;

<statement >;

...

ELSIF <boolean_expression> THEN

<statement>;

<statement>;

...

<statement>;

<statement>;

...

END_IF;

Операторы ELSE и ELSIF - дополнительные. Если ELSE опущен и условие равно FALSE, то никаких инструкций не выполняется.

Оператор CASE выполняет один или несколько списков ST операторов, выбор осуществляется в соответствии с целым выражением. Синтаксис оператора CASE имеет вид:

CASE <integer_expression> OF

<value>: <statements>;

<value>, <value>: <statements>;

...

<statements>;

END_CASE;

Порядок выполнения работы

1. Создать новый проект.

2. Создать новую программу. При выборе языка – указать язык ST.

3. Объявить используемые переменные и объявить экземпляр функционального блока blink, например присвоить имя экземпляру blink1.

4. Отредактировать программу в соответствии с представленным ниже текстом:

y1:=(3.0*x1+2.0*x2)*x3;

y2:=NOT(z1 AND z2) OR z3;

IF x4<0.0 THEN y3:=false;

ELSIF x4>0.0 THEN y3:=true;

ELSE

blink1(x4=0.0, t#1s);

y3:= blink1.q;

END_IF;

5. Настроить конфигурацию ввода/вывода и осуществить привязку входных и выходных переменных проекта.

6. Создать код приложения.

7. Провести отладку приложения в режиме симуляции

Выполнение п.1-3, 5-7 подробно рассмотрено в лабораторной работе №1.

Контрольные задания

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

1) ,

2) ,

3) ,

4) ,

5) ,

6) ,

7) ,

8) ,

2. Разработать приложение на языке FBD реализующее звено со следующей статической характеристикой:

 

3. Разработать приложение на языке ST реализующее следующее звено:

1) Стандартный ПИ регулятор;

2) Апериодическое звено первого порядка;

3) Стандартный ПИД регулятор;

4) Апериодическое звено второго порядка;

5) Колебательное звено;

6) Интегрирующее звено;

7) Реально-дифференцирующее звено;

8) Интегро- дифференцирующее звено.

 

Лабораторная работа №4

Цель работы: Знакомство c языком программирования SFC.

Задание на лабораторную работу: в ходе работы разработать приложение на языке SFC для виртуального контроллера, реализующее нижеприведенную последовательность действий:

1. При нажатии кнопки ПУСК начать процесс, при этом открыть клапан А и загрузить компонент А в течение 10 с в емкость 1.

2. По окончании загрузки компонента А, при работающей мешалке М начать загрузку компонента В, открыв клапан В.

3. Загрузку осуществить в течение 15 с.

4. По окончании загрузки компонента В смесь продолжить перемешивать еще в течение 10 с.

5. Затем смесь перекачать в емкость 2, включив насос Н1. Об опорожнении емкости 1 свидетельствует срабатывание датчика реле уровня LS1.

6. В емкость 2 произвести загрузку компонента С в течение 10 с, открыв клапан С.

7. Дать смеси выдержаться в течение 15 с, после чего открыть клапан D и выгрузить готовый продукт из емкости 2. Об опорожнении емкости 2 свидетельствует срабатывание датчика реле уровня LS2.

8. Подготовить линию для приготовления новой партии продукта.

Краткие сведения о языке SFC

 

Язык SFC (Sequentiaд Function Chart) - это графический язык, который используется для описания последовательных операций. Процесс представляется в виде набора определенных шагов, связанных переходами. К каждому переходу прикреплено логическое условие. Действия внутри шагов описаны более детально при помощи других языков (как правило - ST).

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

- шаги не могут следовать подряд;

- переходы не могут следовать подряд.

Основные компоненты SFC: шаги, начальные шаги, переходы, ориентированные связи, прыжки на шаг.

...................... Начальный шаг

...................... Шаг

...................... Переход

...................... Прыжок на шаг

...................... Макрошаг

...................... Начальный макрошаг

...................... Конечный макрошаг

Шаг представляется одиночным квадратом. Каждому шагу присваивается номер, написанный внутри квадрата. Основное описание шага пишется внутри прямоугольника, присоединенного к символу шага. Это свободный комментарий (который не является частью языка). Вышеприведенная информация называется Уровнем 1 шага:

Во время работы активный шаг помечается маркером (выделяется).

Начальная ситуация программы SFC описывается начальными шагами. Начальный шаг обозначается графическим символом с двойной рамкой. После запуска программы маркер автоматически устанавливается на каждый начальный шаг.

У каждого шага есть атрибуты. Они могут быть использованы в любом другом языке в любом месте программы:

GSnnn.x............активность шага (логическая переменная);

GSnnn.t............продолжительность активного состояния шага (таймер),

(где nnn - номер шага)

Переходы представлены горизонтальными полосками (), которые пересекают линии связи. Каждому переходу присвоен номер, следующий за символом перехода. Описание перехода (комментарий) располагается справа от символа перехода. Вышеприведенная информация называется Уровнем 1 перехода

Для связи шагов и переходов используются одиночные линии. Это ориентированные связи. Когда ориентация не задана явно, связь ориентирована сверху вниз.

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

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

Расхождения - это множественные связи от одного символа SFC (шага или перехода) ко многим. Схождение - это множественные связи от более чем одного символа SFC к одному другому символу. Схождения и расхождения могут быть одиночными или двойными.

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

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

Двойное расхождение - это множественная связь от одного перехода к нескольким шагам. Она соответствует параллельной работе процесса. Двойное схождение - это множественная связь от нескольких шагов к одному и тому же переходу. Двойное схождение, обычно, используется для того, чтобы объединить несколько ветвей SFC, начавшихся из двойного расхождения. Двойные расхождения и схождения обозначаются двойными горизонтальными линиями.

Уровень 2 шага SFC представляет собой детальное описание действий в период активности шага. Это описание может использовать текстовые дополнения языка SFC или язык ST. Основные типы действий:

- булевские действия;

- импульсные действия, описанные на ST (действия типа «Р»);

- не сохраняемые действия, описанные на ST (действия типа «N»);

- SFC действия.

Булевские действия присваивают значение логической переменной при активизации шага. Логические переменные могут быть выходными или внутренними. Им присваивается значение каждый раз, когда шаг становится активным или перестает быть активным. Синтаксис основных логических действий:

<boolean_variable> (N); <boolean_variable>; присвоить переменной сигнал активности шага
/ <boolean_variable>; присвоить переменной отрицание сигнала активности шага
<boolean_variable> (S); присваивает переменной значение TRUE, когда шаг становится активным
<boolean_variable> (R); присваивает переменной значение FALSE, когда шаг становится активным

Импульсное действие - это список инструкций ST или IL, которые выполняются только однажды при активизации шага. Инструкции пишутся в соответствии со следующим синтаксисом:

ACTION (P):

(*ST операторы *)

END_ACTION;

Не сохраняемое действие - это список инструкций ST или IL, которые выполняются на каждом цикле, в течение всего периода активности шага. Инструкции пишутся в соответствии со следующим синтаксисом:

ACTION (N):

(* ST операторы *)

END_ACTION;

SFC действие - это дочерняя последовательность SFC, стартующая и убивающаяся в соответствии с изменением сигнала активности шага. SFC-действие может иметь признак N (не запоминаемый), R (установить), S (сбросить). Вот синтаксис основных SFC действий:

<child_prog> (N); <child_prog>; запустить дочернюю последовательность, когда шаг становится активным и убить ее, когда шаг становится пассивным
<child_prog> (S); запустить дочернюю последовательность, когда шаг становится активным и ничего не делать, когда шаг становится пассивным
<child_prog> (R); убить дочернюю последовательность, когда шаг становится активным и ничего не делать когда шаг становится пассивным

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

1. Создать новый проект.

2. Создать новую программу. При выборе языка – указать язык SFC.

3. Объявить используемые переменные.

4. Отредактировать программу в соответствии с представленным ниже рисунком:

5. Настроить конфигурацию ввода/вывода и осуществить привязку входных и выходных переменных проекта.

6. Создать код приложения.

7. Провести отладку приложения в режиме симуляции

Выполнение п.1-3, 5-7 подробно рассмотрено в лабораторной работе №1.

 

Контрольные задания

1. Разработать приложение на языке SFC реализующее следующий алгоритм управления. В емкость залить вещество А до уровня 1.5 м. Включить мешалку. Затем залить вещество С до уровня 2.6 м. Выдержать смесь в аппарате в течении 1 часа. Выключить мешалку и слить полученную смесь В.

2. Необходимо реализовать одноконтурную АСР температуры в реакторе (а).

При этом необходимо загружать вещество А в течении 5 минут, затем включить мешалку и поддерживать температуру по заданной программе (б).

3. Необходимо реализовать одноконтурную АСР температуры в реакторе (а).

Открыть клапан А на 30 секунд. Затем включить мешалку и поддерживать температуру по заданной программе в течении 1 часа (б). Далее открыть клапан В.

4. Разработать приложение на языке SFC реализующее следующий алгоритм управления темперирующей машиной. Залить компоненты в аппарат. Включить мешалку, нагреть массу до 60 ºС. При этой температуре вести обработку 4 часа. После этого выключить мешалку и перекачать массу.

5. Разработать приложение на языке SFC реализующее следующий алгоритм управления. Предварительно аппарат А просушить в течении 10 минут сжатым воздухом. Затем закачать реагент, включить мешалку, нагреть до температуры 80 ºС, выключить мешалку, перекачать в аппарат В. Одновременно с просушкой аппарата А в аппарат В закачать воду и включить мешалку. Перед закачкой реагента в аппарат В из него слить воду.

6. Разработать приложение на языке SFC реализующее следующий алгоритм управления. В емкость загрузить вещество А до уровня 1.5 м. Включить мешалку. Нагреть вещество до 70 ºС. Затем загрузить вещество В до уровня 2.6 м. Выдержать смесь в аппарате в течении 1 часа при температуре 70 ºС. Выключить мешалку и слить полученную смесь С.

Список рекомендуемой литературы

1. ISaGRAF: версия 3.4. Руководство пользователя. CJ International, 2003. 430с.

УДК 681.5.08 (075)

ББК з 973.26-04я73

Т 38

 

 

И.А Елизаров, А.А. Третьяков,

В.Н. Назаров, М.Н. Солуданов

 

Технические средства автоматизации: программирование контроллеров в среде

IsaGRAF




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


Дата добавления: 2014-12-25; Просмотров: 2075; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.