Файл: Системы программирования (Сущность систем программирования и их состав).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

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

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

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

Появился целый класс программного обеспечения реализующего интерфейс «человек – машина» (MMI). Это так называемые системы сбора данных и оперативного диспетчерского управления (Supervisory Control And Data Acquision System – SCADA). Современные SCADA-системы выполняются с обязательным применением средств мультимедиа. Помимо живого отображения процесса производства, хорошие диспетчерские системы позволяют накапливать полученные данные, проводят их хранение и анализ, определяют критические ситуации и производят оповещение персонала по каналам телефонной и радиосети, позволяют создавать сценарии управления (как правило, Visual Basic), формируют данные для анализа экономических характеристик производства.

Создание систем диспетчерского управления является отдельным видом бизнеса. Разделение производства программируемых логических контроллеров, средств программирования и диспетчерских систем привело к появлению стандартных протоколов обмена данными. Наибольшую известность получила технология ОРС (OLE for Process Control), базирующаяся на механизме DCOM Microsoft Windows. Механизм динамического обмена данными (DDE) применяется пока еще достаточно широко, несмотря на то что требованиям систем реального времени не удовлетворяет.

Одной из систем для разработки программного обеспечения для программируемых логических контроллеров является программный комплекс CoDeSys. Он разработан компанией 3HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"SHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"-HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"SmartHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com" HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"SoftwareHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com" HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"SolutionsHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com" HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"GmbHHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com" (3HYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"SHYPERLINK "http://www.prolog-plc.ru/www.3s-software.com"). Его основное назначение – программирование ПЛК и промышленных компьютеров в стандарте МЭК 61131-3. Ряд неординарных решений 3S привел к тому, что CoDeSys стал штатным инструментом программирования ПЛК ведущих европейских изготовителей: ABB, Beckhoff, Beck IPC, Berger Lahr, Bosch Rexroth, ifm, Keb, Kontron, Lenze, Moeller, WAGO, Fastwel и др. Некоторые из них используют CoDeSys как базовое ядро собственных систем программирования, известных под собственными торговыми марками.

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

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


Из отладочных функций CoDeSys интересен инструмент графической трассировки значений переменных. С его помощью можно проводить отладку не только ПО, но и оборудования, причем без написания программы. Весьма удобно и наличие встроенной системы визуализации, функционирующей как в инструментальной среде, так и в программируемом логическом контроллере (имеющем дисплей) и Web. На практике пользователи выполняют достаточно сложные проекты автоматизации в CoDeSys без необходимости приобретения SCADA. Система программирования CoDeSys может работать как поверх операционной системы, так и на «голом железе». Естественно во втором случае адаптация несколько сложнее, поскольку приходится писать собственный начальный загрузчик, системные тесты, обработчик таймера, т. е. типовую минимальную поддержку аппаратуры. Но на 8- и 16-разрядных платформах это дает существенный выигрыш по быстродействию и необходимым ресурсам. Существуют четыре разновидности систем программирования CoDeSys: CSP8, CSP16, CSP32E и CSP32F. Они предназначены для 8-, 16-, 32-разрядных процессоров без ОС соответственно. Система CSP32F ориентирована на 32-разрядные платформы с ОС РВ. Она опирается на механизмы вытесняющей многозадачности ОС, первые три включают собственный монитор многозадачности (без вытеснения). Пользователь может создавать многозадачные проекты даже в ПЛК, построенном на 8051.

В настоящее время CoDeSys поддерживает семейства: Intel 8051, Intel 80x86 / 80186 / Pentium, семейство ARM, MIPS, Motorola MC68000 / MC68332 / ColdFire, PowerPC, Hitachi SH 2/3/4, H8, Infineon C16x, Infineon TriCore и Texas Instruments TMS32028x.

Особняком стоит система программирования CoDeSys SP RTE для Windows XP/NT/2000. Она включает в себя собственное ядро жесткого реального времени, функционирующее под Windows. Эта система не требует адаптации. Связь с оборудованием происходит через драйверы. SDK включен в комплект поставки.

Технические преимущества CoDeSys с аналогичными системами разработки и моделирования:

  • рекордное быстродействие прикладных МЭК программам. Встроенный компилятор непосредственно формирует машинный код для целевого микропроцессора. Пользователь может писать даже обработчики аппа-ратных прерываний на МЭК языках (если это разрешено изготовителем ПЛК) и синхронизировать параллельные процессы с микросекундной точностью;
  • для создания библиотек быстрых функций не обязательно использовать внешние средства (C-компилятор). Как результат – переносимость и нормальная работа в режиме эмуляции;
  • возможность включения собственных программных расширений наравне со стандартными, включая встроенную систему подсказки;
  • доступны исходные тексты системы программирования;
  • полная и даже расширенная реализация стандарта МЭК 61131-3;
  • упрощенный SFC, CFC;
  • интегрированные средства эмуляции и визуального моделирования;
  • встроенные конфигураторы модульных систем и распределенных fieldbus систем (CANopen, DeviceNet, Profibus и др.);
  • три механизма создания распределенных приложений: высокоуровневое связывание переменных (network variables), объектная master-slave модель (аналогично PDO в CANopen), библиотеки нестандартных сетей или распределенный ввод/вывод (реализуется изготовителем программируемых логических контроллеров);
  • встроенная, целевая и web визуализация;
  • ряд дополнительных возможностей (библиотеки CANopen, Modbus, система управления версиями ENI. SoftMotion).

Допустим, вы написали и отладили автономный проект на контроллере при помощи системы подготовки программ CoDeSys. Как теперь нужно доработать программу, чтобы связать программируемые логические контроллеры с системой диспетчерского управления, базой данных или Интернет-сервером? Ответ: никак. Никакого программирования далее вообще не потребуется. В комплекс программирования ПЛК входит ОРС-сервер.

Он умеет получать доступ к данным программируемых логических контроллеров также прозрачно, как и отладчик. Достаточно обеспечить канал передачи данных программируемым логическим контроллерам –ОРС-сервер. Обычно такой канал уже существует, вы использовали его при отладке. Вся дальнейшая работа сводится к определению списка доступных переменных, правильной настройке сети, конфигурированию ОРС-сервера и SCADA-системы. В целом операция очень напоминает настройку общедоступных устройств локальной сети ПК.

Вторая задача – интеграция нескольких программируемых логических контроллеров с целью синхронизации их работы. Здесь появляются сети, обладающие рядом специфических требований. В целом эти требования аналогичны требованиям к программируемым логическим контроллерам: режим реального времени, надежность в условиях промышленной среды, ремонтопригодность, простота программирования. Такой класс сетей получил название промышленных сетей (fieldbus). Существует масса фирменных реализаций и достаточно много стандартов таких сетей (Bitbus, Modbus, Profibus, CANopen, DeviceNen), позволяющих интегрировать аппаратуру различных фирм, но ни один из них нельзя признать доминирующим.

Благодаря продуктивному развитию средств сетевой интеграции появилась возможность создания распределенных систем управления. В 80-е годы XX века доминировали программируемые логические контроллеры с числом в несколько сотен входов-выходов. В настоящее время большим спросом пользуются микропрограммируемые логические контроллеры с количеством входов-выходов до 64. В распределенных системах каждый программируемый логический контроллер решает локальную задачу. Задача синхронизации управления выполняется компьютерами среднего звена АСУ. Распределенные системы выигрывают по надежности, гибкости монтажа и простоте обслуживания.

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


По включению питания программируемый логический контроллер выполняет самотестирование и настройку аппаратных ресурсов, очистку оперативной памяти данных (ОЗУ), контроль целостности прикладной программы пользователя. Если прикладная программа сохранена в памяти, программируемый логический контроллер переходит к основной работе, которая состоит из постоянного повторения последовательности действий, входящих в рабочий цикл.

Рабочий цикл программируемого логического контроллера состоит из нескольких фаз:

  1. Начало цикла.
  2. Чтение состояния входов.
  3. Выполнение кода программы пользователя.
  4. Запись состояния выходов.
  5. Обслуживание аппаратных ресурсов программируемых логических контроллеров.
  6. Монитор системы программирования.
  7. Контроль времени цикла.
  8. Переход на начало цикла.

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

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

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

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

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


Пользовательская программа работает только с мгновенной копией входов. Таким образом, значения входов в процессе выполнения пользовательской программы не изменяются в пределах одного рабочего цикла. Это фундаментальный принцип построения программируемых логических контроллеров сканирующего типа. Такой подход исключает неоднозначность алгоритма обработки данных в различных его ветвях. Кроме того, чтение копии значения входа из ОЗУ выполняется значительно быстрее, чем прямое чтение входа. Аппаратно чтение входа может быть связано с формированием определенных временных интервалов, передачей последовательности команд для конкретной микросхемы или даже запросом по сети.

Если заглянуть глубже, то нужно отметить, что не всегда работа по чтению входов полностью локализована в фазе чтения входов. Например, АЦП обычно требуют определенного времени с момента запуска до считывания измеренного значения. Часть работы системное программное обеспечение контроллера выполняет по прерываниям. Грамотно реализованная система программирования нигде и никогда не использует пустые циклы ожидания готовности аппаратуры. Для прикладного программиста все эти детали не важны. Существенно только то, что значения входов обновляются автоматически исключительно в начале каждого рабочего цикла.

Общая продолжительность рабочего цикла программируемых логических контроллеров называется временем сканирования. Время сканирования в значительной степени определяется длительностью фазы кода пользовательской программы. Время, занимаемое прочими фазами рабочего цикла, практически является величиной постоянной. Для задачи среднего объема в программируемых логических контроллерах с системой программирования CoDeSys время распределится примерно так: 98 % – пользовательская программа, 2 % – все остальное.

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

Инженер, спроектировавший машину, должен иметь возможность самостоятельно написать программу управления. Никто лучше его не знает, как должна работать данная машина. Инженер, привыкший работать с электронными схемами, гораздо легче сможет выражать свои мысли в LD или FBD. Если он знаком с языками PASCAL или С, то использование языка ST не составит для него сложности.