Файл: Системы реального времени.docx

Добавлен: 13.02.2019

Просмотров: 1701

Скачиваний: 17

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В этом окне определите тег со следующими свойствами:

Адрес: M10.0

Тип данных: Bool

Таблица тегов: Markers

Подтвердите создание тега путем нажатия кнопки Define.

Далее скопируйте этот нормально замкнутый контакт, откройте каждый шаг проекта и скопированный замкнутый контакт вставьте в область перехода каждого шага.

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

На рисунке 4.4 общими переходами являются переходы Т3 и Т7.

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

Рисунок 4.3 - Секвенсор с альтернативными ветвями

Рисунок 4.4 – Секвенсор с параллельными ветвями

Постоянные условия

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

Для программирования условий можно использовать элементы контактной схемы – нормально разомкнутые или нормально замкнутые контакты, компараторы или элементы FBD. В постоянном условии можно использовать до 32 элементов.

Результат вычисления условий хранится элементом «катушка» в LAD или блоком памяти в FBD.

Вызовы блока

Блоки, созданные на других языках программирования, могут быть вызванны с использованием постоянных инструкций или действий в FB S7-GRAPH. После того, как вызванный блок будет выполнен, выполнение FB S7-GRAPH будет продлено.

В S7-GRAPH можно вызвать функции (FC) и функциональные блоки (FB), запрограммированные на LAD, FBD, STL или SCL, а также системные функции (SFC) и системные функциональные блоки (SFB). Функциональным блокам и системным функциональным блокам должны быть назначены экземплярные блоки данных DB. Имена блоков можно использовать в абсолютном виде, например, FC1 или символьно, например, Motor1. При вызове блоков нужно обеспечить формальные параметры вызываемого блока действительными значениями.


16) Программа вычисления срока годности сока на языке SCL (на примере технологического процесса приготовления сока). Поля типа данных Date_And_Time. Перекрытие тега типа Date_And_Time с массивом байтов/

Тип данных Date_And_Time содержит дату и время в BCD формате в памяти длиной 8 байт. Например, ниже указано хранение значения 2011-07-04-10:30:40.201 (July 4, 2011, 10:30, 40 seconds 201 milliseconds). Последние 4 бита байта 7 хранят день недели.


Перекрытие тега типа Date_And_Time с массивом байтов

  1. Для перекрытия предыдущего тега с другим тегом, в разделе Temp определите третий параметр со следующими свойствами:

– Имя: System_Time_Array

– Тип данных: AT

После ввода ключевого слова AT автоматический создается составное имя для нового тега, которое имеет следующий формат:

<Имя нового тега> AT <Имя первого тега>

Тип данных нового тега автоматически определяется как Date_And_Time. Измените этот тип на тип Array [0 .. 7] of Byte.


  1. В разделе Temp определите 4-й параметр со следующими свойствами:

– Имя: Year

– Тип данных: Int

Этот параметр предназначен для хранения года, прочитанного из системного времени.

На рисунке приведен вид интерфейсной части этого программного блока.

Интерфейсная часть блока SCL_Best_before_date

  1. Вычисление срока годности. Для определения кода функционального блока на языке SCL переходите в область кода и наберите следующий код:

#Error := "RD_SYS_T" (OUT => #System_Time_DT);

#Year := BCD_TO_INT(#System_Time_Array[0]);

#Best_Before_Date := #Year + 2000 + #Duration;

Как видно, в коде с помощью функции RD_SYS_T считывается системное время и из него выделяется год. Затем считывается срок годности, путем сложения числа 2000 и значения переменной #Duration.

17) Программа управления конвейером на языке STL. Система команд языка STL и разъяснение этих команд по аналогии с командами языка LAD.

Для создания STL функции STL-Conveyor выполните следующие действия:

1. В дереве проекта откройте папку Program blocks и выполните двойной щелчок на строке Add new block.

При этом появляется окно создания блока. В этом окне определите следующих свойств блока:

– Выберите тип блока Function

– Введите имя блока STL-Conveyor

– Выберите язык STL

После нажатия кнопки ОК создается функция STL-Conveyor.

2. В интерфейсной части этой функции определите следующих параметров:

В разделе Input определите входные параметры со следующими свойствами:

Этот параметр будет использован для включения ленточного конвейера (Имя: Start_Input,Тип данных: Bool);

Этот параметр будет использован для определения направления движения конвейера (Имя: Direction,Тип данных: Bool);

В разделе Output определите выходные параметры со следующими свойствами:

Этот параметр будет использован, чтобы определить конвейер включен или нет (Имя: Conveyor_Done, Тип данных: Bool);

Этот параметр будет использован для управления движением конвейера Вперед (Имя: Forward, Тип данных: Bool);

Этот параметр будет использован для управления движением конвейера Назад (Имя: Backward,Тип данных: Bool).

3. Программирование управлением конвейера

Программная часть этой функции будет содержать три сегмента (network):

– В первом сегменте вы будете запрашивать, конвейер должен включаться Вперед. Если это так, то должен устанавливаться выход Forward на 1. Также выход Conveyor_Done должен быть обнулен, чтобы показать, что конвейер включен.

– Во втором сегменте вы будете запрашивать, конвейер должен включаться Назад. Для этого вы должны запрашивать входной параметр Start_Input установлен и другой входной параметр Direction не установлен. Если это так, то должен устанавливаться выход Backward на 1. Также выход Conveyor_Done должен быть обнулен, чтобы показать, что конвейер включен.

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

Для реализации этого выполните следующие действия:


1. В сегменте 1 определите следующий код 1:

A #Direction

A #Start_Input

S #Forward

R #Conveyor_Done

2. Вставьте второй сегмент, выбирая из контекстного меню команду Insert network. Во втором сегменте определите следующий код:

AN #Direction

A #Start_Input

S #Backward

R #Conveyor_Done

3. Вставьте третий сегмент и в нем определите следующий код:

AN #Start_Input

R #Forward

R #Backward

S #Conveyor_Done

18) Создание HMI-проекта на примере панели TP900 Comfort: установление связи между контроллером и HMI-устройством; отображение вспомогательных окон; использование шаблонов экрана процесса.

Конфигурирование HMI–панели TP900 Comfort

1. Создание HMI проекта

Для создания HMI проекта выполните следующие действия:

1. В дереве проектов выполните двойной щелчок на строке Add new device. При этом появляется диалоговое окно создания нового устройства:

2. В этом окне выберите устройство TP900 Comfort и установите флажок Start device wizard. После этого нажмите на кнопку OK, при этом открывается диалоговое окно HMI Device Wizard:

3. В этом окне определите соединение HMI-панели с контроллером:

– Щелкните на кнопку Browse и выберите из этого списка контроллер S7-300 Master.

– Нажмите на кнопку Next, при этом появляется следующее диалоговое окно:

4. В этом окне выберите фоновый цвет HMI–экрана (например, белый цвет) и нажмите на кнопку ОК. При этом появляется следующее окно:

5. Убедитесь, что в этом окне установлены соответствующие флажки, как это указано выше и нажмите на кнопку Next. При этом появляется следующее окно:


6. При необходимости добавьте новые экраны с помощью кнопки Add screen. Если эта кнопка не активна, то выберите предыдущий экран.

Переименуйте экраны как: Production, Recipes и Diagnostics view и нажмите на кнопку Next. При этом появляется следующее диалоговое окно:

Вы можете использовать системные экраны для настройки проекта, а также для администрирования HMI-экранов. Кнопки для перехода между главным экраном Production и системными экранами создаются автоматически.

7. В этом окне во вкладке System screens установите флажок Select all и нажмите на кнопку Next. При этом появляется следующее окно:

8. В этом окне добавьте кнопок Start screen и Exit и закройте Мастера конфигурирования HMI–панели путем нажатия на кнопку Finish. В результате был создан шаблон для HMI–экранов и автоматически открывается главный экран Production:

19) Создание главного экрана процесса. Панель инструментов графических объектов: Basic objects, Elements, Controls, Graphics.

Главный экран является начальным экраном, который загружается сразу после запуска программного обеспечения HMI–экрана. В папке Screens этот экран отмечается зеленой стрелкой.

Добавление элемента на экран на примере ленточного конвейера:

1. Вначале удалите текст Welcome to.... Для этого выделите этот текст и из контекстного меню выберите команду Delete.

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


3. На экран добавьте рисунок ленточного конвейера:

- Откройте каталог WinCC graphics folder>Automation equipment> Conveyors, miscellaneous.

– Выберите папку 256 Colors.

– Перетаскивайте рисунок Horizontal conveyor with perspective на главный экран. Определите размеры и положение так, как нужно.

Controls: 1)Alarm views; 2)Trend views; 3)User v.; 4)Recipe v.; 5)System diagnostics v.

Automation equipment: blowers (вентиляторы), conveyors, mixers, motors, pipes (трубы), pumps (насосы), scales (весы), tanks (ёмкости), valves (задвижки) и тд.

Basic symbols: arrows (стрелки), flags.

Industries: chemical, food, laboratory, mining (добыча), power (производительность), pulp&paper (бумага), water&wastewater (вода) и тд.

Infrastructure: buildings, containers, nature и тд.


20) Анимация графических объектов экрана процесса. Теги состояния для шагов и переходов программы Graph: Х, S1, S0. Изменение цвета и мерцание, отображение и исчезновение графического объекта.

Для каждого шага и перехода в программе на языке Graph создаются теги состояния. Эти теги состояния представляют собой структурный тип.

Ниже приведено описание основных полей структурного типа для шага:

Имя поля

Описание поля

Тип поля

Х

Step is active

BOOL

S1



Step is activated

BOOL

S0


Step is deactivated


BOOL

T



Total step activation time

TIME

Некоторые теги можно рассматривать также как событий. Например, тег S1 состояния шага устанавливается, когда этот шаг активизируется (событие активизирования шага).

Теги состояния шага и переходов размещены в блоке данных, который создается при вызове функционального блока, написанного на языке Graph. Например, GRAPH_Sequence_DB.

Изменение цвета и мерцание на примере анимации работы смесителя:

– Выберите рисунок смесителя и в окне свойств выберите вкладку Animations.

– Для добавления динамики мигания в узле Display щелкните на строке Add new animation и выберите тип динамизации Dynamize colors and flashing.

– Для анимации в поле имени тега введите имя тега. Для этого рядом с полем имени тега щелкните на кнопку, при этом открывается список тегов. В этом списке вначале выберите раздел S7-300 Master>Program blocks>GRAPH Sequence DB, а далее выберите шаг Mixer. При этом в правой части окна появляются теги состояния шага Mixer, выберите из этого списка тег "X".

– В области Range определите пределы изменения тега "0" и "1".

- Выберите строку "1", определите другой фоновый цвет и включайте функцию анимации Flashing.


Отображение и исчезновение граф. объекта на примере бутылок:

– Во вкладке Animations откройте узел Display и щелкните на строке Add new animation. Далее выберите тип анимации Make visibility dynamic.

– В поле Tag введите имя тега для анимации. Для этого щелкните на кнопке рядом с этим полем, при этом открывается окно выбора тегов. В этом откройте блок данных S7-300 Master>Program blocks> GRAPH Sequence DB и выберите раздел Trans Filling. Далее в правой части окна выберите тег "X".

В качестве пределов изменения тега выберите от "0" до "0". В области Visibility выберите Invisible.


21) Анимация графических объектов экрана процесса. Перемещение по горизонтали и по вертикали. Реализация сложных видов анимации, путем составления составных графических объектов.

Перемещение по горизонтали и по вертикали на примере перемещения бутылок на конвейере:

Для создания анимации движения выполните следующие действия:

– В окне свойств откройте вкладку Animations

– В разделе Movements щелкните на строке Add new animation, и далее выберите вид движения Move object horizontally. При этом открывается диалоговое окно "Horizontal movement".

Для реализации анимацию движения в поле Tag следует создать тег. Для добавления тега в таблицу Default tag table щелкните на кнопке Add object. При этом открывается окно создания тега. В этом окне введите имя тега Position_Bottle. Из раскрывающегося списка Data type выберите тип тега Int и нажмите на кнопку ОК.

- Теперь в окне свойств горизонтального перемещения бутылки, в качестве верхнего значения изменения тега введите число "50".

Сложные виды анимации на примере:

Для реализации движения необходимо симулировать значений тегов Position Bottle и Position Bottle(1). Для симуляции тегов выполните следующие действия:

1. Установите курсор мыши на свободное место главного экрана и откройте окно свойств, а далее откройте вкладку Events

2. Открывайте раскрывающиеся список <Add function> и из раздела System functions>Other functions выберите функцию SimulateTag.

3. Соедините функцию SimulateTag с тегом Position_Bottle. Для этого откройте список тегов и из таблицы тегов Default tag table (под узлом HMI Panel>HMI Tags) выберите тег Position_Bottle.

4. Измените максимальное значение тега Position_Bottle на "50" и измените увеличение значения тега на "2" в каждом цикле:

5. Создать новую такую же функцию (можно скопировать эту), только используя тег Position_Bottle(1).

Обнуление значений симуляционных переменных

Когда выполняются шаги S4 Trans Filling и S6 Trans Labeling, бутылки должны вернуться на исходное положение. Для реализации этого следует установить соответствующих тегов на "0".

1. Для обнуления этих тегов при входе на соответствующий шаг создайте событий для тегов состояния этого шага. Для этого выполните следующие действия:

– Откройте таблицу тегов Default tag table, которая находится под узлом HMI Panel>HMI Tags.

– Выберите тег GRAPH Sequence_DB_Trans Filling.X и откройте вкладку Events.

– В разделе Calculation script, выберите функцию SetTag:

– Закрепите на эту функции тега Position_Bottle из таблицы тегов Default tag table.

Использование элемента Bar для показа заполненных бутылок:

Для показания его будем использовать столбчатую гистограмму:

1. Для этого откройте палитру объектов Elements в панели инструментов. Разместите объекта Bar на правой части главного экрана:

2. Откройте окна свойств гистограммы и введите максимального значения "10".

3. Соедините на гистограмму тега Count_Bottle из таблицы тегов S7-300 Master>PLC Tags>Markers.

4. Откройте раздел Scales и измените числа делений гистограммы на "10".

22) Рецепты. Создание блока данных для передачи рецептов в программе контроллера. Создание рецептов и элементов рецепта в HMI-проекте. Отображение рецептов на экране процесса и передача рецепта в программу контроллера.