- •1. Программируемые логические контроллеры серий multicontrol, midicontrol, minicontrol, compact plc
- •1. 1. Общие сведения
- •1. 2. Аппаратное обеспечение
- •2. Программируемые компьютерные контроллеры
- •2. 1. Организация пкк
- •2. 2. Организация подсистемы ввода-вывода
- •2. 2. 1. Стандартная передача данных при вводе-выводе
- •2. 2. 2. Передача данных при вводе-выводе в b&r system 2010
- •2. 2. 3. Передача данных при вводе-выводе в b&r system 2003 и 2005
- •2. 4. Обмен данными между цпу и процессором ввода-вывода
- •3. Области памяти пкк
- •3. Принципы организации распределенных сАиУ на базе пкк
- •3. 1. Локальное расширение шины ввода-вывода
- •3. 2. 1. Удаленный ввод/вывод
- •3. 2. 2. Локальные управляющие вычислительные сети (лувс)
- •3. 2. 2. 1. Лувс profibus
- •3. 2. 2. 2. Лувс caNbus
- •3. 2. 2. 3. Лувс net2000
- •4. Встроенная операционная система plcsw
- •5. Многозадачность
- •5.1. Основные понятия
- •5.2. Синхронизация и быстродействие
- •5. 3. Нагрузка процессора
- •5. 4. Администратор системы
- •5. 5. Приоритет задачи
- •5. 6. Выбор класса задач
- •5. 7. Средства обеспечения безопасности
- •6. Инструментальные средства разработки
- •7. Средства визуализации в сАиУ
- •7. 1. Система panelware
- •7. 1. 1. Аппаратное обеспечение
- •7. 1. 2. Программное обеспечение
- •7. 2. Промышленные компьютеры серии provit
- •7. 2. 1. Аппаратное обеспечение
- •7. 2. 2. Программное обеспечение
- •197376, С.-Петербург, ул. Проф. Попова, 5
5.2. Синхронизация и быстродействие
Рассмотрим конкретный пример. Будем использовать класс задач TC1. Для каждого класса задач устанавливается время цикла. Класс TC1 имеет время цикла 10 мс. Это значит, что:
1. Все задачи, которые находятся в этом классе задач, должны быть достаточно короткими, чтобы выполняться за 10 мс.
2. Все задачи в данном классе задач циклически выполняются каждые 10 мс (цикл 10 мс).
Допустим, что в этом классе имеются 3 задачи. Их времена выполнения равны: Task1 - 2 мс, Task2 - 3 мс, Task3 - 2 мс, Всего - 7 мс.
Рис.5.7
Неиспользуемое время, когда процессор не занят какими-либо операциями, называется временем простоя. Оно может использоваться для выполнения других задач.
Рис.
5.8
При подобном выполнении время простоя гораздо больше, хотя полное время выполнения задачи увеличилось не столь сильно (15 мс). Недостатком является то, что наша задача выполняется реже, что и приводит к значительному времени простоя.
Если теперь запустить эти классы задач вместе, то можно проанализировать влияние класса задач 1 на класс задач 2 по циклической диаграмме TC1 и TC2 (рис. 5.9):
TC1; время цикла = 10 мс
TC2; время цикла = 70 мс
Рис. 5.9
Необходимо обратить внимание, что для task4 (из TC2) вырезаются небольшие (3 мс) временные сегменты. Для этой задачи по-прежнему выделяется 15 мс каждые 70 мс, но небольшими порциями, потому что TC1 имеет более высокий приоритет (этот вопрос будет рассмотрен позже).
Многозадачный режим основан на разделении ресурса ЦПУ между несколькими задачами. Именно этот режим показан на вышеупомянутой диаграмме. Принцип многозадачности - это принцип квантования времени. Это - процесс одновременного выполнения нескольких задач и переключения на ту задачу, которая фактически выполняется в настоящее время. Две задачи никогда реально не выполняются в один момент времени, но создается полный эффект их одновременного выполнения.
5. 3. Нагрузка процессора
Существует такое понятие, как нагрузка процессора. Этот термин используется для описания работы, которую выполняет процессор, обрабатывая задачи. Этот термин связан с задачами, классами задач и их относительными временами.
Имеется формула, чтобы определить нагрузку для класса задач. Необходимо поделить суммарное время, используемое задачами класса, на время цикла для класса задач и затем выразить это отношение в процентах, то есть:
Нагрузка = суммарное время выполнения задач / время цикла *100
Для класса задач 1 в примере нагрузка равна: (2+3+2) / 10 * 100 = 70 %.
Для класса задач 2: 15/70 * 100 = 21,4 %.
Общая нагрузка равна сумме нагрузок классов задач: 70 + 21.4 = 91,4 %.
Для определения реальной нагрузки системы к этому значению необходимо прибавить приблизительно 10 % для сопровождения системы (контроль, порядок выполнения, и т.д.). Таким образом, общая нагрузка нашей системы равна: 91,4 + 10 = 101,4%
Система перегружена, так что необходимо внести некоторые изменения. Если придти к заключению, что в действительности нет необходимости выполнять задачу 3 так часто, и перенести ее в класс задач 2, то при этом диаграмма переключения задач изменится (рис. 5.10):
TC1; время цикла = 10 мс
TC2; время цикла = 70 мс
Рис. 5.10
Необходимо также заново вычислить нагрузку.
Для класса задач 1 в новом примере она равна: (2 + 3) / 10 * 100 = 50 %.
Для класса задач 2: (15 + 2) / 70 * 100 = 24,2 %.
Общая нагрузка равна сумме нагрузок классов задач: 50 + 24,2 = 74,2 %.
Реальная нагрузка системы:74,2 + 10 = 84,2 %.
Это намного лучше по сравнению с предыдущими расчетами. Система больше не перегружена, и все задачи будут выполнены. Обратите внимание, как сильно отличается влияние этой задачи со временем выполнения 2 мс на нагрузку системы в зависимости от класса задач (и времени цикла). Нельзя забывать при этом об изменении области применения некоторых переменных, если они будут передаваться между задачей 3 и другими задачами в классе задач 1. Теперь их необходимо поместить в класс глобальных переменных ПКК.