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

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

Все об АСУ ТП

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

Имитация Сложности — Антиномия Простого и Сложного

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

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


Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии26

IoT-шлюз для промышленных протоколов на базе i.MX6 и Linux

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


WISE-710 — это универсальное устройство, которое одновременно может быть шлюзом для промышленных интерфейсов, устройством сбора и обработки данных, хабом для IoT устройств и маршрутизатором. Построено на базе SoC i.MX6 и работает под управлением Ubuntu или Yocto Linux.

По сути представляет из себя компактный компьютер в промышленном исполнении со встроенными интерфейсами ввода-вывода для подключения любой автоматики, датчиков и другой промышленной периферии. Вместе с устройством разработчикам доступны открытые SDK для сборки ядра Linux и программ, а также варианты с предустановленным ПО EdgeLink, совместимым c более 200 драйверами устройств, а так же открытые протоколы вроде MQTT, Modbus и т.д.

В статье разберем функции устройства и варианты использования.
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Лучшие статьи автомобильной тематики для разработчиков на Хабре [170+]

Время на прочтение6 мин
Количество просмотров6.8K
image


  • По данным Международной ассоциация автопроизводителей (OICA) на 2015 год в мире эксплуатировалось 947 млн легковых и 335 млн коммерческих автомобилей (источник)
  • К 2050 году на дорогах мира будет в два раза больше автомобилей, чем сегодня, за ближайшие 30 лет добавится как минимум 1,2 миллиарда машин, подсчитали аналитики Всемирного банка.
  • Число легковых автомобилей, зарегистрированных на территории Российской Федерации, — чуть более 42 миллионов. (источник)

В рамках недавно анонсированной парадигмы работы с информацией «Ontol» мы просмотрели около 1500 статей по автомобильной (automotive) тематике на Хабре и вместе с сотрудниками НПП ИТЭЛМА выбрали самые интересные и полезные, на наш взгляд, материалы (присылайте свои тоже):

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

Шаблоны GRASP: Information Expert (информационный эксперт)

Время на прочтение4 мин
Количество просмотров19K
Привет, хабровчане. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В этот раз я решил написать небольшой авторский материал в преддверии старта нового курса «Архитектура и шаблоны проектирования». Приятного прочтения.





Введение


Описанные в книге Craig'а Larman'а «Applying UML and patterns, 3rd edition», GRASP'овские паттерны являются обобщением GoF'овских паттернов, а также непосредственным следствием принципов ООП. Они дополняют недостающую ступеньку в логической лестнице, которая позволяет получить GoF'овские паттерны из принципов ООП. Шаблоны GRASP являются скорее не паттернами проектирования (как GoF'овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP'овских паттернов является необходимым условием написания хорошего кода.

Полный список шаблонов GRASP состоит из 9 элементов:

  • Information Expert
  • Creator
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations

Предлагаю рассмотреть самый очевидный и самый важный паттерн из списка: Information Expert.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии9

Истории

Почему может понадобиться полусинхронная репликация?

Время на прочтение5 мин
Количество просмотров4.5K
Всем привет. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В преддверии старта нового потока курса «Архитектор высоких нагрузок» я решил написать небольшой авторский материал, которым хочу поделиться с вами.




Введение


Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду (что несравнимо с типичными rps'ами, приходящимися на высоконагруженную систему), классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.

На текущий момент имеются 2 паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии5

Самописный таймер в виде функции для промышленного контроллера Simatic S7-1200

Время на прочтение9 мин
Количество просмотров14K
Еще для серии S7-300 и S7-400 под Step 7 классических версий предлагаемых разработчику таймеров вполне хватало — это и стандартные таймеры IEC, реализованные в виде функциональных блоков, и таймеры S5 (которые, к слову, до сих пор существуют для серии S7-1500). Однако в ряде случаев разработчик не применял стандартные инструменты и реализовывал собственные таймеры, чаще всего — в виде функций. Такие таймеры-функции необходимы были при «айтишном» подходе к программированию, в котором оперировали не отдельными экземплярами функциональных блоков технологического оборудования, с соответствующей обвязкой входов и выходов, а массивами структур. Например — массив структуры типа «дискретный вход». Или массив структуры «агрегат». Такой подход к программированию имеет право на существование, поскольку позволяет серьезно экономить рабочую память CPU, но, с другой стороны, делает программный код трудночитаемым. Стороннему программисту и с простым видом программы на LAD разобраться получается далеко не сразу, а про кучи индексов, массивов и функций их обработки — и речи не идет, тут без документации к ППО (и без поллитры, разумеется) вообще никуда.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии7

Светодиодный костюм

Время на прочтение3 мин
Количество просмотров26K
Это первая часть моей публикации, в которой я постараюсь кратко и лаконично изложить технологию построения современного светодиодного костюма.

image

Уже более 4-х лет на рынке доступны цифровые светодиодные ленты на базе IC LED чипов (смарт пикселей). Суть таких пикселей довольно проста, в RGB SMD/DIP светодиод интегрируется микросхема, которая им управляет. Такие ленты обеспечивают высокую плотность — 144/100/60 пикселей на метр, малый вес, низкое напряжение питания, и простоту управления внешним контроллером.

image

Среди наиболее распространенных и популярных LED чипов можно выделить: WS2812B, WS2813, APA102, SK9822, UCS1903 с питанием 3,5-5В. В настоящее время также набирают популярность IC LED чипы с питанием +12В, это WS2815, GS8208.

image

Каждый пиксель такой ленты может управляться индивидуально, также как пиксель на экране монитора, т.о. это дает возможность построить на базе цифровой светодиодной ленты продвинутый LED костюм или «Пиксельный костюм».
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии24

Роль протокола MQTT в развитии промышленного интернета вещей

Время на прочтение5 мин
Количество просмотров4.6K
У нас часто проходят мероприятия, на которые мы приглашаем экспертов промышленной автоматизации. В 2016 году к нам приезжал Арлен Ниппер, который является одним создателей протокола MQTT. Хотим поделиться его докладом в русском переводе.


Сегодня я расскажу о Промышленном Интернете вещей (IIoT) и протоколе обмена данными MQTT. В 1978 году я учился на инженера-электрика в университете штата Оклахома. Я задавался вопросом: зачем я этим занимаюсь, это скучно и неувлекательно. Тогда у меня появилась возможность быть практикантом в компании Amoco Pipeline. В компании была установлена система автоматизированного управления и контроля данных — SCADA (Supervisory Control & Data Acquisition). Она включала ПЛК (программируемые логические контроллеры), которые передавали данные на центральный компьютер PDP-11 по многоканальным телефонным линиям через модемы Bell 202. И в 2016 г. мы используем такие же системы SCADA, что и более 35 лет назад.

И такие же системы SCADA, системы автоматизации производства, системы контроля и управления производством становятся элементом IIoT-инфраструктуры.

Для чего нужна IIoT-инфраструктура? Пользователи стремятся получать все больше возможностей, тратя меньше ресурсов. Этого невозможно добиться без получения и использования производственных данных нижнего уровня.
Всего голосов 4: ↑4 и ↓0+4
Комментарии3

Сенсорный терминал для суровых условий

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

Устройства Advantech TPC — это тонкие клиенты для запуска приложений человеко-машинного интерфейса (англ. Human-machine interface, HMI). Представляют из себя полноценный x86 компьютер с пассивным охлаждением, встроенный в защищенный монитор с тачскрином.

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

В статье мы протестируем устройства в работе в перчатках и разберем характеристики нескольких моделей.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии14

Логирование и трассировка запросов — лучшие практики. Доклад Яндекса

Время на прочтение7 мин
Количество просмотров20K
В Яндекс.Маркете большая микросервисная архитектура. Браузерный запрос главной страницы Маркета рождает десятки вложенных запросов в разные сервисы (бэкенды), которые разрабатываются разными людьми. В такой системе бывает сложно понять, по какой именно причине запрос упал или долго обрабатывался.


Анатолий Островский megatolya объясняет, как его команда решила эту проблему, и делится практиками, специфичными для Маркета, но в целом актуальными для любого большого сервиса. Его доклад основан на собственном опыте развёртывания нового маркетплейса в довольно сжатые сроки. Толя несколько лет руководил командой разработки интерфейсов в Маркете, а сейчас перешёл в направление беспилотных автомобилей.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии7

Обучение в Санкт-Петербургском Государственном Морском Техническом Университете продуктам Dassault Systèmes

Время на прочтение5 мин
Количество просмотров2.8K
Здравствуйте! Нас зовут Армен и Надия, мы бывшие студенты, а теперь преподаватели СПбГМТУ. Мы обучаем студентов и консультируем инженеров судостроительной и автомобилестроительной отраслей по основам и тонкостям работы в CATIA V5 в рамках базового и продвинутого курсов.

image
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии3

Master SCADA 4D. Есть ли жизнь на ARMе?

Время на прочтение6 мин
Количество просмотров23K
image


Имея достаточно большой опыт работы в области промышленной автоматизации, мы вечно находимся в поиске оптимальных вариантов для решения своих задач. В зависимости от технического задания заказчика, приходилось останавливаться на той или иной программно-аппаратной базе. И если не было каких-то жестких требований по установке оборудования Siemens в связке с TIA-portal`ом, то, как правило, выбор падал на MasterSCADA 3.XX. Однако ничто не вечно под луной…

О своём опыте перехода на MasterSCADA 4D, предпосылках, особенностях её работы на встраиваемых компьютерах архитектуры ARM под катом данной статьи.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии33

Как мы мигрировали с Oracle JDK и Java Web Start на AdoptOpenJDK и OpenWebStart

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


Доброго времени суток.

В данной статье я расскажу о «модернизации» в компании, в которой я работаю, такого инструмента как Java Web Start, а точнее об его замене альтернативным opensource решением.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии5

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

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн

Некоторые тонкости injection'а коллекций в Spring'е

Время на прочтение4 мин
Количество просмотров26K
Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта курса я решил написать небольшой авторский материал, которым хочу поделиться с вами.





Предыстория


Spring содержит внутри себя много «магии», осуществляя самостоятельно некоторые неочевидные вещи. Незнание или непонимание этого может приводить к side-эффектам, с которыми вы можете столкнуться в процессе написания своего приложения, используя данный framework.

Одной из таких неочевидных вещей является injection интерфейсов Java Collection Framework'а. Самостоятельно наступив на грабли, связанные с этой темой, и услышав очередные вопросы от коллег, я решил с ней разобраться и зафиксировать результаты своих исследований в виде статьи с надеждой, что она кому-то поможет уже в работе или при начальном освоении Spring'а.
Читать дальше →
Всего голосов 30: ↑22 и ↓8+14
Комментарии19

Анимация схем в SCADA

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

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

image

В этой заметке рассказывается о раскраске элементов подобных схем, приводится описание способа решения для Simatic WinCC v7 и реализации в Simargl SCADA. Если Вам не приходится работать с WinCC, то можно смотреть сразу в конец статьи — там есть любопытное видео.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии37

Внезапно, одной лишь системы сборки мусора недостаточно

Время на прочтение3 мин
Количество просмотров5.2K
Вот вам небольшая история о таинственных сбоях сервера, которые мне пришлось отлаживать год назад (статья от 05 декабря 2018, прим.пер). Сервера некоторое время работали нормально, а затем в какой-то момент начинали аварийно завершаться. После этого попытки запустить практически любую программу, что были на серверах, терпели неудачу с ошибками «На устройстве нет места», хотя файловая система сообщала только о нескольких занятых гигабайтах на ~20 ГБ дисках.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии12

Ментальные Модели Реактивного Программирования для начальников

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

Эта статья рассчитана на широкий круг читателей, которые хотели бы узнать, что такое Реактивное Программирование. Цель этой статьи — сформировать у вас базовые Ментальные Модели Реактивного Программирования (ММ РП), не вдаваясь в технические детали.
Читать дальше →
Всего голосов 16: ↑10 и ↓6+4
Комментарии40

Зависимые типы в Haskell: почему это будущее разработки программного обеспечения

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


В Serokell мы занимаемся не только коммерческими проектами, но стараемся изменить мир к лучшему. Например, работаем над улучшением главного инструмента всех хаскелистов – Glasgow Haskell Compiler (GHC). Мы сосредоточились на расширении системы типов под впечатлением от работы Ричарда Айзенберга "Зависимые типы в Haskell: теория и практика".


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

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии85

ToolKit на базе Eclipse и GTK+, для «Toradex Colibri T20 (Linux)»

Время на прочтение4 мин
Количество просмотров3K
Эта статья рассчитана прежде всего на то, чтобы сэкономить время при создании тулкита, но при этом я постараюсь рассказать все достаточно объемно.

Описание оценочной платы
Плата составлена на базе двухъядерного процессора «NVIDIA Tegra Cortex-A9».
Может работать на Windows CE 7.0* и Linux.
RAM: 512MB
Полные характеристики доступны по ссылке.
*Должен предупредить — я не рекомендую WinCE7.0 в качестве ОС для данной платы, если принципиальным для разработки является C++, т.к toolkit лично мне собрать было не просто. Исключение — если ваше приложение является консольным, тогда проблем возникнуть не должно. CoDeSys и C# — проблем не вызывают.
Внешний вид платы
image
image


Содержание
  1. Скачать все необходимое
  2. Установка SDK
  3. Проверка SDK
  4. Установка Eclipse
  5. Подключение GTK к Eclipse
  6. Настройка проекта Eclipse
  7. Результат


Скачаем все необходимое:


Первое — это SDK для платы, которое можно скачать на официальном сайте Toradex.
Второе — нам нужен хост с Ubuntu 16.04 LTS.
Третье — непосредственно Eclipse для C/C++.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Высокоскоростной PAC контроллер AMAX-5580

Время на прочтение4 мин
Количество просмотров4.3K
image
В связи с современными требованиями, предъявляемыми к промышленным контроллерам, об открытости архитектуры, а также, с бурным ростом производства PC-совместимых компьютеров, последние все чаще стали использоваться в качестве контроллеров для задач промышленной автоматизации. Такие РС-совместимые контроллеры получили название SoftPLC. Это название свидетельствует о том, что большинство функций обычных PLC, которые решались на аппаратном уровне могут решаться с помощью программного обеспечения.

К основным преимуществам PC-совместимых контроллеров можно отнести: их открытость, расширяемость и возможность выбора средств программирования.

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

Компания Advantech, выпускающая промышленные компьютеры уже 30 лет, в 2019 году анонсировала выпуск нового промышленного PC-совместимого контроллера WISE-5580 c высокими показателями производительности и быстродействия.
Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии11
Изменить настройки темы

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