Лекция
Привет, сегодня поговорим про промышленное программирование, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое промышленное программирование , настоятельно рекомендую прочитать все из категории Промышленное программирование. программирование контроллеров simatic.
промышленное программирование - это деятельность направленная на автоматизацию технологических производственных процессов с использованием контроллеров, микроконтроллеров, программируемых логических контроллеров и других устройств. При этом не следует путать с коммерческим программированием (которые использоется как противоположность простому или академическому программированию)
Промышленное программирование тесно связано с автоматизированной системой управления технологическим процессом ( АСУ ТП)— это система, состоящая из персонала и совокупности оборудования с программным обеспечением, использующихся для автоматизации функций этого самого персонала по управлению промышленными объектами: электростанциями, котельными, насосными, водоочистными сооружениями, пищевыми, химическими, металлургическими заводами, нефтегазовыми объектами и т.д. и т.п.
Фактически, каждый человек, живущий не в лесу и пользующийся благами цивилизации, использует результаты труда предприятий, на которых функционируют АСУ ТП.
Рис. 1. Структура современной АСУ ТП
Программно-технический комплекс АСУ ТП делится на три уровня:
Про нижний уровень читайте раздел датчики.
Верхний уровень — это серверы и пользовательские ПК (у нас они называются АРМ — автоматизированное рабочее место). Сюда выводится состояние технологического процесса, и отсюда при необходимости оператором подаются команды на изменение его параметров. Для упрощения разработки создано большое количество SCADA-систем (от англ. supervisory control and data acquisition — диспетчерское управление и сбор данных). Это в некотором роде расширенный аналог IDE, в котором скомпилированная «программа» и выполняется.
Вообще, если отбросить академизм, то на предприятии для всех кроме асушников скада выглядит вот так:
А если совсем не повезет, то вот так:
Скады неявно можно разделить на серверную и клиентскую части. Опрос полевых устройств и сбор данных производится сервером (обычно, через ПЛК), с сервера клиенты забирают эти данные к себе на монитор. Сами по себе понятия «серверная» и «клиентская» части условны. Фактически разделение производится по лицензиям на компоненты скады, а политика лицензирования у каждого производителя своя. Вплоть до разделения на: количество обрабатываемых сигналов с поля, драйвера протоколов, количество рабочих станций, возможность создания веб-интерфейса, мобильного интерфейса, да и вообще целые куски функционала могут быть за отдельные денжеки. Чаще проще обратиться к поставщику, предоставив исходные данные по проекту, чтобы помогли с подбором лицензий.
Подразумеваются два режима функционирования: режим разработки и режим выполнения (runtime). Не обязательно эти режимы взаимоисключающи: можно редактировать проект на одном АРМе, инженерном, заливать его, он обновится на пользовательских. Это очень важно — изменять проект без простоев и отключений, потому что технологический процесс прерывать нельзя, и операторы всегда должны иметь возможность его контролировать. В скаде создаются графические интерфейсы, настраиваются источники данных с полевых устройств, она отвечает за взаимодействие пользователя (оператора, диспетчера, технолога) с происходящим на производстве, а также за архивирование всех нужных данных в БД.
Архивирование — одна из обязательных функций, очень важно иметь возможность «вернуться назад во времени» для разбора полетов в случае чего-то непредвиденного либо для глобального анализа при медленных, длительных процессах. Например, недавно геологи попросили меня выгрузить табличкой данные по давлению нефти на скважинах за последний год.
Периодически скада складывает все собранные данные в БД. Их потом можно посмотреть в виде графиков (называем их трендами), а при необходимости, если оговорено в ТЗ на АСУТП, реализуется выгрузка в виде отчетов в эксель или еще как-нибудь. Архивация сделана по-разному: в MS SQL; MS Access; в ту же MS SQL, но по своему хитрому алгоритму с дополнительной архивацией; а у кого-то вообще в свою собственную бинарную БД.
Особым пунктом в скадах идет информирование оператора: текущие сообщения и аварийные. Они тоже обязательно архивируются. В общем виде сообщения делятся на текущие и важные (аварийные). Текущие прячут подальше, но журнал аварийных всегда выводится на экране оператора. К текстовым аварийным сообщениям привязываются звуковые, чтобы кто-нибудь не проспал ЧП :-)
Самыми распространенными, по-моему, считаются скады производства Invensys Wonderware, Iconics, Siemens, Indusoft, AdAstra, Emerson, Rockwell Automation.
Я лично работал с виндовыми: Invensys Wonderware InTouch и более мощной System Platform, с Iconics Genesis32 — и с (пока еще?) малоизвестной B&R APROL под SLES (формально, это не совсем скада, а покруче — из-под апрола программируются и сами контроллеры).
По поисковым запросам, например, SCADA, HMI можно посмотреть примеры интерфейсов и мнемосхем.
Внешний вид и юзабилити по приоритету, увы, находятся на последнем месте. Причем, это касается не только рантайма, но и разработки. Для разработки в каждой скаде существуют как минимум дефолтные библиотеки символов — от кнопок и прочих контролов до графических изображений насосов, труб, задвижек, емкостей. Здесь-то и могли бы умные разработчики SCADA-пакетов (не путать с нами, асушниками — разработчиками проектов в этих пакетах) добиться принципиального преимущества над конкурентами, сделав продуманные библиотеки, из которых бы даже самый далекий от дизайна и юзабилити инженер при всем нежелании делал бы гуманные интерфейсы и мнемосхемы. К сожалению, сейчас эта сфера идет по пути экстенсивного развития, по которому развивалась IT до недавнего времени — наращивание функционала, добавление плюшек, больше, выше, сильнее, harder, better, stronger, и о пользователях пока думают мало.
Средний уровень — ПЛК, программируемые логические контроллеры. Здесь все достаточно просто, чаще всего физически ПЛК состоят из отдельных модулей. Для программирования у каждого ПЛК есть своя среда разработки, иногда она объединена со средой для создания SCADA.
Модули бывают такие:
Контроллер B&R серии X20
Зачем нужен блок питания — понятно. БП сделан отдельным именно модулем, а не устройством, чтобы гарантировать совместимость с данной линейкой ПЛК. Чаще всего входное напряжение у БП 220 В переменного тока, выходное — 24 В постоянного тока.
Процессорный модуль — это голова ПЛК. Об этом говорит сайт https://intellect.icu . Внутри у него, само собой, ЦПУ, ОЗУ и ПЗУ, сервисный порт для прошивки и, возможно, коммуникационный порт (ethernet, RS232/422/485, Profibus, etc). Иногда коммуникационный порт используется и как сервисный. Иногда на модуле есть переключатель (у Allen Bradley еще круче — там натуральный ключ с замочной скважиной) для перевода ПЛК в различные режимы работы. Отдельной кнопки включения/выключения нет, в лучшем случае — тот переключатель, иначе, если есть питание — ПЛК запускается, а выключается и перезагружается «по-варварски» отключением питания.
Контроллер Allen Bradley серии CompactLogix
Дискретные и аналоговые модули обрабатывают соответствующие сигналы. Входные модули принимают эти сигналы с поля, выходные — формируют их.
Дискретный сигнал — это обычно напряжение цепи 24 вольта. Есть 24 — это «1», нет — «0». Бывают модули на 220В, есть модули с проверкой целостности цепи. Дискретные сигналы, приходящие с поля, могут информировать, например, о состоянии насоса включен/выключен. Управляющие дискретные сигналы могут запускать либо останавливать этот насос. Оптимизация здесь не оправдана, поэтому на запуск будет отдельная цепь, на останов — отдельная.
Модули I/O одного типа могут быть объединены: например, один модуль с 16 дискретными входами и 16 дискретными выходами.
Аналоговые входные сигналы — это приходят показания с датчиков. Здесь чаще всего используется токовая петля 4-20 мА, в соотетствие которой ставятся пределы измерения датчика. Начинается от 4 мА для диагностирования обрыва цепи (если меньше 4 мА, значит где-то что-то не в порядке с проводкой).
Рассмотрим на примере уровня жидкости в резервуаре. Стоит уровнемер, он измеряет уровень от 0 до 2 метров. Тогда: уровень 0 метров — это 4 мА, уровень 2 метра — это 20 мА. Промежуточные значения калибруются по ситуации, не всегда 1 метр соответствует 4+(20-4)/2=12 мА, может быть небольшая погрешность, уровень в 1 метр может быть какие-нибудь 12,7553 мА.
Аналоговые выходные — то же, только на управление. Не встречал чтобы использовалось, т.к. всегда существуют наводки. В измерении это допустимая погрешность, в управлении — нет. Да и неудобно это. Вместо них используется цифровая передача данных по различным протоколам через коммуникационные модули.
Температурные модули замеряют сопротивление в цепи либо термо-ЭДС. Если на них подключаются термометры сопротивления — при нагревании металла его сопротивление, по законам физики, повышается, соответственно определяется температура. Если подключается термопара (два спаянных проводника из разных металлов, при нагревании стыка возникает разность потенциалов между другими концами), замеряется напряжение.
Интерфейсные (или коммуникационные) модули предоставляют нам порты под RJ45, DB9, DB15, просто клеммники или что еще бог производителю на душу положит. Помимо реализации непосредственно интерфейса (физического разъема под коннектор, физического уровня модели OSI) они также реализуют протокол обмена через этот разъем.
Протоколов напридумывали и используют кучу: ModBus (RTU, TCP, ASCII), Profibus, Profinet, CAN, HART, DF1, DH485 и т.д. Некоторые особо хитрые производители реализуют свои протоколы поверх общепринятых.
Я достаточно тесно знаком с интерфейсами RS232/485 и протоколами Modbus. RS232 это всем знакомый COM-порт, с тремя основными линиями: Tx (transmit, передача), Rx (recieve, получение) и GND (ground, земля). RS485 это асинхронный полудуплексный последовательный интерфейс по 2 проводам (совмещенные Tx/Rx+ и Tx/Rx-) или 4 проводам (отдельно Tx+, Tx-, Rx+, Rx-) с разностью потенциалов на каждой паре от 2 до 10 вольт.
А модбас это в общем-то нехитрая штука, с проверкой целостности пакета по чексумме, подтверждением доставки и корректности запроса — или ответом, почему запрос неверен. В сети модбас есть два вида устройств: master — инициирует обмен; slave — выполняет запросы мастера. Пакет от мастера расходится ко всем слейвам, которые сравнивают адрес назначения со своим, если сходится, то смотрят следующие два байта — это команда работы с регистрами памяти — чтение/запись (за исключением нескольких редко используемых служебных команд), потом байты адреса и непосредственно данных, в конце чексумма. Достаточно подробно и понятно расписано на википедии.
Первое, что нужно сказать, программа в ПЛК выполняется циклически с определенной частотой. Возможности зависят от контроллера, обычно это где-то 20, 50, 250 мс, 1, 2, 3, 4, 5 с. Естественно, это не гарантирует выполнение кода именно за такой промежуток времени, нельзя большие программы пихать в цикл 20 мс, к началу следующего цикла предыдущий должен быть завершен.
Второе, это языки программирования. По идее программируются ПЛК на языках, определенных стандартом МЭК61131:
Это «по идее». Но, например, Siemens придерживается своего наименования языков, а у B&R есть возможность писать на ANSI C.
Самые используемые контроллеры, безоговорочно, у Siemens и Allen Bradley (последним, к слову, принадлежит Rockwell Automation со своей линейкой SCADA-пакетов RSView). За ними по пятам идут Schneider Electric; ОВЕН; General Electric; AutomationDirect; ICP DAS; Advantech; Mitsubishi Electric; B&R.
Нижний уровень промышленного программирования - это уровень программирования, который ближе всего к аппаратной части электромеханических устройств(полевое оборудование, датчики, измерительные приборы, исполнительные механизмы). На этом уровне программисты работают с непосредственно с аппаратным обеспечением и механимами, такими как - датчики, сенсоры, спольительные механизмы и другие компоненты.
Программирование на нижнем уровне может включать в себя работу с языками программирования, такими как ассемблер или C, а также с библиотеками и утилитами, которые используются для разработки операционных систем, драйверов устройств, встроенных систем и других приложений, работающих на уровне аппаратного обеспечения.
Программисты на нижнем уровне должны быть знакомы с архитектурой компьютера, понимать, как работает процессор, как управлять памятью и взаимодействовать с устройствами ввода-вывода. Они также должны быть способны эффективно оптимизировать код для достижения высокой производительности и эффективности при работе на низком уровне.
Существует множество типов датчиков, которые используются в автоматизированных системах управления (АСУ) и промышленном программировании в целом. Рассмотрим некоторые из наиболее распространенных типов:
Датчики температуры - измеряют температуру объектов и среды в промышленных процессах.
Датчики давления - используются для измерения давления газов и жидкостей в трубопроводах, емкостях и других устройствах.
Датчики уровня - измеряют уровень жидкости или сыпучих материалов в емкостях и других устройствах.
Датчики влажности - измеряют относительную влажность воздуха и других газов.
Датчики движения - используются для обнаружения движения объектов в промышленных процессах.
Датчики расстояния - могут измерять расстояние до объектов и обнаруживать их наличие.
Датчики силы - используются для измерения силы, которую могут испытывать объекты в промышленных процессах.
Датчики вибрации - измеряют вибрации объектов, что может помочь в определении неисправностей и предотвращении отказов оборудования.
Датчики газов - используются для обнаружения и измерения концентрации различных газов в промышленных процессах.
Это лишь некоторые из типов датчиков, которые могут быть использованы в промышленном программировании и АСУ. Каждый тип датчика имеет свои особенности и требования к подключению и обработке данных, поэтому выбор датчика зависит от конкретных потребностей промышленного процесса.
Датчики и исполнительные устройства подключаются отдельными проводами непосредственно к модулям ввода-вывода, при помощи модулей согласования к входам/выходам сигнальных модулей либо (в случае организации в устройстве интерфейса с шиной) через модуль связи (мост); в случае использования полевой шины типа AS-i возможно питание исполнительного механизма по шине с одновременной передачей сигналов управления.
На этом уровне находятся устройства связи с объектом, которые принимают, выдают на объект группу аналоговых и дискретных сигналов, а также имеют связь через различные адаптеры с Fieldbus, котроллерами и компьютерами. Устройства уровня 1 являются безынициативными, работают под управлением контроллеров или компьютеров и располагаются вблизи с объектом управления. Использование этих УСО снижает затраты на монтаж и кабельную продукцию.
Наряду с использованием электромагнитов в качестве переключающих элементов в электрических цепях (реле и контакторы постоянного и переменного токов), их также широко применяют в качестве приводных элементов различных механических устройств. Создаваемое электромагнитом тяговое усилие позволяет осуществить необходимые изменения в положении того или иного рабочего органа при дистанционном управлении последним. Все подобные устройства относятся к так называемым электрическим ИМ.
Вобщем случае ИМ можно рассматривать как усилитель мощности, преобразующий слабый входной сигнал в выходной, достаточный для перемещения регулирующего органа. Исполнительные механизмы характеризуются механической и тяговой характеристиками.
Чаще всего РО являются различного рода дроссельные заслонки, клапаны, вентили, золотники, задвижки, шиберы. Для воздействия на РО может понадобиться либо достаточно ограниченное линейное перемещение или поворот на определенный угол, либо перемещение в весьма широких пределах. С этой точки зрения различают устройства с вращательным движением исполнительного органа в пределах одного оборота; с многооборотным вращательным движением и с прямолинейным движением. Любой из этих механизмов может быть позиционного или пропорционального действия. К первым относятся устройства, в которых РО изменяет свое положение при изменении управляющего воздействия не непрерывно, а переходом (скачком) от одной фиксированной позиции к другой. Таких позиций во всем диапазоне изменения положения РО может быть несколько. Соответственно различают двухпозиционные, трехпозиционные и многопозиционные устройства.
Электромагнитные ИМ, как правило, используются только в двухпозиционных устройствах, во всех остальных случаях предпочтение отдается электродвигательным ИМ.
Электромагнитные силовые элементы, кроме того, широко используются для сцепления и расцепления вращающихся валов (электромагнитные муфты),
атакже в роботах в качестве электромеханических манипуляторов, устройств фиксации положения звеньев типа фрикционных тормозов с электромагнитным управлением.
Втехнологических процессах, связанных с потоками жидких и газообразных сред, одним из основных элементов автоматизированных систем управления является арматура с электромагнитным приводом, устанавливаемая на агрегатах, трубопроводах и прочем технологическом оборудовании и позволяющая управлять перераспределением потоков жидкостей и газов посредством электрического сигнала.
Общим недостатком электромагнитных вентилей и клапанов следует считать возможность возникновения гидравлических ударов при перекрытии трубопровода с жидкостью из-за мгновенного изменения их состояния, а также конструктивные трудности при необходимости комбинирования с ручным управлением.
Одним из возможных ИУ малых перемещений (наряду с широко используемыми, базирующимися на обратном пьезоэффекте или эффекте теплового расширения) могут служить электромагнитные и магнитострикционные устройства.
Муфта представляет собой устройство предназначенное для передачи вращения от одного вала (ведущего), непосредственно соединенного с двигателем, к другому валу (ведомому) связанному с исполнительным органом (приводимым механизмом).
При необходимости быстрого включения приводимого механизма или его реверса, а также для регулирования или ограничения передаваемого момента используются расцепляющиеся электромагнитные муфты, среди которых, в зависимости от принципа действия различают три типа: фрикционные (с механической связью); ферромагнитные (со связью через ферромагнитный наполнитель); индукционные и гистерезисные (со связью через магнитное поле).
Передаточные механизмы (ПМ), обеспечивают передачу движения от двигателя к исполнительному органу, разделяются на ПМ линейных движений и ПМ круговых движений. Наиболее характерными ПМ линейных движений являются винтовые, реечные, тросовые, цепные; ПМ круговых движений зубчатые цилиндрические и конические, червячные, планетарные, волновые. Тип ПМ выбирают исходя из сложности его конструкции, КПД, люфта, габаритных размеров и массы, свойств самоторможения, жесткости, удобства компоновки, технологичности, долговечности стоимости. Рассмотрим устройство и особенности применения ПК, наиболее распространенных в системах управления движением механизмов.
Передаточные механизмы линейных движений. Передача винт-гайка скольжения. Передача служит для преобразования вращательного движения в поступательное, а в отдельных случаях и для преобразования поступательного движения во вращательное. Достоинства передачи: простота конструкции, компактность, высокая надежность, плавность, бесшумность, обеспечение медленных перемещений с большой точностью, большой выигрыш в силе. Недостатки: повышенный износ резьбы вследствие большого трения, низкий КПД, наличие люфтов.
Передача винт-гайка качения. Передача предназначена для преобразования вращательного движения в поступательное и, наоборот, поступательного движения во вращательное. По сравнению с предыдущей передачей она характеризуется значительно большим КПД, меньшим износом, большей точностью хода, повышенной долговечностью. Между рабочими поверхностями гайки и винта передачи помещены стальные шарики. Скорость перемещения шариков отличается от скорости ведущего и ведомого звеньев. Поэтому для обеспечения непрерывной циркуляции шариков концы рабочей части резьбы соединены возвратным каналом.
Дифференциальная винтовая передача. Передача состоит из винта с двумя участками резьбы разных шагов (р1 и р2), но одного направления (правого или левого), гайки и стойки. При вращении винта гайка совершает два поступательных движения: относительно винта и вместе с винтом относительно стойки.
Реечная передача. Предназначена для преобразования вращательного движения шестерни в поступательное перемещение (зубчатой) рейки и наоборот.
Передаточные механизмы круговых движений. Цилиндрическая и коническая зубчатые передачи. Применяются как двухсторонние передачи, различающиеся направлениями размещения осей шестерен. В одноступенчатом варианте обеспечивают малые значения коэффициентов редукции (до 5...8).
Червячная передача. Применяется как силовая передача, обеспечивающая коэффициенты редукции до 300 и более. Обладает свойством самоторможения. Недостатком передачи является невысокое значение КПД.
Планетарная передача. Применяется как двухсторонняя зубчатая передача имеющая малые габариты и массу и большие значения коэффициентов редукции. Особенностью передачи является наличие колес с перемещающимися геометрическими осями (сателлитами), которые обкатываются вокруг центрального колеса.
Волновая зубчатая передача. Передача состоит из генератора волны (два ролика установленные на водиле), гибкого колеса (тонкостенная цилиндрическая оболочка с нарезанным зубчатым венцом с числом зубьев z1), жесткого фиксированного относительно корпуса колеса, внутри которого нарезан зубчатый венец с числом зубьев z2. При вращении роликов происходит деформация гибкого колеса, сравнимая с размерами зуба, и осуществляется зацепление и передача движения от одного колеса к другому.
Надеюсь, эта статья об увлекательном мире промышленное программирование, была вам интересна и не так сложна для восприятия как могло показаться. Желаю вам бесконечной удачи в ваших начинаниях, будьте свободными от ограничений восприятия и позвольте себе делать больше активности в изученном направлени . Надеюсь, что теперь ты понял что такое промышленное программирование и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Промышленное программирование. программирование контроллеров simatic
Комментарии
Оставить комментарий
Промышленное программирование. программирование контроллеров
Термины: Промышленное программирование. программирование контроллеров