Главное Авторские колонки Вакансии Образование
arrow-right Created with Sketch. МЗТА – Московский завод тепловой автоматики 315 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

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

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

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

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

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

  1. ПЛК имеет физические и электрические входы и выходы (I/O), которые передают в систему информацию и управляют внешними устройствами.
  2. ПЛК обрабатывает и реагирует на информацию в определенных временных интервалах.
  3. ПЛК часто имеет модульное исполнение и расширяется модулями ввода/вывода, сетевыми модулями и модули специального назначения.
  4. ПЛК программируется с использованием нескольких языков, некоторые из которых позволяют изменять программу во время исполнения алгоритма.
  5. Программное и аппаратное обеспечение обычно зависит от платформы производителя и не может использовать разными производителями.
  6. ПЛК отличается повышенной надежностью для использования в промышленной среде.

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

Рисунок 1. Модульные ПЛК

Физическое компоновка элементов ПЛК

Блок-схема физического устройства ПЛК показана на рисунке 2. Не все элементы, показанные на этой схеме, присутствуют в каждом ПЛК, но эта схема дает представление о типичной конфигурации программируемого контроллера.

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

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

Рисунок 2. Схема ПЛК и его компонентов

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

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

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

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

Оперативная часть памяти в ПЛК может быть разделена на две основные области: память программ и память данных.

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

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

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

Входы и выходы ПЛК (I/O)

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

Рисунок 3. Дискретный сигнал

На рисунке 3 показан цифровой (дискретный) сигнал. Типичные уровни сигналов для дискретных входов и выходов составляют 24 В постоянного тока и 120 В переменного тока, но могут быть и другие уровни в зависимости от типа устройства или карты ввода. Помимо обозначения единицы и нуля или включения и выключения, дискретные сигналы могут описываться как истинные или ложные. На рисунке 4 показаны устройства дискретного ввода/вывода.

Рисунок 4. Устройства дискретного ввода/вывода (I/O)

Аналоговые сигналы (рисунок 5) различаются либо по напряжению, либо по току. Диапазоны обычно составляют от 0 до 10 В или от −10 до +10 В постоянного тока или от 0 до 20 мА или от 4 до 20 мА. Электрический сигнал затем преобразуется в число для использования в программе ПЛК. Аналоговые устройства ввода/вывода показаны на рисунке 6.

Рисунок 5. Аналоговый сигнал

Рисунок 6. Аналоговые устройства ввода/вывода

Методы связи ПЛК

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

Таблица 1. Типы коммуникационных платформ ПЛК

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

Данные ПЛК

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

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

Таблица 2. Типы структур данных ПЛК

В Таблице 2 показано расположение областей памяти нескольких ПЛК. Первый список — семейства SLC и MicroLogix Allen-Bradley, показывает, что данные разделены на пронумерованные файлы O0, I1, S2...F8. Каждый файл данных можно расширить до 255 слов, но после этого необходимо добавить новые номера файлов, например, N9, B10 и т.д.

В следующей таблице показан Siemens S7. Ввод/вывод назначается во время конфигурации оборудования, а не по номеру слота, как в случае с Allen-Bradley. Общая область памяти «М» имеет фиксированный размер, тогда как блоки памяти или блоки данных (DB) содержат разные типы данных и могут иметь размер до 64 КБ.

Адресация ввода/вывода варьируется от бренда к бренду (Таблица 3). Входы могут быть адресованы как I или X, выходы — как O, Q или Y, а обозначения аналоговых входов/выходов могут использовать совершенно другой формат, чем цифровые. Некоторые бренды обозначают ввод/вывод на основе номера слота, которому назначается карта при настройке оборудования и это невозможно изменить. На других платформах, есть местоположение по умолчанию, где входы/выходы назначаются во время конфигурации, но это может быть изменено программистом. Адресация также может быть восьмеричной, десятичной или даже шестнадцатеричной.

Таблица 3. Примеры адресации ввода/вывода ПЛК

Просмотр типов данных: программное обеспечение ПЛК позволяет пользователю просматривать числа во многих перечисленных здесь форматах, устраняя необходимость в калькуляторе. Не всегда может быть понятно, в каком формате просматриваются данные, но часто присутствуют обозначения. Могут использоваться целое число со знаком (десятичное или по основанию 10) и не иметь указателя. Однако шестнадцатеричное число будет иметь префикс W#16, указывающий на основание 16. REAL будет иметь десятичную точку или выражаться экспонентой, тогда как двоичное представление может иметь префикс или выглядеть как строка из единиц и нулей.

Точечные поля и разделители. если обозначен один бит целого числа, его можно отобразить с помощью разделителя, например, косой чертой или точкой (N7:5/3 или Q3.2). Поля с точками также часто используются для обозначения элемента сложного типа данных, например, таймера (Timer1.ACC обозначает накопленное значение Таймера № 1). Перед запуском программы важно понять, как память адресуется для вашего конкретного ПЛК.

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

Теги обычно создаются в таблице данных по мере необходимости. Вместо числовых адресов, таких как «B3:6/4» или «DB2.DBW14», в качестве ячеек памяти создаются символические имена, такие как «InfeedConv_Start_PB» или «Drive1402.ActualSpeed». При создании тегов необходимо выбрать такие детали, как тип данных (BOOL, Таймер, REAL) и стиль отображения (шестнадцатеричный, десятичный).

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

Рисунок 7. Пример псевдонимов

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

Группы данных. в дополнение к «атомарным» или элементарным типам данных, таким как BOOL, Byte, Integer или REAL, описанных в разделе «Данные», можно группировать отдельные элементы в общую структуру.

Массив. массив — это группа схожих типов данных. Например, можно определить массив, содержащий 10 Integer или 50 REAL, или 32 BOOL значений. Типы данных нельзя смешивать в массиве. Сложные типы данных, такие как таймеры, счетчики или пользовательские типы данных (UDT), также могут быть помещены в массив. Обычно массив отображается в квадратных скобках, например, Delay_Tmr[6]. Это обозначает 7-й элемент массива, если массив начинается с 0.

Некоторые платформы позволяют определять многомерные массивы, например, Integer[2,4,5]. Это означает целое число в 5-м слое 4-й строки 2-го столбца.

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

Пользовательские типы (UDT). UDT — это группа различных типов данных или структура, например, таймеры и счетчики состоят из двух целых или двойных целых чисел и нескольких битов, объединенных в структурированный тип данных, называемый «таймер» или «счетчик».

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

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

Таблица 4. Пользовательский тип (UDT) слева и тег, созданный на основе UDT (справа)

Слева находится пользовательский тип с именем «Drive», определенный в программном обеспечении, а справа — тег «Drive_5207», созданный на основе пользовательского типа (Таблица 4). Определение не загружается в процессор — его можно изменить только на программирующем устройстве.

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

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

ПО автоматизации и конфигурация ПЛК

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

Рисунок 8. Конфигурация аппаратного обеспечения ПЛК

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

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

===

Комментарий МЗТА

  1. В статье говорится, что в ПЛК используется сочетание энергозависимой и энергонезависимой памяти, поэтому для хранения данных требуется резервная батарея. Но сейчас имеются решения, не требующие резервного питания, но и не приводящие к потере информации при отключении питания ПЛК.
  2. Каждая платформа ПЛК организуют данные по-разному, что влияет на использование памяти и методы адресации. Контроллеры МЗТА используют стандартную для контроллеров на базе Codesys 3.5 организацию: сочетание энергозависимой и энергонезависимой памяти и символьную адресацию.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем