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

Язык программирования контроллеров

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

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

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

Овен ПЛК 150 язык LD Программирование контроллера на основании электрической схемы из алгоритма.

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

Так появились программируемые логические контроллеры (ПЛК). Первый раз ПЛК были использованы в США для автоматизации конвейерного сборочного производства в автопроме (1969 г.).

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

Оптимальным вариантом могла бы стать автоматическая трансляция важных схем релейных автоматов в программы для ПЛК.
Почему бы и нет? Так в ПЛК появился язык релейно-контактных схем (РКС или LD в английских источниках Ladder Diagram).

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

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

Справа и слева в такой программе мы видим вертикальные шины питания, соединенные горизонтальными цепями. Цепи могут находится их контактов и некоторых сопутствующих элементов (к примеру, таймер) скреплённых параллельно или постепенно.

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

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

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

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

Язык программирования контроллеров

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

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

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

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

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

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

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

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

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

Так в Германии возникли языки обычных текстовых руководств напоминающих ассемблер (IL). Во Франции возникли графические языки практичных блоковых диаграмм (FBD) и высокоуровневые диаграммы описания этапов и условий переходов (Графсет, современный SFC).

Использовались также языки, которые применяются для программирования компьютеров (Pascal, Basic). В конце семидесятых годов сложилась очень проблемная ситуация.

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

В конце концов во второй половине 70-ых годов XX века в рамках Международной Электротехнической Комиссии (МЭК) была создана специализированная группа технических экспертов по проблемам ПЛК. Ей была установлена задача выработать типовые требования к аппаратным средствам, ПО, монтажным правилам, тестирования, документирования и средствам связи ПЛК.

В первой половине 80-ых годов XX века был опубликован первый черновой вариант стандарта, который получил название МЭК 1131. Из-за сложности получившегося документа, было решено разбить его на пару частей, вопросам программирования посвящена третья часть стандарта “Языки программирования ПЛК”.

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

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

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

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

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

Язык программирования контроллеров

В наше время первые позиции на рынке МЭК систем программирования занимает комплекс CoDeSys компании из Германии 3S-Smart Software Solutions GmbH. Его используют 190 компаний во всем мире, большинство из данных компаний — ведущие производители оборудования и/или систем промышленной автоматизации.

В Российской Федерации ПЛК с CoDeSys хорошо известны мастерам, диапазон продукции, выпускаемой под управлением данных ПЛК большой CoDeSys включает 5 специальных редакторов для любого из типовых языков программирования:
Практичные блоковые диаграммы (FBD),

Релейно-контактные схемы (LD),
Структурированный текст (ST),

Последовательные практичные схемы (SFC).

Язык программирования контроллеров

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

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

В Российской Федерации очень востребован язык ST. Это текстовый язык, собой представляет несколько адаптированный Паскаль. Второе место по популярности занимает графический язык FBD, дальше следует язык LD.

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

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

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

Компания "ПРОЛОГ"

Языки программирования контроллеров.

Для программирования ПЛК применяются стандартизированные языки МЭК (IEC) стандарта IEC61131-3. Языки программирования для инженеров по автоматизации (графические):
1. LD — Язык релейных схем — самый популярный язык для PLC

Ladder Diagram (англ. LD, англ. LAD, рус.

РКС) — язык релейной (лестничной) логики.
Используются также названия:
язык релейно-контактной логики (РКС)
язык программирования релейно-лестничной логики стандарта МЭК 61131-3.
Предназначается для программирования промышленных контроллеров (ПЛК).

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

Программа на языке релейной логики имеет отчетливый и на уровне интуиции понятный инженерам-электрикам графический интерфейс, представляющий логические операции, как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в данной цепи отвечает результату логической операции (true — если ток течет; false — если ток не течет).
Важными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки.

Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной.
Пример логического выражения на LD

Язык программирования контроллеров

Отличаются хорошо замкнутые и хорошо разомкнутые контактные детали, которые можно сравнить с хорошо замкнутыми и хорошо разомкнутыми кнопками в электроцепях.
-+ +- Хорошо разомкнутый контакт разомкнут при значении false, назначенной ему переменной и замыкается при значении true.

-+/+- Хорошо закрытый контакт, напротив, замкнут, если переменная имеет большое значение false, и разомкнут, если переменная имеет большое значение true.
-( )- Итог логической цепочки копируется в целевую переменную, которая именуется катушка (англ. coil).

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

Часто такие реализации содержат команды, расширяющие много типовых команд языка, это вызвано желанием изготовителя полнее взять во внимание желания заказчика, но в конце концов приводят к несовместимости программ, созданных для контроллеров разных типов.
2. FBD — Язык практичных блоков — 2-й по распространённости язык для PLC

FBD (англ. Function Block Diagram) — графический язык программирования стандарта МЭК 611131-3.

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

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

Блок (компонент) — это подпрограмма, функция или практичный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.).
Каждая отдельная цепь собой представляет выражение, составленное графически из индивидуальных элементов.

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

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

Пример цепи FBD: A разделить на B , помножить на 2 и записать в переменную result
Если понадобится управления вызовом блоков в них прибавляются специализированные входы EN (enable) и выходы ENO. Закономерный ноль при входе EN запрещает вызов блока.

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

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

Одним из вариантов FBD считается язык программирования CFC (Continuous Function Chart). Он дает возможность произвольно задавать порядок выполнения блоков.

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

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

Аналогом послужит сеть Петри с цветными фишками. В каждом состоянии система делает действия (подпрограммы) с конкретными модификаторами.

К примеру, модификатор N — выполнять, пока состояние активно.
Пример: Поддержание уровня жидкости в сосуде с постоянно вытекающей жидкостью

Язык программирования контроллеров

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

Язык Graph 7 считается дополнением к пакету STEP 7 и реализуем как для контроллеров SIMATIC S7-300, так и SIMATIC S7-400. Вторая версия этого языка с названием SFC, используется исключительно в рамках интегрированной среды разработки программ контроллеров и систем человеко-машинного интерфейса SIMATIC PCS 7.

4. CFC — Не сертифицирован IEC61131-3, последующее развитие FBD
Языки для программистов ПЛК (текстовые)

IL (Instruction List) — язык программирования стандарта IEC61131-3. Предназначается для программирования промышленных контроллеров. По синтаксису напоминает ассемблер.

Направлен на профессиональных программистов и разработчиков контроллеров и ПО для них. считается одновременно с LD одним из самых популярных при программировании ПЛК.
Пример: Линейное переустройство Y(x)=A*x+B

Реализация языка Instruction List для контроллеров SIMATIC S7 производства SIEMENS называется STL (Statement List) или AWL (Anweisungsliste).
2. ST — Паскале-подобный язык
Structured Text (ST) — язык программирования стандарта IEC61131-3.

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

Хорош для написания больших программ и работы с аналоговыми сигналами и числами с плавающей точкой.
Вычисление предела из массива
arr:ARRAY [1..Array_Sz] of real:=3.2,4.2,1.4,7.8;

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

Операторы являются «командами» языка программирования ST. Они должны кончаться точкой с запятой.

Одна строка может содержать несколько операторов (отделяемых точками с запятой).
Результат вычисления выражения присваивается переменной с помощью оператора присваивания :=.

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

Типовые операторы в выражениях языка ST имеют символьное представление, к примеру математические действия: +, -, *, /, операции сравнение и т. д.
Имена, применяемые в исходном коде (идентификаторы переменных, константы, основные слова) разделены неактивными разделителями (пробелами, символами завершения строки и табуляции) или активными разделителями, которые имеют заблаговременно конкретное значение (к примеру, символ-разделитель " > " значит сравнение более чем, а символ " + " операцию сложения и т. д.).

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

Видео 1. Реализация алгоритма управления нагревателем и насосом для контроллера ПЛК160.

В текст могут быть введены комментарии, которые должны начинаться символами (* и кончаться ими же *).

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

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

Выражение, заклю-ченное в скобки, вычисляется первым делом:
bAlarm :=bylnpl > bylnp2 ‘AND’ bylnpl+ bylnp2 о О ‘OR’ bAlarm2 ;
Вид всех операндов выражения должен быть одинаковым. Для изменения типов применять функции изменения типов: BOO, ANA, REAL, TMR и MSG.

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

2 + 3*6 равно 2+18=20 — оператор * имеет высший приоритет
(2+3) * 6 равно 5*6=30 — приоритет задается скобками
Очень много вложенных скобок — 8.

Структурно в IEC61131-3 среда выполнения собой представляет набор ресурсов (во многих случаях это и есть ПЛК, хотя некоторые мощные компьютеры под управлением многозадачных ОС дают возможность запустить несколько программ типа softPLC и моделировать на одном ЦП несколько ресурсов). Ресурс дает возможность выполнять задачи.

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

Программа — это один из типов программных модулей POU. Модули (Pou) могут быть типа программа, практичный блок и функция.
В большинстве случаев для программирования ПЛК применяются оригинальные языки, к примеру:
· Си-ориентированная среда разработки программ для ПЛК.

· HiGraph 7 — язык управления на основе графа состояний системы.
Инструменты программирования ПЛК на языках МЭК 61131-3 могут быть специальными для отдельного семейства ПЛК (к примеру, STEP 7 для контроллеров SIMATIC S7-300/400) или многофункциональными, работающими с несколькими (но далеко не всеми) типами контроллеров:

Язык программирования контроллеров

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

Какие программы как правило выполняет заводской контроллер? Ответ простой: фактически любые.

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

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

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

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

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

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

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

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

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

Ниже приведен небольшой обзор языков стандарта.

Язык LD

Язык 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.

Язык SFC

Язык последовательных практичных схем SFC (Sequential Function Chart), применяющийся вместе с прочими языками (в большинстве случаев с ST и IL), считается графическим языком, в котором программа описывается в виде схематической очередности шагов, объединенных переходами. Язык SFC выстроен по принципу, близкому к концепции конечного автомата, что выполняет его одним из очень мощных языков программирования стандарта IEC 61131-3.

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

Шаги очередности размещаются вертикально сверху вниз. На каждом этапе делается конкретный список действий (операций). При этом для описания самой операции применяются иные языки программирования, например IL или ST.

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

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

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

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

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

3. Язык последовательных практичных схем SFC.

Язык ST

Язык ST (Structured Text, Структурированный Текст) собой представляет язык большого уровня, имеющий линии языков Pascal и Basic. Данный язык имеет те же минусы, что и IL, но они выражены в малой степени. Пример программы на языке ST приведен на рис.

4.
При помощи ST можно достаточно легко выполнять арифметические и логические операции (в том числе, побитовые), абсолютные и условные переходы, циклические вычисления; возможно применение как библиотечных, так и пользовательских функций. Язык также интерпретирует более 16 типов данных.

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

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

Язык IL

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

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

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

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

Язык CFC

Язык CFC (Continuous Flow Chart) – очередной высокоуровневый язык зрительного программирования. По существу, CFC – это последующее развития языка FBD.

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

Так в стандартной библиотеке CFC блоков находятся комплексные практичные блоки, реализующие управление клапанами, моторами, насосами; блоки, генерирующие аварийные сигнализации; блоки PID-регулирования и т.д. Одновременно с тем доступны и типовые блоки FBD. Унаследовав от FBD саму идею программирования, язык CFC в самой большой степени направлен на сам тех. процесс, давая возможность разработчику отвлечься от сложного математического аппарата.

Рис. 6. Среда проектирования на языке CFC системы Simatic PCS7.

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

Программируемый закономерный контроллер и его использование

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

ПЛК – что это такое?

Контроллер — это мозг для машины. Чем тяжелее машина, тем практичнее контроллер.

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

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

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

Структура и устройство ПЛК

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

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

Это:

  1. Устройство типа «все в одном». В одном корпусе соединен процессор, память, выходы/входы;
  2. Распределенные решения – процессорный модуль с обвязкой выполнен в виде отдельного блока, а по шине или через интерфейсы подключатся модули для вывода и ввода.

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

Если производство масштабное, то удобнее разнести модули вводы вывода по территории с объединением в единую сеть, которая подчиняется отдельному логическому контроллеру. Такие сети именуют полевыми сетями или fieldbus.

К данной седи подключаются датчики, исполнительные системы, которые считаются интеллектуальными, так как имеют эту возможность.
Есть очень много видов полевых сетей. Стандарт IEC61158 (МЭК61158) в себя включает 8 видов сетей.

А до введения данного правила любой производитель выдумывал и использовал собственную полевую сеть.
В структуре ПЛК есть основные элементы:

  • Модуль процессора;
  • Блок питания;
  • Модули для ввода/вывода.

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

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

До конца 80-х годов модули для ввода и вывода данных расположились отдельно от процессора. В типовом контроллере нового типа модуль входов и выходов находится на одном шасси с процессором.

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

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

Большинство микро-решений имеют некоторое количество каналов входов/выходов и сделать больше их не возможно. Вот например — плата ардуино

Рабочий принцип ПЛК

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

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

Выполнение пользовательской программы циклическое. Цикл работы состоит из четырех фаз:

Овен ПЛК 150 язык CFC Программирование контроллеров на основании схемы на логических элементах

  • Опрос входов;
  • Выполнение команд;
  • Установка значений для входов;
  • Подсобные операции.

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

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

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

Входы и выходы

В любом контроллере выполнены входы трех типов – дискретные, аналоговые, специализированные.

Дискретный вход

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

Один вход — это 1 бит. К этому входу подсоединяют специальное оборудование.

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

Он считает физические значения каждого входа в ОЗУ. Благодаря этому программистам нет необходимости понимать, как устроен контролер в середине.

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

Аналоговый вход

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

Так как ПЛК – это прежде всего счётный прибор, то аналоговый сигнал переводится в цифровой. Выходит дискретная переменная.

Специализированный вход

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

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

Частота может быть слишком высокой. Даже на мощных процессорах процесс занимает очень много времени.

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

Дискретный выход

Программа FBD для PLC на запуск двигателя звезда-треугольник

С одним выходом можно коммутировать всего один сигнал.

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

Типы ПЛК

Устройства квалифицируются так:

  • Число каналов для ввода/вывода данных;
  • Расположение модулей для ввода/вывода;
  • Назначение;
  • Вариант монтажа;
  • Языки программирования.

По числу каналов для ввода/вывода ПЛК разделяют на классы:

  1. Нано ПЛК контроллер – часто имеет встроенные возможности, содержит до 16 каналов;
  2. Небольшой – от 16 до 100 каналов;
  3. Средние системы для работы с 100-300 входами и выходами – стереотипный представитель ПЛК 110 Овен;
  4. Большие модели с возможностью обработки 300-2000 входов/выходов;
  5. Очень большие модели – от 2000 и более каналов.

По тому, как размещаются модули, контроллеры отличают на:

  • Моноблоки – модуль ввода/вывода не отсоединяется от контроллера и подлежит замене. Устройство смотрится в виде моноблока с модулем ввода/вывода. Очень часто, модели имеют небольшое число каналов и выделяются небольшой мощностью;
  • Модульные состоят из всей корзины или шасси, где размещены процессор, а еще сменяемые модули с входами в выходами. Модули выбираются исходя из решаемой задачи. Контроллеры оборудуются числом слотов — от 8 до 32. Также возможна модульная конструкция, где любой модуль соединяется с помощью шины. .
  • Распределенные контроллеры – модули сделаны в некоторых корпусах и соединяются с центральным процессорным модулем по сети. Дальность может составлять до 1,2 км.

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

По языкам программирования выделяют модели, программируемые на языке ПЛК систем МЕК 61131-3 и на традиционный языках, например как С, C#, Visual Basic, Scala.

Ограничения ПЛК

ПЛК, как и каждая цифровая техника имеет ограничения. Устройства лимитированны:

  • объемом ОЗУ,
  • мощностью процессора,
  • ограниченным числом входов/выходов.

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

Место программируемого логического контроллера в системе управления

Устройства установлены в самых нижних звеньях АСУ ТП. ПЛК – это первый шаг в строительстве АСУ.

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

Назначение переменных в ПЛК

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

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

Основы программирования ПЛК. Реле и контроллер

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

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

Когда кнопка не задействована, сигнал на вход контроллера отправлен не будет. ПО, показывающее открытый вход, не отправит сигнал на выход.

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

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

Контакты с индикатором соединены физическим способом. А сигнал виртуальный.

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

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

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

Если по цепи течет ток, что это истина. Если ток не течет, тогда состояние – обман.

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

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

Достаточно применять типовые практичные блоки.

Среда программирования

Стандартом для программирования ПЛК считается языки МЕК. Перед началом 90-х годов для таких задач на рынке возникла ПО «CoDeSys».

Продукт отвечает стандарту МЕК 61131-3 для работы с ПЛК. ПО очень востребовано из-за причины бесплатной лицензии.
В настоящий момент этот программный пакет серьёзно вырос.

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

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

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

Но к середине 90-х ситуация очень сильно поменялась. Языки стандартизировали.

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

  • Язык лестничных диаграмм LD – это обычный язык на базе релейных блокировок, где алгоритмы изображаются в виде схем;
  • FBD – собой представляет конфигуратор и стандартные подпрограммы;
  • SFC — язык последовательных схем. Инструмент, близкий к обычному программированию и на нем реализуют алгоритмы с последовательным управлением;
  • ST – язык структурированного типа. Это язык, напоминающий Pascal с поддержкой структурного программирования;
  • IL – язык руководств. Это низкоуровневый инструмент вроде Ассемблера, однако он не направлен на микропроцессорную архитектуру. Он преимущественно используется для изготовления быстрых программ.

Удалённое управление и прогноз

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

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

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

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

Тогда устройство можно настраивать на расстоянии по web-интерфейсу или с ноутбука.
Более продвинутое решение реализовано в семействе ПЛК Siemens – встроенный веб-сервер.

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

Использование контроллеров

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

Управляющие устройства также встречаются в автоматизации тех. процессов и быту.

Производственники ПЛК

Есть много фирм, производящих промышленные контроллеры — это:

  • Advantech,
  • Delta,
  • VIPA,
  • Mitsubishi Electric,
  • WAGO I/O,
  • Phoenix Contact
  • и остальные.

Российские производственники ПЛК :

На что смотреть при приобретении

Все может зависеть от типа производства и задач, которые придется решать, но есть и прекрасные решения. Самые важные моменты:

  • Многофункциональность среды программирования для самых разнообразных платформ;
  • Контроллеры с распределенным вводом/выводом;
  • Устройства с вмонтированным вводом выводом;
  • Связь с ПК;
  • Дублирование ЦП и системы ввода/вывода;
  • ПЛК с поддержкой веб-технологий;
  • ПЛК с процессором типа PC;
  • Мобильные устройства для создания программ.

Самый основной пункт тут – это первый пункт. Не пытайтесь отыскать самое доступное оборудование на рынке – процесс переподготовки профессиональных мастеров сведет до нуля всю предполагаемую экономию.

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

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