Вы находитесь на странице: 1из 48

TM213

Automation Runtime

TM213TRE.40-RUS
2013/07/26
Необходимые условия и требования
Обучающие курсы TM210 — Работа с Automation Studio
(тренинг-модули):
Программное обеспе- Automation Studio 4.0
чение
Аппаратное обеспе- X20CP1486
чение

2 TM213 - Automation Runtime


Оглавление

ОГЛАВЛЕНИЕ

1 ВВЕДЕНИЕ.......................................................................................................................................... 4
1.1 Цель обучающего курса....................................................................................................... 5
2 ОПЕРАЦИОННАЯ СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ..................................................................6
2.1 Требования и функции......................................................................................................... 7
2.2 Целевые системы..................................................................................................................8
2.3 Установка и ввод в эксплуатацию....................................................................................... 8
2.4 Версии и обновление Automation Runtime........................................................................10
3 УПРАВЛЕНИЕ ПАМЯТЬЮ............................................................................................................... 12
3.1 SystemROM) и UserROM.................................................................................................... 12
3.2 DRAM и SRAM.....................................................................................................................13
4 ХАРАКТЕРИСТИКИ СРЕДЫ ИСПОЛНЕНИЯ................................................................................. 16
4.1 Запуск Automation Runtime................................................................................................. 16
4.2 Глобальные и локальные переменные............................................................................. 18
4.3 Инициализация программы................................................................................................ 22
4.4 Циклические программы.....................................................................................................23
4.5 Управление вводом/выводом.............................................................................................35
5 ВЗАИМОДЕЙСТВИЕ В МНОГОЗАДАЧНОЙ СИСТЕМЕ................................................................ 39
5.1 Прерывание выполнения одной задачи другой............................................................... 39
5.2 Синхронизация цикла ввода/вывода с классом задач.................................................... 40
5.3 Класс задач с большим допуском..................................................................................... 40
5.4 Загрузка программ в целевую систему (Transfer)............................................................ 40
5.5 Поведение в системе переменных типа Retain................................................................42
6 ИТОГ.................................................................................................................................................. 44

TM213 - Automation Runtime 3


Введение

1 ВВЕДЕНИЕ

Операционная система реального времени — Automation Runtime — является неотъемлемым


компонентом пакета Automation Studio.
Automation Runtime это ядро программного обеспечения, которое позволяет запускать приложе-
ния на целевой системе.

С целью удовлетворения предъявляемых требований Automation Runtime организована в виде


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

Целевые системы Automation Runtime

На данном обучающем курсе дается как общее представление об ОС Automation Runtime, так и
рассматриваются ее отличительные особенности.

4 TM213 - Automation Runtime


Введение

1.1 Цель обучающего курса

Типовые области применения проиллюстрированы конкретными примерами, которые помогут


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

TM213 - Automation Runtime 5


Операционная система реального времени

2 ОПЕРАЦИОННАЯ СИСТЕМА РЕАЛЬНОГО ВРЕМЕНИ

Automation Runtime предоставляет пользователю детерминированный, аппаратно-независимый,


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

Архитектура операционной системы

Операционная система решает две основные задачи: управление аппаратными и программными


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

Программе (также называемой задачей) может быть назначено


определенное время выполнения или класс задач, в течение
которого она выполняется циклически.

Временной режим работы при


выполнении программ

Real-time operating system

6 TM213 - Automation Runtime


Операционная система реального времени

2.1 Требования и функции

Automation Runtime полностью интегрирована в соответствую-


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

Требования, предъявляемые к
Automation Runtime

Automation Runtime выполняет ряд важных функций:


• работает на всех целевых системах B&R;
• обеспечивает независимость приложения от аппаратного обеспечения;
• обеспечивает детерминированное поведение благодаря циклическому алгоритму систе-
мы исполнения;
• позволяет настроить различное время цикла;
• поддерживает 8 различных классов задач;
• гарантирует реакцию на превышение времени цикла;
• обеспечивает настройку предельно допустимых отклонений для всех классов задач;
• поддерживает библиотеки функций в соответствии с МЭК 61131-3;
• обеспечивает доступ к любым сетям и шинам;
• включает в себя встроенные FTP-, Web- и VNC- сервера;
• обеспечивает комплексную диагностику системы (SDM).

Real-time operating system \ Method of operation

TM213 - Automation Runtime 7


Операционная система реального времени

2.2 Целевые системы

Automation Runtime может работать на различных аппаратных платформах,


которые в основном представлены стандартными ПЛК, например, ЦПУ X20, панелями Power
Panel или промышленными компьютерами Automation PC.

Целевые системы SG4

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


раметров конфигурации целевых систем B&R.
Более подробная информация о целевых системах приводится в справочной системе.

Real-time operating system \ Target systems

2.3 Установка и ввод в эксплуатацию

Операционная система Automation Runtime и приложения, разработанные в Automation Studio,


запускаются на целевой системе1 с карты CompactFlash.

Загрузочная карта CompactFlash создается в среде Automation


Studio.
Во время этого процесса производится разбивка памяти карты
CompactFlash на разделы в соответствии с требованиями при-
ложения.
Automation Runtime и проект Automation Studio устанавливаются
на карту памяти CompactFlash.

Установка и ввод в эксплуатацию

1 Некоторые целевые системы имеют внутреннюю память для приложений. В этом случае Automation
Runtime и прикладные программы загружаются из внутренней памяти для приложений. Установка
Automation Runtime на эти системы осуществляется через последовательный или Ethernet-порт.

8 TM213 - Automation Runtime


Операционная система реального времени

Установка ОС ARWin на базе Windows отличается от установки других целевых систем.


В этом случае для установки Automation Runtime используется специальная программа
установки, которая находится на DVD-диске Automation Studio.

2.3.1 Создание рабочей карты памяти CompactFlash

Для создания карты памяти CompactFlash необходимо в сре-


де Automation Studio перейти в меню <Tools> / <Create
CompactFlash>. Создание карты памяти CompactFlash
После запуска процедуры в начале проверяется, корректно ли
была выполнена сборка проекта. При необходимости процесс
сборки производится повторно.

Для того чтобы создать карту памяти


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

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


CompactFlash

Рекомендуется использовать функцию "Safe B&R module system".

Diagnostics and service \ Service tools \ Runtime Utility Center \ Creating a list / data medium
\ CompactFlash functions \ Creating a CompactFlash

2.3.2 Установка с помощью онлайн-соединения

Automation Runtime также может быть загружена в ПЛК с помощью онлайн-соединения. Для этого
должен быть правильно сконфигурирован онлайн-интерфейс или должен быть включен соответ-
ствующий рабочий режим (4.5.1 "Запуск").

TM213 - Automation Runtime 9


Операционная система реального времени

Начиная с версии V3.06, предустановленная ОС (Default Runtime)2 для систем SG4, поз-
воляет осуществлять поиск устройств также по протоколу SNMP3

Соединение
Соединение с контроллером устанавливается в среде Automation Studio с помощью функции
Browse. При этом в сети осуществляется поиск контроллеров B&R. Кроме того, в окне поиска воз-
можно временное изменение параметров соединения с контроллером.

Programming \ Building and transferring projects \ Establishing a connection to the target


system \ Ethernet connection \ Browse for targets

Перенос Automation Runtime


После установления соединения может быть осуществлена передача ОС Automation Runtime.

Programming \ Build & Transfer \ Online services \ Transfer Automation Runtime \ Transfer to
SGx target systems \ Installation via online connection

2.4 Версии и обновление Automation Runtime

Версии программного обеспечения для Automation Runtime, ви-


зуальных компонентов (Visual Components), блока управления
движением (motion) или среды исполнения системы с ЧПУ, мо-
гут быть обновлены в параметрах активной конфигурации в про-
екте Automation Studio.
Для изменения версии программного обеспечения среды ис-
полнения необходимо из главного меню перейти в <Project> /
<Change runtime versions>.

Изменение версии среды исполнения

Project management \ Changing runtime versions

2 Default Runtime является сокращенным вариантом ОС Automation Runtime, которая предустановлена


на всех контроллерах. Default Runtime фактически отвечает за процесс начальной загрузки с карты
памяти CompactFlash.
3 SNMP (Simple Network Management Protocol — является сетевым протоколом, который используется
для мониторинга и управления сетевыми устройствами. [Source: de.wikipedia.org]

10 TM213 - Automation Runtime


Операционная система реального времени

Изменение версий ПО для блока управления движением (motion control), систем ЧПУ и
визуальных компонентов (Visual Components) может повлиять на все аппаратные конфи-
гурации, так как все конфигурации используют общий экземпляр соответствующей биб-
лиотеки (находящийся в окне Logical View), а он может быть только один.
После изменения версии Automation Runtime для выбранной конфигурации необходимо
перед загрузкой проекта в ПЛК выполнить Rebuld.

Обновление с помощью Automation Studio


Если Automation Runtime уже была установлена на целевой системе, проект может быть загружен
в ПЛК в режиме онлайн вместе с обновлением (новой версией) Automation Runtime.

При использовании Ethernet-соединения следует проверить, что модуль sysconf распо-


лагается в памяти "SystemROM" (задается по умолчанию), поскольку память UserROM
очищается сразу же после загрузки в ПЛК новой версии Automation Runtime. В противном
случае, после очистки памяти UserROM установка соединения с контроллером будет уже
невозможна. В каком разделе целевой памяти будут располагаться программные моду-
ли может быть задано в окне Software configuration.

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

Обнаружение конфликта версий

Обновление без использования Automation Studio


Если не представляется возможным выполнить обновление с помощью Automation Studio, то в
этом случае можно воспользоваться независимым от AS программным обеспечением Runtime
Utility Center, который позволяет создать необходимый для установки образ. Затем этот образ
может быть загружен в ПЛК с помощью компакт-диска или USB-флеш-накопителя.
Для обновления требуется ПК с онлайн-соединением с целевой системой.

Diagnostics and Service \ Service Tool \ Runtime Utility Center \ Creating a list / data medium
\ CD creation

TM213 - Automation Runtime 11


Управление памятью

3 УПРАВЛЕНИЕ ПАМЯТЬЮ

Память в целевой системе Automation Runtime подразделяется на ОЗУ и ПЗУ.


Часть памяти используется исключительно ОС Automation Runtime в процессе выполнения, а
остальная часть доступна приложениям.

3.1 SystemROM) и UserROM

Во время сборки проект Automation Studio генерирует модули с расширением .br, которые могут
быть выполнены ОС Automation Runtime.

В конфигурации программного обеспечения


каждому модулю автоматически назначается
целевая память, которая подразделяется на
пользовательскую (UserROM) и системную
(SystemROM).
Пользовательское ПЗУ (UserROM) представ-
ляет собой память на карте CompactFlash,
в которой хранятся все BR модули проекта
Automation Studio.
Системное ПЗУ (SystemROM) представляет
собой память на карте CompactFlash, в которой
хранятся ОС Automation Runtime и системные
модули проекта.
Целевая память для модулей .br

CompactFlash = системное ПЗУ (System ROM) + пользовательское ПЗУ (User ROM)

12 TM213 - Automation Runtime


Управление памятью

3.2 DRAM и SRAM

ОЗУ - это быстрая память, с доступом на чтение и запись дан-


ных. В нее загружаются и в ней выполняются ОС Automation
Runtime и приложения Automation Studio.
В целевой системе всегда имеется динамическое ОЗУ
(DRAM); наличие статического ОЗУ (SRAM) не является обя-
зательным.

Динамическое (DRAM) и статическое


(SRAM) ОЗУ

Статическое ОЗУ (SRAM): В отличие от динамического ОЗУ (DRAM), статическое ОЗУ (SRAM)
поддерживается батареей, что позволяет сохранять данные даже во время сбоя питания. При
условии, конечно, что батарея заряжена и исправна.
Динамическое ОЗУ (DRAM) Динамическое ОЗУ (DRAM) является оперативной памятью, которая
после запуска имеет неопределенное состояние.
При начальной загрузке Automation Runtime загружает в динамическое ОЗУ (DRAM) все необхо-
димые BR модули, благодаря чему к ним обеспечивается быстрый доступ.
BR модуль, находящийся в ОЗУ, отвечает за инициализацию области памяти, которая должна
быть предварительно сконфигурирована в Automation Studio под глобальные или локальные пе-
ременные (см. 4.2.3 "Инициализация области памяти для хранения переменной").

3.2.1 Инструменты для определения требований к памяти

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


• Считывание информации из ЦПУ
• Менеджер диагностики системы (System Diagnostics Manager)
• .

Онлайн-информация
При выборе из главного меню пунктов
<Online> / <Info> на экран выводится общая
информация о количестве доступной памяти.
Данная возможность доступна не для всех це-
левых систем. Выводимая онлайн информация
также позволяет определить состояние резерв-
ной батареи и текущее время на контроллере.

Считывание информации из ЦПУ

TM213 - Automation Runtime 13


Управление памятью

Менеджер диагностики системы (SDM —


System Diagnostics Manager)
Менеджер диагностики системы (SDM) являет-
ся составной частью ОС Automation Runtime,
начиная с версии V3.0. При переходе из глав-
ного меню в <Tools> / <System diagnostics> в
окно браузера выводится менеджер диагности-
ки системы (SDM).

При использовании прокси-сервера


локальные адреса для доступа к кон-
троллеру должны быть добавлены в Отображение распределения памяти в SDM
исключения.

Упражнение: Проверьте наличие свободной памяти в целевой системе


CompactFlash должна быть сгенерирована из проекта, описанного в обучающем курсе «TM210 —
Работа с Automation Studio».
Для Automation Studio и целевой системы должна быть предусмотрена возможность обмена дан-
ными посредством Ethernet-соединения. Определите требования, предъявляемые к памяти целе-
вой системы, с помощью одного из методов, описанных в разделе Chapter 3.2.1.

Diagnostics and service \ Diagnostic tools \ Information about the target system
Diagnostics and service \ Diagnostics tools \ System Diagnostics Manager
Programming \ Libraries \ Configuration, system information, runtime control \ AsHW

3.2.2 Онлайн-сравнение программного обеспечения

При наличии активного онлайн-соединения может быть выполнено сравнение модулей, сконфи-
гурированных в Automation Studio, с модулями, установленными в целевой системе.

Чтобы выполнить сравнение программного обеспечения, сле-


дует из главного меню выбрать пункты <Online> / <Compare> /
<Software>.

Открытие окна сравнения


программного обеспечения (software
comparison)

В окне сравнения ПО отображаются все модули, имеющиеся в проекте и в контроллере. В столбце


Size (bytes) (Размер (в байтах)) отражено сколько памяти занимает BR модуль в целевой системе.
Сравнить можно такие параметры как: версия, размер, тип целевой памяти и дата сборки модуля.

14 TM213 - Automation Runtime


Управление памятью

Открытие окна онлайн-сравнения программного обеспечения (software comparison)

Упражнение: Удаление модулей из UserROM


Выберите из главного меню пункт <Online> / <Services> / <Clear
memory> , чтобы очистить UserROM.
Затем в конфигурации программного обеспечения следует по-
вторно активировать режим мониторинга.

Диалоговое окно для очистки памяти:


Выбрано пользовательское ПЗУ (User
ROM)

Останутся только те модули, для которых в качестве целевой памяти выбрано


SystemROM.
Поскольку системные настройки, такие как конфигурация Ethernet, сохраняются в модуле
"sysconf.br" , который хранится в SystemROM, то при при очистке UserROM настройки
онлайн-соединения не теряются.

В случае очистки UserROM, происходит автоматическая перезагрузка системы и пере-


ключение ее в режим диагностики.
При этом кратковременно прерывается онлайн-соединение.

TM213 - Automation Runtime 15


Характеристики среды исполнения

4 ХАРАКТЕРИСТИКИ СРЕДЫ ИСПОЛНЕНИЯ

В этом разделе рассматривается порядок исполнения в Automation Runtime приложения, разра-


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

4.1 Запуск Automation Runtime

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


При этом выполняются следующие задачи:
• Проверка оборудования
• Обновление оборудования / микропрограммного обеспечения (если это необходимо)
• Проверка BR модулей
• Копирование BR модулей из ПЗУ в динамическое ОЗУ (DRAM)
• Копирование переменных из статического ОЗУ (SRAM) в динамическое ОЗУ (DRAM)
• Инициализация области памяти для переменных
• Выполнение программы инициализации
• Активация циклических программ

Real-time operating system \ Method of operation \ Boot behavior


Real-time operating system \ Method of operation \ Module / data security

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

X20CP1485 в рабочем (RUN) режиме

Информация по поиску и устранению неисправностей приводится в обучающем курсе


«TM223 — Диагностика в Automation Studio».

Этапы начальной загрузки Automation Runtime


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

Этапы начальной загрузки

16 TM213 - Automation Runtime


Характеристики среды исполнения

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


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

Рабочее состояние Условия, которые приводят к этому состоянию системы


BOOT (НАЧАЛЬНАЯ • Если не вставлена карта памяти CompactFlash
ЗАГРУЗКА) • Если на карте CF нет операционной системы
• Переключатель узла4 выставлен на "00"
DIAG (ДИАГНОСТИ- • Очистка памяти
КА) • Неустранимая системная ошибка
• Переключатель узла выставлен на "FF"
SERV (СЕРВИС) • Деление на ноль
• Ошибка доступа к памяти (Page fault)
• Превышение времени цикла
• ЦПУ остановлен по команде из Automation Studio
• Прочие ошибки
RUN (РАБОТА) • Ошибок нет

Рабочий (RUN) режим

Real-time operating system \ Method of operation \ Operating modes

Этапы начальной загрузки Automation Runtime


Перед тем как контроллер перейдет в рабочий (RUN) режиме, может быть выполнено несколько
дополнительных шагов . Информация об этих состояниях также отображается в строке состояния
Automation Studio. Однако эти этапы, как правило, очень короткие.

Состояние системы Описание


STARTUP Выполняется инициализация параметров операционной системы.
FIRMWARE Выполняется обновление микропрограммного обеспечения.
INIT Выполняются подпрограммы инициализации приложения.

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

TM213 - Automation Runtime 17


Характеристики среды исполнения

О выполнении этапов до достижения рабочего (RUN) состояния (STARTUP, FIRMWARE,


INIT) сигнализирует мигающий зеленый светодиод R/E системы X20.

Real-time operating system \ Method of operation \ Boot phases

4.2 Глобальные и локальные переменные

Переменные являются символьными элементами программирования, размер и структура кото-


рых определяется их типом данных. Во время сборки проекта переменным присваиваются опре-
деленные позиции в памяти.
Область видимости и свойства переменной определяют ее поведение во время запуска и испол-
нения.

Programming \ Variables and data types

4.2.1 Локальные переменные

Локальные переменные имеют локальную область видимости в


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

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


(«цикл»)
В окне Logical View проекта создайте новую программу на языке структурированного текста со
следующими локальными переменными и назовите ее Loop.
Добавьте четыре переменные с именами iCnt, value, udStartValue и udEndValue, имеющие тип дан-
ных UDINT.
Создайте цикл в циклической части программы. Этот цикл будет подробно рассмотрен и исполь-
зован в последующих упражнениях.
PROGRAM_CYCLIC
FOR iCnt := udStartValue TO udEndValue DO
value:= value + 1;
END_FOR
END_PROGRAM

1) Добавьте новую программу и назовите ее "Loop"

2) В качестве языка программирования выберите Structured Text.

3) Откройте файл Loop.var и добавьте в него переменные

18 TM213 - Automation Runtime


Характеристики среды исполнения

4) После сохранения файла Loop.var переменные в LoopCyclic.st могут использоваться в про-


грамме.

При добавлении программы в окне Logical View, по умолчанию предлагается автоматически вста-
вить ее и в конфигурацию программного обеспечения (окно Software Configuration).

Упражнение: Многократное назначение программы в окне Software Configuration


После завершения последнего упражнения, перетяните ту же самую программу второй раз из окна
Logical View в окно Software Configuration

Многократное назначение программ

1) Откройте окно Software Configuration

2) В проводнике проекта (Project Explorer) переключитесь на окно Logical View

3) Перетяните программу Loop в окно Software Configuration

После того как все переменные будут добавлены в окно Watch для программ Loop и
Loop1, отдельные значения переменных будут отображаться в каждой задаче, к которой
они относятся.
Изменение локальной переменной в одной задаче затрагивает только эту задачу — зна-
чения локальных переменных другой задачи не изменяются.

Отслеживание значений переменных обеих задач

Переменные, которые объявлены в файле со списком переменных (.var), но не исполь-


зуются в программе, не создаются на целевой системе.
Соответствующее предупреждение выдается в процессе сборки.
Warning 424: Variable <variable name> is declared but not being used in the current
configuration. ( Предупреждение 424: Переменная <имя переменной> объявлена, но не
используется в текущей конфигурации.)

TM213 - Automation Runtime 19


Характеристики среды исполнения

Programming \ Variables and data types \ Scope of declarations

4.2.2 Глобальные переменные / Глобальные переменные уровня пакета

Глобальные переменные отображаются на верхнем уровне панели Logical View и могут исполь-
зоваться в любом месте проекта Automation Studio. Другими словами, они могут быть использо-
ваны в любой программе.

Глобальная переменная описывается на самом высоком уров-


не в файле Global.var. Для улучшения структурированности про-
екта могут быть созданы дополнительные файлы .var. Глобальные переменные

Глобальные переменные уровня пакета, которые объявлены в пакете, видны только в пределах
этого пакета и всех подчиненных пакетов.

Глобальные переменные следует использовать только в том случае, если необходимо


обеспечить обмен данными между несколькими программами. Другой способ: локаль-
ные переменные из различных программ назначаются друг другу с помощью процедуры
Variable mapping.

Упражнение: Создайте глобальную переменную gMain и используйте ее в программе Loop


Добавьте новую переменную в файл объявления глобальных переменных Global.var, назовите
ее gMain и назначьте ей тип данных UDINT.
Эта переменная должна циклически инкрементироваться в программе "Loop"
gMain := gMain + 1;

1) Откройте файл "Global.var"

2) Добавьте переменную "gMain" и назначьте ей тип данных UDINT

3) После сохранения файла "Global.var", переменная может использоваться в программе


"LoopCyclic.st".

20 TM213 - Automation Runtime


Характеристики среды исполнения

Если переменная gMain добавлена в окно отслеживания состояния переменных для за-
дач "Loop" и "Loop1", то изменение ее значения в одной из программ, незамедлительно
приводит к такому же изменению в другой программе.

Запись значений в глобальные переменные

Programming \ Variables and data types \ Scope of declarations


Programming \ Editors \ Configuration editors \ Variable mapping

4.2.3 Инициализация области памяти для хранения переменной

По умолчанию во время инициализации переменным присваиваются значения «0». Тем не менее,


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

Инициализация переменной в файле Loop.var

Эта инициализация эквивалент следующих строк кода в программе инициализации "LoopInit.st":


PROGRAM _INIT
udEndValue := 50;
END_PROGRAM

Упражнение: Инициализация переменной "dEndValue"


Задайте переменной "udiEndValue" в программе "Loop" начальное значение — 50. Проконтроли-
руйте значение в окне отслеживания значений переменных.

1) Откройте файл объявления переменных "Loop.var"

2) Задайте необходимое значение в столбце "Value" переменной "udEndValue"

Переменная „udEndValue" в программах „Loop" и „Loop1" будет проинициализирована


значением 50, что можно увидеть из окна Watch. Во время выполнения программы зна-
чение переменной может быть изменено на любое другое.

TM213 - Automation Runtime 21


Характеристики среды исполнения

4.2.4 Константы

Константы являются переменными, значения которых не изменяются во время работы програм-


мы.

Объявление констант

Упражнение: Использование глобальной переменной "gMain" в качестве константы


Настройте глобальную переменную "gMain" в качестве константы со значением 50.

1) Откройте файл объявления переменных "Global.var "

2) Задайте необходимое значение в столбце "Value" для переменной "gMain"

3) Задайте, что глобальная переменной "gMain" будет константой

В процессе сборки будет выдано сообщение об ошибке, поскольку будет произведена


попытка записи в "gMain",
что для констант не допускается. Для того, чтобы программа работала без ошибок, пе-
ременная "gMain" не должна быть определена как константа.
LoopCyclic.st (Ln: 19, Col: 8) : Error 1138: Cannot write to variable 'gMain'. ( LoopCyclic.st
(стр.:19, столб.:8): Ошибка 1138: Запись в переменную gMain невозможна.)

Programming \ Variables and data types \ Variables \ Constants

4.3 Инициализация программы

В каждой программе может содержаться блок инициализации.

Инициализация программы

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

4.3.1 Запуск программы инициализации

Перед запуском первой циклической программы однократно выполняются подпрограммы ини-


циализации всех задач в порядке, указанном в конфигурации программного обеспечения.

22 TM213 - Automation Runtime


Характеристики среды исполнения

В данном примере программы инициализации будут


выполняться в следующем порядке:
1 программа инициализации задачи LampTest
2 программа инициализации задачи Loop
3 программа инициализации задачи Loop1

Порядок выполнения программ


инициализации

Поскольку в отношении подпрограмм инициализации не выполняется контроль времени цикла,


несоблюдение времени не будет приводить к выдаче какой-либо ошибки.

Real-time operating system \ Target systems \ SG4 \ Runtime performance \ Starting


initialization subroutines

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

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

Функции, которые должны вызываться несколько раз, следует размещать в циклической


части программы.

4.4 Циклические программы

В конфигурации программного обеспечения


программе назначается определенное время
выполнения или класс задач.
Программы в конфигурации программного
обеспечения называются задачами.

Взаимосвязь между программой и задачей

4.4.1 Многозадачная операционная система

Automation Runtime является детерминированной многозадачной операционной системой ре-


ального времени.
Задачам выделяются определенные ресурсы, а выполнение их осуществляется последователь-
но в определенные временные интервалы (time slices). Несмотря на то, что длительность выпол-
нения задачи может изменяться, моменты запуска задачи, а также доступа к системе ввода/вы-
вода остаются строго определенными.

4.4.2 Классы задач и время цикла

Задача выполняется циклически в течение времени, определенного для её класса (task class),
которое также называют временем цикла (cycle time).

TM213 - Automation Runtime 23


Характеристики среды исполнения

Возможно задать до восьми классов задач с настраиваемым временем цикла, что позволяет оп-
тимизировать задачу в точном соответствии с предъявляемыми требованиями. Класс задач объ-
единяет в себе задачи с одинаковыми временем цикла, приоритетом и допуском на превышение
времени цикла (tolerance).

Не все задачи требуют выполнения в течение одного и того же интервала времени. За-
дачам управления, которые должны выполняться быстрее, должен быть назначен класс
задач с меньшим номером. Медленным процессам следует назначать классы задач с
большим номером.

В качестве примера рассматриваются три задачи с классом за-


дач № 4 и временем цикла 100 мс. Без учета времени, необхо-
димого для выполнения каждой из этих задач, цикл программы
выглядит следующим образом:

Время цикла

Цикл №4
100 мс

n + 100 мс + 200 мс + 300 мс + 400 мс


Запуск многозадачной системы
Задачи вызываются в каждом цикле.

Это означает, что задачи, относящиеся к данному классу задач, выполняются каждые 100 мс.

Real-time operating system \ Target systems \ SG4 \ Runtime behavior \ Start of cyclic tasks

4.4.3 Время цикла и приоритет

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


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

Приоритет класса задач

Перемещение задачи не изменяет времени выполнения. Изменяется только количество


вызовов за единицу времени.

24 TM213 - Automation Runtime


Характеристики среды исполнения

Например, если задача "Loop" перемещается из класса задач


№ 4 в класс задач № 1, то запуск ее на выполнение осуществ-
ляется каждые 10 мс.

Различные классы задач

Цикл № 1
10 мс

100мс
Цикл №4
100 мс
n + 50мс + 100мс + 150мс + 200мс
Запуск многозадачной системы

Выполнение задач в различных классах задач

Задачи "LampTest " и "Loop1" в классе задач №4 продолжают выполняться каждые 100 мс.

Упражнение: Перемещение задачи "Loop" в класс задач № 1


Задача "Loop" в конфигурации программного обеспечения должна быть перемещена в класс за-
дач№1 .
Обратите внимание, что изменятся времена циклов задач "Loop" и "Loop1", которые относятся к
одной и той же программе.

1) Откройте окно Software configuration.

2) Переместите задачу "Loop" из класса задач № 4 в класс задач № 1

3) Откройте окно Watch для обеих задач.

4) Обратите внимание на переменную "udiCounter".

Программа "Loop" выполняется в 10 раз чаще программы "Loop1". В результате чего зна-
чение "udiCounter" увеличивается быстрее.

Времена циклов для различных классов задач

4.4.4 Запуск классов задач

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


Время запуска всегда рассчитывается как «время цикла класса задач / 2».

TM213 - Automation Runtime 25


Характеристики среды исполнения

Это означает, например, что класс задач длительностью 100 мс будет запущен через 50 мс. Рас-
пределение временных моментов запуска каждого класса задач может привести к сокращению
времени выполнения и минимизации рассинхронизации даже в условиях высокой нагрузки на
процессор.

Real-time operating system \ Target systems \ SG4 \ Runtime behavior \ Start of cyclic tasks

4.4.5 Время простоя (Idle time)

Кроме пользовательских задач, ОС Automation Runtime выполняет множество других цикличе-


ских системных задач, благодаря которым обеспечивается удобство и безопасность работы
пользователя (например, проверка программных модулей, поддержка онлайн подключения).
Скорость, с которой выполняются эти задачи может изменяться в зависимости от производитель-
ности используемого ЦПУ.
Время, в течение которого не происходит выполнение пользовательских задач или системных
задач Automation Runtime, называют временемпростоя (Idle time). Фактически же простой (Idle)
- это системная задача с минимально возможным приоритетом. Пример системных задач:
• Поддержка онлайн подключения
• Выполнение приложений визуальных компонентов (Visual Components)
• Доступ к файлам

Цикл № 1
10 мс

Цикл №4
100 мс

Простой (Idle)

n + 50мс + 100мс + 150мс + 200мс


Запуск многозадачной системы

Время простоя

Время, которое остается после выполнения всех задач, называется временем простоя.

Если свободного времени недостаточно для выполнения визуальных компонентов


(Visual Components) или поддержки онлайн-соединения, то количество выделяемого сво-
бодного времени может быть увеличено путем назначения программам более высокого
номера класса задач или путем корректировки времени цикла класса задач.
Для определения времени ожидания может использоваться диагностический инструмент
Profiler.

26 TM213 - Automation Runtime


Характеристики среды исполнения

Programming \ Editors \ Configuration editors \ Hardware configuration \ CPU configuration

4.4.6 I/O scheduler (Планировщик ввода/вывода)

I/O scheduler запускает класс задач в точно заданное время и предоставляет данные с точек
ввода/вывода всем задачам во всех классах.
Благодаря этому, актуальные входные данные в момент старта класса задач и выходные в мо-
мент его завершения оперативно переносятся в переменные процесса, назначенные соответ-
ствующим входам\выходам.

У каждого класса задач имеется отдельная таблица привязки точек ввода/вывода (I/O
mapping). Входные состояния не изменяются во время выполнения задачи, а запись ин-
формации о выходных состояниях осуществляется только после завершения задач в
классе задач.

Цикл распределения данных ввода/вывода.


Данные в каналах ввода/вывода обновляются с временем цикла полевой шины.

Время этого цикла может быть настроено в свойствах соот-


ветствующей полевой шины. Как пример, для интерфейса X2X
Link,выбором параметра Configuration из контекстного меню
интерфейса.

Открытие окна свойств интерфейса


X2X Link

Время цикла, настроенное в свойствах, и будет являться тем


временным интервалом, с которым будут обновляться данные
ввода\вывода в системе.

Настройка времени цикла X2X

Это означает, за заданное время цикла будут получены свежие данные со всех устройств полевой
шины (в данном случае X2X Link), а также записаны выходные данные.

Данные
/ввода/вывода

n + 2мс + 4мс + 6мс + 8мс


Считывание входной карты

TM213 - Automation Runtime 27


Характеристики среды исполнения

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

Данные ввода/вывода в классе задач


I/O scheduler определяет моменты, когда данные ввода/вывода становятся доступны для класса
задач и когда запустятся сами классы задач.
По умолчанию I/O scheduler вызывается каждые 1000 мкс (system tick).
Время цикла системного таймера может быть настроено в конфигурации системы в группе пара-
метров Timing.

Настраиваемое время цикла системного таймера

I/Данные ввода/вывода

I/O
Scheduler

n + 2мс + 4мс + 6мс + 8мс


Считывание входных параметров на момент старта класса задач

В этом случае I/O scheduler вызывается в два раза чаще, чем обновляются данные в таблице I/
O mapping.

I/O scheduler может работать синхронно циклу шины ввода/вы-


вода с кратным временем цикла. Таймер и коэффициент крат-
ности могут быть настроены в соответствии с предъявляемыми
требованиями.

Синхронизация системного времени

Настройка системного таймера относительно таймера полевой шины (X2X или POWERLINK) в
соотношении 1:1 приведет к тому, что I/O Scheduler будет вызываться с интервалом, равным
настроенному времени цикла обновления данных ввода/вывода.

28 TM213 - Automation Runtime


Характеристики среды исполнения

Данные
/ввода/вывода

Данные
/I/O
Scheduler

n + 2мс + 4мс + 6мс + 8мс


Считывание входных параметров на момент старта класса задач

I/O scheduler копирует данные ввода\вывода в\из переменных согласно таблицы привязки (I/O
mapping).
В примерах, рассмотренных выше, это приводит к тому, что переменные будут обновляться с
периодом кратным 2 мс.

Класс задач № 1
I/O scheduler запускает класс задач № 1 каждые 10 мс и предоставляет всем задачам в этом
классе актуальные входные данные для соответствующих переменных (зеленая стрелка).
После выполнения последней задачи в классе № 1 значения переменных записываются в назна-
ченные выводы согласно таблицы привязки (красная стрелка).

I/O
Scheduler

Цикл № 1
10 мс
n + 10мс + 20мс + 30мс + 40мс
Запуск многозадачной системы
Обработка ввода/вывода для класса задач № 1

Класс задач № 4
I/O scheduler запускает класс задач № 4 каждые 100 мс, начиная с момента времени n+50, и
предоставляет всем задачам в этом классе актуальные входные данные для соответствующих
переменных (зеленая стрелка).
После выполнения последней задачи в классе № 4 значения переменных записываются в назна-
ченные выводы согласно таблицы привязки (красная стрелка).

TM213 - Automation Runtime 29


Характеристики среды исполнения

I/O
Scheduler

Цикл № 1
10 мс

Цикл №4
100 мс
n + 50мс + 60мс + 70мс + 80мс
Запуск многозадачной системы

Обработка ввода/вывода для класса задач № 4

Real-time operating system \ Target systems \ SG4 \ I/O management

4.4.7 Время цикла и допустимое отклонение

Для каждого класса задач предусмотрено заданное время цик-


ла. Все задачи в своем классе должны быть выполнены в тече-
ние этого времени цикла.
Время цикла класса задач определяется при создании проекта
и может быть изменено пользователем позднее в соответствии
с предъявляемыми требованиями.
Если суммарное время выполнения задач в соответствующем
классе превышает настроенное время цикла, выдается ошиб-
ка превышения времени цикла (cycle time violation). Возмож-
ность настроить значение допустимого превышения (tolerance)
предотвращают переход системы в сервисный режим при пре-
вышении времени цикла.
Время цикла и допуск могут быть настроены в свойствах клас- Настройка времени цикла и допуска
са задач. Диалоговое окно свойств открывается из контекстного
меню класса задачи.

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

Programming \ Editors \ Configuration editors \ Hardware configuration \ CPU configuration

30 TM213 - Automation Runtime


Характеристики среды исполнения

Упражнение: Провоцирование ошибки нарушения цикла


В программе "Loop, которая работает в классе задач № 1 длительностью 10[мс], измените значе-
ние переменной "udiEndValue" в окне Watch, что приведет к возникновению ошибки нарушения
цикла.
С помощью диагностического инструмента Profiler проконтролируйте время исполнения задачи
и оставшееся свободное время. После возникновения превышения времени цикла с помощью
инструмента Logger в Automation Studio проанализируйте его причину.
Данное упражнение состоит из трех различных заданий.

1) Присвоение переменной "udEndValue" значения 50000

2) Постепенное увеличение значения переменной "udEndValue"

3) Увеличение значения переменной "udEndValue" до тех пор, пока не возникнет ошибка пре-
вышения цикла
После выполнения каждого из этих этапов необходимо проанализировать результаты, используя
Profiler.

Шаг 1. Присвоение переменной "udEndValue" значения 50000


• На первом этапе значение переменной "udEndValue" должно быть изменено на 50000.

Это возможно сделать из окна Watch.


Текущее время выполнения задачи может быть определено, используя Profiler. Этот процесс опи-
сывается дальше.
Использование Profiler для определения времени выполнения задачи.
Откройте Profiler из конфигурации программного обеспечения, перейдя в контекстном меню в
пункт <Open> / <Profiler>.

При выполнении этого задания рекомендуется открыть одновременно окно Watch задачи
"Loop", окно Software configuration и Profiler .
Задача может быть изменена путем выбора соответствующей рабочей книги.

Переключение на Profiler

По умолчанию Automation Runtime регистрирует все параметры во время выполнения.


В данном задании регистрируются только время выполнения пользовательских задач, классы
задач и исключения.
Для того, чтобы изменить используемую конфигурацию, необходимо приостановить текущую за-
пись, нажав пиктограмму "Stop на панели инструментов Profiler.
Чтобы открыть диалоговое окно для задания параметров конфигурации, нажмите пиктограмму
"Configuration на панели инструментов Profiler.
Задайте параметры, показанные на рисунках ниже:

TM213 - Automation Runtime 31


Характеристики среды исполнения

Первое окно конфигурации Profiler Второе окно конфигурации Profiler

Загрузите измененные настройки Profiler'a в целевую систему, нажав пиктограмму "Install" на па-
нели инструментов Profiler. Регистрация данных начинается сразу же с учетом новой конфигура-
ции.
Снова остановите процесс регистрации, нажав пиктограмму "Stop", и затем щелкните на пикто-
грамме "Upload Data" панели инструментов Profiler, чтобы загрузить собранные данные в среду
Automation Studio, где они могут быть просмотрены нажатием на пиктограмму „Graphic.
Полученные данные зависят от начального моменты времени и могут выглядеть примерно сле-
дующим образом:

Результат первого измерения с помощью Profiler

Упражнение: Анализ данных в Profiler


Проанализируйте результаты, записанные с помощью Profiler, воспользовавшись в качестве руко-
водства справочной документацией Automation Studio или учебным пособием «TM223 — Диагно-
стика в Automation Studio».

32 TM213 - Automation Runtime


Характеристики среды исполнения

Diagnostics and service \ Diagnostics tools \ Profiler

Шаг 2. Постепенное увеличение значения переменной "udEndValue"


• На этом этапе выполните перезапуск Profiler, щелкнув на пиктограмме "Start" на панели
инструментов Profiler.
• Значение переменной "udEndValue" должно увеличиваться, например, с шагом 10000.
• С помощью Profiler проконтролируйте время выполнения задачи "Loop".

Для определения точного времени выполнения необходимо установить один курсор в начало за-
дачи "Loop", воспользовавшись пиктограммой на панели инструментов Profiler, а затем устано-
вить второй курсор в конце задачи "Loop", и просмотреть время.

Задача "Loop" относится к классу задач, выполняемому с интервалом 10 мс. В соответ-


ствии с этим рисунком должно произойти нарушение цикла, поскольку время выполнения
уже достигло 16,5 мс.
В этом случае начинает учитываться допустимое превышение времени цикла, которое
определяется в свойствах класса задач № 1 и составляет 10 мс.

Превышение времени цикла с учетом допуска

Шаг 3. Увеличение значения переменной "udEndValue" до тех пор, пока не возникнет


ошибка превышения времени цикла
• Увеличивайте значение переменной "udEndValue" до тех пор, пока не возникнет ошибка
превышение времени цикла

TM213 - Automation Runtime 33


Характеристики среды исполнения

4.4.8 Превышение времени цикла

Если Automation Runtime обнаруживает нарушение цикла, це-


X20CP1485 в сервисном режиме
левая система перезагружается в сервисном режиме.

В данном примере нарушение цикла возникло вследствие изменения значения переменной в ок-
не Watch. При превышении времени цикла все значения в окне Watch «замораживаются» и отоб-
ражаются равными 0 после перезагрузки в сервисном режиме.
Чтобы проанализировать причину перезагрузки системы в сервисный режим, используйте инстру-
мент Automation Studio Logger.

Diagnostics and service \ Diagnostic tools \ Logger window

Открывается Logger из окна Software Configuration, выбором из контекстного меню <Open> /


<Logger>.

Анализ причины ошибки с помощью Logger

Причина возникновения ошибки отображается как нарушение цикла в классе задач № 1.

Причина нарушения цикла может быть определена с помощью Profiler. Соответствующие


упражнения приведены в учебном пособии «TM223 — Диагностика в Automation Studio».

Если перезапуск системы осуществляется путем включения\выключения питания или по


команде горячей перезагрузки (Warm restrart) из среды Automation Studio, система загру-
жается в рабочем режиме.

4.4.9 Обработка ошибки превышения цикла в прикладной программе

Производство не должно останавливаться в случае редко воз-


никающих ошибок превышения времени цикла.
Возникающие исключения могут быть обработаны программой
обработки исключений.
Класс обработки исключений может быть активирован в свой-
ствах конфигурации ЦПУ в категории Resources .
Активация класса обработки
исключений

Программа из окна Logical View может быть добавлена к классу


обработки исключений в окне Software configuration.
Настройка класса обработки
исключений

34 TM213 - Automation Runtime


Характеристики среды исполнения

Номер исключения в свойствах задачи, расположенной в клас-


се обработки исключений, определяет, какие исключения при-
водят к вызову этой задачи.

Настройка задачи обработки


исключений

Эта задача вызывается, если превышение времени цикла (Exception no. 145) возникает во время
выполнения, (в ней также содержится отклик приложения).
Для получения информации по выдаваемым исключениям обратитесь к документации справоч-
ной системы

Programming \ Editors \ Configuration editors \ Hardware configuration \ CPU configuration \


Resources
Real-time operating system \ Target systems \ SG4 \ Runtime behavior \ Exceptions

4.5 Управление вводом/выводом

Одна из основных функций контроллера заключается в обеспечении детерминированной и мак-


симально быстрой передачи входных и выходных состояний между терминалами ввода/вывода
и приложением.

Управление системой ввода/вывода в Automation Runtime от-


вечает самым высоким требованиям в отношении времени от-
клика и гибкости конфигурации.
Менеджер ввода/вывода (I/O Manager) обеспечивает передачу
актуальных входных данных из терминала ввода/вывода каж-
дому классу задач перед началом его выполнения и обновление
выходных данных по окончании выполнения задачи в её классе.
Класс задач № 1 может быть сконфигурирован для передачи
значений выходных данных (jitter-free) без рассинхронизации.

Конфигурация для обработки


выходных данных

I/.
Scheduler

Цикл № 1
10 мс
n + 10мс + 20мс + 30мс + 40мс
Запуск многозадачной системы
Синхронная (jitter-free) запись выходов по окончании выполнения класса задач)

TM213 - Automation Runtime 35


Характеристики среды исполнения

Работа менеджера ввода/вывода определяется, исходя из настроек заданных в I/O configuration


и I/O mapping.

Real-time operating system \ Target systems \ SG4 \ I/O management


Real-time operating system \ Target systems \SG4 \ I/O management \ Method of operation

4.5.1 Запуск

При начальной загрузке контроллера актуальная конфигурация ввода/вывода загружается в


модули ввода/вывода, и производится инициализация интерфейсов и устройств полевой шины.
Благодаря этому в распоряжении программы инициализации всегда находятся достоверные дан-
ные ввода/вывода.

4.5.2 Привязка данных ввода/вывода

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

Основная функциональность системы ввода/вывода

4.5.3 I/O mapping (привязка переменных к данным ввода\вывода)

Таблица I/O mapping определяет, какие данные ввода/вывода назначаются переменной.

36 TM213 - Automation Runtime


Характеристики среды исполнения

Каждая переменная, описанная в файле .var и используемая в программе, может быть назначена
определенному каналу модуля ввода/вывода независимо от области ее действия.
Назначение переменных определенному модулю ввода/вывода производится в окне Physical
View , выбором из контекстного меню <Open I/O mapping>.
Переменная присваивается соответствующему каналу ввода/вывода в редакторе I/O mapping вы-
бранного модуля.

Таблица I/O mapping модуля дискретного ввода

При использовании глобальных переменных каналу может быть назначен класс задач, в
котором будут обрабатываться данные определенные в I/O mapping.
Задание для класса задач автоматической настройки (Automatic) означает, что среда
Automation Studio будет автоматически определять в процессе сборки проекта самый
быстрый класс задач, в котором используется глобальная переменная.

Programming \ Editors \ Configuration editors \ I/O mapping

4.5.4 I/O configuration (конфигурация модулей ввода\вывода)

Относящиеся к модулю настройки могут быть заданы в окне I/O configuration, при этом дополни-
тельное программирование не требуется.
Растущая функциональность поставляемых компанией B&R модулей удаленного ввода/вывода
предоставляет все больше различных возможностей, и режимов работы, в которых эти модули
могут быть использованы.

Для настройки каналов ввода/вывода соответствующего модуля ввода/вывода в окне Physical


View выберите из контекстного меню <Open configuration>.

TM213 - Automation Runtime 37


Характеристики среды исполнения

Настройки I/O configuration модуля дискретного ввода

Programming \ Editors \ Configuration editors \ Hardware configuration \ I/O configuration

4.5.5 Обработка ошибок модулей ввода/вывода

По умолчанию каждый модуль ввода/вывода контролируется системой ввода/вывода.


Пользователи могут настроить, каким образом система будет реагировать на возникновение
ошибки.
Мониторинг модулей ввода/вывода может быть включен или отключен параметром Module
supervised в окне I/O Configuration .

Мониторинг включен
Если модуль контролируется ОС Automation Runtime, следующие состояния могут вызвать пере-
загрузку в сервисный режим:
• Отсутствует модуль в слоте (не установлен).
• Тип фактически присутствующего модуля не совпадает с типом, заданном в проекте.
• Система ввода/вывода не может установить связь с модулем (например, по причине
неисправности модуля).

Мониторинг отключен
Если мониторинг отключен, то для обработки ошибки в приложении может использоваться канал
"ModuleOK"

Мониторинг модуля приложением

Real-time operating system \ Target systems \ SG4 \ I/O management \ Method of operation
\ Error handling

38 TM213 - Automation Runtime


Взаимодействие в многозадачной системе

5 ВЗАИМОДЕЙСТВИЕ В МНОГОЗАДАЧНОЙ СИСТЕМЕ

В этой главе описывается работа ОС Automation Runtime при выполнении одной или нескольких
программ.

5.1 Прерывание выполнения одной задачи другой

Задача, из класса задач с более высоким приоритетом, может прервать выполнение задачи, име-
ющей более низкий приоритет.

Упражнение: Проанализировать работу классов задач, используя Profiler


Используя задачи "Loop" и "Loop1", в окне Watch измените конечное значение переменной
"udiEndValue" таким образом, чтобы задача "Loop1" прервалась ровно два раза задачей "Loop".
Задайте начальное значение переменной "udiEndValue" в задаче "Loop" равным 2000.
Данные измерений в Profiler выглядят следующим образом:

Прерывание задач

Когда задача "Loop1" выполняется в классе № 4, используемые входные данные явля-


ются остаются неизменными до полного завершения выполнения задачи.

TM213 - Automation Runtime 39


Взаимодействие в многозадачной системе

5.2 Синхронизация цикла ввода/вывода с классом задач

По умолчанию для класса задач № 1 задана длительность 10


мс.
Этого недостаточно для обработки данных высокоскоростно-
го ввода/вывода, например, передаваемых через POWERLINK
или X2X.
Как описано в п. 4.4.6 "I/O scheduler (Планировщик ввода/выво-
да)", сбор данных может быть синхронизирован с циклом вво-
да/вывода полевой шины. Для того, чтобы данные обрабатыва-
лись так же быстро как и поступают, время цикла соответствую-
щего класса задач следует приравнять ко времени цикла шины
ввода/вывода.

Настройка времени цикла для класса


задач № 1

Programming \ Editors \ Configuration editors \ Hardware configuration \ CPU configuration

5.3 Класс задач с большим допуском

Задачи, которые должны быть выполняться как можно чаще, но с низким приоритетом, должны
быть назначены классу задач № 8.
По умолчанию этот класс задач имеет время цикла 10 мс и допуск 30 с.
Задачи, которые должны быть назначены классу задач № 8:
• Доступ к файлам из прикладной программы
• Сложные расчеты с нестрогими требованиями ко времени выполнения

5.4 Загрузка программ в целевую систему (Transfer)

Программы загружаются в целевую систему после изменения программного кода или конфигу-
рации системы.

5.4.1 Режимы загрузки

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


ации:
• Передача в процессе разработки — не оказывает никакого влияния на производствен-
ную систему
• Передача в процессе выполнения — оказывает влияние на производственную систему

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


ствующих настройках (Активная конфигурация -> PLC1 -> Properties -> Transfer -> Advanced).

40 TM213 - Automation Runtime


Взаимодействие в многозадачной системе

Задание режима загрузки проекта в ПЛК (Transfer)

Загрузка в процессе разработки — Overload mode (режим перезагрузки)


Если во время разработки в программный код часто вносятся изменения, следует использовать
Overload mode, который установлен по умолчанию для новой конфигурации.

Overload mode не подходит для производственной системы в рабочем режиме.

Загрузка в процессе выполнения — One cycle mode (режим одного цикла.


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

Передача в процессе выполнения — Copy mode (режим копирования)


Этот режим передачи подходит для внесения изменений в производственную систему. Обновле-
ние может занять несколько циклов.

Real-time operating system \ Target systems \ SG4 \ Download \ Copy mode


• Overload mode
• One cycle mode
• Copy mode

5.4.2 Программа выхода (_EXIT)

Программа выхода из задачи вызывается при деинсталляции (удалении) задачи.


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

TM213 - Automation Runtime 41


Взаимодействие в многозадачной системе

5.5 Поведение в системе переменных типа Retain

ОС Automation Runtime запускается автоматически при начальной загрузке целевой системы и


работает на всех этапах (см. п. 4.1 "Запуск Automation Runtime").
Для того, чтобы значения переменных процесса сохранялись после перезапуска, они должны
храниться в энергонезависимой памяти (remanent) с автономным питанием от батареи и автома-
тически загружаться при запуске.

5.5.1 Переменные типа Retain

Для обеспечения возможности хранения переменных в энергонезависимой (remanent) памяти в


отношении целевой системы и объявления переменных должны быть выполнены следующие
условия:
• Наличие в целевой системе статического ОЗУ (SRAM) с автономным питанием от бата-
реи
• Для переменных должен быть указан тип Retain

Переменные в памяти с автономным питанием от батареи

Различные целевые системы отличаются доступным объемом статического ОЗУ (SRAM).

Информация о размере и наличие статического ОЗУ (SRAM) приводится в соответству-


ющей документации на оборудование.

Примеры данных, которые могут храниться в статическом ОЗУ (SRAM):


• Счетчики рабочего времени
• Количество производственных сбоев
• Идентификационные коды изделий
• Типы счетчиков
• Прочая информация

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

Переменные типа Retain (Remanent) сохраняют свои значения после горячей переза-
грузки (warm restart), произошедшей вследствие включения питания или по команде
из среды Automation Studio.
Если производится холодная перезагрузка (cold restart) системы, то переменные типа
Retain инициализируются значением «0».

42 TM213 - Automation Runtime


Взаимодействие в многозадачной системе

Холодная перезагрузка
Холодная перезагрузка происходит в следующих случаях:
• Перезагрузка после замены карты памяти CompactFlash
• Перезагрузка после очистки памяти UserROM
• Выполнение холодной перезагрузки из среды Automation Studio
• Перезагрузка в случае неисправности батареи автономного питания памяти для хране-
ния переменных типа Retain.

Перманентные переменные (Permanent)


Для обеспечения постоянного хранения переменных типа Retain они должны быть добавлены и
настроены в редакторе перманентных переменных.
Примеры данных, которые должны постоянно храниться в статическом ОЗУ (SRAM) с
автономным питанием:
• Счетчики рабочего времени

В качестве перманентных могут использоваться только глобальные переменные типа


Retain.

Память, предназначенная для хранения перманентных переменных, не может быть от-


форматирована или перезаписана системой. За управление значениями переменных
полностью отвечает пользователь.
Неправильное задание значений перманентных переменных может привести к серьез-
ным отклонениям в работе программы.
Это особенно важно учитывать при замене ЦПУ или батареи.

Programming \ Variables and data types \ Variables \ Variable remanence


Programming \ Editors \ Configuration editors \ Permanent variables

TM213 - Automation Runtime 43


Итог

6 ИТОГ

Операционная система предоставляет интерфейс между приложениями и оборудованием, обес-


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

Целевые системы Automation Runtime

Тайминги в приложении могут быть сконфигурированы в соответствии с особыми требованиями


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

44 TM213 - Automation Runtime


Итог

TM213 - Automation Runtime 45


Итог

46 TM213 - Automation Runtime


Итог

TM213 - Automation Runtime 47


ОБУЧАЮЩИЕ КУРСЫ (ТРЕНИНГ-МОДУЛИ)

Вам также может понравиться