Микропроцессоры и микроконтроллеры

 
 
 
«Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.»
Rick Cook
Русский | Українська


Микропроцессоры и микроконтроллеры :: Энергосберегающие системы :: 3.1 Средства программирования современных микроконтроллеров

3.1 Средства программирования современных микроконтроллеров

Современные программируемые логические контроллеры (ПЛК) программируются в соответствии со стандартом МЭК 61131, в котором описаны стандартизованные языки программирования, представляющие интерес для практического использования. В данном разделе приводится их подробный анализ.
IL (Instruction List - список команд) -текстовый язык низкого уровня, синтаксически похожий на ассемблер. Программа на языке IL имеет примерно следующий вид:

CAL Fp (MODE:=Sinus,BASE:=TRUE,
PERIOD:=t#2s, AMPLITUDE:=100)
LD Fp.Out
ST Out_Gen_1.

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

ST (Structured Text - структурированный текст) - текстовый язык высокого уровня, синтаксически - адаптированный язык Паскаль. Программа на языке ST имеет следующий вид:

Fp (MODE:=Triangle,BASE:=TRUE,
PERIOD:=t#2s, AMPLITUDE:=100);
Out_Gen_1 := INT_TO_REAL (Fp.OUT);
Filter1.In := Out_Gen_1 - Filter1.Out;
Filter1 (Tm :=100, RESET := FALSE);
Variable1 := SQRT (Filter1.Out).

На его основе можно создавать гибкие процедуры обработки данных. Язык ST является основным для программирования шагов языка SFC.

3. LD (Ladder Diagram - релейные диаграммы) - графический язык, являющийся стандартизованным вариантом класса языков релейно-контактных схем. Логические выражения на этом языке описываются в виде реле, которые широко применялись в области автоматизации в 60-х годах. Стандартом МЭК 61131-3 предусмотрено использование не только базовых элементов программирования ("контакт" и "катушка"), но и любых других функциональных блоков. 4. FBD (Functional Block Diagram - диаграммы функциональных блоков) - графический язык, по своей сути похожий на LD, но вместо реле использующий функциональные блоки. FBD-схемы очень четко отражают взаимосвязь входов и выходов диаграммы, используя технологию инкапсуляции алгоритмов обработки данных. Все программирование сводится к "склеиванию" готовых компонентов.

5. SFC (Sequential Function Chart - последовательные функциональные схемы) - графический язык, позволяющий описать алгоритм в виде набора связанных пар "шаг-переход". Шаг представляет собой набор операций над переменными, а переход - набор выражений, определяющий передачу правления следующему шагу. SFC имеет возможность распараллеливания алгоритма, но не имеет средств для описания шагов и переходов, которые могут быть выражены только средствами других языков стандарта. Основным достоинством SFC является высокая выразительность графического представления алгоритма.
Для создания программ на языках стандарта МЭК 61131-3 используются инструментальные пакеты. Обычно они включают редакторы (для каждого из языков) и некоторые дополнительные функциональные расширения. Ассортимент таких пакетов достаточно широк (CoDeSys, Concept, IsaGRAF, OpenPCS, Multiprog, Virgo2000, KONGRAF), но мы рассмотрим только два из них - CoDeSys (компании 3S Software) и Concept (Schneider Electrics).
Пакет CoDeSys является одним из наиболее известных универсальных инструментов МЭК-программирования для ПЛК и промышленных компьютеров. Его используют более ста известных компаний-изготовителей аппаратных средств индустрии автоматизации. Помимо пяти стандартных языков, в CoDeSys включен редактор CFC-диаграмм, основанный на языке FBD, но более удобный и наглядный за счет свободного размещения блоков. CoDeSys может генерировать машинный код для большинства распространенных процессоров (Motorola, Intel (в т.ч. 80х86 и Pentium), Siemens, Hitachi
и др.). Все компоненты CoDeSys подробно документированы и имеют встроенную систему помощи.
К основным особенностям пакета можно отнести следующие.
1. Быстрое внедрение - адаптация для любой стандартной процессорной платформы занимает не более двух дней.
2. Эффективные средства ввода - функции автоматического объявления и форматирования, ассистент ввода и другие максимально упрощают работу. Команды имеют возможность управления мышью и ввода с клавиатуры.
3. Высокая производительность - встроенный компилятор непосредственно генерирует быстрый машинный код (в отличие от обычных трансляторов), что обеспечивает максимальную производительность прикладных проектов при сохранении высокой скорости компиляции.
4. Низкие системные требования программы - CoDeSys совместим с любой операционной системой семейства Microsoft® Windows®.
5. Компактность проекта - в отличие от большинства конкурирующих пакетов весь проект находится в одном файле, что удобно при его переносе.
6. Расширенная реализация всех пяти МЭК-языков. Редакторы для всех языков программирования сосредоточены в одном приложении, что очень удобно. Выбор языка написания модуля осуществляется при его создании и после этого не может быть изменен в дальнейшем. CoDeSys включает богатый набор средств отладки и сопровождения (явное объявление переменных, автоматическое формирование списка параметров подпрограмм, мониторинг/запись/фиксация значений переменных, пошаговое выполнение, он-лайн коррекция кода, трассировка и эмуляция).
Кроме среды программирования, в состав комплекса CoDeSys входят: SP RTE (эмуляция ПЛК на ПК), Soft Motion (набор средств управления движением - до многомерной интерполяции современных систем ЧПУ), ARTI (обеспечивает символьный доступ к переменным в ПЛК) и ENI Server (позволяет работать с одним проектом нескольким пользователям). Также CoDeSys обладает достаточно широкими графическими возможностями, которые по функциональности не уступают простейшим.
Данный пакет является фирменным, т. е. он предназначен для программирования контроллеров только одного производителя - компании Schneider Electric. Помимо стандартных, Concept поддерживает язык LL984 (Ladder Logic - лестничная логика). Он используется для программирования ПЛК старой версии (Modsoft).
С помощью средств конфигурации Concept очень просто выбирать, размещать и перемещать объекты (блоки, шаги или переходы) в графической форме. Функции импорта/экспорта позволяют преобразовывать программы на языках ST и IL в программы на FBD, SFC, IL или ST и наоборот.
Большим плюсом пакета является наличие большого выбора библиотек блоков, что существенно упрощает процесс программирования и расширяет возможности пакета. При этом существует возможность дополнить библиотеки своими собственными блоками, выполняющими необходимые функции, с помощью утилиты Concept DFB (Функциональные блоки пользователя). Также эта утилита предназначена для программирования шагов языка SFC.
Средствами Concept возможно документирование проекта, что предусматривает распечатку всех данных проекта или их часть по выбору программиста. При этом пользователю нет необходимости беспокоиться об оформлении документации - она будет выполнена в соответствии с нормами.
Еще одним преимуществом пакета Concept является такая функциональная возможность,
как обеспечение безопасности работы с приложением. Существует семь уровней доступа к
использованию программных средств Concept, обеспечивающих разные права разным пользователям. Имеется возможность резервирования до 128 пользователей и их паролей. Встроенный симулятор позволяет производить отладку программ, не используя ПЛК. Недостатком пакета можно считать невозможность одновременного запуска нескольких приложений из комплекса, что, несомненно,
является стесняющим обстоятельством, особенно при разработке сложных диаграмм SFC.
Оба рассмотренных пакета обладают широчайшими возможностями и являются лидерами
на рынке программного обеспечения для ПЛК. Главным преимуществом пакета CoDeSys является его бесплатное распространение, что позволяет использовать его для обучения МЭК-программированию. В то же время он является и удобным средством реального программирования, которое можно осуществлять после покупки лицензии у компании-производителя.
Пакет Concept, напротив, является изначально лицензионным, что делает его непригодным для обучения. Но он поддерживает самые популярные модели контроллеров одного из лидеров «железного» рынка - компании Schneider Electric.

 




<< Предыдущая статья
«2.4 Регулировка освещения»