Отличие компьютера от контроллера

Обновлено: 05.07.2024

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

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

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

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

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

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

Промышленный компьютер ПК

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

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

Контроллеры движения

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

Машины, предназначенные для работы с конкретным контроллером, могут включать в себя как расширенные функциональные возможности, так и сжатые (если речь идет о расширении функционала). Например, у контроллеров движения Single-PCB нельзя добавить дополнительные оси управления без заказа нового модуля с завода.

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

Программируемые автоматические контроллеры смогли объединить в себе ПЛК, ПК и контроллеры движения. Вместо отдельного контроллера движения PCA способен обеспечить многоосные контуры движения по шинам, таким как EtherCAT, которые реализуют замкнутую систему управления с ПИД регулятором. Данная архитектура позволяет не только запрограммировать всю систему с использованием МЭК 61131-3, но и использовать индивидуальные программы для устройств специального назначения. Техническое обслуживание таких систем значительно упрощается , так как PAC опрашивает все механизмы для определения отказов. Теперь для того чтобы получить доступ к данным нет необходимости осматривать каждый из элементов системы, достаточно подключится к PAC в котором данная информация содержится. При выборе PAC необходимо правильно выбрать системную шину, которая сможет реализовать максимальную гибкость при выборе устройств, а также обеспечить долгосрочную работоспособность. Контроллер PAC поддерживает EtherCAT в качестве основной шины, но также может поддерживать Ethernet/IP, OPC client/server, Modbus TCP, PROFINET, и PROFIBUS, что гарантирует его перспективность и совместимость с существующими промышленными механизмами.

LED-драйверы MEAN WELL для промышленных и уличных светодиодных светильников: особенности, преимущества, выбор

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

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

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

В чем различие между ПЛК и ПКА?
Fieldbus (Profibus) – типичная технология используемая для связи систем автоматизации.
При наличии подключения к промышленному Ethernet (Profinet) модульная конструкция
ПЛК позволяет легко заменять контроллеры.

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

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

ПКА имеют открытую архитектуру и модульную конструкцию. Это упрощает объединение устройств в группы, подключение их к сетям и системам и организацию взаимодействия друг с другом. ПКА используются для связи, контроля и управления многоканальными сетями и наборами устройств. Такая возможность обеспечивается использованием стандартных протоколов и сетевых технологий, таких как Ethernet, OPC и язык структурированных запросов (SQL).

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

В чем различие между ПЛК и ПКА?
Parker Automation Controller – пример программируемого контроллера автоматизации (ПКА).
ПКА предоставляют пользователям возможность, используя ASCII, разрабатывать
собственные драйверы для подключения к уникальному оборудованию. Подобно
персональным компьютерам, в них встроены средства визуализации, позволяющие, имея
один интегрированный пакет инструментальных средств, программировать и логику,
и человеко-машинный интерфейс.

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

Что все это значит?

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

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

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

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

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

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

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

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

Иногда на ПЛК (PLC) строятся системы числового программного управления станков.

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

ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в промышленности:

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

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

Программирование ПЛК

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

Конфигурируемые: в ПЛК хранится несколько программ, а через клавиатуру ПЛК выбирается нужная версия программы;

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

При этом конечно надо понимать, что конфигурируемый контроллер изначально может быть свободно программируемым, в который для удобства или массового применения зашита одна или несколько типовых программ, которые конечный пользователь выбирает и/или настраивает по своему усмотрению. Для примера: в серии контроллеров Climatix от Сименс есть свободно программируемый ПЛК POL638.70/STD и наряду с ним присутствует конфигурируемый контроллер POL638.70/DH1, в котором запрограммирован ряд приложений для управления тепловыми пунктами, которые пользователь может выбрать и настроить под свою установку.

Удаленное управление и мониторинг

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

Панели оператора или HMI (от англ. Human Machine Interface) - устройства визуализации встроенные в контроллер или подключемые к нему кабелем или по шине данных. Существует множество различных типов HMI от простых цифровых с конопочным интерфейсом до интеллектуальных сенсорных ЖК панелей с воможностью отображения мнемосхемы установки и оперативного мониторинга и корректировки параметров.

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

Веб-интерфейс - доступ интерфейсу контроллера через локальную (Intranet) или глобальную сеть Internet. В зависимости от оснащения контроллера и системы в целом это может быть простое управление на манер панели оператора, как например в контроллере Siemens Climatix POL638.00/STD, у которого нет встроенной панели оператора (как у POL638.70/STD), но благодаря наличию в контроллере интерфейса Ethernet, его можно настроить через Web-HMI с ноутбука или удаленно. Более продвинутое применение веб-интерфейса - это использование Web-сервера, который может быть встроенным или подключаться к контроллеру как внешний модуль (например POL909 для контроллеров серии Climatix POL6xx). В этом случае могут быть реализованы возможности мониторинга и управления системой (системами), мнемосхемы установок, архивирование информации отображение и обработка аварийных сигналов и.т.п. в зависимости от возможностей конкретного контроллера и поставленной задачи.

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

В качестве примера можно привести систему веб-диспетчеризации на базе облачных технологий через сеть Интернет – Synco IC от компании Сименс, которая позволяет осуществлять удаленный контроль и управление системами вентиляции и отопления зданий на базе контроллеров серии Synco 700 и Sigmagyr, которые дооснащаются Web-серверами OZW772 и OZW672 соотвественно.

Система Synco IC разработана для выполнения следующих функций:

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

  • накопление и просмотр данных в архиве за заданный период в виде таблиц, сводок, графиков;
  • экспорт архивных данных в файл MS Excel;
  • управление объектами;
  • сигнализация о выходе параметров за допустимые границы.

В финале данного обзора приведем ряд моделей ПЛК производимых компанией Siemens:

1. Siemens LOGO! - логический контроллер концерна Siemens AG или программируемое реле

2. Simatic S7 - семейство устройств автоматизации включающее в себя универсальные модульные программируемые контроллеры для решения задач различной степени сложности:

- S7-1200 - микро-ПЛК для решения простых задач промышленной автоматизации

- S7-300 - для построения систем автоматизации относительно низкой и средней степени сложности

- S7-400 - для построения систем автоматизации относительно средней и высокой степени сложности

3. Desigo - семейство контроллеров для комплексной автоматизации зданий

4. Climatix - линейка контроллеров для автомитизации систем отопления, вентиляции и кондиционирования.

Введение

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

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

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

  1. IL, instruction list, список инструкций. Похож на ассемблер. Не видел никого, кто его использовал бы, но подозреваю, что олдскульные кодеры, пробивавшие перфокарты по памяти, оценят.
  2. LD, ladder diagram. Визуальный язык, для тех, кто занимался разработкой схем релейной автоматики.
  3. ST, structured text. Более всего напоминает «классические» языки программирования, чем-то похож на Паскаль. Оттого ценится теми, кто до ПЛК занимался программированием на других языках и платформах, в частности — мной.
  4. FBD, functional block diagram. Этакая блок схема, любим прежде всего технологами, решившими податься в программирование, за свою наглядность.
  5. 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 мс. Все работает хорошо, панель оператора не тормозит, пользователь доволен.

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

image


А вот другой вариант — голова Beckhoff серии CX9000 (слева на фото) с набором модулей ввода-вывода.

Помимо всего прочего, на голове еще имеется некая шина, позволяющая объединять ПЛК в сеть, а зачастую еще и менять его программу через эту же сеть. Какая это будет сеть — зависит от ПЛК. Это могут быть и незнакомые тем, кто не сталкивался с промышленными сетями EIA-485, Profibus, CAN, а может быть и вполне привычный Ethernet. Именно через эту сеть, называемую fieldbus, и осуществляется подключение ПЛК к верхнему уровню — к СКАДА-системе, например. На фото выше хорошо видны 2 разъема 8P8C на голове Beckhoff'а — это Ethernet, а у Carel сверху слева видны (плоховато, правда) 2 разъема 6P4C — так они сделали RS-485. У этого интерфейса, к сожалению, нет общепринятого разъема.

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

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

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

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

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

kak-rabotaet-plc

Что такое ПЛК я уже писал. Теперь хочу немного поговорить, как же он работает и что заставляет его работать.

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

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

Датчики могут быть совершенно различными:

— аналоговыми - напряженческими (например, 0 — 10В), токовыми(например, 4-20мА), термометрами сопротивления различной градуировки, термопарами и т.п.;

Приёмники не отстают по разнообразию от датчиков. Это:

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

— исполнительные механизмы аналоговые(т.е. управляемые аналоговыми сигналами);

— световые и звуковые табло сигнализации;

Т.е. смысл работы ПЛК заключается в том, что бы:

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

А потом повторить все сначала :).

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

  1. Устройство – «все-в-одном». Т.е. в одной «коробке» находится как процессор с памятью – «сердце» ПЛК, так и входы/выходы.
  2. Распределенное устройство. Т.е. процессорный модуль со своей обвязкой – это отдельный блок, а к нему уже по шине либо через интерфейсные связи подключаются модули ввода/вывода.

Первый вариант встречается достаточно часто, но он рассчитан на небольшие объекты с малым количеством сигналов.

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

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

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

Но речь не о сетях, а о работе контроллера.

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

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

Если это дискретный сигнал, то он принимает значения логических «0» или «1».

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

Например, у контроллеров OMRON, для униполярного сигнала максимальное число, характеризующее максимальное значение измеренной величины на входе равно 4000. У контроллеров Siemens — 27643. И т.п.

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

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

Но как обрабатываются аналоговые сигналы, я расскажу в другой статье.

Итак, контроллер получил кучу нужных сигналов. Как это все использовать? Вернее, чем это обработать?

Конечно же, каким либо языком программирования.

Существует стандарт на набор языков программирования для промышленных контроллеров IEC61131-3. В нем их 5 (пять). Но некоторые производители добавляют свои. Или уменьшают, по сравнению со стандартом их количество. Но принципы и подходы в этих языках сохраняются.

Языки в стандарте следующие:

IL – язык инструкций (instruction list);

LD – язык релейной логики (ladder diagram);

ST – «паскале»-подобный язык (structured text);

FB – язык функциональных блоков (function blok);

SFC – язык последовательных переходов (sequential function chart).

Подробнее я расскажу о языках в другой статье.

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

  • обработка входов для приведения сигналов в удобоваримый вид;
  • обработка комбинаций этих сигналов для принятия решений по блокировкам, сигнализации, защитам, логическим задачам;
  • алгоритмы управления исполнительными механизмами (ИМ);
  • алгоритмы автоматического регулирования;
  • алгоритмы АВР (автоматического включения резерва);
  • и т.д. и т.п.

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

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

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

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

Читайте также: