Как стать автором
Обновить
26.52

Промышленное программирование *

Все об АСУ ТП

Сначала показывать
Порог рейтинга
Уровень сложности

Веселые уроки WinCC OA. Массовая конфигурация точек данных. Импорт / экспорт

Время на прочтение3 мин
Количество просмотров2K

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

О программных ошибках на примере MATLAB и SimInTech

Время на прочтение5 мин
Количество просмотров3.5K

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

И, вроде бы все так, да не всегда. Критично ли наличие ошибок в программах? Странный вопрос - конечно, критично. Но, тем не менее, найдутся и те, кто скажет – не беда. И даст этому свое объяснение. Здесь, правда,  можно вспомнить, как фирма Intel объясняла несущественность ошибки деления с плавающей точкой в процессоре Pentium (подробнее см. [1]). Но общественность и пользователи объяснили Intel, что она не права. И, понеся большие репутационные и финансовые потери,  ей пришлось с этим согласиться и исправить положение.

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

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

Читать далее
Всего голосов 12: ↑4 и ↓8-4
Комментарии88

Провести собеседование и не остаться «душнилой»

Время на прочтение3 мин
Количество просмотров17K

«Можно вечно смотреть на три вещи: как горит огонь, как течет вода и как несколько бездельников Senior dev собеседуют Junior».

Как их проводить, как понять, что компания не подходит, с кем соглашаться работать, а с кем нет?

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

Читать далее
Всего голосов 18: ↑12 и ↓6+6
Комментарии30

Арифметическое переполнение в ПЛК AllenBradley

Время на прочтение3 мин
Количество просмотров2.8K

Недавно на работе столкнулись с интересной ситуацией, о которой захотелось написать тут, потому что случай довольно интересный, хотя как и оказалось простой. На одном из агрегатов, управляемым контроллером от Allen Bradley Compact Logix L33ER, в контроллере постоянно сыпались предупреждения, а точнее даже минорный ошибки (Minor Faults) - которые на функциональность никак не влияют, но раздражают своим присутствием. В секунду по нескольку десятков таких ошибок без перерыва: Type 04 Program fault (Code 04) Arithmetic overflow. Result of an arithmetic instruction out of range, что переводится примерно как "Арифметическое переполнение. Результат арифметической инструкции вышел за предел."

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии14

Истории

Улучшаем маршруты обхода на складе силами веб-программиста и математики

Время на прочтение10 мин
Количество просмотров5.6K

Сразу к сути: есть склад, где все бизнес-процессы уже отлажены и в целом всех всё устраивает. Ничего, что даст рост в 30%, сделать уже невозможно, но хочется. Поставлена цель: оптимизировать маршрут, по которому идёт сборщик товаров, чтобы товар собирался быстрее. Результат 2-3% роста вполне устроит. Ограничения:

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

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

Для прочтения знать сам алгоритм k-ближайших соседей не требуется — он очень простой и станет ясен ещё в ходе прочтения. Он чем-то похож на теорему Пифагора, только на стероидах.

Читать 2500 слов
Всего голосов 10: ↑10 и ↓0+10
Комментарии19

Модульное Тестирование в Embedded (или код без модульных тестов — Филькина грамота)

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.6K

Часто в РФ приходится слышать мнение, что в Embedded разработке якобы в принципе не может быть никакого модульного тестирования. Инженеры за 40 в (7 случаях из 10) даже никогда не слышали термина unit testing. В России бытует даже расхожее мнение

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

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

Читать далее
Всего голосов 14: ↑7 и ↓70
Комментарии62

Пример построения производственной ЛВС для очень простого объекта

Время на прочтение34 мин
Количество просмотров14K

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

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

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

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии5

Организация аварийных и технологических защит на примере технологической печи

Время на прочтение30 мин
Количество просмотров7.1K

Организация аварийных и технологических защит на примере технологической печи

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

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

Предложенный подход основан на личном опыте автора, автор не претендует на истинность.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии10

Часть 4. Немного про SCADA

Время на прочтение30 мин
Количество просмотров24K

SCADA (Supervisory Control And Data Acquisition) – вариант человеко-машинного интерфейса (ЧМИ), если перевести почти дословно – диспетчеризация, управление и обработка данных.

История развития ЧМИ.

Обзор решений SCADA.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Часть 3. Мифы on-line модификации прикладного ПО ПЛК

Время на прочтение5 мин
Количество просмотров4K

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Часть 2. Немного про ПЛК

Время на прочтение26 мин
Количество просмотров16K

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

Из прошлой статьи:

Принцип построения промышленной системы управления (автоматизации) для технологических процессов.

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Часть 1. История систем автоматизации

Время на прочтение25 мин
Количество просмотров15K

Основные понятия РСУ (DSC), PLC (ПЛК), ESD (ПАЗ) и различие между ними.

Когда «молодой специалист» сталкивается с современной терминологией систем промышленной автоматизации, то такие термины как DCS, РСУ, PLC (ПЛК), ESD, SCADA, СБиПАЗ вызывают некоторое недоумение, так как объективно существует несоответствие между термином и оборудованием. А если послушать объяснение менеджеров-продавцов систем автоматизации или их компонентов, почитать форумы, путаницы становится еще больше.

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

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии15

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

Время на прочтение14 мин
Количество просмотров9.4K

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

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

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

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

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии35

Ближайшие события

Запуск сервера сборки Jenkins

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

Итак в вашем репозитории накопилось количество сборок превысившее число 1. Настало время задуматься о DevOps(е). Как же уследить за всеми этими сборками?

Классическое решение это запустить сервер сборки. Есть готовая технология, называется Jenkins.

Идея проста. Сервер сборки это инфраструктурный прикладной процесс, который периодически запускает скрипты построения конкретных программных проектов и затем сохраняет *.bin(ари) в конкретную папку или архив. Обычно сервер сборки работает автономно 24/7 и собирает артефакты из репозитория с кодом.

В этом тексте я написал инструкцию-методичку для разворачивания Jenkins на Windows компьютере.

Читать далее
Всего голосов 11: ↑4 и ↓7-3
Комментарии23

Ну, Haiwell, ну, погоди

Время на прочтение5 мин
Количество просмотров3.2K

Времена нынче суровые. Откуда «прилетит» непонятно, но то, что «прилетит», сомневаться уже не приходится. Вот оно и … «прилетело». В связи с определенными обстоятельствами (возможно, вы даже догадываетесь какими) предложено рассмотреть  переход с ПЛК фирмы Delta на ПЛК от Haiwell. Мы, как говорится, и не такое  переживали, а потому качаем среду проектирования HaiwellHappy и пытаемся ее освоить. Самих ПЛК, хотя они уже заказаны (?!),  пока нет, но есть симулятор. Но для начала этого вполне достаточно…   

Путь проторенный. А потому в целях обучения и одновременно внедрения технологии автоматного программирования создаем – что? - правильно, модель RS-триггера. Почему? – см. статью [1]. Но, если кратко, то триггер - это фактически мизерный проект, от которого пользы – ну, просто туча. В этом и предстоит далее убедиться.

Однако, смотрим, на что же позарились наши менеджеры?… Цена ПЛК – хорошая! Ну, то есть – относительно небольшая. Для нормального менеджера этого, видимо, уже достаточно. Но работать-то – программистам!  Ставим среду и создаем наш первый проект. Это, как уже было сказано, модель реального RS-триггера.

Оставим в стороне всякие мелочные придирки к среде проектирования (обсудим их по ходу), а приведем сразу код проекта. Благо он, как уже было тоже сказано, мизерный. Его внешний вид приведен на рис. 1.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии9

Практика применения автоматов в ПЛК

Время на прочтение7 мин
Количество просмотров2.1K

Соловей!.. Ведь, слушайте, ведь вот пичуга! Ну, смотреть не на что!.. Ну, мелочь пузатая!.. А ведь как, подлец, природу украшал!.. Что делал, мерза­вец!.. Э-тю-тю-тю-тю-тю-тю, тю-тю-тю!..

Райкин А. Люди и манекены

Рассмотрим алгоритм, который заимствован из несложного проекта системы управления прессом. В сам проект вникать не будем, а рассмотрим лишь его небольшую и, пожалуй, самую простую часть – управление валками. На пульте управления есть кнопка «Валки» (на рис. 1 сигнал X6), при нажатии на которую посылается сигнал, который то прижимает, то отпускает валки. Преобразуем алгоритм управления валками в автоматную форму и посмотрим, что из этого получится.

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

Мороз, вагоны и математика: как новый цифровой сервис экономит нам до 4 млн кубов газа в год

Время на прочтение6 мин
Количество просмотров10K
Привет, Хабр! Меня зовут Никита Кретов, я бригадир рудного двора на липецкой площадке Группы НЛМК. И хотя сейчас у нас теплая золотая осень, мы вовсю готовимся к морозам. Расскажу, зачем зимой мы нагреваем вагоны с сырьем — не просто нагреваем, но еще и целыми вагонами опрокидываем (прямо, как на этом фото).



Опрокидываем мы круглогодично, в вот нагреваем только в холодное время года (как раз сейчас оно, увы, не за горами), и мы кое-что придумали, чтобы делать это эффективнее.
Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии60

Веселые уроки WinCC OA. Драйвер Modbus TCP

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.6K

Продолжаем расширять мой базовый курс работы с системой WinCC OA. На этот раз речь пойдет о драйвере Modbus TCP.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Технология автоматного программирования для ПЛК на языке LD

Время на прочтение8 мин
Количество просмотров6.4K

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

1. Автоматное программирование: определение, модель, реализация.

2. Вот, как просто! Автоматы в деле. Для ПЛК фирмы DELTA.

3. Автоматы в деле. Штабелер. Засады ПЛК.

Задание на проектирование программы

В предшествующей статье мы уже рассматривали штабелер. Здесь будет более сложный его  вариант. Это узкое «крыло», которое, находясь в исходном состоянии, с паузой после старта проката подхватывает лист металла и поддерживает его в процессе движения. После останова проката и отсечения листа оно выполняет «отскок» вперед, освобождая конец листа, который падает на приемное устройство - гидростол.  После этого "крыло" возвращается в исходное состояние. Во время этих движений прокат должен быть остановлен. После исполнения задания (формирования нужного числа листов заданной длины)  «крыло» перемещается в заключительную позицию за пределы гидростола. Возврат в исходное состояние происходит после нажатия кнопки «Штабелер». Выполнение самого задания начинается с нажатия кнопки «Прокат», а длина отдельного листа и общее их количество указывается на панели оператора. 

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии76

Мобильное ТОРО: ускоряем ремонты и бережем лес

Время на прочтение5 мин
Количество просмотров3.4K

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Вклад авторов