Примеры программ на языке LAD для программируемых логических контроллеров


СОДЕРЖАНИЕ:

Методика создания программы на языках LAD, STL, FBD

Для составления программы на языке STL надо сначала определиться – где будет размещена эта программа. Если это будет главная программа с циклическим выполнением, то ее нужно записать в организационном блоке ОВ1. Если программа разрабатывается для локальной задачи логического управления, то для ее размещения возможно нужен функциональный блок.

В любом случае сначала надо создать проект.

Создание проекта происходит в среде Simatic Manager. После задания имени проекта, выбора типа станции и типа процессорного модуля появляется возможность размещения программных блоков.

Для этого в дереве проекта найдем и откроем папку Blocks. На правом поле окна проекта в Simatic Manager находится первый блок – блок организации циклического выполнения программы ОВ1.

Пусть, например, надо создать программу для управления пешеходным переходом и разместить ее в отдельном функциональном блоке.

Щелкнем на поле правой кнопкой мыши и выберем в контекстном меню команды «Insert New Object» → «Function Block», как показано на рисунке 2.35.

При этом приоткрывается окно для задания параметров блока. На вкладыше General — Part 1 в соответствующих полях вносим: номер блока (нумерация блоков выполняется автоматически, но ее можно изменить), его символическое имя (Cross) и язык программирования (STL). Окно Properties после выполнения этих операций показано на рисунке 2.36.

Рисунок 2.35 – Выбор команд в окне Simatic Manager для создания функционального блока

Рисунок 2.36 – Вид окна Properties после задания параметров блока

После создания функционального блока надо определить состав переменных, которые будут использоваться в программе. Прежде всего, необходимо определить глобальные переменные, которые нужно внести в таблицу Symbol Table. Чтобы открыть эту таблицу, надо в окне редактора выбрать меню Options → Symbol Table. В таблицу символов можно включать входные и выходные данные, меркеры, периферийные данные, таймеры, счетчики, функциональные блоки и функции, организационные блоки, блоки данных и типы данных UDT. Редактировать Symbol Table можно в любой момент.

Дальше определяются локальные переменные блока – его интерфейс с программой. К интерфейсу принадлежат входные данные (IN), выходные данные (OUT), входные и выходные параметры (IN_OUT), а также статические переменные (STAT). Кроме этого блок может иметь временные данные (TEMP), которые не принадлежат к интерфейсу.

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

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

Для создания блока данных нужно в окне проекта Simatic Manager раскрыть папку Blocks, щелкнуть правой кнопкой мыши на поле расположения блоков и в списке, который открылся, выбрать команды «Insert New Object» → «Data Block».

В окне параметров, которое открывается при этом, надо назначить номер и символическое имя блока данных, переключить тип блока из «Shared DB» на «Instance DB» (экземплярный) и указать номер функционального блока. После внесения этих данных нужно закрыть окно кнопкой ОК. При этом интерфейс функционального блока будет скопирован в блок данных. На рисунке 2.37 для примера показано содержимое блока данных DB1, созданного для функционального блока FB1.

После создания функционального блока и экземплярного блока данных остается организовать вызов этих блоков в главной программе управления, которая находится в ОВ1.

Открыв ОВ1, в первом сегменте вводим команду CALL FB1, DB1 и нажимаем Enter. При этом редактор автоматически меняет абсолютные номера блоков на символические имена “Cross” и “Cross_data”, где кавычки означают, что это глобальные символы, а также выводит для инициализации входные и выходные переменные. Входные переменные должны иметь конкретные значения, а для выходных указывается адрес расположения. Пример программного элемента вызова показан на рисунке 2.38.

Рисунок 2.37 – Отображение данных в блоке данных DB1

Рисунок 2.38- Организация вызова функционального блока в программе

Контрольные вопросы

1. Какими операциями осуществляется проверка состояния бит?

2. Что включает логический шаг двоичной операции?

3. Каким образом учитываются типы контактов при программирование проверки состояния?

4. Как программируются вложенные операции проверки бит?

5. Какие функции принадлежат к операциям с памятью?

6. Как проверяется наличие фронта сигнала?

7. Каким образом можно сохранить факт выявления фронта сигнала?

8. Какими операциями осуществляется пересылка данных?

9. Какие типы таймеров доступны пользователю?

10. Как задается продолжительность для таймера?

11. Какое значение имеет временная база для задания продолжительности?

12. От чего зависит скорость работы счетчиков?

13. Какие операции можно применять при программировании счетчика?

14. В каком порядке программируются операции сравнения?

15. В каком порядке программируются арифметические операции?

16. В каком порядке программируются математические операции?

17. В каком порядке программируются функции преобразования?

18. Как программируются функции сдвига?

19. Из каких бит составляется слово состояния?

20. Какие биты позволяют использовать функции переходов?

21. При каких условиях выполняется переход в другую точку программы?

22. Какие функции применяются для обработки кодовых блоков?

23. Из каких процедур составляется обработка вызова блока?

24. Какими процедурами завершается обработка блока?

25. Что необходимо для вызова функции?

26. Что необходимо для вызова системного блока?

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

Перед тем, как программировать ПЛК в среде разработки CoDeSyS 2.3 новички часто задаются вопросом: А какие системы требуется установить для корректной работы с аппаратом?? А как конфигурировать входы и выходы контроллера?? А каким образом связать устройство с ПК?? И снова, а как, а как?? Все мы с вами понимаем, устройства сложные и алгоритмы объёмные, и на изучение потребуется время. Я вот думаю, может написать небольшую книжку и назвать codesys для чайников? А вы согласны?

Из этой статьи вы узнаете:

Здравствуйте уважаемые коллеги и гости. Пишет вам автор блога сайт, Гридин Семён, и в этой статье я вам расскажу, как правильно программировать контроллер. Тема достаточно актуальная, я надеюсь после прочтения статьи, некоторые вопросы отпадут самим собой. =)

Как работает ПЛК?

ПЛК(программируемый логический контроллер) — это устройства полностью автоматизирующие работу аппаратов, различных агрегатов и станков. Фактически, это некий блок, который содержит входы и выходы, для подключения датчиков и исполнительных органов. Внутри прописывается логика.

Вычисления в устройстве выполняются циклически. То есть одни и те же действия выполнения программы выполняются в короткий промежуток времени.

В один цикл осуществляемый прибором выполняются следующие операции:

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

Не буду больше разглагольствовать по теории. Давайте сразу перейдём к практике.

Из чего состоит программный комплекс для полноценной работы с ПЛК

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

Для начала нам нужно установить основной дистрибутив CoDeSyS 2.3 c официального сайта ОВЕН . А, я предлагаю во многих постах, касающихся программирования, использовать устройство ОВЕН ПЛК63 . Так как это универсальное устройство с экраном. У него на борту есть и дискретные входы, и аналоговые входы, и релейные выходы.

Итак, скачиваем программу:

Затем следует стандартная процедура установки. Указываем путь и все время жмём “Далее”, “Далее”.

Следующим этапом будет установка таргетов для плк. Таргет — это некое описание о конфигурации ПЛК. Инструкция подсказывает CoDeSyS 2.3, какое количество и какие входы/выходы имеет устройство.
Скачиваем также с сайта ОВЕН . Рекомендую установить все таргеты, которые там есть. Чтобы потом не искать и не думать об этом, если придется писать алгоритм на другой ПЛК.

Запускаем автоматический установщик, устанавливаем инструкции. Всё, половину пути мы с вами уже сделали в этой работе! После этих всех процедур можно устанавливать библиотеки, но о них позже. Переходим к следующему пункту.

Рабочее окно программы

Дистрибутив мы с вами установили, таргеты тоже. Давайте мы с вами рассмотрим рабочее окно среды разработки, элементы меню и основные вкладки.

Основное поле на рисунке выше делится на три области:

  1. Редактор переменных и их типов;
  2. Дерево объектов;
  3. Редактор основного алгоритма программы;

Редактор переменных — здесь мы с вами вводим переменные и присваиваем им типы данных. Для тех, кто не знает, переменная — это имя, к которому будет обращаться программа и возвращать результат. А тип данных определяет род информации, диапазон представления чисел и множество других операций.

Дерево объектов — в этом окне располагаются такие объекты, как функции, функциональные блоки, подпрограммы, конфигурация ПЛК, библиотеки. Об этом я расскажу позже.

Редактор программы — тут мы с вами описываем основной алгоритм программы работы контроллера. Пишется на любом языке стандарта МЭК. Более подробно, можете статью .

Простой пример на ST

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

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

PROGRAM PLC_PRG VAR T1:TON; («таймер») Timer_Ust:WORD:=5; («уставка таймера») Time_tekuch:TIME; («текущее время») END_VAR T1(IN:=Start , PT:=DWORD_TO_TIME(Timer_Ust*1000)); Time_tekuch:=T1.ET; IF T1.Q THEN Out:= 1; ELSE Out:=0; END_IF;

T1 : TON ; («таймер» )

Timer_Ust : WORD : = 5 ; ( «уставка таймера» )

Time_tekuch : TIME ; («текущее время» )

T1 (IN : = Start , PT : = DWORD_TO_TIME (Timer_Ust * 1000 ) ) ;

Time_tekuch : = T1 . ET ;

IF T1 . Q THEN Out : = 1 ; ELSE Out : = 0 ;

Запускаем наш дистрибутив, создаём новый проект, указываем нужный нам таргет. Не забудьте предварительно проверить, что у вас установлены драйвера на преобразователь USB-COM, он нам понадобится для связи.

В листинге присутствуют две глобальные переменные Start и Out. Они связаны с физическими входами и выходами. Настройки все мы осуществляем во вкладке конфигурация ПЛК.

Компилируем проект (проверяем его на актуальность кода, чтобы не было ошибок). Можно нажать кнопку F11.

Вводим нужные настройки связи, как на картинке.

Собираем нашу схему логического программируемого контроллера. Подключаем интерфейс RS-232 с одной стороны и USB с другой. Жмём “подключение”. Ощущаем радость от процесса. =)) Если произошла ошибка связи , то проверьте ещё раз все подключения и параметры. Часто бывает, что провод преобразователя оборван.

Весь процесс я записал на видео, если будет что-то непонятно.

В следующей статье я напишу о , не пропустите. Будет интересно.

Успешных вам внедрений, дорогие читатели и гости. Если понравилась статья, подписывайтесь на новости блога и расскажите друзьям. А на каком языке и оборудовании вы предпочитаете строить систему автоматизации?

С уважением, Гридин Семён.

На производстве выполняется технологическим персоналом, поэтому общепринятые языки программирования микропроцессоров и персональных компьютеров не подходят для программирования промышленных контроллеров, так как требуют от персонала особых навыков и знаний. Привлечение к программированию сторонних инжиниринговых компаний зачастую приводит к привязанности конечного пользователя к конкретному исполнителю. Поэтому для программирования необходимы более понятные, простые и наглядные языки программирования, открытые для общего использования. В 1979 г. в рамках Международной Электротехнической Комиссии (МЭК или английская аббревиатура IEC) была создана специальная группа технических экспертов по проблемам , включая аппаратные средства, монтаж, тестирование, документацию и связь. Результатом работы данной комиссии был выпуск в 1982 г. стандарта IEC 1131. Современная редакция стандарта (который с 1997 г. называется IEC 61131) включает 8 разделов:

  1. Общая информация.
  2. Требования к оборудованию и тестам.
  3. Языки программирования.
  4. Руководства пользователя.
  5. Спецификация сообщений.
  6. Полевые сети.
  7. Программирование с нечеткой логикой.
  8. Руководящие принципы применения и реализации языков ПЛК.

Раздел 3 данного стандарта МЭК (IEC 61131-3) регламентирует использование пяти стандартных языков программирования ПЛК (промышленных контроллеров): язык функциональных блоков (FBD), язык релейной логики (LD), язык последовательных функциональных схем (SFC), язык инструкций (IL) и язык структурированного текста (ST). Выбор этих языков обусловлен простотой и наглядностью представления с их помощью алгоритмов управления. Внедрение стандарта IEC 61131 дало основу для создания единой школы подготовки специалистов в области программирования ПЛК. Также после появления стандарта появилась возможность создавать аппаратно-независимые библиотеки.

Краткая характеристика стандартных языков программирования промышленных контроллеров (ПЛК)

Язык релейной логики (LD)

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

Язык последовательных функциональных схем (SFC)

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

Язык инструкций (IL)

Текстовый язык низкого уровня. Принцип программирования, команды и структура записи команд такая же, как и у языков ассемблерного типа. Язык инструкций (IL) стандартизован и не зависит от используемой аппаратной платформы. Каждая инструкция может содержать четыре поля, разделяемых пробелами или знаками табуляции. Структура записи команд в языке инструкций выглядит следующим образом:

Метка, модификатор и комментарий в строке инструкции необязательны и указываются по необходимости. Оператор должен присутствовать в строке всегда, а операнд иногда может отсутствовать. Метка — это символическое имя (адрес) некоторой области памяти, в которой хранится номер отмеченной меткой строки в списке команд. После метки обязательно ставится знак двоеточия. Совместно с метками используются команды условного (исполняемые при выполнении определенных условий) и безусловного (выполняемые всегда) перехода (соответственно, операторы JMPC или JMP) . Переходы необходимо использовать достаточно аккуратно, чтобы не получить бесконечный цикл. Оператор — это непосредственно команда, которая выполняет определенное действие над операндом. Совместно с оператором может присутствовать модификатор, который предназначен для преобразования оператора к необходимому виду. Так модификатор N выполняет инверсию операнда до выполнения самой команды, а модификатор С — добавляет проверку содержимого аккумулятора и выполняет оператор только в том случае, если значение в аккумуляторе соответствует true (истина).

Язык структурированного текста (ST)

Язык структурированного текста — текстовый язык программирования высокого уровня для создания гибких процедур обработки данных. По структуре этот язык похож на Паскаль. Основу языка структурированного текста (ST) составляют выражения, каждое из которых должно заканчиваться точкой с запятой. Для присвоения значений переменным используется оператор «:=». Для описания математических выражений используются общепринятые символы: +, *, /, (,), =, > и др. Порядок вычисления выражений такой же, как и в алгебре — действия выполняются слева направо. Сначала выполняются действия, заключенные в скобки, затем — операции умножения или деления, и только после этого — сложение или вычитание. Для увеличения функциональных возможностей языка структурированного текста в нём предусмотрены операторы выбора (IF . THEN . ELSE . ENDIF) , операторы множественного выбора (CASE . OF . ELSE . ENDCASE) , операторы цикла (WHILE . DO . ENDWHILE, REPEAT . UNTIL . ENDREPEAT или FOR . TO . BY . DO . ENDFOR) .

В завершении статьи стоит обязательно упомянуть об особенности программирования промышленных контроллеров (ПЛК). При программировании ПЛК всегда нужно помнить, что выполнение программ в промышленном контроллере осуществляется циклически, причем время выполнения одного цикла может быть фиксированным или асинхронным (новый цикл начинается сразу после окончания предыдущего цикла). Алгоритм выполнения программы следующий. На первом шаге ПЛК получает необходимую для обработки информацию о состоянии объекта управления — производится считывание входных переменных (входы модулей аналогового и дискретного ввода). Далее осуществляется непосредственная обработка полученной информации — выполняется основная программа ПЛК. В результате обработки информации формируются команды управления, которые на следующем шаге передаются на выходы промышленного контроллера — процедура обновления выходных переменных.

С чего начиналась промышленная автоматика? А начиналось все с контактно-релейных схем управления промышленными процессами. Кроме жуткого «шелестения», контактно релейные схемы имели фиксированную логику работы, и в случае изменения алгоритма, необходимо основательно переделать монтажную схему

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

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

Принцип работы ПЛК несколько отличается от «обычных» микропроцессорных устройств. Программное обеспечение универсальных контроллеров состоит из двух частей. Первая часть это системное программное обеспечение. Проводя аналогию с компьютером можно сказать, что это операционная система, т.е. управляет работой узлов контроллера, взаимосвязи составляющих частей, внутренней диагностикой. Системное программное обеспечение ПЛК расположено в постоянной памяти центрального процессора и всегда готово к работе. По включению питания, ПЛК готов взять на себя управление системой уже через несколько миллисекунд. ПЛК работают циклически по методу периодического опроса входных данных.
Рабочий цикл ПЛК включает 4 фазы:
1. Опрос входов
2. Выполнение пользовательской программы
3. Установку значений выходов
4. Некоторые вспомогательные операции (диагностика, подготовка данных для отладчика, визуализации и т. д.).

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

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

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

Рассмотрим входа и выхода ПЛК. Существует три вида входов дискретные, аналоговые и специальные
Один дискретный вход ПЛК способен принимать один бинарный электрический сигнал, описываемый двумя состояниями – включен или выключен. Все дискретные входы (общего исполнения) контроллеров обычно рассчитаны на прием стандартных сигналов с уровнем 24 В постоянного тока. Типовое значение тока одного дискретного входа (при входном напряжении 24 В) составляет около 10 мА.

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

Поскольку ПЛК является цифровой вычислительной машиной, аналоговые входные сигналы обязательно подвергаются аналого-цифровому преобразованию (АЦП). В результате, образуется дискретная переменная определенной разрядности. Как правило, в ПЛК применяются 8 — 12 разрядные преобразователи, что в большинстве случаев, исходя из современных требований по точности управления технологическими процессами, является достаточным. Кроме этого АЦП более высокой разрядности не оправдывают себя, в первую очередь из-за высокого уровня индустриальных помех, характерных для условий работы контроллеров.

Практически все модули аналогового ввода являются многоканальными. Входной коммутатор подключает вход АЦП к необходимому входу модуля.

Стандартные дискретные и аналоговые входы ПЛК способны удовлетворить большинство потребностей систем промышленной автоматики. Необходимость применения специализированных входов возникает в случаях, когда непосредственная обработка некоторого сигнала программно затруднена, например, требует много времени.

Наиболее часто ПЛК оснащаются специализированными счетными входами для измерения длительности, фиксации фронтов и подсчета импульсов.

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

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

Конструктивно ПЛК подразделяются на моноблочные, модульные и распределенные. Моноблочные имеют фиксированный набор входов выходов

В модульных контроллерах модули входов – выходов устанавливаются в разном составе и количестве в зависимости от предстоящей задачи

В распределенных системах модули или даже отдельные входа-выхода, образующие единую систему управления, могут быть разнесены на значительные расстояния

Языки программирования ПЛК

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

За последнее десятилетие появилось несколько технологических языков. Более того, Международной Электротехнической Комиссией разработан стандарт МЭК-61131-3, концентрирующий все передовое в области языков программирования для систем автоматизации технологических процессов. Этот стандарт требует от различных изготовителей ПЛК предлагать команды, являющиеся одинаковыми и по внешнему виду, и по действию.

Стандарт специфицирует 5 языков программирования:

  • Sequential Function Chart (SFC) – язык последовательных функциональных блоков;
  • Function Block Diagram (FBD) – язык функциональных блоковых диаграмм;
  • Ladder Diagrams (LАD) – язык релейных диаграмм;
  • Statement List (STL) – язык структурированного текста, язык высокого уровня. Напоминает собой Паскаль
  • Instruction List (IL) – язык инструкций., это типичный ассемблер с аккумулятором и переходам по метке.

Язык LAD или KOP (с немецкого Kontaktplan) похожи на электрические схемы релейной логики. Поэтому инженерам не знающим мудреных языков программирования, не составит труда написать программу. Язык FBD напоминает создание схем на логических элементах. В каждом из этих языков есть свои минусы и плюсы. Поэтому при выборе специалисты основываются в основном на личном опыте. Хотя большинство программных комплексов дают возможность переконвертировать уже написанную программу из одного языку в другой. Так как некоторые задачи изящно и просто решаются на одном языке, а на другом придется столкнуться с некоторыми трудностями

Наибольшее распространение в настоящее время получили языки LAD, STL и FBD.

Большинство фирм изготовители ПЛК традиционно имеют собственные фирменные наработки в области инструментального программного обеспечения. Например такие как «Concept» Schneider Electric, «Step 7» Siemens.

Программный комплекс CoDeSys

Открытость МЭК стандартов привели к созданию фирм занимающихся исключительно инструментами программирования ПЛК.

Наибольшей популярностью в мире пользуются . CoDeSys разработан фирмой 3S. Это универсальный инструмент программирования контроллеров на языках МЭК, не привязанной к какой-либо аппаратной платформе и удовлетворяющим всем современным требованиям.

Основные особенности:
— полноценная реализация МЭК языков
— встроенный эмулятор контроллера позволяет проводить отладку проекта без аппаратных средств. Причем эмулируется не некий абстрактный контроллер, а конкретный ПЛК с учетом аппаратной платформы
— встроенные элементы визуализации дают возможность создать модель объекта управления и проводить отладку, т.е. дает возможность создавать человеко-машинного интерфейса (HMI)
— очень широкий набор сервисных функции, ускоряющий работу программиста
— существует русская версия программы, и русская документация

Литература:
Современные технологии промышленной автоматизации: учебник / О. В. Шишов. Саранск: Изд-во Мордов. ун-та, 2007. – 273 с. ISBN 5-7103-1123-5

Как и было описано, в первой статье, ПЛК осуществляет циклическое чтение входов, выполнение прикладной программы и запись выходов. Потому написание программы для ПЛК отличается от традиционного написания программы для микроконтроллеров и ПК. К программам для ПЛК предъявляются жесткие требования по надежности, одно дело зависает текстовый редактор, а другое дело программа, управляющая ядерным реактором. Другое не менее важное требование – это своевременное реагирование на событие. А что значит, во время не прореагировать на событие в промышленности? Это значит потерять контроль над технологическим процессом. Что в некоторых случаях, примером с реактором, приведет к непоправимым последствиям.

Рассмотрим отличия написания программы для ПЛК и микроконтроллера. Для примера возьмем простейшую задачку для МК — мигающий светодиод. Подозреваю, что все начинали знакомство с МК именно с этой задачи. Алгоритм будет следующим

  1. Записать в порт лог. 1.
  2. Временная задержка
  3. Записать в порт лог.0.
  4. Временная задержка
  5. Переход по метке на начало программы.

По данному алгоритму программа на ПЛК работать не будет, она содержит бесконечный цикл. А в ПЛК вся прикладная программа выполняется от начала до конца в каждом рабочем цикле, и любая программа должна отдавать управление системной программе. Поэтому при такой организации алгоритма наш ПЛК зависнет. Даже если и убрать, переход по метке на начало, программа не будет работать, так как нам хочется. Порт всегда будет в состоянии лог.0, так как физическая установка выходов производиться только после выполнения всей прикладной программы. И поэтому промежуточные состояния это всего лишь программные переменные в памяти, и на аппаратной части она ни как не отображаются.

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

С учетом выше сказанного, правильный алгоритм будет выглядеть следующим образом:
1. Проверить таймер, если время паузы вышло, то
а) инвертировать выход
б) начать новый отсчет
2. Конец программы

Реализуем данный алгоритм на практике ниже, а теперь рассмотрим основные особенности LAD (Ladder Diagram) языка.

Релейная схема представляет собой две вертикальные шины, между ними расположены горизонтальные цепи образованные контактами и обмотками реле. Пример на рисунке:

Нормально разомкнутый контакт

Нормально замкнутый(инверсный) контакт

Количество контактов цепи может быть разным, а обмотка одна.

Любому контакту ставится в соответствие логическая переменная, определяющая его состояние. Если нормально замкнутый контакт замкнут, то ИСТИНА, если размокнут – Ложь, для инверсного наоборот, он замкнут когда переменная имеет значение ЛОЖЬ. Имя переменной пишется над контактом и служит его названием.

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

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

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

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

Возможности LAD программы можно расширить, вставляя функциональные блоки. Вставлять можно все стандартные функциональные блоки, которые содержаться в МЭК. Описание для функциональных блоков можно найти в справке.

Давайте составим нашу первую программу на LAD в среде CoDeSys. , достаточно воспользоваться поисковиком

После установки, выбираем создать новый проект, и CoDeSys попросит выбрать целевую платформу для ПЛК. Указание целевой платформы необходимо, чтобы среда знала, для какого типа контроллера пишется программа. Выбираем 3S CodeSyS Sp PLCWinNT V2.4 и жмем OK.

Имя проекта оставляем по умолчанию, язык выбираем LD

Интерфейс программы на русском языке, и интуитивно понятен. При наведении на элемент всплывает имя. Советую рассмотреть все элементы, а также пункты главного меню.

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

Вместо вопросительных знаков пишем имя нашей переменной, например SB, и нажимаем Enter, выходит окно объявление переменной, выбираем Bool и нажимаем OК.

Рассмотрите, какие типы можно выбрать, а также какие классы переменных.

Давайте, реализуем программы для мигания светодиодом, а если говорить в общем, то программа для генератора одиночных импульсов

Для реализации программы используем функциональные блок таймер TP. Таймер TP – этой таймер одиночного импульса с заданной по входу PT длительностью.

Пока IN равен FALSE, выход Q = FALSE, выход ET = 0. При переходе IN в TRUE выход Q устанавливается в TRUE и таймер начинает отсчет времени на выходе ET до достижения длительности, заданной PT. Далее счетчик не увеличивается. Таким образом, выход Q генерирует импульс длительностью PT по фронту входа IN.

Для вставки TP, на панели элементов выбираем:

И у нас всплывает ассистент выбора функционального блока.

Скачайте файл проекта, и давайте рассмотрим как он работает.

В начальный момент X= False , поэтому инверсный контакт X замкнут и таймер T2 запущен, выход Q= True, поэтому цепь включена. А так как обмотка в цепи инверсная, значит она копирует инверсное состояние цепи в X , и X остается False, после переполнения таймера Q = False , и инверсная обмотка переводит X в True. После этого запускается T1, после переполнения скидывает X в False и все повторяется. Переменная X является выходом генератора. Таймер T2 устанавливает паузу, а T1 длительность импульса.

Компилируем проект Проект -> Компилировать

В пункте онлайн выбираем Режим эмуляции , а затем Подключение и Старт . И видим, наша схема начинает переключаться, цепь где «протекает ток» выделяется синим цветом. Также в области объявления переменных видим текущее значение переменных.

Выход генератора можно поглядеть с помощью цифрового трассировщика, для этого переходим на вкладку Ресурсы в нижнем левом углу

Выбираем Цифровой трассировщик -> Дополнение -> Настройка трассировки , выйдет следующее окно

Цикличность записи поставим Вручную , нажимаем на менеджер и выбираем переменные X(Bool)

Нажимаем Ok . Выбираем перо для нашей переменной

Выбираем в онлайн Подключение, нажимаем Старт, далее Дополнительно -> Начать трассировку, также выберите пункт Автоматическая трассировка

Рассмотрим еще один пример управление двигателем с электронной коммутацией обмоток статора
Саму программу представлять не буду, скачайте проект. А об алгоритме работы расскажу.

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

Контролер – это управляющее устройство. Действительно функциональным он становится только тогда, когда вы создаете и запускаете программу по его использованию.

Отсюда вытекает главная задача программируемого логического контролера – исполнение программы, которая осуществляет руководство технологического процесса.

Какой набор программ доступен для ПЛК? В принципе любой набор возможен. Главное, чтобы размер свободных ресурсов, данного инструмента, вам был не помехой. Разработчик получает широкие возможности по написанию программ.

Что же необходимо, чтобы осуществить программирование контроллера? Во – первых нужен программист, который бы досконально разбирался в данном вопросе. Во – вторых необходим сам компьютер и конечно пакет разработки.

Функционал средств разработки

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

Какой функционал предлагает среда разработки?

  1. Большой набор библиотек, программные блоки, определенные процедуры и готовые шаблоны.
  2. Инструментарий для проверки, тестированию и запуску программы на компьютере минуя контроллер.
  3. Также предложен инструмент для автоматизации документирования программы, которая была создана, в пределах принятых стандартов.

И наконец необходимо отметить главное достоинство – это поддержка порядка шести языков программирования. Единственным недостатком является то, что совместимость программ реализована на низком уровне. Производители ПЛК не пришли к унификации и каждый выпускает, данное устройство, со своей программной средой.

Виды языков программирования для ПЛК

LD (Ladder) – это среда разработки, которая основана на графике. Своего рода, она представляет собой подобие релейной схемы. Разработчики данного стандарта считают, что использование такого вида программной среды существенно облегчает переобучение инженеров релейной автоматики на ПЛК.

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

FBD (Диаграмма Функциональных Блоков) – здесь также используется графическое программирование. Образно говоря, FBD определяет собой некую множественность функциональных блоков, которые имеют соединения между собой (вход и выход).

Данные связи являются переменными и выполняют пересылку между блоками. Каждый блок в отдельности может представлять определенную операцию(триггер, логическое “или” и т.д.). Переменные задаются с помощью определенных блоков, а цепи выхода могут иметь связи с конкретными выходами контроллера или связи с глобальными переменными.

SFC (Sequential Function Chart) – может использоваться с языками ST и IL, он также основан на графике. Принцип его построения близок к образу конечного автомата, данное условие относит его к самым мощным языкам программирования.

Технологические процессы, в данном языке, построены по типу определенных шагов. Структура шагов состоит из вертикали, которая идет сверху вниз. Каждый шаг – это конкретные операции. Описать операцию можно не только с помощью SFC, но и с помощью ST и IL.

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

ST (Структурированный Текст) – относится к языкам высокого уровня и имеет много сходного с Pascal и Basic.

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

Небольшим недостатком можно определить отсутствие графической среды. Программы представлены в виде текста и данное условие усложняет освоение технологии.

IL (Список Команд) – язык подобен Ассемблеру, обычно используется для кодировки блоков по отдельности. Плюсом является то, что данные блоки имеют большую скорость работы и низкую требовательность к ресурсам.

CFC (Continuous Flow Chart) – относится к языкам высокого уровня. В принципе – это явное продолжение языка FBD.

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

Каждый блок – это управление определенным технологическим процессом. Здесь идет основной уклон на технологический процесс, математика уходит на второй план.

Лабораторная работа № 3. Программируемый логический контроллер Fatek. Программирование контроллера на языке релейно-контактных схем

Лабораторная работа № 3.

Программируемый логический контроллер Fatek. Программирование контроллера на языке релейно-контактных схем

Изучение программируемого логического контроллера (ПЛК) FATEK FBs-20MC. Изучение языка релейно-контактных схем, применяемого для программирования контроллеров.

Создание простых программ управления контроллером FATEK FBs-20MC с помощью среды программирования WinProLadder.

3.1. Контроллер FATEK FBs-20MC компании FATEK Automation

Компания FATEK Automation Corp., Тайвань, выпускает моноблочные контроллеры серий FBe и FBs, модули расширения, коммуникационные модули и программное обеспечение контроллеров WinProLadder [12, 14]. Контроллеры имеют встроенные каналы дискретного и аналогового ввода/вывода, счетчики, таймеры, встроенные интерфейсы RS-232, RS-485, Ethernet. В контроллерах используется 16-разрядный процессор Z8 из серии Z180.

Расширенный главный блок FBs-20MC питается от электрической сети 220В, 50Гц. Он имеет встроенный блок питания с выходом постоянного тока 24 В, 400 мА для подачи питания на внешние цепи. Блок имеет:

· 12 встроенных каналов дискретного ввода X0…X11 с допустимым уровнем входного напряжения 24 В: из них 2 канала (X0, X1) высокоскоростного ввода (100 кГц) и 10 каналов (X2…X11) среднескоростного ввода (20 кГц);

· 8 встроенных каналов дискретного вывода Y0…Y7 релейного типа с максимальным током выхода 2 А (постоянного или переменного): все среднескоростные (20 кГц);

· порт RS-232 или USB (Port0), который используется для программирования контроллера;

· встроенные часы RTC.

Увеличение числа каналов ввода/вывода и коммуникационных портов достигается подключением модулей расширения.

Вид главного блока ПЛК серии FBs показан на рис. 3.1.

Рис. 3.1. Вид ПЛК серии FBs

1 – рейка DIN шириной 35 мм;

2 – кронштейн рейки DIN;

3 – отверстия для крепежных винтов;

4 – клеммы питания 24 В и дискретных входов X;

5 – клеммы сетевого питания и дискретных выходов Y;

6 – стандартная пластина крышки (без платы связи);

7 – пластина крышки со встроенным портом связи (порт 0);

8 – индикаторы передачи (TX) и приема (RX) встроенного порта связи;

9 – индикатор дискретного входа Xn;

10 – индикатор дискретного выхода Yn;

11 – индикатор состояния системы (питание POW, работа RUN, ошибка ERR);

12 – крышка разъема расширения ввода/вывода;

16 – разъем для платы связи;

17 – разъем для модуля связи;

18 – разъем для памяти;

19 – разъем для встроенного порта связи (порт 0);

20 – разъем для блоков расширения ввода/вывода.

Основные технические характеристики ПЛК FBs-20MC следующие.

Объем управляющей программы – 20 K слов.

Память для программ – флэш-ПЗУ, литиевый аккумулятор для резервного питания.

Входные контакты (X): X0…X255, всего возможно 256. Каждый такой контакт соответствует внешней точке дискретного входа.

Выходные реле (Y): Y0…Y255, всего возможно 256. Каждое такое реле соответствует внешней точке дискретного выхода.

Внутренние реле (M). Несохраняемые: M0…Mи M1400…M1Сохраняемые: M800…M1

Специальные реле (M): M1912…M2

Шаговые реле (S). Несохраняемые: S0…SСохраняемые: S500…S

Состояние контакта таймера T.

Состояние контакта счетчика C.

Регистры: таймера TMR (256), счетчика CTR (256), 16-разрядные данных R (3840), 32-разрядные данных DR (4000), входные IR (64), выходные OR (64), специальные, файловые, индексные.

3.2. Язык релейно-контактных схем для программирования контроллеров

Современные ПЛК программируются с помощью пяти языков программирования, описанных в стандарте МЭК 61131-3. Среди них три графических и два текстовых. Язык релейно-контактных схем (LD – Ladder Diagram) является таким графическим языком [13, 14]. Синонимы: релейно-контактная логика, релейная логика, релейные диаграммы, релейно-лестничная логика, многоступенчатая логика. Несмотря на то, что язык LD появился достаточно давно, он до сих пор применяется для программирования ПЛК, хотя используется только для программирования простых задач.

Графический язык релейной логики впервые появился в виде электриче­ских схем, которые состояли из контактов и обмоток электромагнитных реле.

3.2.1. Базовые конструкции релейно-контактных схем.

Программы, написанные на языке LD, состоят из ступеней, которые выполняются ПЛК последовательно, слева направо. Ступень состоит из набора графических элементов (ячеек), ограниченных слева и справа условными шинами питания. Условный ток в цепи ступени протекает слева направо. Правая шина питания на диаграммах не отображается, но подразумевается. Несколько ступеней выполняются ПЛК последовательно сверху вниз. Ступень может содержать несколько строк и колонок, разделенных на две зоны — проверочную зону и зону действий. Простейшие проверочные элементы и элементы действия занимают одну строку и одну колонку ступени.

Набор графических элементов языка LD включает:

    входы и выходы ПЛК – кнопки, контакты реле, концевые выключатели, сигналы датчиков, индикаторные лампы и т. д.; стандартные управляющие системные функции – таймеры, счетчики и т. д.; арифметические, логические и специальные операции; внутренние переменные ПЛК.

Для использования в логике релейно-контактных схем применяются две системы – комбинационная логика и последовательная логика.

Комбинационная логика релейно-контактной схемы – это цепь, в которой последовательно или параллельно объединяются два или более входных логических элементов и результат передается на выходные логические элементы, например катушки реле, таймеры, счетчики или другие прикладные программы. Пример комбинационной логики приведен на рис. 3.2.

Рис. 3.2. Релейно-контактная схема комбинационной логики для ПЛК

Дискретные входы ПЛК и результаты выполнения логических операций пред­ставляются в виде условных контактов реле, нормально разомкнутых (нормально открытых, или контактов типа A) и нормально замкнутых (нормально закрытых, инверсных, или контактов типа B). Нормально разомкнутые контакты замыкаются при появлении сигнала на соответствующем входе или истинности поставленного в соответствие данному контакту логического выражения. В цепи 1 на рис. 3.2 используется нормально разомкнутый входной контакт ПЛК X0. Логика работы нормально замкнутых контактов – обратная, он размыкаются при появлении сигнала или истинности логического выражения. В цепи 2 на рис. 3.2 используется нормально замкнутый входной контакт ПЛК X1. В цепи 3 используется несколько входных контактов ПЛК – X2, X3 и X4.

Дискретные выходы ПЛК или результаты выполнения данной ступени представля­ются в виде обмотки реле, питание на которой появляется после прохождения сигнала от левой условной шины питания через все находящиеся на ступени элементы (Y0, Y1, Y2 на рис. 3.2).

На языке LD могут быть запрограммированы ло­гические операции «И» (AND), «ИЛИ» (OR), «НЕ» (NOT) и др. Последова­тельное соединение контактов равнозначно логической операции «И», параллельное «ИЛИ». Операция «НЕ» реализуется инверсным кон­тактом. Ток в обмотке реле по­является после замыкания (размыкания) контактов и выполнения всех логических условий. Для цепи 3 рис. 3.2, а можно записать логическое уравнение функционирования: Y2 = ( (NOT X2) OR X3) AND X4).

Последовательная логика – это цепь с обратной связью. Выходной сигнал со схемы подается в качестве входного на ту же самую схему. Последовательная логика реализует схемы с памятью состояния – выходной сигнал остается в том же состоянии, даже если входной сигнал вернется в исходное (пассивное) состояние. Пример последовательной логики приведен на рис. 3.3.

Рис. 3.3. Релейно-контактная схема последовательной логики для ПЛК

Схема на рис. 3.3 – это схема самоблокировки реле. При замыкании входного контакта X5 реле Y3 срабатывает, его контакт Y3 замыкается и блокирует контакт X5. В этом состоянии контакт X5 может и разомкнуться, реле Y3 все равно останется во включенном состоянии. Выключение реле происходит при размыкании нормально замкнутого контакта X6, при этом контакт реле Y3 размыкается и схема возвращается в исходное состояние, замыкание контакта X6 не приведет к срабатыванию реле Y3.

Каждый электрик должен знать:  Стандартные сечения проводов и кабелей - полный ряд

В ПЛК операции релейно-контактной логики эмулируются микропроцессором. В ПЛК используется метод сканирования (последовательного опроса) для контроля состояний входных элементов и выходных катушек, затем используется программа релейно-контактной логики для эмуляции результатов. Поскольку имеется всего один процессор, ПЛК должен последовательно изучить и выполнить программу с первого до последнего шага, затем вернуться к первому шагу и выполнить в цикле всю последовательность операций. Длительность выполнения одного такого повторяющегося режима работы называется временем сканирования. Время сканирования – одна из важнейших характеристик ПЛК. Типичный ПЛК серии FBs выполняет примерно 1000 этапов переключений контактов за 0,33 миллисекунды, т. е время сканирования одного контакта составляет 0,33 микросекунды. Длительность сканирования всей схемы зависит от ее размера. Процесс сканирования релейно-контактной схемы в ПЛК показан на рис. 3.4.

Рис.3.4. Процесс сканирования релейно-контактной схемы в ПЛК


Структура и терминология релейно-контактной схемы. Релейно-контактную схему можно разделить на ряд небольших ячеек, объединенных в строки и столбцы. Для ПЛК серии FBs максимальный размер схемы составляет 16 строк по 22 столбца. В одной ячейке может располагаться один элемент. Пример релейно-контактной схемы приведен на рис. 3.5.

Рис. 3.5. Пример релейно-контактной схемы

Контакт – это элемент с двумя состояниями – замкнут или разомкнут. Один тип контактов называется «Входной контакт» (X со справочным номером) и его состояние определяется внешними входными сигналами с блока входных клемм. Другой тип контактов называется «Релейный контакт» и его состояние соответствует состоянию реле. В ПЛК FBs имеются следующие виды контактов: контакт A (X0, X2), контакт B (X1, X3), дифференциальные контакты «вверх» TU (X10, Y4), дифференциальные контакты «вниз» TD (X5, M6) и контакты «разомкнуто/замкнуто» Open/Short (отсутствие или наличие линии связи).

Реле состоит из катушки (обмотки) и контактов (рис. 3.6).

Рис. 3.6. Схема реле

Для включения реле нужно подать ток в его катушку. Если реле Y0 находится в состоянии ВКЛ, то контакт A будет находиться в состоянии ВКЛ, контакт B – в состоянии ВЫКЛ. Контакты TU (TD) принимают состояние ВКЛ в интервале времени скана, когда реле переходит из состояния ВЫКЛ в состояние ВКЛ (из ВКЛ в ВЫКЛ) соответственно. В ПЛК FBs имеются четыре типа реле: выходные Y, внутренние M, шаговые S, временные TR. Состояния выходных реле Y передаются на блок выходных клемм. На рис. 3.5 показаны выходная катушка Y0, инверсная выходная катушка Y2.

3.2.2. Стандартные управляющие системные функции.

TB – Метки времени (0,01 с; 0,1 с; 1 с);

Tn – Номер таймера;

PV – Величина уставки (предустановленное значение) таймера;

CV – текущее значение кода таймера.

Полное количество таймеров в системе равно 256 (T0…T255) с тремя различными величинами меток времени. Номера и распределение таймеров по умолчанию:

· T0…T49 – Таймер 0,01 с;

· T50…T199 – Таймер 0,1 с;

· T200…T255 – Таймер 1 с.

Система программирования ПЛК FBs автоматически определяет величину меток времени после указания номера таймера. Время таймера = Метки времени х Величина уставки. Если, например, Номер таймера T0 (Метки времени 0,01 с), и Величина уставки 100, то Время таймера 1 с.

Если вход разрешения работы таймера EN равен 1, то таймер запускает отсчет времени (текущее значение будет увеличиваться от 0) до условия «Прошло время (Time Up)», т. е. CV >= PV, затем контакт Tn и TUP изменяются до значения 1. Все время, пока вход разрешения работы таймера имеет значение 1, даже если CV таймера Tn достигло или превысило значение PV, счет таймера CV продолжает возрастать до предельного значения 32767. Если вход EN стал равен 0, то CV таймера Tn сразу сбрасывается на 0 контакт Tn и флаг «Прошло время» TUP также изменяют значение на 0.

Cn – Номер счетчика;

PV – Значение уставки;

CV – текущее значение кода счетчика.

Всего имеется разрядных счетчика C0…C199. Диапазон значений уставки для них составляет 0…32767. Счетчики C0…C139 являются счетчиками с сохранением и величина CV для них восстанавливается после включения питания ПЛК или его нового запуска. Для счетчиков без сохранения C140…C199 текущая величина CV теряется, после включения питания или нового запуска ПЛК CV сбрасывается в 0.

Всего имеетсяразрядных счетчиков C200…C255. Диапазон значений уставки для них составляет 0…. Счетчики C200…C239 являются счетчиками с сохранением, остальные C240…C255 – счетчики без сохранения.

Для правильного подсчета время удержания счетного входа CK должно быть больше 1 времени скана. Максимальная частота работы счетчика 20 кГц.

Если вход CLR равен 1, то все контакты Cn, CUP и величина CV сбрасываются в 0 и счетчик прекращает счет.

Если вход CLR равен 0, разрешается счет. При каждом событии перехода CK от значения 0 до значения 1 величина CV увеличивается на 1. Когда накопленное значение CV станет равно или превысит значение уставки (CV >= PV), состояние контакта Cn и значение сигнала «Прошел счет» (Count-Up, CUP) устанавливаются в значение 1. Если состояние счетного входа продолжает изменяться, и вход CLR установлен в 0, CV продолжает возрастать до максимального значения, а контакт Cn и сигнал CUP остаются в состоянии 1.

Рис. 3.9. Пересылка (передача данных)

S – Номер регистра-источника или 16/32-разрядное число;

D – Номер регистра-приемника.

Пересылка (запись) данных из S в указанный регистр D, если вход разрешения EN имеет значение 1 или значение EN изменяется из 0 в 1. В качестве источника сигнала EN могут использоваться, например, контакты внутренних реле M1924 (начальный импульс, первый скан при запуске программы ПЛК) и M1925 (тактовые импульсы скана).

В качестве D могут использоваться как собственные регистры ПЛК, так и вторичные (производные) регистры, которые образуются из отдельных битов. Вторичные регистры имеют приставку W, например WX, WY, WM, WS, и образуются из 16 бит. Например, WX0 означает, что регистр образован битами X0 (бит 0) … X15 (бит 15). WY144 означает, что регистр образован битами Y144 (бит 0) … Y159 (бит 15).

Сдвиг влево (рис. 3.10).

Рис. 3.9. Сдвиг влево

D – регистр для сдвига;

N – количество битов сдвига.

Если вход управления операцией EN = 1 или EN изменяется из состояния 0 в состояние 1, то выполняется сдвиг данных в регистре D влево (в сторону старших разрядов) на N битов. После сдвига влево самого младшего бита B0 его место заполняется задвигаемым битом INB, в то время как значение выдвигаемых битов B15 (B31) передается в выдвигаемый бит OTB.

Если операнд 16-разрядный, то эффективный диапазон для N составляет 1…16. Если операнд 32-разрядный, то эффективный диапазон для N составляет 1…32. Если N за пределами эффективного диапазона, то флаг ошибки ERR устанавливается в 1, и инструкция не выполняется.

Пример применения инструкции сдвига влево приведен на рис. 3.11.

Рис. 3.11. Пример применения инструкции сдвига влево

Установка (рис. 3.12).

Рис. 3.12. Установка (установить катушку или все биты регистра в 1)

D – устанавливаемый в 1 операнд назначения (номер катушки или регистра).

Если вход разрешения операции EN = 1 или EN изменяется из состояния 0 в состояние 1, то устанавливается бит катушки или все биты регистра в значение 1.

Рис. 3.13. Сброс (сброс катушки или всех битов регистра в 0)

D – сбрасываемый в 0 операнд назначения (номер катушки или регистра).

Если вход разрешения операции EN = 1 или EN изменяется из состояния 0 в состояние 1, то сбрасывается бит катушки или все биты регистра в значение 0.

Пример установки и сброса одной катушки приведен на рис. 3.14.

Рис. 3.14. Пример установки и сброса одной катушки

Во время выполнения лабораторной работы необходимо:

· соблюдать правила включения и выключения вычислительной техники;

· не подключать кабели, разъемы и другую аппаратуру к компьютеру, не относящиеся к лабораторной установке;

· при включенном напряжении сети не отключать, не подключать и не трогать кабели, соединяющие различные устройства компьютера;

· в случае обнаруженной неисправности в работе оборудования или нарушения правил техники безопасности сообщить руководителю лабораторной работы;

· не пытаться самостоятельно устранить неисправности в работе аппаратуры;

· по окончании работы привести в порядок рабочее место.

ВНИМАНИЕ! При работе за компьютером необходимо помнить: к каждому рабочему месту подведено опасное для жизни напряжение. Поэтому во время работы надо быть предельно внимательным и соблюдать все требования техники безопасности!

Описание лабораторной установки

Лабораторная установка представляет собой ПЛК FBs-20MC. Питание от сети 220 В, 50 Гц подается на ПЛК через сетевой шнур. ПЛК соединяется с компьютером через кабель интерфейса RS-232 (порт 0 ПЛК). Ко входным клеммам ПЛК подключены две кнопки.

Описание используемых программных комплексов

Для программирования ПЛК FBs-20MC используется программное обеспечение WinProLadder, которое должно быть установлено на компьютере.

Принципы работы с программой WinProLadder демонстрирует следующий пример. Пусть требуется составить управляющую программу для генерирования светодиодного образа, используя индикаторы вывода ПЛК. Временная диаграмма включения выходных реле их светодиодов показана на рис. 3.15.

Рис. 3.15. Временная диаграмма включения выходных реле

Сначала включается Y0, затем через промежуток времени 1 с включается Y1. С интервалом в 1 с последовательно включаются Y2, затем Y3 и т. д. Через 1 с после того, как Y7 перейдет во включенное положение, все выходы необходимо перевести в выключенное состояние на длительность 1 сек. Эта процедура должна повторяться циклически.

Программа на языке релейно-контактных схем, реализующая включение выходных реле в соответствии с требуемой временной диаграммой, приведена на рис. 3.16.

Рис. 3.16. Программа на языке релейно-контактных схем

Рабочая область WinProLadder. Прежде, чем начинать строить первую прикладную программу, надо познакомиться с элементами рабочей области. Типичный рабочий экран WinProLadder показан на рис. 3.17.

Рис. 3.17. Рабочий экран WinProLadder

Рабочий экран состоит из многих операционных областей, самые важные среди этих областей следующие:

Главное Меню. Большинство действий может быть активизировано вызовом подменю нажатием левой кнопки мыши на главном меню.

Панель инструментов. Большинство главных действий может быть активизировано нажатием левой кнопки мыши на соответствующие кнопки этой области.

Поле компонент. Кнопки в этой области используются, в то время как выполняется ввод схемы программы или её редактирование.

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

Дерево Проекта. Эта область отражает весь проект в виде дерева иерархии. Все задания, которые должны быть выполнены, могут быть активизированы щелчком кнопки мыши на объекте дерева.

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

Создание нового проекта.

Шаг 1. File -> New Project или Ctrl+N. Появится диалог нового проекта.

Шаг 2. Введите имя проекта – «tutorial» в поле ‘Project Name’ и выберите одну из моделей ПЛК (FBs-20MC) в поле ‘Model Name’: для этого нажмите на кнопку «Edit» и выберите необходимое значение. Нажмите кнопку «OK».

Ввод программы релейно-контактной логики.

Шаг 1. Сначала введем цепь N0, которая показана на рис. 3.18.

Рис. 3.18. Цепь N000

1) Введите контакт таймера.

Переместите указатель мыши в панель компонентов и нажмите кнопку, тогда указатель изменится от формы стрелки в форму выбранного контакта (для нашего примера «А contact»). В это время курсор действует подобно штампу, нажатием левой кнопки мыши устанавливаем штамп на требуемую позицию.

Теперь переместите курсор в левую верхнюю позицию окна релейных диаграмм (в строку цепи N000) и нажмите левую кнопку – всплывет диалоговое окно редактирования элемента (рис. 3.19).

Рис.3.19. Окно редактирования элемента

Теперь введите «T0» с клавиатуры и нажмите Enter.

2) Введите функцию таймера.

Переместите указатель в панель компонентов и нажмите кнопку, тогда указатель изменится от формы стрелки в форму стрелки с T символом. Теперь переместите курсор в позицию справа от контакта T0 и щелкните кнопкой мыши – всплывет диалоговое окно редактирования параметров таймера (рис. 3.20).

Рис.3.20. Окно редактирования параметров таймера

Теперь введите 0 в поле T:, затем введите 100 в поле PV и нажмите кнопку OK или Enter.

Шаг 2. Введите цепь N001 (рис. 3.21).

Рис. 3.21. Цепь N001

1) Введите элемент А — контакт T0.

Переместите указатель в панель компонентов и нажмите кнопку, затем переместите указатель на элемент «цепь N001» и щелкните кнопкой мыши, затем введите с клавиатуры T0, Enter.

2) Введите SHFT – функцию.

Переместите указатель в панель компонентов и нажмите кнопку, затем переместите указатель вправо от контакта T0 и щелкните кнопкой мыши – всплывет диалоговое окно выбора функции (рис. 3.22).

Рис.3.22. Окно выбора функции

Теперь введите SHFL, Enter, или 51, Enter или нажмите «Shift/Rotate» в поле класса и затем выберите «SHFL» в поле имени, затем SHFL отразится в поле Function Name, затем нажмите Enter. После вышеприведенных операций всплывет диалоговое окно редактирования параметров функции (рис. 3.23).

Рис. 3.23. Окно редактирования параметров функции

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

Шаг 3. Введите цепь N002 (рис. 3.24).

Рис. 3.24. Цепь N002

1) Введите контакты цепи N002.

Переместите указатель на цепь N002 и выполните действия, описанные в шаге 2, чтобы ввести контакт M1924, затем переместите указатель на строку ниже M1924, введите контакт M8.

Переместите указатель на поле компонентов на компонент «Вертикальное соединение (Vertical Short)» и нажмите кнопку, затем переместите указатель на позицию рядом с M1924 (столбец 2) и нажмите левую кнопку мыши, после этого M1924 и M8 вертикально соединятся.

2) Введите функцию MOV.

Обратитесь к методу ввода, описанному в шаге 2, чтобы ввести эту функцию.

Шаг 4. Введите цепи N003…N010 (рис. 3.25).

Рис. 3.25. Цепи N003…N010

Используйте описанные выше действия для ввода самой верхней цепи – A-контакта M0 и катушки выходного реле Y0. Конфигурация верхней цепи на рис. 3.25 повторяется многократно, начиная с цепи с контактом M1 и до цепи с контактом M7. Для ввода всех этих цепей можно использовать операции копирования и вставки.

Переместите указатель в цепь N003 (цепь с контактом M0) и, удерживая нажатой левую кнопку мыши, переместите указатель вниз или вправо, пока цепь не будет выбрана. Для выбора цепи можно также щелкнуть левой кнопкой мыши на ее обозначении N003. Затем выберите пункт меню Edit -> Copy или используйте клавиатуру: Ctrl + C.

Щелкните левой кнопкой мыши на следующую цепь (N004) и выберите пункт меню Edit -> Paste или используйте клавиатуру Ctrl + V. Появится новая цепь N004, идентичная цепи N003.

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

Шаг 5. Сохраните проект.

File -> Save, затем введите с клавиатуры «tutorial», Enter.

Редактирование программы релейно-контактной логики.

Введите цепь управления работой счетчика (рис. 3.26).

Рис. 3.26. Цепь управления работой счетчика

Вставьте эту цепь под номером N003. Это можно сделать двумя методами.

Метод 1. Щелкните левой кнопкой мыши на указатель цепи N003, тогда цепь N003 будет выбрана. Нажмите правую кнопку мыши — появится всплывающее меню (рис. 3.27).

Рис. 3.27. Всплывающее меню

Выберите пункт Insert Network -> Before This Network, тогда появится пустая цепь N003. Повторите эту процедуру еще раз, чтобы получить другую пустую цепь. Используя действия, описанные выше (Шаг 2, цепь N001), введите всю цепь управления счетчиком.

Метод 2. Щелкните левой кнопкой мыши на любой ячейке окна релейных диаграмм. Нажмите клавишу Ins, чтобы ввести режим редактирования вставки. Цвет выделенного поля изменится.

Переместите указатель на первый элемент цепи N003 и нажмите левую кнопку, затем нажмите Enter, появится пустая цепь. Используя действия, описанные выше (Шаг 2, цепь N001), введите всю цепь управления счетчиком.

Редактирование параметров элемента схемы.

Редактирование параметров элементов схемы производится в окне редактирования (рис. 3.19, 3.20, 3.23). Для вызова окна редактирования щелкните левой кнопкой мыши на нужном элементе и нажмите Space, или щелкните дважды левой кнопкой мыши на нужном элементе.

Проверка синтаксиса программы.

Чтобы активизировать проверку синтаксиса релейно-контактной схемы, нужно либо нажать F8, либо выбрать пунктам меню: Tool -> Syntax Check.

Чтобы изменить параметры проверки синтаксиса, выберите пункт меню: Project -> Option, или нажмите Ctrl + F8.

Загрузка программы в ПЛК.

Изменим состояние рабочего режима «OFF» на состояние “ON”. Поскольку все модификации проекта могут быть сохранены на диске только в режиме «OFF», прежде чем начинать проверку программы, мы должны сохранить проектные данные в ПЛК. Проектные данные могут быть переданы в ПЛК, включая программу релейно-контактной схемы, комментарии элементов, данные таблицы и конфигурации, в то время как комментарий цепи и комментарий программного модуля могут существовать только в проектном файле.

Сохраните проектные данные в ПЛК. Следуйте пунктам меню следующим образом: File -> Save AS -> To PLC – появится диалог установки параметров соединения с ПЛК (рис. 3.28).

Рис. 3.28. Диалог установки параметров соединения с ПЛК

Есть три предопределенных сессии подключения, которые можно найти в выпадающем списке Connection Name: RS232, UDP, TCP. В этой обучающей программе мы подключаемся к ПЛК по последовательному интерфейсу, поэтому можем выбрать RS232 или создать новую сессию нажатием кнопки New, которая вызовет мастера создания новой сессии. Если не требуется создавать новую сессию, но предопределенная сессия — не совсем то, что нужно, тогда можно нажать кнопку Edit, чтобы изменить ее.

После нажатия кнопки OK WinProladder будет пробовать подключиться к ПЛК, и если подключение удастся, появится окно статуса ПЛК (рис. 3.29).

Рис. 3.29. Окно статуса ПЛК

Нажмите кнопку OK, чтобы возвратиться к окну релейно-контактной схемы.

Для запуска ПЛК на выполнение программы выполните пункты меню следующим образом: PLC -> Run PLC -> OK.

В то время как в ПЛК выполняется программа, его можно остановить: PLC -> Stop PLC -> OK.

Контроль работы программы.

Когда рабочий режим находится в состоянии «ON», и в ПЛК выполняется программа, диаграмма релейной схемы будет отображаться с подсветкой проводящего контакта красным (рис. 3.30).

Рис. 3.30. Вид релейной схемы во время выполнения программы

Как можно видеть, B-контакт T0 замкнут (потому что T0 находится в состоянии 0).

Все дискретные элементы могут быть отключены, переведены в сосотояние 1 или 0 непосредственно в окне релейной схемы. Для примера, чтобы изменить состояние контакта M0, нужно поместить курсор поверх контакта M0, затем нажать правую кнопку мыши, чтобы вызвать меню состояния контакта (рис. 3.31).

Рис. 3.31. Меню состояния контакта

Выберите желаемое значение, чтобы изменить состояние элемента. Все заблокированные элементы (установленные в состояние Disabled) на диаграмме релейной схемы внешне отличаются от нормального изображения элемента, как показано на рис. 3.32.

Рис. 3.32. Схема заблокированными элементами M0 и Y0

Просмотр оперативных данных регистра на диаграмме релейно-контактной схемы (которые по умолчанию не показываются), можно следующим образом: View -> Register content или нажатием F11.

Типовая диаграмма с оперативным отображением данных регистра приведена на рис. 3.33.

Рис. 3.33. Оперативное отображение данных регистра

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

Project -> Status Page -> New Status Page. Типовая страница состояния показана на рис. 3.34.

Рис. 3.34. Страница состояния

Дискретный элемент может быть заблокирован/разблокирован, переведен в состояние «ON» (1) или «OFF» (0) нажатием правой кнопки мыши для отображения меню (рис. 3.35).

Рис. 3.35. Меню установки состояний

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

Рис. 3.36. Меню выбора формата отображения данных регистра

В поле Ref. No. страницы состояния перечисляются обозначения элементов, состояние которых необходимо контролировать. Можно задать диапазон элементов в виде двух элементов, разделенными символами ‘-‘ или’

‘. Например, запись X0, X2-X5, Y0-Y5, R0-R5 определяет 17 элементов одной командой.

7.1. Используя программу WinProLadder, создать новый проект. Программа на языке релейно-контактных схем должна осуществлять циклическое управление последовательностью включения выходных реле ПЛК по следующим вариантам:

    Вариант 1: Y0Y1-Y1Y2-Y2Y3-Y3Y4-Y4Y5-Y5Y6-Y6Y7; Вариант 2: Y0Y1-Y2Y3-Y4Y5-Y6Y7; Вариант 3: Y0Y2Y4-Y1Y3Y5-Y2Y4Y6-Y3Y5Y7; Вариант 4: Y0-Y0Y1-Y0Y1Y2-Y1Y2Y3-Y2Y3Y4-Y3Y4Y5-Y4Y5Y6-Y5Y6Y7-Y6Y7-Y7.

7.2. Подключить ПЛК с помощью интерфейсного кабеля к порту RS-232 компьютера, затем с помощью сетевого шнура – к розетке электропитания. Произвести программирование ПЛК. Проверить правильность работы программы.

8.1. При создании релейно-контактной схемы использовать приемы программирования, описанные в разделе 6.

8.2. Для каждого варианта следует определить константу начальной загрузки регистра сдвига, значение задвигаемого бита, а также количество битов сдвига. Для варианта 4 задвигаемый бит должен иметь переменное значение.

Требования к содержанию и оформлению отчета

Отчет по лабораторной работе должен содержать:

· краткие теоретические сведения;

· формулировку задания на лабораторную работу;

· изображение рабочего окон с диаграммой программы;

· выводы по лабораторной работе.

10.1. Какие характерные особенности имеют ПЛК FATEK?

10.2. Какие входы и выходы ПЛК FATEK используются для подключения внешних цепей датчиков и актуаторов?

10.2. Какие коммуникационные интерфейсы имеют ПЛК FATEK?

10.3. Что такое стандарт МЭК 61131-3?

10.4. Что такое язык релейно-контактных схем?

10.5. Какие базовые конструкции имеет язык релейно-контактных схем?

10.6. Какие основные функциональные блоки используются при программировании релейной логики?

Критерии оценки выполнения лабораторной работы

Лабораторная работа считается выполненной в том случае, если:

    студент выполнил все задания в соответствии с представленной методикой; результаты выполнения работы, представленные в виде отчета, соответствуют предъявленным к ним требованиям; студент правильно ответил на все контрольные вопросы и может интерпретировать полученные результаты.

Программируемые логические контроллеры

Плк — что это такое?

Доброго времени суток, уважаемые жители Хабра!
Прочитав пост про программирование ПЛК Siemens серии S7, я залез в поиск по Хабру, и был весьма удивлен, что тема промышленной автоматики вообще, и программирования ПЛК в частности, освещена весьма и весьма скудно. Возьму на себя смелость поделиться своим опытом в данной области, описав базовые принципы программирования ПЛК, в частности, производства компании Beckhoff.

Введение

Я занимаюсь автоматизацией зданий. Сложилось так, что в основном мы строим свои системы на базе ПЛК Beckhoff. Такой выбор был сделан прежде всего потому, что эти контроллеры являются свободно-программируемыми в полном смысле этих слов.

Что это значит? Возьмите контроллер TAC Xenta, например, и попробуйте на нем реализовать обмен с внешним устройством через RS232 по собственному протоколу, на уровне «байт послал — байт принял». Не получится, эти контроллеры так не умеют — используйте только те протоколы, которые в них заложил разработчик. А Beckhoff умеет.

Но прежде чем лезть в такие дебри, давайте посмотрим на среду разработки? На каком, собственно, языке, мы будем писать?

Стандарт МЭК 61131-3

Промышленные ПЛК программируются на языках стандарта МЭК 61131-3. Всего этих языков 5, некоторые производители добавляют свои. Языки друг на друга совсем не похожи, и, наблюдая за коллегами, могу предположить, что выбор того или иного языка связан прежде всего с тем, чем человек занимался до того, как он пришел в эту отрасль.

  • IL, instruction list, список инструкций. Похож на ассемблер. Не видел никого, кто его использовал бы, но подозреваю, что олдскульные кодеры, пробивавшие перфокарты по памяти, оценят.
  • LD, ladder diagram. Визуальный язык, для тех, кто занимался разработкой схем релейной автоматики.
  • ST, structured text.

    Более всего напоминает «классические» языки программирования, чем-то похож на Паскаль. Оттого ценится теми, кто до ПЛК занимался программированием на других языках и платформах, в частности — мной.
    FBD, functional block diagram. Этакая блок схема, любим прежде всего технологами, решившими податься в программирование, за свою наглядность.

    SFC, sequential function chart. Графический язык, больше ничего не скажу. Ни разу не видел, чтоб его использовали.

    Из не всеми поддерживаемых языков стоит отметить язык CFC (continuous flow chart), Beckhoff его поддерживает.

    Это дальнейшее развитие языка FBD, одним из наиболее существенных отличий, на мой взгляд, является поддержка явной обратной связи в схемах. Зачем это нужно? Например, вот такой генератор коротких импульсов на CFC будет работать, а на FBD – нет.Блок TON — это стандартный блок, таймер с задержкой включения.

    Логика работы: выход Q становится TRUE, когда на входе IN сигнал TRUE в течение не менее времени PT.

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

    Как работает ПЛК?

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

    Многие ПЛК, в частности Beckhoff, позволяют в одной программе создать более одной циклически выполняемой задачи, и задать приоритет для этих задач. Что нам дает эта возможность? Представим ситуацию: ПЛК управляет вентиляционной установкой, и к нему подключена панель управления через RS232.

    Температура в помещениях меняется не быстро, и запускать алгоритм управления вентиляцией чаще, чем раз в 50 — 100 мс просто нет смысла.

    Зато панель оператора опрашивает контроллер постоянно, и задержка ответа ПЛК более 10 мс уже выражается в «притормаживании» интерфейса пользователя, а при задержке 20 мс у нас переполнится аппаратный буфер COM-порта.

    Наличие нескольких задач позволяет нам решить эту проблему красиво: пусть «быстрая» задача работает с COM-портом, и вызывается каждые 2 мс, а «медленная» реализует логику работы вентиляции, и вызывается каждые 50 мс. Все работает хорошо, панель оператора не тормозит, пользователь доволен.

    А что у этих железок внутри?

    Тут все очень и очень зависит от производителя. Кто-то делает свою embedded-платформу на RISC-процессоре (например, отечественный «Овен») — этот подход очень популярен. Beckhoff же пошли по другому пути — на их ПЛК установлена Windows CE 5.0 (а если обновить с официального сайта прошивку — то 6.

    0), или же Windows XP Embedded, а PLC-задача работает как служба. Достаточно интересный контраргумент для любителей рассказывать о нестабильности Windows. Но это «голова» контроллера, а ведь ему еще нужны входы и выходы, чтобы общаться с внешним миром.

    Тут есть два подхода:

  • Можно сделать «все в одной коробке» — голова, некий набор входов / выходов, несколько вариантов конфигурации — вот тут у нас входов побольше, тут поменьше, тут голова помощнее, тут послабее. Так делают, например, Carel, и много кто еще. На маленьком проекте такой подход себя в чем-то, может быть, и оправдывает.
  • Но лично мне кажется, что большую гибкость дает другой подход. Голова отдельно, и к ней по шине подключается наборный «хвост» из модулей ввода-вывода. Мы ставим те модули, которые нам нужны, и в том количестве, которые нам нужно. Так делают Beckhoff и Siemens, например.

    Вот так выглядит внешне подход «все в одной коробке». На фото Carel pCO3.А вот другой вариант — голова Beckhoff серии CX9000 (слева на фото) с набором модулей ввода-вывода.

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

    Какая это будет сеть — зависит от ПЛК. Это могут быть и незнакомые тем, кто не сталкивался с промышленными сетями EIA-485, Profibus, CAN, а может быть и вполне привычный Ethernet. Именно через эту сеть, называемую fieldbus, и осуществляется подключение ПЛК к верхнему уровню — к СКАДА-системе, например.

    На фото выше хорошо видны 2 разъема 8P8C на голове Beckhoff’а — это Ethernet, а у Carel сверху слева видны (плоховато, правда) 2 разъема 6P4C — так они сделали RS-485. У этого интерфейса, к сожалению, нет общепринятого разъема.

    Так все же, как под него программы писать-то?

    Вообще, это тема не статьи, а целой книги. Но расскажу то, что увидел на личном опыте, и пусть это будет ложкой дегтя. Для профессиональных программистов освоение ПЛК во многом покажется деградацией. ООП? Их нет у нас, есть только структуры, перечисления, и некое подобие класса, которое называется «функциональный блок».

    Что такое Private, Public и прочее, тоже можно забыть сразу — не пригодится. Из любого места вашей программы можно получить доступ к любому другому месту. Динамическое выделение памяти? Их нет у нас совсем. Не уверен, сколько тебе пришлют данных? Выделяй буфер с запасом, и забудь про эту память — освободить ее не получится.

    Либо проявляй чудеса скорости и обрабатывай данные на лету, если успеешь уложиться в заданное время цикла.

    Исключения? Да что вы… видел я одно чудо, которое намертво висло при выполнении конструкции вида:foo, bar: int;
    baz: real;
    foo := 2000;
    bar := 2000;
    baz := INT_TO_REAL (foo * bar);
    Понятно, что переполнение, не влазит foo * bar в 16 бит, но зачем же виснуть-то? Да еще так, что ничего, кроме сброса по питанию не помогает.

    Среда разработки? Не у всех CoDeSys, многим хочется пооригинальничать и написать что-нить свое. Одна из таких самописных сред вылетала с runtime error при попытке записать число 86400 в 16-битный INT. А вы говорите, обработка исключений на ПЛК. Ее и в среде разработки-то не всегда нормально могут сделать.

    НО! Зато для любителей той тонкой грани, которая отделяет железо от программного обеспечения, софта в просторечии — это очень интересная ветвь ай-ти, правда.

    Надеюсь, что этот небольшой обзор будет полезен. Если хабрасообществу будет интересна эта тема, то расскажу про ПЛК подробнее.

    Языки программирования PLC: LD, FBD, SFC, ST, IL, CFC

    Контролер – это управляющее устройство. Действительно функциональным он становится только тогда, когда вы создаете и запускаете программу по его использованию.

    Отсюда вытекает главная задача программируемого логического контролера – исполнение программы, которая осуществляет руководство технологического процесса.

    Какой набор программ доступен для ПЛК? В принципе любой набор возможен. Главное, чтобы размер свободных ресурсов, данного инструмента, вам был не помехой. Разработчик получает широкие возможности по написанию программ.

    Что же необходимо, чтобы осуществить программирование контроллера? Во – первых нужен программист, который бы досконально разбирался в данном вопросе. Во – вторых необходим сам компьютер и конечно пакет разработки.

    Функционал средств разработки

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

    Какой функционал предлагает среда разработки?

  • Большой набор библиотек, программные блоки, определенные процедуры и готовые шаблоны.
  • Инструментарий для проверки, тестированию и запуску программы на компьютере минуя контроллер.
  • Также предложен инструмент для автоматизации документирования программы, которая была создана, в пределах принятых стандартов.

    И наконец необходимо отметить главное достоинство – это поддержка порядка шести языков программирования. Единственным недостатком является то, что совместимость программ реализована на низком уровне. Производители ПЛК не пришли к унификации и каждый выпускает, данное устройство, со своей программной средой.

    Виды языков программирования для ПЛК

    LD (Ladder) – это среда разработки, которая основана на графике. Своего рода, она представляет собой подобие релейной схемы. Разработчики данного стандарта считают, что использование такого вида программной среды существенно облегчает переобучение инженеров релейной автоматики на ПЛК.

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

    FBD ( Диаграмма Функциональных Блоков) – здесь также используется графическое программирование. Образно говоря, FBD определяет собой некую множественность функциональных блоков, которые имеют соединения между собой (вход и выход).

    Данные связи являются переменными и выполняют пересылку между блоками. Каждый блок в отдельности может представлять определенную операцию( триггер, логическое “или” и т.д.). Переменные задаются с помощью определенных блоков, а цепи выхода могут иметь связи с конкретными выходами контроллера или связи с глобальными переменными.

    SFC ( Sequential Function Chart) – может использоваться с языками ST и IL, он также основан на графике. Принцип его построения близок к образу конечного автомата, данное условие относит его к самым мощным языкам программирования.

    Технологические процессы, в данном языке, построены по типу определенных шагов. Структура шагов состоит из вертикали, которая идет сверху вниз. Каждый шаг – это конкретные операции. Описать операцию можно не только с помощью SFC, но и с помощью ST и IL.

    Как только шаг выполнен, то идет действие по передачи управления следующему шагу. Переход между шагами может быть двух видов.

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

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

    Недостатком SFC можно считать, что в процессе работы может быть активировано несколько шагов, не в параллельных потоках. Поэтому необходим глобальный контроль со стороны программиста.

    ST ( Структурированный Текст) – относится к языкам высокого уровня и имеет много сходного с Pascal и Basic.

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

    Небольшим недостатком можно определить отсутствие графической среды. Программы представлены в виде текста и данное условие усложняет освоение технологии.

    IL ( Список Команд) – язык подобен Ассемблеру, обычно используется для кодировки блоков по отдельности. Плюсом является то, что данные блоки имеют большую скорость работы и низкую требовательность к ресурсам.

    CFC ( Continuous Flow Chart) – относится к языкам высокого уровня. В принципе – это явное продолжение языка FBD.

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

    Каждый блок – это управление определенным технологическим процессом. Здесь идет основной уклон на технологический процесс, математика уходит на второй план.

    Плк (plc) – промышленные программируемые логические контроллеры

    Программируемый логический контроллер — важный элемент системы автоматизации на промышленном предприятии. ПЛК необходимы для автоматического управления объектом в условиях реального времени.

    К каналам ввода-вывода PLC подключают внешние модули, позволяющие собирать и анализировать данные, контролировать работу объекта.

    К некоторым программируемым логическим контроллерам также можно подключить дисплей, мышь и клавиатуру.

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

    Программируемые логические контроллеры для промышленных производств должны отвечать строгим требованиям:

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

    В нашем каталоге представлены программируемые логические контроллеры от ведущих отечественных и зарубежных производителей. Мы предлагаем ПЛК Advantech, ICP DAS, ОВЕН, НИЛ АП, Сегнетикс и др. Всегда в наличии устройства с различными рабочими характеристиками: классом защиты, количеством каналов ввода-вывода и др.

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


    Существуют две основные серии PLC Advantech – это контроллеры ADAM-5000 и APAX-5000.

    Серия Advantech APAX-5000 использует открытую архитектуру разработки со встроенным ПО KW Multiprog Softlogic и опциональным ПО HMI/SCADA, а также объединяет в себе функции управления, обработки информации и коммуникационные возможности в рамках единой системы управления.

    ПК-совместимые контроллеры ADAM-5000 на базе Intel Atom D510, обладают специальными функциями управления, такими, как сторожевой таймер, память RAM с питанием от резервной батареи и детерминированный ввод/вывод.

    Компания ICP DAS выпускает ПЛК широко известных в России серий I-7000, uPAC, WinPAC, XPAC, iPAC и т.д.

    Возможность применения более дешевых, отработанных и быстро развивающихся открытых архитектур на базе РС-совместимой платформы позволяет широко использовать изделия компании ICP DAS для задач, где раньше применялись только обычные PLC.

    Неоспоримыми достоинствами контроллеров ICP DAS являются:

    • невысокая цена PLC;
    • использование открытых протоколов;
    • простота программирования и доступность широкого спектра программного обеспечения;
    • простота интеграции с системами управления более высокого уровня.

    Компания ОВЕН уже более 15 лет производит широкий ряд приборов первичной автоматики. Идя в ногу со временем компания ОВЕН в 2005 году начала разработку управляющих контроллеров для широкого применения. В них использовалась современная элементная база и с самого начала закладывались мощные аппаратные ресурсы и широкие программные возможности.

    Для их программирования используется среда CoDeSys, разработанной немецкой компанией 3S-Software. Кроме того, контроллеры ОВЕН могут программироваться с помощью интегрированной SCADA и SoftLOGIC системы MasterSCADA.

    Российская компания “Сегнетикс” (Segnetics) производит три линейки контроллеров. Первая линейка – SMH2010 – универсальные панельные устройства для автоматизации широкого спектра объектов в области ЖКХ, автоматизации зданий и промышленности.

    Вторая линейка предназначена для автоматизации систем вентиляции – Pixel. И, наконец, третья линейка – SMH 2G – второе поколение панельных ПЛК, предназначенных для автоматизации инженерных систем зданий и технологических процессов в промышленности.

    Цена ПЛК этого производителя приятно удивит.

    МЗТА. Контроллер КОНТАР и ПРОТАР

    ПТК КОНТАР предназначен для автоматического управления, сбора и передачи информации, а также дистанционного управления и диспетчеризации технологических процессов в ЖКХ и промышленности.

    Контроллер КОНТАР обеспечивает сбор информации от разнообразных источников, используемых на объекте (датчики температуры, давления, расхода, тепло-, водо- и электросчетчики и т.п.) и передачу ее на верхний уровень.

    Возможно также и полностью автономное применение аппаратуры комплекса в виде отдельных модулей.

    Комплекс построен на новейшей элементной базе и обеспечивает простой доступ к современным коммуникационным технологиям (подключение к сети Ethernet, передача информации по сотовой сети стандарта GSM/CDMA). КОНТАР может использоваться для решения многих задач также с помощью дополнения его оборудованием других производителей. У нас можно купить ПТК КОНТАР со скидкой.

    ПЛК НИЛ АП НИЛ АП предлагает контроллеры серий NLсon-CE (полноценный ПЛК средней мощности с высокими техническими характеристиками), NLсon-1AT (недорогие ПЛК для локальной автоматизации с применением модулей ввода-вывода серии NL), промышленные контроллеры с заказным программированием (заказные “прошивки” контроллеров, входящих в состав модулей серии NL или разработанных для конкретного заказчика) и ПЛК серии NS (выпускаются в двух модификациях: с протоколом Modbus RTU и с протоколом DCON, программно полностью совместимы с серией NL).

    TREI Контроллеры TREI-5B-04 и TREI-5B-05 предназначены для локальных и распределенных систем автоматического контроля и управления технологическими процессами в ответственных системах на промышленных предприятиях с нормальным и взрывоопасным производством, а также для построения систем противоаварийных блокировок и защит.

    Bolid Контроллеры Болид (Bolid) включены в адресные системы ОПС и противопожарной охраны в составе интегрированной пожарно-охранной системы ОРИОН. Предназначены для использования в создании систеы охранно-пожарной сигнализации, или мониторинга систем жизнеобеспечения.

    Контроллеры TORNADO (Gridex)

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

    Модули ввода/вывода ioGridex предназначены для использования в качестве конечных устройств связи с технологическим оборудованием объекта в концепции промышленного интернета вещей IoT.

    Программируемые контроллеры

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

    Модели приборов и аналоги

    Краткие данные по некоторым моделям ПЛК контроллеров:

    Подробное описание приведено на страницах приборов.

    Области применения программируемых логических контроллеров

    Программируемые логические контроллеры применимы везде, где организуются системы управления, но наилучшее применение для них это АСУТП промышленных предприятий.

    • Металлургический, машиностроительный комплекс и т.п.
    • Централизованные системы управления (ПЛК является ядром системы, к нему напрямую либо через модули согласования подключаются датчики и ИМ)
    • Распределенные системы управления (ПЛК и удаленные от него датчики с ИМ связаны через промышленные каналы связи, например ModBus, ProfiBus, CAN. Используются связи «Master-Slave»)
    • Локальная автоматика, станки ЧПУ
    • Любое производство, требующее автоматического управления и мониторинга и сбора информационных параметров; внутренние системы предприятия

    Назначение ПЛК

    Основные задачи PLC контроллеров:

    • Замена обычной логики, релейной логики на перепрограммируемые устройства
    • Длительный автономный контроль техпроцессов (+ без обслуживания и человеческого вмешательства)
    • Основа АСУТП, автоматизация промышленных предприятий. Сбор разнородных данных (+ хранение/преобразование, обмен по пром. протоколам), их обработка по программе и выдача сигналов управления на ИМ
    • Повышение эффективности производства

    Преимущества

    Достоинства и особенности PLC контроллеров:

    • Возможность одним программируемым логическим контроллером заменить сотни механических/электрических реле + по необходимости в любое время перепрограммировать
    • Богатый функционал, высокая производительность (+ модули расширения, работа в реальном времени)
    • Компактность, средства диагностики + организация больших систем с использованием сетей
    • Экономичность (экономия электроэнергии, быстрый монтаж и настройка, возможно переопределение функций прямо в процессе работы)

    Недостатки

    Основные недостатки таких контроллеров:

    • Экономичность зависит от сложности схемы, которая реализуется. Чем больше параметров требуется контролировать, тем выгоднее использование PLC-контроллеров
    • Для обслуживания требуется квалифицированный персонал
    • Возможные сложности с ремонтом в случае выхода из строя всего ПЛК

    Принцип работы программируемого логического контроллера

    Работа программируемого логического контроллера (PLC) основывается на сборе внешних данных, в том числе через промышленные интерфейсы, с последующей выдачей управляющих сигналов на внешние устройства. Настройка ПЛК заключается в конфигурировании его входов и выходов и написании пользовательской программы. Программа содержит инструкции по обработке полученных данных и реализацию законов управления.

    Рефераты, дипломные, курсовые работы – бесплатно: Библиофонд!

    Программируемые логические контроллеры

    логический контроллер программируемый

    Современная конкурентная экономика и открытый рынок, перспективы вступления России в ВТО и снятие в связи с этим ряда ограничений на торговлю ставят перед отечественными предприятиями чрезвычайно сложные задачи.

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

    Широкое применение средств автоматизации производственных процессов, напрямую влияющее на сокращение издержек и повышение качества продукции, становится главным фактором развития российского промышленного производства.

    Лучшее доказательство этому – растущее влияние на мировом рынке российских металлургов, нефтяников, предприятий оборонного комплекса.

    Инвестируя в автоматизацию, модернизацию и развитие производства, сегодня именно эти отрасли становятся локомотивом всей отечественной промышленности.

    Современное предприятие наряду с полностью автоматизированными или роботизированными линиями включает в себя и отдельные полуавтономные участки – системы блокировки и аварийной защиты, системы подачи воды и воздуха, очистные сооружения, погрузочно-разгрузочные и складские терминалы и т.п. Функции автоматизированного управления для них выполняют программно-технические комплексы (ПТК).

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

    При этом, в отличие от компьютерных сетей, центральным звеном ПТК является не главный процессор, а программируемые логические контроллеры, объединенные в сеть.

    Автоматизированные системы управления технологическими процессами (АСУ ТП) объединяют различные объекты и устройства, локальные и удаленные, в единый комплекс и позволяют контролировать и программировать их работу как в целом, так и по отдельности с помощью SCADA или других систем. Этим обеспечивается максимальная эффективность и безопасность производства, возможность оперативной наладки и переналадки, строгий учет и планирование показателей операционной деятельности, оптимизация бизнес-процессов.

    1.Понятие программируемого логического контроллера

    Программируемый логический контроллер (сокращенно, ПЛК) – электронный компонент, применяемый в современных системах автоматизации. Программируемые логические контроллеры используются главным образом при автоматизации промышленных и производственных процессов.

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

    Каждый электрик должен знать:  Контактная разность потенциалов

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

    Контроллеры ПЛК относятся к категории устройств реального времени и обладают целым рядом существенных отличий от оборудования со сходными назначением и архитектурой.

    В частности, главным отличием программируемых логических контроллеров от обычных компьютеров является развитая система обработки входящих и исходящих сигналов исполнительных механизмов и различных датчиков; главным отличием от встраиваемых систем управления – схема монтажа, отдельного от объекта управления.

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

    Контроллеры, программируемые с помощью особого языка Ladder Logic Diagram («лестничной логики»), стали следующим поколением и заменили собой устройства с жестко заданной логикой. Внутренняя физическая коммутация (то есть, контакты и реле) была заменена в них виртуальной и представляла собой программу, исполняемую микроконтроллером устройства.

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

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

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

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

    2.Сравнительный анализ рыночных моделей

    На данный момент существует много фирм, производящие ПЛК.

    Однако наличие различных ПЛК ставит следующий вопрос: как выбрать из этого обилия необходимый контроллер? Большинству потребителей требуется не превосходство одной какой-то характеристики, а некая интегральная оценка, позволяющая сравнить ПЛК по совокупности характеристик и свойств. А это уже отдельная проблема. Так при маркетинге выяснилось, что многие фирмы не приводят данные по надежности (MTBF и MTTR). Однако там, где эти параметры есть, разброс идет на порядки.

    Один из самых важных параметров ПЛК быстродействие в каталогах фирм указывается в совершенно разных вариантах. Могут фигурировать время выполнения бинарных команд, время опроса 1К дискретных входов, время выполнения смешанных команд и т.д.

    Цена – самый интригующий фактор. Кто-то приводит их в американских долларах, кто-то в немецких марках, при этом курс иностранной валюты очень разный и всегда завышенный.

    А если на это наложить еще разные форматы цен: FOB, DDP и т.д.

    , многочисленные системы скидок, то получается что подбор необходимого ПЛК становиться нетривиальной задачей, требующей помимо технических знаний хорошего знания рынка.

    Спектр продукции, предлагаемой сегодня, чрезвычайно широк. В Табл. 1 приведены некоторые характеристики ПЛК различных фирм, наиболее распространенных в России.

    В четырех последних строках указаны параметры для модулей дискретного ввода-вывода.

    Все они построены по магистрально-модульному принципу, монтируются на панель или DIN-рейку, работают от напряжения +24 В, поддерживают протоколы обмена Fieldbus, имеют широкий набор модулей:

    модули дискретных входов / выходов;

    ·модули аналогового ввода / вывода;

    ·модули контроля движения.

    Как видно из таблицы, контроллеры имеют равные функциональные возможности, близкие технические и эксплуатационные характеристики и даже почти одинаковые размеры (рис. 1).

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

    Таблица 1 – Характеристики ПЛК

    Учитывая специфику устройств, критерии оценки можно разделить на три группы:

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

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

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

    Ниже приведены несколько компаний, производящих ПЛК.

    Advantech. Контроллеры и модули ввода / вывода

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

    Рисунок 1 – Внешний вид контролеров Advantech Launches its BAS-3000 Series

    Существуют две основные серии контроллеров Advantech – это APAX-5000 и ADAM-5000.

    APAX-5000 с открытой архитектурой, позволяющей использовать различные приложения и имеет высокоскоростной вычислительный процессор (APAX5570XPE/5571XPE), обеспечивая при этом гибкие функции ввода / вывода, повышающие масштабируемость системы. ADAM-5000 оснащены широким набором интерфейсов для связи, обеспечивающих гибкость коммуникационных соединений.

    Компания ICP DAS выпускает ПЛК и модули ввода-вывода широко известных в России серий I-7000, I-8000, uPAC, WinCon, WinPAC, XPAC, iPAC и т.д.

    Рисунок 1 – Внешний вид контролеров WinCon, uPAC, XPAC

    Компания ICP DAS выпускает ПЛК и модули ввода-вывода широко известных в России серий I-7000, I-8000, uPAC, WinCon, WinPAC, XPAC, iPAC и т.д.

    Возможность применения более дешевых, отработанных и быстро развивающихся открытых архитектур на базе РС-совместимой платформы позволяет широко использовать изделия компании ICP DAS для задач, где раньше применялись только обычные PLC.

    Достоинствами контроллеров ICP DAS являются:

    ·невысокая цена PLC;

    ·использование открытых протоколов;

    ·простота программирования и доступность широкого спектра программного обеспечения;

    ·простота интеграции с системами управления более высокого уровня.

    ПТК КОНТАР производства МЗТА

    ПТК КОНТАР предназначен для автоматического управления, сбора и передачи информации, а также дистанционного управления и диспетчеризации технологических процессов в ЖКХ и промышленности.

    КОНТАР обеспечивает сбор информации от разнообразных источников, используемых на объекте (датчики температуры, давления, расхода, тепло-, водо- и электросчетчики и т.п.) и передачу ее на верхний уровень.

    Возможно также и полностью автономное применение аппаратуры комплекса в виде отдельных модулей.

    Рисунок 1 – Внешний вид ПТК КОНТАР

    Комплекс построен на новейшей элементной базе и обеспечивает простой доступ к современным коммуникационным технологиям (подключение к сети Ethernet, передача информации по сотовой сети стандарта GSM/CDMA). КОНТАР может использоваться для решения многих задач также с помощью дополнения его оборудованием других производителей.

    Контроллеры ОВЕН (ПЛК ОВЕН)

    Компания ОВЕН уже более 15 лет производит широкий ряд приборов первичной автоматики. Компания ОВЕН в 2005 году начала разработку управляющих контроллеров для широкого применения. В них использовалась современная элементная база и с самого начала закладывались мощные аппаратные ресурсы и широкие программные возможности.

    Рисунок 1 – Внешний вид ПЛК ОВЕН

    Для их программирования используется среда CoDeSys, разработанной немецкой компанией 3S-Software. Кроме того, контроллеры ОВЕН могут программироваться с помощью интегрированной SCADA и SoftLOGIC системы MasterSCADA.

    Российская компания «Сегнетикс» (Segnetics) производит три линейки контроллеров. Первая линейка – SMH2010 – универсальные панельные контроллеры для автоматизации широкого спектра объектов в области ЖКХ, автоматизации зданий и промышленности.

    Вторая линейка предназначена для автоматизации систем вентиляции – Pixel. И, наконец, третья линейка – SMH 2G – второе поколение панельных ПЛК, предназначенных для автоматизации инженерных систем зданий и технологических процессов в промышленности.

    Рисунок 1 – Внешний вид ПЛК Сегнетикс

    ПЛК (PLC) производства Mitsubishi Electric

    Разработка и производство программируемых логических контроллеров является одним из приоритетных направлений деятельности компании Mitsubishi Electric в области промышленной автоматизации. Mitsubishi Electric предлагает широкий выбор ПЛК семейства MELSEC для задач управления любого уровня сложности.

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

    Как правило, многие контроллеры имеют закрытую структуру, т.е. программируются софтом от производителя ПЛК. Так, например, ПЛК Сименс программируются только с помощью Step7, Step7 Microwin или Logo Comfort, а ПЛК Шнейдер программируются только с помощью Unity или Concept.

    Закрытую структуру ПЛК имеют контроллеры Мицубиши, Омрон, ABB, GE Fanuc и многие другие. Практически все приличные фирмы создают закрытые протоколы и системы с платной средой разработки.

    Несмотря на это существуют программируемые логические контроллеры с открытыми или полуоткрытыми платформами, на них предустановленны такие ОС, как WindowsCE, VxWorks, Linux, либо они основываются на процессорах фирм Моторола, Интел, Инфинеон, Атмел, Хитачи, PowerPC и др. Такие ПЛК могут программироваться различным ПО, например, CoDeSys. Пример: ПЛК – Овен ПЛК или ADAM…

    Несмотря на разнообразие программного обеспечения и реализаций ПЛК, языки программирования ограничены стандартом МЭК 61131-3. Это сделано не из праздной необходимости все унифицировать, а более с целью сохранить некоторые стандартные подходы к программированию контроллеров. Наиболее выделяются пять видов языков программирования:

    LD (LAD, ladder diagram, по немецки: KOP, kontakt plan, по-русски: РКС, релейно-контакторная схема, контактный план, лестничная диаграмма) 45.50%

    FBD (functional block diagram, диаграмма функциональных блоков) 24.64%

    IL (instruction list, STL, statement list, язык инструкций; очень похож на ассемблер, но очень своеобразен) 8.53%

    SFC (series functional charts, последовательные функциональные диаграммы, язык графов) 0.47%

    Программируемые логические контроллеры (ПЛК системы) – АГАВА

    Общие сведения о функциях ПЛК

    В настоящее время широкое распространение получили программируемые логические контроллеры (ПЛК), которые в качестве контроллеров полевого уровня являются основным ядром автоматизированных систем управления технологических процессов и производств.

    Типичный ПЛК состоит из: процессорного модуля, модулей дискретных и аналоговых входов/выходов, ПИД-регуляторов, терморегуляторов, позиционирования, контроля движения и др.

    Среди производителей и потребителей выработалась следующая классификация ПЛК по количеству входов и выходов: наноконтроллеры – до 15-20 входов/выходов, малые контроллеры – до 100 входов/выходов, средние – 100-300, большие – 300-2000, сверхбольшие – более 2000 входов/выходов. Кроме этого основного параметра, характеризующего «мощность» ПЛК, при разработке систем управления и выборе ПЛК учитывают также его быстродействие, объём разных видов памяти и количество сетевых интерфейсов.

    Наиболее популярными инструментами разработки программного обеспечения для ПЛК в настоящее время являются языковые среды ISaGRAF и CoDeSys.

    ISaGRAF — инструмент разработки прикладных программ для программируемых логических контроллеров на языках стандарта IEC 61131-3 и IEC 61499, который позволяет создавать локальные или распределенные системы управления.

    Основа технологии — среда разработки приложений (ISaGRAF Workbench) и адаптируемая под различные аппаратно-программные платформы исполнительная система (ISaGRAF Runtime). В настоящее время ISaGRAF производится и распространяется компанией ICS Triplex ISaGRAF.

    В ISaGRAF поддерживаются все пять языков программирования стандарта IEC 61131-3 (International Electrotechnical Commission, МЭК):

    CoDeSys — универсальный инструмент разработки прикладных программ для программируемых логических контроллеров на языках стандарта
    IEC 61131-3. Данный инструмент производится и распространяется основанной в 1994 году фирмой 3S-Smart Software Solutions (Кемптен, Германия).

    Название CoDeSys является акронимом от Controller DevelopmentSystem. Версия 1.0 была выпущена в 1994 году. Среда программирования CoDeSys распространяется без лицензии и может быть без ограничений установлена на нескольких рабочих местах.

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

    ISaGRAF и CoDeSys поддерживают все пять языков программирования, рекомендуемых международным стандартом МЭК-61131-3: • IL – текстовый, аппаратно-независимый и подобный языку Ассемблер;• LD – графический язык, удобный для реализации релейных схем; • FBD – графический язык для реализации функциональных блоковых диаграмм;• SFC – высокоуровневый графический язык диаграмм состояний, на базе математического аппарата сетей Петри;• ST – текстовый язык, подобный языкам Паскаль и С.

    Программы на языках IL и LD состоят из набора функциональных блоков, соответствующих катушкам и контактам реле, и удобны для реализации логических систем управления.

    Программы на графических языках FBD и CFC содержат логические элементы И, ИЛИ, НЕ и удобны для специалистов, знакомых с алгеброй логики.

    Язык ST предназначен для программирования сложных алгоритмов и логико-математических преобразований, обработки аналоговых сигналов.

    Языки релейных схем (LD) и функциональных блоков (FBD) наиболее распространены в практике программирования ПЛК.

    Преимущества ПЛК

    Первое и главное преимущество ПЛК, обусловившее их широкое распространении, заключается в том, что одно компактное электронное устройство может заменить десятки и сотни электромеханических реле.

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

    ПЛК отличаются от традиционных неперепрограммируемых устройств управления следующими преимуществами: они более гибки, надёжнее, имеют меньшие габариты, могут быть объединены в сети с другими устройствами и перенастраиваться по Интернету, быстрее обнаруживают ошибки, расходуют меньше электроэнергии, требуют меньше затрат на изменение своих функций и структуры и вообще менее затратны на больших отрезках времени.

    Применение ПЛК обеспечивает высокую надёжность, простое тиражирование и обслуживание систем управления, ускоряет монтаж и наладку оборудования, обеспечивает возможность быстрого обновления алгоритмов управления (в том числе и на работающем оборудовании).

    Конструкторское бюро «АГАВА», г. Екатеринбург, производит собственный ПЛК под торговой маркой АГАВА 6432.20, который позиционируется на рынке промышленной автоматизации, как контроллер премиум класса с широким коммуникационными возможностями, предназначенный для построения распределенных и локальных систем различной сложности.

    В соответствии с избранной маркетинговой политикой АГАВА 6432.20 располагается в ценовой нише до 10 тыс. рублей, что соответствует стоимости наноконтроллеров и программируемых реле.

    Особенностью архитектуры ПЛК АГАВА 6432.20 является то, что процессорный модуль оснащен только последовательными интерфейсами и не имеет на борту подсистем входов/выходов. Такое построение было продиктовано желанием создать максимально помехозащищенное устройство и минимизировать все проводные связи с внешней средой.

    Для сопряжения с объектом служат модули ввода/вывода АГАВА 6432.20МВВ, которые обмениваются данными с головным модулем при помощи интерфейса RS-485. В то же время в качестве модулей ввода/вывода могут использоваться устройства любых производителей, поддерживающие протокол MODBUS RTU.

    ПЛК АГАВА 6432.20 предназначен:

    • для создания систем управления в энергетике, на транспорте, в различных областях промышленности, ЖКХ и сельского хозяйства; • для организации взаимодействия между оборудованием, имеющим различные интерфейсы и протоколы связи; • объединение нескольких устройств в единую сеть; • предоставления удаленного консольного доступа к удаленному оборудованию;

    • создание систем мониторинга и диспетчеризации технологических процессов, инженерных систем, зданий многого другого.

    Алгоритмы работы ПЛК определяется потребителем в процессе программирования контроллера. Загрузка проекта в прибор и его отладка производятся через интерфейс Ethernet или RS-232.

    Прграммируемый логический контроллер АГАВА 6432.

    20 ПЛК1 оснащен жидкокристаллическим графическим индикатором, клавиатурой, портом Ethernet, тремя RS-485 портами, полным RS-232 портом, CAN-портом, USB-host и device портами, слотом для SD-карты, датчиком наличия питающей сети.

    Индикатор позволяет разработчику проекта выводить на него различную информацию о состоянии объекта, прибора и т.п. Кроме того, можно программно управлять цветами подсветки индикатора.

    При помощи клавиатуры можно вводить в память контроллера различные данные и управлять объектом по месту. Встроенный пьезоэлектрический зуммер может быть использован в качестве звуковой сигнализации.

    На лицевой панели прибора присутствуют три светодиода «Работа», «Авария» и «Программа», управление которыми доступно из программы проекта.

    Существует исполнение головного модуля контроллера без графического индикатора и клавиатуры.

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

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

    Три гальванически изолированных порта RS-485 позволяют осуществлять высокоскоростной обмен с внешними устройствами ввода-вывода по стандартному протоколу MODBUS-RTU.

    Порт RS-232 обеспечивает полноценную связь с модемом и другими устройствами. Также имеется гальванически изолированный порт стандартной промышленной сети CAN.

    В ПЛК установлена SD-карта объемом до 2Гб, которая используется прибором в качестве жесткого диска, что позволяет сохранять большой объем информации.

    Наличие порта USB-host позволяет подключать к прибору USB флеш-накопители и другие устройства. При помощи порта USB-device можно подключить ПЛК к компьютеру для съема информации с внутренней SD-карты без ее извлечения.

    ПЛК АГАВА 6432.20 работает под управлением операционной системы Linux. Применение Linux дает возможность использовать в проектах такие ресурсы операционной системы, как хранение и накопление данных в файлах, их перенос на внешний съемный USB flash-диск, либо по сети Ethernet при помощи сервисов ftp, e-mail и telnet.

    Наличие в ПЛК АГАВА 6432.20 развитых сетевых ресурсов позволяет производить обмен информацией по локальной сети или через Интернет.

    Код проекта и энергонезависимые переменные (тип retain) сохраняются на SD-карте, это позволяет создавать большие проекты и пользоваться значительным числом переменных retain.

    Наличие драйверов позволяет подключать к ПЛК модемы, Wi-Fi сетевые адаптеры и пр.

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

    Это позволяет использовать недорогие блоки бесперебойного питания для обеспечения безаварийного управления объектом.

    Встроенный гальванически развязанный датчик питающей сети позволяет прибору определять отсутствие сети, предпринять соответствующие действия, либо корректно завершить работу. Проф. В. Лукас, научный консультант ООО КБ «Агава»

    Программируемые логические контроллеры

    Назначение и функции

    Программируемые логические контроллеры (ПЛК, programmable logic controller – PLC) – это специальные микрокомпьютеры, предназначенные для выполнения операций переключения в промышленных условиях.

    Это название, в действительности, не верно, так как ПЛК сегодня могут гораздо больше, чем просто выполнять логические операции. ПЛК генерируют выходные сигналы «включить/выключить» для управления исполнительными механизмами – электродвигателями, клапанами, лампочками и т.п.

    , которые являются неотъемлемой частью систем автоматизации во всех отраслях промышленности.

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

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

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

    Первые ПЛК были сконструированы только для простых последовательностных операций с двоичными сигналами.

    Сегодня на рынке существуют сотни различных моделей ПЛК, которые отличаются не только размером памяти и числом каналов ввода-вывода (от нескольких десятков до нескольких сотен), но и выполняемыми функциями.

    Небольшие ПЛК предназначены в основном для замены реле и имеют некоторые аналоговые сигналы, производят математические операции и даже содержат контур управления обратной связи, как ПИД регуляторы.

    Конструктивно ПЛК обычно приспособлены для работы в типовых промышленных условиях, с учетом уровней сигналов, термо- и влагостойкости, ненадежности источников питания, механических ударов и вибраций.

    ПЛК также содержат специальные интерфейсы для согласования и предварительной обработки различных типов и уровней сигналов.

    Функции ПЛК чаще применяются в устройствах ввода-вывода, входящих в состав больших интегрированных систем управления.

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

    В Европе наиболее популярно использование функциональных блоков с графическими символами логических элементов, а в США до сих пор достаточно широко распространены принципиальные схемы.

    Однако два последних метода постепенно заменяются BASIC-подобными языками программирования.

    В системах промышленной автоматики ПЛК должны работать в режиме реального времени, т.е. быстро реагировать на внешние события. Ввод и обработка внешних сигналов осуществляется в ПЛК двумя способами – по опросу или по прерыванию.

    Основной недостаток опроса – можно потерять некоторые внешние события, если ПЛК не обладает достаточным быстродействием, хотя такой подход проще для программирования. Управление по прерываниям сложнее для программирования, но риск пропустить какое-либо внешнее событие намного меньше.

    Управления по опросу вполне достаточно для простых схем, а управление по прерыванию используется в сложных случаях.

    Программирование ПЛК в основном представляет собой описание управляющих последовательностей. Функции ввода/вывода уже реализованы в базовом программном обеспечении ПЛК. Программные инструкции, задаваемые одним из описанных выше способов, транслируются в машинный код ПЛК. Выполнение программы происходит в бесконечном цикле.

    Небольшого набора базовых машинных команд, как правило, достаточно для большинства задач последовательного управления. Программа, состоящая из этих команд, называется списком команд (instruction list). Некоторые основные команды перечислены ниже; обычно они могут оперировать как битами, так и байтами.

    ld, ldi – загрузка значения из входного порта в сумматор, непосредственно (ld) или с инверсией (ldi);

    and, ani – операция AND или NAND между значениями в сумматоре и на входном порту; результат сохраняется в сумматоре;

    or, ori – операция OR или NOR между значениями в сумматоре и на выходном порту; результат сохраняется в сумматоре;

    out – содержимое сумматора копируется в конкретный выходной порт и управляет выходными сигналами; значение в сумматоре не изменяется, поэтому его можно подвергнуть дальнейшей обработке или переслать в другой выходной порт.

    Дополнительные команды ПЛК

    Базовый набор команд ПЛК может включать логические операции XOR, NAND, NOR и др. Кроме того, современные ПЛК имеют операторы для обработки буквенно-цифровых данных и связи с внешними устройствами, а также дополнительные функции в виде счетчиков, таймеров и генераторов импульсов.

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

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

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

    Ручной программатор ПЛК выглядит как большой карманный калькулятор с простым дисплеем. Каждый логический элемент принципиальной схемы или программный оператор вводится специальными клавишами или их комбинацией.

    Более мощный и набирающий популярность вид программатора ПЛК – это персональный компьютер с графическим дисплеем.

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

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

    Поддержка программирования ПЛК на языке высокого уровня становится обязательным условием по мере возрастания сложности операций.

    Примеры современных промышленных контроллеров для АСУ ТП[11]

    Компания Advantech начала поставки высокопроизводительного встраиваемого компьютера UNO-2182 на базе процессора Intel Core2Duo, являющегося новым звеном в линейке универсальных контроллеров для АСУ ТП серии UNO.

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

    В компьютере используется процессор нового поколения Intel Core2Duo с рабочей частотой 1,5 ГГц. Максимальный объем оперативной памяти равен 1 Гбайт.

    Статическое ОЗУ с питанием от резервной батареи объемом 512 кбайт позволяет сохранять критические для работы устройства данные и настройки.

    В качестве накопителя может использоваться как твердотельный диск Compact Flash, так и 2,5″ НМЖД стандарта PATA/SATA.

    Для расширения функциональных возможностей в UNO-2182 предусмотрены гнездо формата PC Card, а также слот для установки модулей формата PCI-104.

    Уникальный набор интерфейсов, включающий два порта Gigabit Ethernet, по два последовательных порта RS-232 и RS-232/422/485, а также параллельный порт и два интерфейса USB 2.0 обеспечивает простую и быструю интеграцию с различными сетевыми структурами.

    Благодаря видеовыходу типа DVI-I компьютер может работать как с цифровыми (DVI), так и с аналоговыми (VGA) дисплеями.

    Максимальную готовность UNO-2182 к применению обеспечивают заказные конфигурации с предустановленной операционной системой реального времени Windows CE.NET или русифицированной Windows XP Embedded SP2.

    Отсутствие принудительного охлаждения, прочный алюминиевый корпус и отсутствие электромеханических накопителей позволяют использовать компьютер в самых жестких условиях эксплуатации. При этом безотказная работа обеспечивается при воздействии ударной нагрузки до 50 g, вибраций до 2 g и температуры окружающей среды от -20 до +55°C.

    Контроллеры серии WinCon-8000 компании ICP DAS

    Контроллеры серии WinCon-8000 представляют собой последнее поколение промышленных контроллеров производства компании ICP DAS. Вобрав в себя все лучшие характеристики серий I-7000 и I-8000, сохранив преемственность с ними, WinCon-8000 приобрел новые возможности благодаря использованию высокопроизводительного процессора Intel Strong ARM с тактовой частотой 206 МГц и оперативной памяти 64 Мб.

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

    Контроллер может быть без труда установлен на DIN-рейку или на панель, причем для монтажа не требуется никаких дополнительных конструктивных элементов. При этом обеспечивается открытый и удобный доступ к панели управления, слотам для установки или замены модулей ввода-вывода и коммуникационным разъемам.

    Контроллер поддерживает все модули ввода/вывода сигналов, как с параллельным, так и с последовательным интерфейсом, семейства I-8000, и, кроме того, может работать с удаленными модулями ввода/вывода серии I-7000.

    В отличие от контроллеров I-8000, WinCon-8000 имеют не только интерфейсы RS-232 и RS-485, но и интерфейсы USB и Ethernet, а также интерфейсы VGA и PS/2 для подключения клавиатуры, мыши и монитора. Таким образом, промышленный контроллер приобрел функциональность персонального компьютера, что значительно облегчает его программирование и расширяет сферу применения.

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

    Достаточно лишь установить SCADA-систему, например Trace Mode, и контроллер может взять на себя функции современного операторского интерфейса.

    Контроллер имеет встроенную операционную систему Microsoft Windows CE .NET, которая характеризуется как операционная система реального времени. Она поддерживает переназначение приоритетов процессов и обеспечивает тот же уровень детерминированного управления, что и классические ПЛК.

    Интерфейс операционной системы позволяет воспользоваться любыми средствами, предназначенными для создания программ в этой среде, например Visual Basic .NET, Visual C#, Embedded Visual C++.

    Контроллер поставляется в комплекте с программной библиотекой, в которой реализованы функции работы со всеми внутренними и внешними устройствами контроллера (внутренняя шина, таймер, внешние интерфейсы, модули ввода/вывода и прочее).

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

    Промышленные контроллеры. Серия System Q Mitsubishi Electric

    Новейшее поколение модульных программируемых логических контроллеров (ПЛК) Mitsubishi Electric для комплексных задач автоматизации среднего и высокого уровня сложности представляет серия MELSEC System Q.

    Высокая вычислительная мощность в сочетании с широчайшими коммуникационными возможностями, расширением до 8192 каналов ввода/вывода и трехуровневым аппаратным резервированием позволяет их успешно использовать в АСУ ТП крупных ответственных объектов, реализуя алгоритмы управления любого уровня сложности.

    ПЛК System Q поддерживают многопроцессорный режим обработки данных, что делает возможным параллельное использование в одном ПЛК до 4-х центральных процессоров (ЦП) одного или нескольких типов. Для выбора оптимальной конфигурации Вашего контроллера предлагается 15 типов процессорных модулей:

    12 типов ЦП ПЛК;

    2 типа ЦП управления сервоприводами;

    1 тип встраиваемого промышленного ПК.

    Наличие многопроцессорного режима обработки в одном контроллере позволяет:

    – организовать высокоскоростной обмен данными между отдельными процессорными модулями по внутренней шине;

    – увеличить производительность системы и обеспечить ее высокое быстродействие за счет деления сложных алгоритмов между несколькими ЦП;

    – повысить надежность за счет распределенного алгоритма обработки данных;

    – снизить стоимость системы за счет использования одного многопроцессорного контроллера вместо нескольких однопроцессорных, объединенных по сети.

    Для обеспечения безаварийной работы предусмотрено трехуровневое аппаратное резервирование контроллера:

    – по центральному процессору;

    – по источнику питания;

    – по сетевым соединениям.

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

    Контроллеры серии System Q имеют широкие возможности для построения систем управления c распределённой архитектурой. При этом подключение контроллера к удалённым станциям ввода/вывода возможно через стандартные полевые шины, такие как: Ethernet, CANopen, PROFIBUS/DP, MODBUS, DeviceNet, CC-Link, AS-Interface.

    Кроме того, возможно подключения модулей УСО с нестандартным протоколом через интерфейсы RS-422/485 или RS-232. Для организации высокоскоростного обмена данных между ЦП нескольких контроллеров, или между контроллером и удаленными станциями ввода/вывода, предлагается резервированная оптоволоконная сеть MELSECNET/10/H, имеющая вид кольца.

    При использовании этой сети скорость передачи данных составляет до 25 Мбит/с, а удаление до 30 км.

    Конструктивно контроллер состоит из источника питания, одного или нескольких центральных процессоров (ЦП) и модулей ввода-вывода, которые устанавливаются в базовое шасси.

    Базовое шасси оснащено внутренней высокоскоростной шиной для обмена данными между отдельными модулями и ЦП.

    При необходимости увеличения каналов ввода-вывода, к внутренней шине базового шасси подключается до семи шасси расширения, при этом их максимальное удаление от базового шасси составляет 13,2 м.

    К основным особенностям ПЛК System Q относятся:

    – быстродействие до 34 нс/лог. операцию;

    – детерминированный период выполнения программного цикла 0,5…2,000 мс с дискретностью 0,5 мс;

    – объем памяти ЦП до 32 Мбайт;

    – расширение до 8192 каналов ввода-вывода;


    – широкий выбор модулей ввода-вывода аналоговых и дискретных сигналов с гальванической развязкой; преобразователей сигналов температурных датчиков; аппаратных ПИД-регуляторов; высокоскоростных счетчиков; позиционеров, коммуникационных модулей и т.д.;

    – обработка аналоговых сигналов с разрядностью до 32 бит;

    – развитые средства коммуникации и поддержка открытых полевых шин: Ethernet, CANopen, PROFIBUS/DP, DeviceNet, CC-Link, AS-Interface;

    – реализация многопроцессорного режима обработки данных;

    – трехуровневое аппаратное резервирование;

    – возможность дистанционного программирования и диагностирования через модем, Internet или Intranet;

    – самодиагностика с протоколированием сбоев в памяти ЦП;

    – возможность программирования на языках стандарта IEC 1131.3/EN 61131-3;

    – компактная конструкция (размер модулей ввода/вывода 27х98х90 мм);

    – наличие встраиваемого промышленного ПК (Celeron 400 МГц, 128 Мбайт) с портами USB, 2xPCMCIA, Ethernet, VGA, PS/2. Функциональное назначение модуля – выполнение приложений ПК и ПЛК (обработка данных, управление, удаленная диагностика, визуализация, ведение баз данных, WEB-Server). Языки программирования С++, Visual Basic.

    Лекция 6

    План лекции:

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

    1. FBD Functional Block Diagram — Функциональные Блочные Диаграммы.
    1. LD Ladder Diagram — Релейные Схемы.
    2. ST Structured Text — Структурный Текст.
    3. IL Instruction List — Список Инструкций.
    4. SFC Sequential Function Chart — Последовательные Функциональные Схемы.

    От применения стандарта выигрывают и пользователи, и создатели программируемых контроллеров. Пользователи теперь смогут определить характеристики ПЛК, построенных на базе стандарта, используя универсальные термины.
    Универсальные наборы языковых стандартов означают, что для обучения всех желающих писать программы для ПЛК может быть использована одна обучающая программа.
    В IEC 61131-3 детально описываются механизмы инкапсуляции данных и операций. Например, если пользователь хочет снова и снова применять одну и ту же последовательность функций управления, он может выделить ее в функциональный блок, поместить этот блок в «библиотеку», а затем установить копии этого блока столько раз, сколько потребуется для управляющих программ.
    Внутри стандарта языки разделяются на цикличные языки — FBD, LD, ST, IL (ПЛК работает по циклу (рисунок 3.3), программа исполняется каждый раз полностью) и последовательные — SFC (программа выполняется по-следовательно).

    Стандартные операторы IEC языков:

    Работа с данными
    Присвоение
    Аналоговое отрицание
    Булевские операции
    Логическое И (AND)
    Логическое ИЛИ (OR)
    Логическое исключающее ИЛИ (OR)
    Арифметические операции
    Сложение
    Вычитание
    Умножение
    Деление
    Логические операции
    Аналоговое побитовое И (AND)
    Аналоговое побитовое ИЛИ (OR)
    Аналоговое побитовое исключающее ИЛИ (OR)
    Аналоговое побитовое отрицание
    Сравнения
    Меньше чем
    Меньше или равно
    Больше чем
    Больше или равно
    Равно
    Неравно
    Превращение данных
    Превратить в Boolean
    Превратить в Integer Analog
    Превратить в Real Analog
    Превратить в Timer
    Превратить в Message
    Другие
    Соединение строк
    Доступ к системе
    Работа с каналами В/В

    Язык программирования Instruction List (IL)
    Список инструкций или IL — это ассемблер, язык низкого уровня. Инструкции всегда относятся к текущему результату (или IL регистру). Опера-тор определяет операцию, которая должна быть выполнена с текущим ре-зультатом и операндом. Результат операции снова запоминается в текущем результате.
    IL программа — это список инструкций. Каждая инструкция должна начинаться с новой строки и должна содержать оператор, с дополнительным модификаторами, если нужно, для специфических операций, один или несколько операндов, разделенных запятой «,». Инструкции может предшествовать метка с двоеточием «:». Если к инструкции присоединен комментарий, то он должен находиться в конце строки. Между инструкциями может быть введена пустая строка. Комментарии могут быть помещены в пустые строки.
    Ниже приведен пример общей структуры строки инструкции IL:

    N — булевское отрицание операнда;
    ( — задержанная операция;
    С — условная операция.

    Модификатор «N» определяет булевское отрицание операнда. Например, инструкция ORN X_1 интерпретируется как элемент ИЛИ-НЕ (функция Пирса).
    Модификатор скобка «(» указывает на то, что выполнение инструкции должно быть задержано до тех пор, пока не встретится закрытая скобка оператор «)».
    Модификатор «C» указывает на то, что соответствующая инструкция должна быть выполнена, только если текущий результат имеет значение TRUE (отличное от нуля).
    Модификатор «C», может комбинироваться с модификатором «N», который указывает на то, что инструкция должна быть выполнена, только если текущий результат имеет значение FALSE (0).Все существующие стандартные операторы языка IL представлены в следующей таблице 6.1.

    Стандартные языки программирования ПЛК

    Архитектура программируемого логического контроллера. Автоматизация технологических процессов. Закрытая структура контроллера. Требования к языкам программирования для ПЛК. Языки пакета CoDeSys: LD, FBD, IL, ST, SFC. Их принципы, достоинства и недостатки.

    Рубрика Программирование, компьютеры и кибернетика
    Вид контрольная работа
    Язык русский
    Дата добавления 10.03.2013
    Размер файла 20,0 K

    Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

    Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

    Размещено на http://www.allbest.ru/

    Размещено на http://www.allbest.ru/

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

    ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

    «КАМСКАЯ ГОСУДАРСТВЕННАЯ ИНЖЕНЕРНО-ЭКОНОМИЧЕСКАЯ АКАДЕМИЯ»

    По дисциплине «Интегрированные системы проектирования и управления»

    На тему «Стандартные языки программирования ПЛК»

    Набережные Челны, 2012

    1. Архитектура ПЛК

    2. Требования к языкам программирования для ПЛК

    3. Выбор комплекса и языка

    4. Языки пакета CoDeSys для ПЛК

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

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

    1. Архитектура ПЛК

    Как правило, многие контроллеры имеют закрытую структуру, т.е. программируются софтом от производителя ПЛК. Так, например, ПЛК Сименс программируются только с помощью Step7, Step7 Microwin или Logo Comfort, а ПЛК Шнейдер программируются только с помощью Unity или Concept.

    Закрытую структуру ПЛК имеют контроллеры Мицубиши, Омрон, ABB, GE Fanuc и многие другие. Практически все приличные фирмы создают закрытые протоколы и системы с платной средой разработки.

    Несмотря на это существуют программируемые логические контроллеры с открытыми или полуоткрытыми платформами, на них предустановленны такие ОС, как WindowsCE, VxWorks, Linux, либо они основываются на процессорах фирм Моторола, Интел, Инфинеон, Атмел, Хитачи, PowerPC и др. Такие ПЛК могут программироваться различным ПО, например, CoDeSys. Пример: ПЛК — Овен ПЛК или ADAM.

    Несмотря на разнообразие программного обеспечения и реализаций ПЛК, языки программирования ограничены стандартом МЭК 61131-3. Это сделано не из праздной необходимости все унифицировать, а более с целью сохранить некоторые стандартные подходы к программированию контроллеров.

    Наиболее выделяются пять видов языков программирования:

    — LD (LAD, ladder diagram, по-немецки: KOP, kontakt plan, по-русски: РКС, релейно-контакторная схема, контактный план, лестничная диаграмма) 45.50%

    — FBD (functional block diagram, диаграмма функциональных блоков) 24.64%

    — IL (instruction list, STL, statement list, язык инструкций; очень похож на ассемблер, но очень своеобразен) 8.53%

    — SFC (series functional charts, последовательные функциональные диаграммы, язык графов) 0.47%

    В процентах указаны результаты голосования, проведенного на инженерном проекте (участие приняло более 200 человек). Которые показывают предпочтения практически половины аудитории к РКС(LAD,LD), что он заслужил своей наглядностью и легким созданием понятных широкой аудитории алгоритмов. Но все же он не занял абсолютное большинство, что означает необходимость рассмотрения производителями программируемых логических контроллеров поддержки и других языков.

    Наименьшее количество голосов получил SFC, широкое применение которого существует на начальной станции проектирование (на бумаге), наверно многие специалисты вспомнят простыни алгоритмов «математики» различных установок. Редкое настоящее его использование вызвано развитием FBD, где можно использовать уже готовый блок либо создать свой, а не расписывать алгоритм отдельной функции в общем коде.

    Кроме того чуть более 10% выбрали вариант «другой», что говорит о новых решениях, ждущих нас в будущем. Молодые посетители форума инженеров связывают их с растущей армией программистов на С++ и Java, но бывалые специалисты в автоматизации скептически относятся к этому в ближайшей перспективе.

    2. Требования к языкам программирования для ПЛК

    Наглядное описание автоматизируемых технологических процессов (ТП) и дальнейшая отладка в терминах исходного описания; мобильность — способность к переносу на различные аппаратные и операционные платформы; эффективное исполнение программы в реальном времени (РВ).

    Наглядность описания определяется характером объекта и следующими задачами по управлению объектом.

    Задачи параллельной обработки большого числа логических контуров (сотен и тысяч) с обработкой исполнительных действий при наступлении тех или иных событий. В основе логического контура лежит проверка истинности логической функции от нескольких переменных, а событие равнозначно истинности этой функции. Задачи такого рода характерны, например, для таких технологических объектов, как электростанции, химические производства и производства по переработке нефти. Задача адекватно и наглядно описывается системой булевых уравнений. Все языки стандарта, за исключением SFC, хорошо подходят для описания подобных задач, поскольку они или содержат в себе средство представления булевых функций (языки IL, ST), или являются графической формой их отображения (языки LD, FBD).

    Задачи управления процессом, проходящим в своем развитии через ряд состояний (шагов, стадий). Переход от одного состояния к другому происходит по событиям, формируемым по сигналам датчиков процесса. Такие задачи управления возникают, например, при управлении транспортно-складскими системами, агрегатными станками, робототехническими комплексами, характерны они и для объектов, перечисленных в п. 1, в частности, при пуске и останове турбины и др. Задачи данного типа наиболее наглядно представляются автоматными моделями. В стандарте такая модель строится с использованием языка SFC (разметка состоянии, логика управления) и любого другого языка (описание действии, связанных с состоянием, и событий, предписывающих смену состояний). Заметим, что подобные задачи могут быть полностью представлены с помощью других языков стандарта, например языка FBD с использованием элементов памяти — триггеров, но в этом случае автоматная модель будет выражена неявно.

    Задачи автоматического регулирования (ПИД-законы, нечеткое управление и т. д.) встречаются практически везде. Здесь, как правило, используются библиотеки заранее разработанных компонентов — графических блоков для языков LD и FBD и подпрограмм для языков ST и PL.

    Задачи управления распределенными технологическими объектами, оптимизационные, а также задачи, связанные с интеллектуальным анализом данных. Задачи такого типа решаются в сложных технологических объектах типа химических производств. Здесь в качестве средств адекватного описания могут использоваться языки ST, универсальные типа С, С++, Паскаль, сценарные типа Visual Basic, объектно-ориентированные типа Java.

    Мобильность языков, т. е. способность к переносу на различные аппаратные и операционные платформы, может поддерживаться для языков стандарта в случае использования пакета от одного разработчика. Это связано с невозможностью сосуществования в одной разработке программ на одинаковых языках от разных поставщиков, так как требования стандарта IЕС 61131-3 носят рекомендательный характер, а значит, приводят к различиям в реализации языков у разных производителей.

    Эффективное исполнение в РВ дает ответ, насколько быстро сможет отреагировать система управления (ПЛК) на происшедшее событие. Обычно используется понятие «временной цикл», т. е. заранее задаваемый интервал времени, например, в диапазоне 10. 300 мс, в течение которого ПЛК сможет гарантированно отреагировать на входное воздействие. Для обеспечения более быстрой реакции служат так называемые инициативные сигналы, которые обрабатываются по прерыванию (от десятков до сотен микросекунд).

    Для широкого круга приложений задача обеспечения требуемого временного цикла решается достаточно легко благодаря высокому быстродействию процессоров, используемых в ПЛК. Haпример, в контроллерах Modicon применяются процессоры компании Intel от Intel 286 до Pentium. Тем не менее, здесь есть одна проблема: неэффективное использование процессора при управлении объектами, в которых осуществляется в основном обработка логической информации, при которой используется только один разряд из 32. Если найти решение этой проблемы, то, по крайней мере, можно будет понизить класс применяемого процессора, что выгодно по экономическим соображениям.

    Согласно требованиям стандарта, не предопределенные объекты должны иметь имя и тип, объявленные программистом, предопределенные объекты распределяются на три зоны: зону памяти (%М), зону входов (%1) и зону выходов (%Q). Объектами могут быть: биты (X), байты (В), слова (W), двойные слова (D), «длинные» слова (L) — 64 бита

    Ограничения стандарта: не фиксируется имя задач; размер графического редактора оставляется на выбор пользователя; нет минимального количества функций, готовых к реализации, но если используется имя по стандарту (функциональный блок и т. п.), то оно должно соответствовать стандарту; сервисные утилиты и средства разработки и отладки приложения (редакторы, языки, документирование и т.п.) не определены; нет точных правил выполнения программы (например, для функциональных блоков); не описана конвертируемость языков. Сертификат IЕС 61131-3 на сегодня не существует, нет определенного «класса соответствия». Каждый разработчик, объявивший свое соответствие норме, должен представить документацию таблиц соответствия, а также список дополнительных расширений.

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

    Следование стандарту позволяет разработчикам ПЛК обеспечить соответствие разработки техническим требованиям, предъявляемым потребителями, и даже ввести дополнительные функции.

    3. Выбор комплекса и языка

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

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

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

    Каждый электрик должен знать:  Электрические фильтры, основные понятия и определения

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

    Наибольшей популярностью все-таки пользуется комплекс CoDeSys, который насчитывает более 150 адаптации, не противоречащих стандарту МЭК, но учитывающий фирменные особенности.

    CoDeSys (Controllers Development System) представляет проектировщику удобную среду для программирования контроллеров на языках МЭК. Используемые редакторы и отладочные средства базируются на широко известных принципах.

    4. Языки пакета CoDeSys для ПЛК

    Язык 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, ГЕ, THEN, ELSE, WHILE (и т.д.) легко понимаемы.

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

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

    SFC широко принят, как стандарт в Европе.

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

    программируемый логический контроллер

    На примере пакета CoDeSys рассмотрено пять языков, входящих в международный стандарт IEC 61131-3.

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

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

    Недостатками языка LD являются: использование «непоследовательной» булевой логики (булево уравнение = LD-звенья); слабые возможности для последовательного и текущего контроля в реальном времени; отсутствие возможности изображать структуру программы (ветви или цепи); сложность и большая вероятность ошибок; утомительный поиск неисправностей в больших цепях; близок только специалистам по электротехнике; сложен для понимания.

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

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

    Замечателен для небольших приложений, но не подходит для больших систем, так как схема нечитабельна. Как только схема на языке FBD превышает одну страницу, должны использоваться текстовые ссылки, и FBD становится менее понятным, чем ST.

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

    К недостаткам IL можно отнести то, что действия ассоциируются с невидимым аккумулятором.

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

    Однако язык ST создавался не для систем управления, а для универсального анализа данных. Поэтому он плохо подходит для определения параллельных управляющих структур или для представления управляемых прерываниями схем контроля реального времени.

    Графический язык SFC позволяет ясно и однозначно определить желаемое поведение системы управления. Отличается строгим математическим определением (каждое операционное состояние может быть декодировано с очень небольшим анализом). Удобен для описания, как последовательных процессов, так и пакетных или параллельных процессов, легко комбинируется с другими языками (язык спецификаций). Обеспечивает улучшение понимания оборудования при формировании модели приложения, обладает развитыми механизмами синхронизации, использует простые динамические правила.

    Диагностика языка SFC позволяет обнаружить ошибки проекта до того, как приложение тестируется в режиме Online.

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

    Язык SFC принят как стандарт в Европе. Однако написание логики программы требует большого искусства, поэтому чаще всего используется в паре с другими языками.

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

    Преимущества применения стандарта для разработчиков ПЛК состоят в том, что их разработки соответствуют техническим требованиям, предъявляемым потребителями, а также предоставляют дополнительные функции ПЛК по сравнению с мелкими разработчиками ПО.

    1. «Программируемые логические контроллеры» / И.Г. Минаев, В.В. Самойленко — Ставрополь «Аргус», 2009

    2. «Языки программирования промышленных контроллеров» / Деменков Н.П — МГТУ им. Н.Э. Баумана, 2004

    3. Интернет источники www.ingener.info

    Размещено на Allbest.ru

    Подобные документы

    Основные сведения о языках программирования и их состав. Программа для компьютера. Использование компилятора и операторы. Языки программирования высокого уровня. Концепции объектно-ориентированного программирования. Языки искусственного интеллекта.

    презентация [6,3 M], добавлен 14.08.2013

    Машинные коды и ассемблер. Первые языки программирования высокого уровня. Язык программирования FORTRAN. Достоинства и недостатки ALGOL. Научные и бухгалтерские программы. Основные принципы, которые соблюдались при создании языка программирования Basic.

    курсовая работа [407,4 K], добавлен 21.06.2014

    Что такое язык программирования. Для чего нужны языки программирования. Какие существуют языки программирования. Фортран. Алгол. Кобол. Лисп. Бейсик. Форт. Паскаль. Ада. Си. Пролог. Что такое компилятор и интерпретатор.

    реферат [20,2 K], добавлен 27.05.2007

    Особенности работы с последовательным портом в среде Visual Studio. Тестирование работы протокола Modbus RTU в режиме Slave. Описание и технические характеристики программируемого логического контроллера Овен 100. Построение диаграммы передачи фреймов.

    отчет по практике [2,1 M], добавлен 19.07.2015

    Семантика языков программирования. Процедурные и объектно-ориентированные языки программирования. Стандартная библиотека шаблонов. Независимость байт-кода от операционной системы и оборудования и возможность выполнения Java-приложения на любом устройстве.

    реферат [50,5 K], добавлен 24.11.2009

    Разработка программного обеспечения для работы с установкой «АСР уровня жидкости с применением ПЛК ОВЕН 150» и лабораторного практикума по изучению промышленного программируемого контроллера с использованием ПК и среды программирования Codesys 2.3.

    дипломная работа [4,6 M], добавлен 30.06.2012

    История развития информационных технологий. Появление Интернета, браузеры. Основы web-программирования: классификация сайтов, языки программирования. Создание сайта для кафедры высшего учебного заведения: технология создания и руководство пользователя.

    дипломная работа [471,5 K], добавлен 23.04.2015

    Основные этапы разработки программного обеспечения (пакета программ), анализ требований к системе. Метод пошаговой детализации. Языки программирования низкого уровня и высокого уровня (императивные, объектно-ориентированные, функциональные, логические).

    презентация [41,4 K], добавлен 13.10.2013

    Эволюция языков программирования от низкого уровня до современности. Языки программирования второго поколения — ассемблер. Императивные, функциональные, логические и объектно-ориентированные языки. Машинная независимость. Парадигмы программирования.

    презентация [353,5 K], добавлен 14.10.2013

    История развития и классификация высокоуровневых языков логического программирования. Определение понятий графического интерфейса, сетевых протоколов и моделей баз данных. Современные системы программирования компании Borland/Inprise и фирмы Microsoft.

    курсовая работа [72,3 K], добавлен 11.07.2011

    Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
    PPT, PPTX и PDF-файлы представлены только в архивах.
    Рекомендуем скачать работу.

    Программирование логических контроллеров на языке функциональных логических блоков

    Помимо языка программирования РКС для ПЛК существует и другой язык программирования, например, язык FBD (Function Block Diagram) — графический язык программирования стандарта IEC61131-3, который широко используется для программирования промышленных логических контроллеров. Программирование на языке FBD представляет собой размещение на рабочем поле программы набора различных библиотечных блоков, так называемых алгоблоков, и установление связи между ними. Каждый алгоблок имеет настройки, которые могут редактироваться для придания ему тех или иных свойств.

    Рассмотрим язык программирования FBD на примере программно-технического комплекса (ПТК) KONTAR для автоматизации и диспетчеризации территориально распределенных объектов, выпускаемого Московским заводом тепловой автоматики (МЗТА). Комплекс состоит из трех микроконтроллеров: МС8, МС5 и релейного модуля MR8 фирмы Silicon Laboratories, которые объединяются в локальную сеть по интерфейсному каналу RS485. В этом случае контроллер МС8 является ведущим (Master), а остальные — ведомыми (Slaves). К контроллеру МС8 по интерфейсу RS-232C подключен модуль расширения МЕ4. Соединенные таким образом устройства (МС8 и МЕ4) представляют собой «расширенный» контроллер. Связь локальной сети с верхним уровнем управления осуществляется через Master- контроллер но каналу Ethernet (дословно но каналу «эфирной сети»), У всех этих микроконтроллеров одна система команд однокристального микроконтроллера семейства INTEL i8051, что дает возможность разрабатывать алгоритм функционирования любого из этих модулей в одной инструментальной системе — в пакете программирования KONGRAF. Свободно программируемые контроллеры делают легким решение многих задач автоматизации: от мониторинга нескольких технологических параметров до комплексной автоматизации зданий и групп сооружений.

    Имеются исполнения контроллеров с симисторными и транзисторными выходными ключами. Контроллеры, имеющие симисторные выходные ключи, могут непосредственно управлять исполнительными механизмами клапанов, заслонок, магнитными пускателями и т.д. Контроллеры с транзисторными выходными ключами обычно устанавливаются в комплекте с релейными модулями MR8, которые выполняют функции усиления мощности и расширения дискретных входов. Входное напряжение переменное, 220 и 24 В. У контроллера МС8 имеется восемь универсальных аналоговых входов (AI) плюс четыре дискретных гальванически изолированных входа (DI), восемь дискретных выходов (DO) и два аналоговых выхода (АО). К дискретным выходам может быть подключена нагрузка с напряжением 48 В при потребляемом постоянном токе не выше 0,5 A/выход. Возможные диапазоны измерения сигналов аналоговыми выходами: от 0 до 20 мА постоянного тока на нагрузку не более 0,5 кОм; от 0 до 5 мА постоянного тока на нагрузку не более 2 кОм. В последнем случае напряжение на нагрузке изменяется от 0 до 10 В постоянного тока.

    Программирование контроллера, т.е. создание, редактирование, отладка и компиляция программ, производится при помощи персонального компьютера с использованием пакета программирования KONGRAF в операционной системе Windows. Пакет программирования KONGRAF позволяет в наглядной графической форме запрограммировать желаемый алгоритм на основе предлагаемой библиотеки алгоритмов, в которой содержатся не только отдельные функциональные узлы, но и готовые проекты управления типовыми объектами.

    Разработанный функциональный алгоритм (ФА) или выбранный готовый проект транслируется в исполняемый код в виде bin-файлов (например, на web-сервере изготовителя, доступном через сеть Internet). Загрузка ФА может происходить по интерфейс^5-232С посредством подключения программируемого контроллера к компьютеру или по сети Ethernet.

    Рассмотрим проектирование программы в пакете KONGRAF для логической релейной защиты, приведенной на рис. 4.8. Начинаем с создания главного блока проекта, где в открывшемся окне (рис. 4.34) задаем Имя проекта и выбираем тип протокола. Далее на рабочее поле главного блока проекта помещаем те модули ПТК KONTAR, которые будут задействованы в проекте: это модули МС8 и МЕ20 (рис. 4.35). Они выбираются в меню — Библиотека функций —> Приборные блоки —> Контроллеры и перемещаются мышкой в окно главного блока проекта, в результате чего всплывают окна Создать новый прибор, где в поле Имя прибора задаем имена Реле защ. и Вход КА5, а в поле Тип — Контроллер МС8 и Модуль МЕ20. Модуль МЕ20 необходим для расширения дискретных входов контроллера МС8, который имеет четыре дискретных входа, а по схеме их требуется пять. Для настройки свойств блока 1.МС8 необходимо нажать правой кнопкой мыши на изображение этого блока и в открывшемся контекстном меню выбрать команду Свойства (см. рис. 4.35). При этом откроется диалоговое окно свойств этого блока, где задаются комментарий, заголовок, тин прибора или функции и сетевой номер (рис. 4.36). Во вкладке Блок, в поле Тип прибора/функции оставляем Контроллер МС8 и выбираем Тип MASTER, что значит «главный» (рис. 4.36). Для удобства работы можно изменять размеры рабочего поля для размещения алгоблоков, выбрав в главном меню команду Вид —> Рабочая область, и затем в открывшемся окне установить высоту и ширину поля.

    Рис. 4.34. Создание проекта в пакете KONGRAF

    Рис. 4.35. Библиотека функций и окно главного блока проекта

    Рис. 4.36. Свойства вкладки Блок окна Свойства ФБ Контроллер МС8

    Во вкладке Входы/Выходы окна Свойства ФБ Контроллер МС8

    устанавливается необходимое количество входов и выходов в поле Количество (рис. 4.37): для аналоговых входов AI — 0; для аналоговых выходов АО — 0; для дискретных входов DI — 5; для дискретных выходов DO — 3.

    Приборный список создается на вкладке Списки нажатием кнопки «+», где соответствующие данные вводятся в поля Имя и Комментарий. Настройка свойства блока ME20-Slave происходит аналогично. После настройки свойств контроллеров МС8 и МЕ20 их вид в окне главного блока проекта показан на рис. 4.38.

    Рис. 437. Свойства вкладки Входы/Выходы окна Свойства ФБ

    Рис. 438. Главный блок проекта после настройки

    Затем, дважды щелкнув левой кнопкой мыши, следует открыть алгоритмический блок контроллера МС8 и «наполнить» его, т.е. создать алгоритм работы релейной защиты, перетаскивая из окна Библиотека в активное окно алгоритмического блока необходимые алгоблоки.

    На рис. 4.39 приведены фрагменты начала создания алгоритма работы для логической релейной защиты, представленной на рис. 4.8. Параллельное подключение замыкающих контактов реле КА1, КА2 и К АЗ реализовано логическим элементом ИЛИ, взятым из библиотеки функций: Логические функции Основные функции —> ИЛИ —> Логическое ИЛИ.

    Рис. 439. Фрагмент начала создания алгоритма работы на языке FBD для логической релейной защиты

    Далее нажатием правой кнопки мыши на изображение функционального блока ИЛИ следует выбрать в контекстном меню команду Свойства. При этом откроется диалоговое окно свойств этого блока.

    На вкладке Параметры (рис. 4.40) установить:

    для Q[ 1] — Имя КАР, Список Сигнал Q[ 1]; Список симулятора — поставить галочку и задать имя КА1, чтобы добавить параметр для симуляции; Значение TRUE (истина);

    для Q[2] — Имя КА2; Список Сигнал Q[2]; Список симулятора

    поставить галочку и задать имя КА2; Значение FALSE (ложь);

    для Q[3] — Имя КАЗ Список Сигнал Q[3]; Список симулятора поставить галочку и задать имя КАЗ Значение FALSE (ложь).

    Аналогично заполняются и другие функциональные блоки.

    На рис. 4.41 показан алгоритмический блок контроллера МС8, где приведен полный функциональный алгоритм логической релейной защиты на языке FBD.

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

    Рис. 4.40. Свойства функционального блока Логическое ИЛИ,

    Рис. 4.41. Полный функциональный алгоритм логической релейной защиты

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

    Желательно после создания каждой логически завершенной части алгоритма системы управления функционального блока провести симуляцию этой части алгоритма. Симуляция проводится с целью определения неточностей в проекте и оперативного их исправления до трансляции и загрузки исполняемого кода в модули ПТК KONTAR.

    Для поиска необходимого параметра (которые ранее были включены в какие-либо списки) можно воспользоваться вкладкой Списки в окне Свойства ФБ Контроллер МС8. В список симулятора можно также включить параметры, которые не включены ни в один список.

    Для просмотра всех параметров активного функционального блока (приборного или главного блоков), добавленных в список симулятора, вызывается окно симулятора: Проект —> Симулятор или нажатием кнопки ^ на панели инструментов. Параметры помечаются специальными маркерами. Красная стрелка вправо означает, что параметр является входным (его значение может быть изменено), синяя стрелка влево — выходным.

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

    Для создания новой диаграммы нажимают кнопку g| на панели инструментов. Окно диаграмм можно разбить также на страницы, на которых можно создать дополнительные диаграммы. Всего можно создать пять страниц и на каждой — не более пяти диаграмм. Для создания новой страницы нажимают кнопку Jy)J на панели инструментов.

    На рис. 4.42 показано состояние схемы логической защиты при однофазном КЗ в точке К1 трансформатора Т1, когда сработало реле КА1 и не сработали реле КА4 и КА5. Состояние реле для симуляции было задано ранее. В этом случае промежуточное реле KL, дающее сигнал на отключение выключателя Q1, сработало без выдержки времени (таймер не начал отсчитывать время) и отключило выключатель Q1. Срабатывание защиты при КЗ в трансформаторе запоминается указательным реле КН1 (реализовано RS-триггером). Для съема сигнала защиты служит ФБ Задание логического значения.

    На рис. 4.43 показано состояние схемы логической защиты при двухфазном КЗ в точке К2, когда сработали реле КА1, КА2 и КА4 и не сработала основная защита выключателя Q2. В этом случае промежуточное реле KL не срабатывает, и таймер КТ начинает отсчитывать время, равное 0,5 с. После отсчета заданного времени КТ подает сигнал на включение реле KL, которое отключает выключатель Q1, при этом срабатывает сигнального реле КН2. Защита выключателя Q1 в этом случае является резервной для защиты от замыканий за трансформатором в точке К2. Съем сигнала защиты производится ФБ Задание логического значения.

    Рис. 4.42. Окно симуляции логической релейной защиты Рис. 4.43. Окно симуляции релейной защиты с указательными с указательными реле. Отключение без выдержки времени реле. Отключение с выдержкой времени выключателем Q1 однофазного КЗ в трансформаторе Т1 двухфазного КЗ в точке К2

    Сравнивая программирование на языке релейно-контактных схем (РКС) и на языке функциональных логических блоков (FBD), можно отметить, что в последнем случае программа получается более наглядной. Однако это справедливо лишь при небольшом количестве блоков и входных сигналов. Если же их число велико, то более наглядной становится программа на языке РКС. Какую среду программирования ПЛК выбрать, должен решать сам читатель.

    Программируемые логические контроллеры

    И. Г. Минаев, В. В. Самойленко
    Программируемые логические контроллеры. Практическое руководство для начинающего инженера
    Год: 2009
    Издательство: АРГУС
    ISBN: 978-5-9596-0609-1

    Изложены общие сведения по применению программируемых логических контроллеров (ПЛК) в системах управления технологическими процессами, описываемых с позиций событийно-управляемой логики. Все примеры рассмотрены в комплексе CoDeSys на языке LD.

    Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования . Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2015. — 256 е.: ил. — (Серия «Библиотека инженера») ISBN 978-5-91359-151-7

    Описана практика применения промышленных программируемых контроллеров, широко применяющихся для автоматизации производства. Излагаются языки программирования на основе действующего стандарта МЭК 61131-3 и многочисленные примеры подготовки программ для промышленных программируемых контроллеров. Для специалистов по автоматизации производственных процессов и производственного оборудования, а также для студентов и преподавателей высших технических заведений.

    Белов М.П. Технические средства автоматизации и управления.

    Основные языки программирования контроллеров PLC

    язык программирование контроллер блок

    Язык LD (LAD, Ladder) является графическим языком разработки, программа на котором представляет собой аналог релейной схемы. Пример программы на данном языке приведен на рис. 1. По идеи авторов стандарта, такая форма представления программы облегчит переход инженеров из области релейной автоматики на ПЛК.

    К недостаткам данного языка можно отнести то, что по мере увеличения количества «реле» в схеме она становится сложнее для интерпретации, анализа и откладки. Еще один недостаток языка LD заключается в следующем: язык, построенный по аналогии с релейными схемами, может быть эффективно использован только для описания процессов, имеющих дискретный (двоичный) характер; для обработки «непрерывных» процессов (с множеством аналоговых переменных) такой подход теряет смысл.

    Рисунок 1. Язык релейных диаграмм LD.

    Язык FBD

    Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования, так же, как и LD, использующий аналогию с электрической (электронной) схемой. Программа на языке FBD представляет собой совокупность функциональных блоков (functional flocks, FBs), входа и выхода которых соединены линиями связи (connections). Эти связи, соединяющие выхода одних блоков с входами других, являются по сути дела переменными программы и служат для пересылки данных между блоками. Каждый блок представляет собой математическую операцию (сложение, умножение, триггер, логическое “или” и т.д.) и может иметь, в общем случае, произвольное количество входов и выходов. Начальные значения переменных задаются с помощью специальных блоков — входов или констант, выходные цепи могут быть связаны либо с физическими выходами контроллера, либо с глобальными переменными программы. Пример фрагмента программы на языке FBD приведен на рис. 2.

    Практика показывает, что FBD является наиболее распространенным языком стандарта IEC. Графическая форма представления алгоритма, простота в использовании, повторное использование функциональных диаграмм и библиотеки функциональных блоков делают язык FBD незаменимым при разработке программного обеспечения ПЛК. Вместе с тем, нельзя не заметить и некоторые недостатки FBD. Хотя FBD обеспечивает легкое представление функций обработки как «непрерывных» сигналов, в частности, функций регулирования, так и логических функций, в нем неудобным и неочевидным образом реализуются те участки программы, которые было бы удобно представить в виде конечного автомата.

    Рисунок 2. Функциональная схема FBD.

    Energy
    education

    сайт для тех, кто хочет изучать энергетику

    Метрология и автоматизация

    Программируемый логический контроллер

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

    10. Системы программирования ПЛК на языках МЭК 61131-3

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

    • автоматизация управления технологическими процессами (АСУ ТП);
    • взаимодействие системы с диспетчером (оператором);
    • автоматизированный контроль и измерения (мониторинг);
    • обеспечение безопасности;
    • дистанционное управление, измерение, сигнализация (задачи телемеханики).

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

    • OPC сервер;
    • средства МЭК-программирования контроллеров;
    • SCADA-пакеты.

    Для систем автоматизации, не связанных с АСУ ТП, используются программы LabVIEW, MatLab, HP-VEE и др., ориентированные на автоматизацию эксперимента, измерений или математическую обработку их результатов. Для простых задач или широко тиражируемых приложений бывает экономически эффективно использовать заказное программирование на С++ или Visual Basic с применением покупных ActiveX элементов, снижающих трудоемкость разработки.

    Стандарт МЭК 61131-3 устанавливает пять языков программирования ПЛК, три графических и два текстовых. Первоначально стандарт назывался IEC 1131-3 и был опубликован в 1993 г. но в 1997 г. МЭК (IEC) перешел на новую систему обозначений и в названии стандарта добавилась цифра «6». Продвижением стандарта занимается организация PLCopen (http://www.plcopen.org).

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

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

    • структурированный текст (ST – Structured Text);
    • последовательные функциональные схемы (SFC – «Sequential Function Chart»);
    • диаграммы функциональных блоков (FBD – Function Block Diagram);
    • релейно-контактные схемы, или релейные диаграммы (LD – Ladder Diagram);
    • список инструкций (IL – Instruction List).

    Графическими языками являются SFC, FBD, LD. Языки IL и ST являются текстовыми.

    В стандарт были введены несколько языков (а не один) для того, чтобы каждый пользователь мог применить наиболее понятный ему язык. Программисты чаще выбирают язык IL (похожий на ассемблер) или ST, похожий на язык высокого уровня Паскаль; специалисты, имеющие опыт работы с релейной логикой, выбирают язык LD, специалисты по системам автоматического управления (САУ) и схемотехники выбирают привычный для них язык FBD.

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

    Языки МЭК 61131-3 базируются на следующих принципах:

    • вся программа разбивается на множество функциональных элементов – Program Organization Units (POU), каждый из которых может состоять из функций, функциональных блоков и программ. Любой элемент МЭК-программы может быть сконструирован иерархически из более простых элементов;
    • стандарт требует строгой типизации данных. Указание типов данных позволяет легко обнаруживать большинство ошибок в программе до ее исполнения;
    • имеются средства для исполнения разных фрагментов программы в разное время, с разной скоростью, а также параллельно. Например, один фрагмент программы может сканировать концевой датчик с частотой 100 раз в секунду, в то время как второй фрагмент будет сканировать датчик температуры с частотой один раз в 10 сек;
    • для выполнение операций в определенной последовательности, которая задается моментами времени или событиями, используется специальный язык последовательных функциональных схем (SFC);
    • стандарт поддерживает структуры для описания разнородных данных. Например, температуру подшипников насоса, давление и состояние «включено-выключено» можно описать с помощью единой структуры «Pump» и передавать ее внутри программы как единый элемент данных;
    • стандарт обеспечивает совместное использование всех пяти языков, поэтому для каждого фрагмента задачи может быть выбран любой, наиболее удобный, язык;
    • программа, написанная для одного контроллера, может быть перенесена на любой контроллер, совместимый со стандартом МЭК 61131-3.

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

    Язык релейно-контактных схем, LD

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

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

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

    Несмотря на указанные недостатки, язык LD относится к наиболее распространенным в мире, хотя используется для программирования только простых задач.

    Список инструкций, IL

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

    В основе языка лежит понятие аккумулятора и переходов по меткам. Пример программы на зыке IL с комментариями приведен в листинге 4. Начинается программа с загрузки в аккумулятор значения переменной. Дальнейшие шаги программы состоят в извлечении содержимого аккумулятора и выполнении над ним ограниченного числа допустимых действий (их в языке всего 24).

    Структурированный текст, ST

    Язык ST является текстовым языком высокого уровня и очень сильно напоминает Паскаль:

    Язык ST имеет много отличий от языка Паскаль и разработан специально для программирования ПЛК. Он содержит множество конструкций для присвоения значений переменным, для вызова функций и функциональных блоков, для написания выражений условных переходов, выбора операторов, для построения итерационных процессов. Этот язык предназначен в основном для выполнения сложных математических вычислений, описания сложных функций, функциональных блоков и программ.

    Диаграммы функциональных блоков, FBD

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

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

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

    Типичным применением языка FBD является описание «жесткой логики» и замкнутых контуров систем управления. Язык функциональных блоков является удобным также для создания и пополнения библиотеки типовых функциональных блоков, которую можно многократно использовать при программирования задач промышленной автоматизации. К типовым блокам относятся блок таймера, ПИД-регулятора, блок секвенсора, триггера, генератора импульсов, фильтра, и т. п.

    Функциональные блоки стандартов МЭК 61499 и МЭК 61804

    Функциональные блоки являются не просто частью языка FBD, они применяются также для моделирования и проектирования систем автоматизации. Функциональные блоки могут быть использованы также для поддержания всего жизненного цикла системы, включая проектирование, изготовление, функционирование, валидацию и обслуживание. Описанию и применению функциональных блоков посвящены, помимо МЭК 61131-3, еще и стандарты МЭК 61499 и МЭК 61804.

    Стандарт МЭК 61499, состоящий из четырех частей, был опубликован в 2005 г. Он устанавливает обобщенную архитектуру функциональных блоков и предоставляет руководство для их применения в распределенных системах промышленной автоматизации. В таких системах программное обеспечение распределено между несколькими физическими устройствами (ПЛК) и несколькими функциональными блоками, а промышленная сеть рассматривается как составная часть системы.

    Особенностью функциональных блоках в МЭК 61499 является возможность управления событиями и большая степень обобщения функциональных блоков. Стандарт МЭК 61499 может использоваться совместно с МЭК 61131-3 как средство описания базовых типов функциональных блоков для программирования ПЛК, а внутренне описание ФБ выполняется с помощью языков МЭК 61131-3.

    Одной из существенных особенностей МЭК 61499 является ориентация на системы, в которых функциональные блоки управляются событиями, в то время как традиционные системы автоматизации строятся обычно на базе тактирования или управления по временному расписанию. Событийное управление использовано потому, что в распределенных системах оно является более общим. Любая система с тактированием может быть представлена в виде системы с событийным управлением, но обратное не всегда верно

    Архитектура функциональных блоков представляется с помощью текстового описания и графически. Функциональный блок характеризуется именем типа и именем экземпляра блока. Например, именем типа может быть «PID», а имен экземпляров может быть много: «PID1, PID 2, PID3, . «, по количеству ФБ, использованных в конкретной системе.

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

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

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

    Третьим стандартом, развивающим представление о функциональных блоках, является МЭК 61804. Он содержит спецификацию (детализацию) требований к распределенным системам управления, построенным на основе функциональных блоков. МЭК 61804 конкретизирует абстрактные определения, данные в МЭК 61499. Он добавляет в МЭК 61499 описания параметров и функций, выполняемых функциональными блоками, которые могут быть реализованы в физических устройствах.

    Стандарт определяет минимальный набор функциональных блоков, который может быть необходим для индустриальных приложений. Набор состоит из двух частей: сложные функциональные блоки (ПИД-регулятор, селектор для схем голосования, инкрементный сумматор, таймер, интегратор) и простые (вычисление тригонометрических функций, модуля, суммирования, усреднения, блоки арифметических операций, блоки Булевых функций и т. п.).

    Одним из наиболее широко применяемых спецификаций стандарта МЭК 61804 является описание языка EDDL (Electronic Device Description Language), который является дальнейшим развитием методов генерации GSD файла в сетях Profibus и разрабатывался с поддержкой организации Fieldbus Foundation.

    Описанию функциональных блоков для систем автоматизации зданий посвящен стандарт ISO 16484-3.

    Последовательные функциональные схемы, SFC

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

    Язык SFC предназначен для описания системы управления на самом верхнем уровне абстракции, например, в терминах «Старт», «Наполнение автоклава», «Выполнение этапа №1», «Выполнение этапа №2», «Выгрузка из автоклава». Язык SFC может быть использован также для программирования отдельных функциональных блоков, если алгоритм их работы естественным образом описывается с помощью понятий состояний и переходов. Например, алгоритм автоматического соединения модема с коммутируемой линией описывается состояниями «Включение», «Обнаружение тона», «Набор номер», «Идентификация сигнала» и переходами «Если длинный — то ждать 20 сек», «Если короткий — перейти в состояние «Набор Номера»» и т.д.

    Программа на языке SFC состоит из шагов и условий переходов. Шаги показываются на схеме прямоугольниками, условия переходов — жирной перечеркивающей линией. Программа выполняется сверху вниз. Начальный шаг на схеме показывается в виде двойного прямоугольника. Условия переходов записываются рядом с их обозначениями. Каждый шаг программы может представлять собой реализацию сложного алгоритма, написанного на одном из МЭК-языков.

    Программное обеспечение

    Программирование ПЛК на описанных выше языках МЭК 61131-3 осуществляется с помощью специализированного программного обеспечения, которое разрабатывается производителями ПЛК или фирмами, специализирующимися на создании ПО для систем автоматизации. Наиболее известными в мире являются системы CoDeSys фирмы 3S (www.3s-software.com) и ISaGRAF фирмы ICS Triplex (www.isagraf.com).

    CoDeSys (Controller Development System) представляет собой комплекс программ для проектирования прикладного программного обеспечения, отладки в режиме эмуляции и загрузки программы в ПЛК. Основными частями системы являются среда разработки программы и среда ее исполнения (CoDeSys SP), которая находится в ПЛК.

    В CoDeSys входят графические и текстовые редакторы для всех пяти языков МЭК 61131-3. Этот комплекс полностью реализует требования стандарта и дополнительно вводит ряд оригинальных расширений, самым удобным из которых является объектно-ориентированные программирование. Однако расширениями языка можно не пользоваться, чтобы сохранить требования к совместимости языков, предъявляемое к открытым системам.

    В одном проекте может быть использовано несколько контроллеров разных производителей. Каждый из них может программироваться как независимое устройство или с учетом их взаимодействия в промышленной сети. Проект состоит из нескольких приложений, распределенных по нескольким контроллерам. В одном ПЛК может существовать несколько независимых приложений.

    Программа, написанная на языках МЭК, компилируется системой CoDeSys в машинный код, оптимизированный для заданной аппаратной платформы. Компилятор выдает диагностические сообщения как на этапе компиляции, так и на этапе ввода операторов языка.

    Машинный код, сгенерированный компилятором CoDeSys, загружается в ПЛК, после чего разработчик имеет возможность использовать широкий набор функций для быстрой и эффективной отладки приложения. Текущие значения переменных видны непосредственно в редакторах программ. Программу можно выполнять по шагам или по контроллерным циклам. Можно задавать точки останова программы, просматривать стек вызовов, подготавливать связные наборы значений переменных и загружать их одной командой.

    При отсутствии реального контроллера отладку программы можно выполнять с помощью встроенного программного эмулятора.

    Система имеет также встроенный многоканальный программный трассировщик (графический самописец) значений переменных. Он позволяет наглядно представить динамически изменяющиеся данные проекта. Данные аккумулируются в памяти ПЛК и могут синхронизироваться с определенными событиями. Трассировщик полезен не только при отладке, но и при анализе нештатных ситуаций в процессе эксплуатации оборудования.

    После изменения программы во время отладки перекомпилируются только измененные части программы. Их можно подгружать в контроллер без остановки выполнения прикладной программы. Эта возможность системы называется «горячим обновлением» кода.

    Программируемое устройство соединяется с CoDeSys через вспомогательный программный компонент – шлюз связи, который использует протокол TCP/IP. Шлюз работает на компьютере программиста или удаленно, например, через интернет или сеть Ethernet. Контроллер подключается компьютеру через любой последовательный канал или сеть. Добавив драйвер, изготовитель ПК может поддержать свой оригинальный протокол связи.

    Общение ПЛК со SCADA осуществляется с помощью стандартного ОРС сервера.

    Для того, чтобы ПЛК можно было программировать с помощью CoDeSys, в контроллере должна быть установлена система исполнения. Установку системы выполняет изготовитель контроллера. Изготовитель обеспечивает также поддержку всех модулей ПЛК, поэтому конечный пользователь может сосредоточиться на разработке только прикладной программы.

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

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

    Пользователь может самостоятельно расширять возможность CoDeSys путем создания библиотек программных модулей. Например, он может реализовать поддержку нестандартных интерфейсов.

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

    Для систем, связанных с безопасностью, CoDeSys имеет библиотеку функциональных блоков PLCopen Safety, систему исполнения для оборудования с дублированием и специализированное расширение среды программирования. При внезапном отключении питания CoDeSys автоматически сохраняет значения переменных во флеш-памяти или в ОЗУ с батарейным питанием.

    ISaGRAF. Система ISaGRAF фирмы ICS Triplex (www.isagraf.com) также состоит из среды разработки и среды исполнения. Среда исполнения может функционировать практически на любой операционной системе и любой аппаратной платформе, включая персональный компьютер. Среда разработки поддерживает все пять зыков МЭК 61131-3 и функциональные блоки МЭК 61499, имеет средства для редактирования, компиляции, документирования, управления библиотеками, архивирования, моделирования системы при отсутствии реального ПЛК и отладки с подключенным ПЛК.

    Комплекс программ ISaGRAF первый на рынке использовал новый стандарт МЭК 61499 для программирования распределенных систем управления.

    Связь между SCADA пакетом и контроллером, запрограммированным с помощью ISaGRAF, осуществляется с помощью стандартного ОРС сервера.

    Среда исполнения создается и загружается в контроллер производителем ПЛК и является независимой от исполняемой в ней программы пользователя.

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

    Администратор сайта: Колосов Михаил
    email:
    Copyright © 2011-2020. All rights reserved.

  • Добавить комментарий