9 СТАНДАРТНЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ КОНТРОЛЛЕРОВ

  9.1 Общие сведения по языкам программирования контроллеров

 Языки программирования ПЛК во многом определяются конкретными приложениями, а также требованиями современных сложных распределенных систем управления.

 

 Историческое развитие ПЛК привело к возникновению разных решений, связанных с конкретным производителем и в той или иной степени удовлетворяющих общим стандартам (DIN 19239, 19237, 40719 Part 6 и VDI 2880). Однако элементы языков, несмотря на похожесть, у разных производителей отличались, существовали машинно-зависимые особенности языков, которые приходилось учитывать.

 Для решения этой проблемы в феврале 1993 года международная организация по стандартизации IEC приняла и выпустила стандарт IEC-61131-3 (МЭК-61131-3), описывающий синтаксис и семантику пяти языков программирования ПЛК. Использование стандартных языков и компьютерных средств программирования позволяет существенно снизить затраты на разработку прикладного программного обеспечения контроллеров и обеспечить его переносимость с одного контроллера на другой. В соответствии с указанным стандартом такими стандартными языками являются три графических языка и два текстовых (в соответствии с рисунком 9.1).

 Рисунок 9.1 – Стандартные языки программирования контроллеров

 LD (Ladder Diagram) – вариант класса языков релейно-контактных схем;

 FBD (Functional Block Diagram) – аналогичен функциональной схеме электронного устройства с использованием логических элементов;

 SFC (Sequential Function Chart) – язык диаграммного типа, аналогичный блок-схемам алгоритмов;

 ST (Structured Text) – текстовый высокоуровневый язык общего назначения, по синтаксису напоминает Паскаль;

 IL (Instruction List) – текстовый язык низкого уровня, по синтаксису напоминает Ассемблер.

 Языки LD и FBD являются данью традициям (т. е. аппаратным аналогам этих языков – релейным схемам и функциональным схемам электронных устройств на базе логических элементов типа И, ИЛИ, НЕ и т. д.).

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

 Язык релейных схем существует со времен Т. Эдисона и адаптирован к ПЛК в начале 70-х годов прошлого века. Впервые появился в пакетах программирования ПЛК компаний Allen-Bradly и Modicon. Символика этого языка была заимствована из проектирования в области электротехники.

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

 Язык FBD – это полностью графический язык высокого уровня, обеспечивающий управление потоками данных, включающих все типы. Позволяет использовать очень мощные алгоритмы простым вызовом функций и функциональных блоков, имеет большую библиотеку блоков, удовлетворяет непрерывным динамическим процессам, хорош для сложных вещей подобно ПИД-регуляторам (ПИД – пропорционально-интегрально-дифференциальный регулятор, PID-регулятор), массивам и т. д.

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

 FBD замечателен для небольших приложений.

 Язык IL является языком низкого (машинного) уровня, что су­щественно облегчает, например, условный или безусловный вызов функциональных блоков и функций, выполнение назначений и условных или безусловных переходов внутри секции, похож на Ассемблер. Язык IL позволяет создавать высокоэффективные и оптимизированные функции. Его можно рекомендовать для написания наиболее критических мест в программе.

 Ассемблероподобные языки использовались для программиро­вания компьютеров в 50-е годы XX века и все еще предлагаются некоторыми изготовителями ПЛК, особенно программистами, поддерживающими микроРС. Корни языка IL лежат в языке STEPS компании Siemens. IL можно программировать с помо­щью любого текстового редактора.

 Язык ST является языком высокого уровня (типа Паскаля). Был популярен в середине 70-х годов XX века для сложных компьютерных приложений. Служит для создания процедур со сложной логикой. Может использоваться как в главных программах, так и в теле функции или FBD, а также для описания действий внутри элементов редакторов SFC или Flow Chart. Обладает высокой читабельностью исходного кода: ключевые слова, такие, как AND, OR, NOT, IF, THEN, ELSE, WHILE (и т. д.) легко понимаемы; прост в сопровождении, если имена переменных понятны, имеются комментарии, код хорошо структурирован.

 Язык SFC предложен в 1979 году (его прототипом является язык Grafcet компании Telemecanique, стандарт IEC 848) как графический язык, предназначенный для описания функций последовательных операций и позволяющий ясное и однозначное определение желаемого поведения системы управления. Отличается строгим математическим определением, (каждое операционное состояние может быть декодировано с достаточно малым анализом). Удобен для описания, как последовательных процессов, так и пакетных или параллельных процессов, легко комбинируется с другими языками (язык спецификаций). Обеспечивает улучшение понимания оборудования при формировании модели приложения. Обладает развитыми механизмами синхронизации. Использует простые динамические правила.

 Диагностика языка SFC позволяет обнаружить ошибки проекта до того, как приложение тестируется в режиме “online”. Интерактивно анимируемый язык SFC также служит для облегчения диагностики оборудования и ошибок системы управления и после ввода в действие. Использование языка SFC как диагностического инструмента может уменьшать среднее время устранения таких неполадок. SFC широко принят как стандарт в Европе.

 Языки SFC и ST, в паре составляющие полную и завершенную среду для программирования ПЛК, не всегда удовлетворяют пользователей, например, из-за быстродействия или невозможности доступа к системным ресурсам, что заставляет прибегать к использова­нию языков типа С, который не входит в стандарт IEC 61131-3 (далее – стандарт).

 Стандарт определяет языки программирования, синтаксис, вид объектов, структуру ПО, объявление переменных.

 Стандарт описывает детально синтаксис языков программирования, поэтому пользователь найдет один и тот же синтаксис во всех пакетах, поддерживающих стандарт, будь то пакет ISaGRAF компании CJ International или пакет Concept компании Schneider Electric. Графическое представление прикладных программ – это типичная особенность программирования ПЛК. Текстовые языки широко используются при программировании компьютеров.

 Программирование логики ведется с применением языков SFC, LD, FBD, IL, ST, а также дополнительных интерактивных редакторов для описания переменных, определений и конфигурации ввода/вывода.

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

Twitter
Нравится

Дополнительная информация



ZZZZZZZZZ