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


Устройство ПЛК.

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

Немного истории.

В конце 60-х годов 20-го века подразделение GM Hidramatic компании General Motors устроило конкурс на электронное устройство, которое смогло бы заменить схемы с большим количеством электромеханических реле. Необходимость такого устройства возникла из-за потребности в частой смене алгоритма работы существующей системы, что требовало изменения схемы из очень большого количества реле. Кроме того существующая установка из электромеханических реле занимала много места, а ее обслуживание и ремонт оказался крайне трудоемким.

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

Modicon 084

В 1973 году впервые ПЛК был оснащен поддержкой интерфейса Modbus. С этого момента ПЛК начали приобретать коммуникационные возможности. В то время из-за отсутствия стандартизации протоколов связи сопряжение различных моделей ПЛК между собой зачастую было невозможным. В 80-х годах предпринимались попытки стандартизации протоколов, а также начался переход от программирования на специальных панелях, к написанию программ с помощью персональных компьютеров. В 90-х годах прослеживалась тенденция к сокращению и стандартизации применяемых протоколов обмена информацией. В 1992 году был выпущен стандарт IEC 1131, позже переименованный в IEC 61131, который во многом способствовал унификации ПЛК различных производителей. На основании стандартов IEC 61131 было выпушено семейство Российских стандартов ГОСТ Р МЭК 61131 «Контроллеры программируемые».

Конструкция ПЛК.

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

Одномодульный ПЛК Pixel

Одномодульный ПЛК Овен

ПЛК состоявшие из одного модуля как правило могут дополняться модулями расширения.

Одномодульный ПЛК Siemens LOGO с 2-мя модулями расширения

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

Модульный ПЛК Beckhoff

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

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

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

Описание входов и выходов ПЛК.

ПЛК всегда имеет в своем составе входы и выходы электрических сигналов. Виды входов выходов можно разделить на четыре вида:

Тип входа или выходаОбозначениеКраткое описание
Дискретный (цифровой) входDI (Digital Input)Вход ПЛК, осуществляющий преобразование сигнала с двумя состояниями (есть напряжение / нет напряжения) в одноразрядное двоичное число (1 / 0)
Дискретный (цифровой) выходDO (Digital Output)Выход ПЛК, осуществляющий преобразование одноразрядного двоичного (0 / 1) числа в сигнал с двумя состояниями (есть напряжение / нет напряжения)
Аналоговый входAI (Analog Input)Вход ПЛК, осуществляющий преобразование аналогового сигнала (например, 0÷10В) в число (например, 0÷1000)
Аналоговый выходAO (Analog Output)Выход ПЛК, осуществляющий преобразование числа (например, 0÷1000) в аналоговый сигнал (например, 0÷10В)

Дискретный вход ПЛК обозначается DI (от Англ. Digital Input). Дискретный вход преобразует сигнал с двумя состояниями в одноразрядное двоичное число. В следующих статьях будет показано, что программа, записанная в ПЛК, может прочитать состояние дискретного входа и в зависимости от состояния DI выполнить те или иные действия. Например, в ходе выполнения программы, записанной в ПЛК, возникла необходимость запустить электродвигатель. Для безопасности персонала электродвигатель имеет вокруг себя ограждение с дверью, которая оснащена концевым выключателем. Если дверь закрыта, концевой выключатель замкнут, на дискретный вход ПЛК приходит напряжение +24В, которое интерпретируется программой как «1», и электродвигатель будет запущен программой. Если дверь открыта концевой выключатель разомкнут, на дискретный вход ПЛК приходит напряжение 0В, которое интерпретируется программой как «0», электродвигатель не будет запущен, будет включена аварийная сигнализация.

Дискретный выход ПЛК обозначается DO (от Англ. Digital Output). Дискретный выход может представлять собой как источник питания, так и «сухой контакт» управляемый программой. При записи «1» в соответствующую ячейку памяти на выходе появляется номинальное напряжение или замыкается «сухой контакт», при записи туда же 0 напряжение на выходе становится равной 0В или «сухой контакт» размыкается.

Дискретные входы и выходы различаются по входному напряжению, как правило 0÷12В, 0÷24В, 0÷48В, 0÷110В, 0÷220В, встречаются и другие варианты. Дискретные входы и выходы  могут работать с постоянным, переменным током или быть универсальными в этом отношении. Дискретные входы и выходы могут иметь разное быстродействие. Стоит заметить, что в словосочетании дискретный вход, цифровой вход или дискретный сигнал и т.д. имеется в виду сигнал, который может принимать два состояния, например 0В и 24В или 0В и 220В. Примером таких сигналов может быть сигнал от концевого выключателя или термостата. Не следует путать дискретные сигналы с цифровым интерфейсом обмена данными. 

Аналоговый вход ПЛК обозначается AI (от Англ. Analog Input). Аналоговый вход преобразует аналоговый сигнал в число. Если мы имеем аналоговый сигнал 0÷10В, который преобразуется в число 0÷1000, это значит, что если на вход подать 0В, программой этот сигнал будет интерпретироваться как 0, если подать 2.34В, то программа будет воспринимать сигнал как 234. Такое преобразование весьма схоже с переводом какой либо величины в проценты.

Сигнал на входеЗначение сигнала в программе
0
2.34В234
500
6.14В614
10В1000

Самые распространенные виды аналоговых сигналов — это 0÷5В, 0÷10В, 0÷20мА, 4÷20мА.

Аналоговый выход ПЛК обозначается AO (от Англ. Analog Output). Аналоговый выход преобразует число в аналоговый сигнал. В целом данный тип выхода аналогичен аналоговому входу, за исключением направления передачи сигнала.

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

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

Описание программной части ПЛК

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

В зависимости от разновидности ПЛК могут поддерживать языки С/С++ и прочие языки общего назначения. Так же специально для применения в ПЛК были разработаны «МЭКовские» языки программирования, которые описаны в стандарте EIC 61131-3. В дальнейшем мы будем рассматривать вопросы создания программ для ПЛК на языках стандарта EIC 61131-3. Стандарт EIC 61131-3 определяет пять языков программирования:

АббревиатураНазвание на АнглийскомНазвание на РусскомОписание
LDLadder DiagramРелейно-Контактные Схемы (Диаграммы)Графический язык. Программирование заключается в изображении схемы аналогичной электрической релейной схеме
FBDFunction Block DiagramФункционально Блоковые ДиаграммыГрафический язык. Программирование заключается в изображении схемы аналогичной функциональной схемы.
SFCSequential Function ChartПоследовательные ФункциональныеДиаграммы
Графический язык. Программирование заключается в изображении схемы аналогичной сети Петри.
STStructured TextСтруктурированный ТекстТекстовый язык. Данный язык весьма похож на язык программирования Паскаль.
ILInstruction ListСписок инструкцийТекстовый язык. Данный язык весьма похож на языки ассемблера.

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

Человеко-машинный интерфейс

Человеко-машинный интерфейс (Англ. Human-machine interface, HMI) — аппаратура и технические решения, которые обеспечивают взаимодействие человека с управляемой им системой. В системах промышленной автоматики человеко-машинный интерфейс как правило выполняется в виде SCADA систем или панелей оператора.

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

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

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

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