Академический Документы
Профессиональный Документы
Культура Документы
Automation Runtime
TM213TRE.40-RUS
2013/07/26
Необходимые условия и требования
Обучающие курсы TM210 — Работа с Automation Studio
(тренинг-модули):
Программное обеспе- Automation Studio 4.0
чение
Аппаратное обеспе- X20CP1486
чение
ОГЛАВЛЕНИЕ
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
1 ВВЕДЕНИЕ
На данном обучающем курсе дается как общее представление об ОС Automation Runtime, так и
рассматриваются ее отличительные особенности.
Требования, предъявляемые к
Automation Runtime
1 Некоторые целевые системы имеют внутреннюю память для приложений. В этом случае Automation
Runtime и прикладные программы загружаются из внутренней памяти для приложений. Установка
Automation Runtime на эти системы осуществляется через последовательный или Ethernet-порт.
Diagnostics and service \ Service tools \ Runtime Utility Center \ Creating a list / data medium
\ CompactFlash functions \ Creating a CompactFlash
Automation Runtime также может быть загружена в ПЛК с помощью онлайн-соединения. Для этого
должен быть правильно сконфигурирован онлайн-интерфейс или должен быть включен соответ-
ствующий рабочий режим (4.5.1 "Запуск").
Начиная с версии V3.06, предустановленная ОС (Default Runtime)2 для систем SG4, поз-
воляет осуществлять поиск устройств также по протоколу SNMP3
Соединение
Соединение с контроллером устанавливается в среде Automation Studio с помощью функции
Browse. При этом в сети осуществляется поиск контроллеров B&R. Кроме того, в окне поиска воз-
можно временное изменение параметров соединения с контроллером.
Programming \ Build & Transfer \ Online services \ Transfer Automation Runtime \ Transfer to
SGx target systems \ Installation via online connection
Изменение версий ПО для блока управления движением (motion control), систем ЧПУ и
визуальных компонентов (Visual Components) может повлиять на все аппаратные конфи-
гурации, так как все конфигурации используют общий экземпляр соответствующей биб-
лиотеки (находящийся в окне Logical View), а он может быть только один.
После изменения версии Automation Runtime для выбранной конфигурации необходимо
перед загрузкой проекта в ПЛК выполнить Rebuld.
При загрузке проекта в целевую систему все обнаруженные конфликты версий отображаются в
диалоговом окне.
Diagnostics and Service \ Service Tool \ Runtime Utility Center \ Creating a list / data medium
\ CD creation
3 УПРАВЛЕНИЕ ПАМЯТЬЮ
Во время сборки проект Automation Studio генерирует модули с расширением .br, которые могут
быть выполнены ОС Automation Runtime.
Статическое ОЗУ (SRAM): В отличие от динамического ОЗУ (DRAM), статическое ОЗУ (SRAM)
поддерживается батареей, что позволяет сохранять данные даже во время сбоя питания. При
условии, конечно, что батарея заряжена и исправна.
Динамическое ОЗУ (DRAM) Динамическое ОЗУ (DRAM) является оперативной памятью, которая
после запуска имеет неопределенное состояние.
При начальной загрузке Automation Runtime загружает в динамическое ОЗУ (DRAM) все необхо-
димые BR модули, благодаря чему к ним обеспечивается быстрый доступ.
BR модуль, находящийся в ОЗУ, отвечает за инициализацию области памяти, которая должна
быть предварительно сконфигурирована в Automation Studio под глобальные или локальные пе-
ременные (см. 4.2.3 "Инициализация области памяти для хранения переменной").
Онлайн-информация
При выборе из главного меню пунктов
<Online> / <Info> на экран выводится общая
информация о количестве доступной памяти.
Данная возможность доступна не для всех це-
левых систем. Выводимая онлайн информация
также позволяет определить состояние резерв-
ной батареи и текущее время на контроллере.
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
При наличии активного онлайн-соединения может быть выполнено сравнение модулей, сконфи-
гурированных в Automation Studio, с модулями, установленными в целевой системе.
Если на этапе начальной загрузки не возникает никаких ошибок, производится запуск целевой
системы в рабочем (RUN) режиме.
4 В зависимости от используемого устройства, для задания его рабочего режима используется ли-
бо переключатель номера узла (node switch), либо специальный переключатель, предусмотренный
для этой цели. С дополнительной информацией можно ознакомиться в соответствующем руковод-
стве по эксплуатации.
При добавлении программы в окне Logical View, по умолчанию предлагается автоматически вста-
вить ее и в конфигурацию программного обеспечения (окно Software Configuration).
После того как все переменные будут добавлены в окно Watch для программ Loop и
Loop1, отдельные значения переменных будут отображаться в каждой задаче, к которой
они относятся.
Изменение локальной переменной в одной задаче затрагивает только эту задачу — зна-
чения локальных переменных другой задачи не изменяются.
Глобальные переменные отображаются на верхнем уровне панели Logical View и могут исполь-
зоваться в любом месте проекта Automation Studio. Другими словами, они могут быть использо-
ваны в любой программе.
Глобальные переменные уровня пакета, которые объявлены в пакете, видны только в пределах
этого пакета и всех подчиненных пакетов.
Если переменная gMain добавлена в окно отслеживания состояния переменных для за-
дач "Loop" и "Loop1", то изменение ее значения в одной из программ, незамедлительно
приводит к такому же изменению в другой программе.
4.2.4 Константы
Объявление констант
Инициализация программы
В этой подпрограмме могут решаться такие задачи как: инициализация переменных, считывание
данных с ПЛК и о текущей системной конфигурации, для последующего использования в цикли-
ческой части.
При использовании функций важно следить за тем, чтобы при первом вызове функция возвра-
щала результат.
Задача выполняется циклически в течение времени, определенного для её класса (task class),
которое также называют временем цикла (cycle time).
Возможно задать до восьми классов задач с настраиваемым временем цикла, что позволяет оп-
тимизировать задачу в точном соответствии с предъявляемыми требованиями. Класс задач объ-
единяет в себе задачи с одинаковыми временем цикла, приоритетом и допуском на превышение
времени цикла (tolerance).
Не все задачи требуют выполнения в течение одного и того же интервала времени. За-
дачам управления, которые должны выполняться быстрее, должен быть назначен класс
задач с меньшим номером. Медленным процессам следует назначать классы задач с
большим номером.
Время цикла
Цикл №4
100 мс
Это означает, что задачи, относящиеся к данному классу задач, выполняются каждые 100 мс.
Real-time operating system \ Target systems \ SG4 \ Runtime behavior \ Start of cyclic tasks
Цикл № 1
10 мс
100мс
Цикл №4
100 мс
n + 50мс + 100мс + 150мс + 200мс
Запуск многозадачной системы
Задачи "LampTest " и "Loop1" в классе задач №4 продолжают выполняться каждые 100 мс.
Программа "Loop" выполняется в 10 раз чаще программы "Loop1". В результате чего зна-
чение "udiCounter" увеличивается быстрее.
Это означает, например, что класс задач длительностью 100 мс будет запущен через 50 мс. Рас-
пределение временных моментов запуска каждого класса задач может привести к сокращению
времени выполнения и минимизации рассинхронизации даже в условиях высокой нагрузки на
процессор.
Real-time operating system \ Target systems \ SG4 \ Runtime behavior \ Start of cyclic tasks
Цикл № 1
10 мс
Цикл №4
100 мс
Простой (Idle)
Время простоя
Время, которое остается после выполнения всех задач, называется временем простоя.
I/O scheduler запускает класс задач в точно заданное время и предоставляет данные с точек
ввода/вывода всем задачам во всех классах.
Благодаря этому, актуальные входные данные в момент старта класса задач и выходные в мо-
мент его завершения оперативно переносятся в переменные процесса, назначенные соответ-
ствующим входам\выходам.
У каждого класса задач имеется отдельная таблица привязки точек ввода/вывода (I/O
mapping). Входные состояния не изменяются во время выполнения задачи, а запись ин-
формации о выходных состояниях осуществляется только после завершения задач в
классе задач.
Это означает, за заданное время цикла будут получены свежие данные со всех устройств полевой
шины (в данном случае X2X Link), а также записаны выходные данные.
Данные
/ввода/вывода
Для приложения это означает, что на момент старта соответствующего класса задач, актуаль-
ность входных данных не превышала настроенного времени цикла полевой шины. Выходные дан-
ные также будут записаны в пределах настроенного времени обновления полевой шины после
завершения класса задач.
I/Данные ввода/вывода
I/O
Scheduler
В этом случае I/O scheduler вызывается в два раза чаще, чем обновляются данные в таблице I/
O mapping.
Настройка системного таймера относительно таймера полевой шины (X2X или POWERLINK) в
соотношении 1:1 приведет к тому, что I/O Scheduler будет вызываться с интервалом, равным
настроенному времени цикла обновления данных ввода/вывода.
Данные
/ввода/вывода
Данные
/I/O
Scheduler
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 значения переменных записываются в назна-
ченные выводы согласно таблицы привязки (красная стрелка).
I/O
Scheduler
Цикл № 1
10 мс
Цикл №4
100 мс
n + 50мс + 60мс + 70мс + 80мс
Запуск многозадачной системы
Если настроенное время цикла класса задач превышено, повторный запуск класса задач
не будет производиться до начала следующего цикла. Это может привести к проблемам
синхронизации приложений.
3) Увеличение значения переменной "udEndValue" до тех пор, пока не возникнет ошибка пре-
вышения цикла
После выполнения каждого из этих этапов необходимо проанализировать результаты, используя
Profiler.
При выполнении этого задания рекомендуется открыть одновременно окно Watch задачи
"Loop", окно Software configuration и Profiler .
Задача может быть изменена путем выбора соответствующей рабочей книги.
Переключение на Profiler
Загрузите измененные настройки Profiler'a в целевую систему, нажав пиктограмму "Install" на па-
нели инструментов Profiler. Регистрация данных начинается сразу же с учетом новой конфигура-
ции.
Снова остановите процесс регистрации, нажав пиктограмму "Stop", и затем щелкните на пикто-
грамме "Upload Data" панели инструментов Profiler, чтобы загрузить собранные данные в среду
Automation Studio, где они могут быть просмотрены нажатием на пиктограмму „Graphic.
Полученные данные зависят от начального моменты времени и могут выглядеть примерно сле-
дующим образом:
Для определения точного времени выполнения необходимо установить один курсор в начало за-
дачи "Loop", воспользовавшись пиктограммой на панели инструментов Profiler, а затем устано-
вить второй курсор в конце задачи "Loop", и просмотреть время.
В данном примере нарушение цикла возникло вследствие изменения значения переменной в ок-
не Watch. При превышении времени цикла все значения в окне Watch «замораживаются» и отоб-
ражаются равными 0 после перезагрузки в сервисном режиме.
Чтобы проанализировать причину перезагрузки системы в сервисный режим, используйте инстру-
мент Automation Studio Logger.
Эта задача вызывается, если превышение времени цикла (Exception no. 145) возникает во время
выполнения, (в ней также содержится отклик приложения).
Для получения информации по выдаваемым исключениям обратитесь к документации справоч-
ной системы
I/.
Scheduler
Цикл № 1
10 мс
n + 10мс + 20мс + 30мс + 40мс
Запуск многозадачной системы
Синхронная (jitter-free) запись выходов по окончании выполнения класса задач)
4.5.1 Запуск
Полученные входные данные от модулей ввода/вывода хранятся в памяти в виде блоков. Табли-
ца I/O Mapping используется для определения каким данными соответствуют какие переменные.
Выходные данные записываются по такому же принципу, - значения переменных копируются в
выделенный блок памяти, исходя из соответствий, указанных в I/O Mapping.
На следующем рисунке показана взаимосвязь между конфигурацией (I/O configuration), которая
загружается в модуль во время запуска и таблицей I/O mapping, которая назначает данные вво-
да/вывода соответствующим переменным.
Каждая переменная, описанная в файле .var и используемая в программе, может быть назначена
определенному каналу модуля ввода/вывода независимо от области ее действия.
Назначение переменных определенному модулю ввода/вывода производится в окне Physical
View , выбором из контекстного меню <Open I/O mapping>.
Переменная присваивается соответствующему каналу ввода/вывода в редакторе I/O mapping вы-
бранного модуля.
При использовании глобальных переменных каналу может быть назначен класс задач, в
котором будут обрабатываться данные определенные в I/O mapping.
Задание для класса задач автоматической настройки (Automatic) означает, что среда
Automation Studio будет автоматически определять в процессе сборки проекта самый
быстрый класс задач, в котором используется глобальная переменная.
Относящиеся к модулю настройки могут быть заданы в окне I/O configuration, при этом дополни-
тельное программирование не требуется.
Растущая функциональность поставляемых компанией B&R модулей удаленного ввода/вывода
предоставляет все больше различных возможностей, и режимов работы, в которых эти модули
могут быть использованы.
Мониторинг включен
Если модуль контролируется ОС Automation Runtime, следующие состояния могут вызвать пере-
загрузку в сервисный режим:
• Отсутствует модуль в слоте (не установлен).
• Тип фактически присутствующего модуля не совпадает с типом, заданном в проекте.
• Система ввода/вывода не может установить связь с модулем (например, по причине
неисправности модуля).
Мониторинг отключен
Если мониторинг отключен, то для обработки ошибки в приложении может использоваться канал
"ModuleOK"
Real-time operating system \ Target systems \ SG4 \ I/O management \ Method of operation
\ Error handling
В этой главе описывается работа ОС Automation Runtime при выполнении одной или нескольких
программ.
Задача, из класса задач с более высоким приоритетом, может прервать выполнение задачи, име-
ющей более низкий приоритет.
Прерывание задач
Задачи, которые должны быть выполняться как можно чаще, но с низким приоритетом, должны
быть назначены классу задач № 8.
По умолчанию этот класс задач имеет время цикла 10 мс и допуск 30 с.
Задачи, которые должны быть назначены классу задач № 8:
• Доступ к файлам из прикладной программы
• Сложные расчеты с нестрогими требованиями ко времени выполнения
Программы загружаются в целевую систему после изменения программного кода или конфигу-
рации системы.
Карта CompactFlash должна использоваться для хранения редко меняющихся данных, (напри-
мер, настройки, рецепты и т.д.).
Перезапуск происходит при возникновении следующих событий:
• Включение питания
• Загрузка измененной конфигурации в целевую систему
• Выполнение горячей перезагрузки из среды Automation Studio (аналогично включению
питания)
Переменные типа Retain (Remanent) сохраняют свои значения после горячей переза-
грузки (warm restart), произошедшей вследствие включения питания или по команде
из среды Automation Studio.
Если производится холодная перезагрузка (cold restart) системы, то переменные типа
Retain инициализируются значением «0».
Холодная перезагрузка
Холодная перезагрузка происходит в следующих случаях:
• Перезагрузка после замены карты памяти CompactFlash
• Перезагрузка после очистки памяти UserROM
• Выполнение холодной перезагрузки из среды Automation Studio
• Перезагрузка в случае неисправности батареи автономного питания памяти для хране-
ния переменных типа Retain.
6 ИТОГ