Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспЛекций_ГСиИО_Козак.doc
Скачиваний:
102
Добавлен:
06.12.2018
Размер:
8.64 Mб
Скачать

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

  1. Как и в других средах, где проводится автоматическая сборка мусора (таких как Java), во время выполнения часто снижается производительность из-за накладных расходов на отслеживание использования объектов (отслеживание ссылок) и удаление их в нужное время.

  2. Нежелательным эффектом, который часто ассоциируется с автоматической сборкой мусора, является повышение объема физической памяти, требуемой для хранения объектов, которые могут быть удалены, но еще не удалены сборщиком мусора. Более агрессивные схемы сборки мусора проигрывают в производительности, а менее агрессивные — в избыточном использовании памяти. В традиционной программе C++ программист сам решает, когда именно каждый объект удаляется из динамически распределяемой области памяти. Такой подход потенциально позволяет программисту написать программу, которая одновременно выиграет и в производительности, и в использовании памяти.

  3. Если имеются приложения Win32, написанные на языке C++, которые течение некоторого периода времени нужно преобразовать в приложения .NET. Тогда, в течение переходного периода, будет существовать программа, содержащая смесь управляемого и неуправляемого кода.

  4. Наиболее весомым аргументом является то, что для управляемого кода пока не создано расширения реального времени для Windows. Поэтому компоненты поддерживающие работу в реальном времени разрабатываются в неуправляемом коде.

Рассмотрим пункты 1 и 2 этого списка. В большинстве программ вопросы производительности наиболее эффективно решаются за счет оптимизации относительно небольших, но критичных фрагментов программы. Таким образом, часто имеет смысл изначально реализовать программу, используя управляемые расширения (или даже С# или VB.NET), a затем, после внимательного анализа производительности, те участки программы, которые окажутся критичными, могут быть оптимизированы с использованием неуправляемого кода на C++.

Вопросы

  1. Особенности управляемого кода, CLR, возможность создание неуправляемого кода на платформе .Net.

  2. Сборка мусора в .NET Framework.

  3. Ограничения по использованию управляемых типов в C++.

  4. Причины смешивания управляемого и неуправляемого кодов.

Семестр 9 Р3. Платформа автоматизации CoDeSys

P3. Лекция № 8. Основные возможности системы CoDeSys

Основные возможности системы CoDeSys. Базовая структура проекта и его элементы. Визуальная разработка и отладка управляющих программ. Инструментарий разработки. Целевая визуализация процессов управления.

Основные возможности системы CoDeSys.

На сегодняшний день лидирующие позиции на рынке систем программирования МЭК занимает комплекс CoDeSys немецкой компании 3S_Smart Software Solutions GmbH. Его применяют 190 компаний во всём мире, большинство из этих компаний – ведущие изготовители оборудования и/или систем промышленной автоматизации. В России ПЛК с CoDeSys хорошо известны специалистам, диапазон продукции, выпускаемой под управлением этих ПЛК, огромен: от сигарет, соков и жевательной резинки до немецких автомобилей, оборудования малых и больших судов.

CoDeSys включает 5 специализированных редакторов для каждого из стандартных языков программирования: Список Инструкций (IL), Функциональные блоковые диаграммы (FBD), Релейноконтактные схемы (LD), Структурированный текст (ST), Последовательные функциональные схемы (SFC). Редакторы поддержаны большим числом вспомогательных инструментов, ускоряющих ввод программ. Это ассистент ввода, автоматическое объявление переменных, интеллектуальная коррекция ввода, цветовое выделение и синтаксический контроль при вводе, масштабирование, автоматическое размещение и соединение графических элементов.

В одном проекте можно совмещать программы, написанные на нескольких языках МЭК, либо использовать один из них. Никаких особых требований по выбору языка нет. Он обусловлен исключительно личными предпочтениями. В России наиболее популярен язык ST. Это текстовый язык, представляющий собой несколько адаптированный Паскаль. Второе место по популярности занимает графический язык FBD, далее следует язык LD.

Помимо средств подготовки программ, CoDeSys включает встроенный отладчик, эмулятор, инструменты визуализации и управления проектом, конфигураторы ПЛК и сети.

Как средство программирования ПЛК CoDeSys можно разделить на 2 части: среду программирования и систему исполнения. Среда программирования функционирует на персональном компьютере в среде Windows:

Рис. 24 Среда программирования и систему исполнения в CoDeSys

Поскольку CoDeSys дает машинный код, поддержка его исполнения достаточно проста и по минимуму сводится к набору функций поддержки ввода-вывода и отладки. Система исполнения функционирует в ПЛК и обеспечивает загрузку код прикладной программы, "горячее" обновление кода, отладку, управление задачами и ряд сервисных функций. Система исполнения поставляется 3S изготовителям ПЛК (OEM) в виде исходных текстов. Это позволяет максимально эффективно реализовать поддержку аппаратных средств, без каких либо промежуточных механизмов. Изготовителю оборудования требуется, дописать аппаратно-зависимые функции ввода-вывода, возможно, отредактировать функции поддержки канала связи на физическом уровне (через API при наличии ОС) и функции записи кода прикладной программы в ППЗУ (Flash, диск и др.). Далее он компилирует готовую систему исполнения и помещает ее код в ПЗУ (или на загрузочный диск) своего ПЛК.