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



История WebHMI началась весной 2013 года. Тогда я загорелся идеей умного дома и на досуге делал всякие игрушки для автоматического включения света в туалете, сбора показаний со счетчиков воды и т.п. Однажды мой друг посмотрев на получившуюся систему и подумал что это можно продавать, и мы начали обдумывать – как и кому. Но получалось все как-то не элегантно. Чуть позже он пришел с другой идеей – нащупал пустующую нишу на рынке систем промышленной автоматизации. И мы реализовали ее.

Пролог


Ситуация была такой, что существующие решения на рынке автоматизации хорошо подходили для больших заводов с многомиллионными бюджетами, но в виду громоздкости и высокой стоимости были совершенно неприемлемы для среднего и малого бизнеса. Классические решения для мониторинга технологических процессов, SCADA системы, стоят много денег, требуют мощный промышленный ПК, лицензии на ОС и БД, требуют многих и многих часов работы квалифицированного инженера по настройке ПО и созданию проекта. Если у вас, например, небольшая теплица, то вкладывать десятки тысяч долларов в систему мониторинга нескольких десятков параметров вы, вероятно, не станете. А если таких теплиц, скажем, 10-20? А если они разнесены территориально? Стоимость таких систем сразу взлетает до небес, но они при этом все-равно плохо решают «небольшие» задачи. И совершенно не подходят для распределенных систем.

На другой чаше весов были HMI-панели. Они обладают относительно небольшой стоимостью (от нескольких сотен евро) и позволяют создать локальный интерфейс оператора для какой-либо небольшой системы. Как правило – одной установки. Однако такие панели обладают очень ограниченным функционалом и не удовлетворяют потребностей современных заказчиков.

На нишу между большими SCADA-системами и HMI-панелями мы и нацелились. Начали искать варианты того, что можно использовать в качестве ПО и аппаратной платформы. Очень быстро стало очевидно, что все прийдется делать самим, иначе заработать на решении не получится. Готовый промышленный ПК либо сделает решение слишком дорогим и неинтересным клиенту, либо не даст заработать. Готового ПО также не было.


Промышленный ПК, который мы не стали использовать

Забегая вперед, скажу, что у нас получилось создать продукт, который сравним по стоимости с HMI-панелью, но обладает несравнимо большим функционалом. Фактически, получилась полноценная SCADA-система. Причем, для разработки проектов на его базе не требуется никакое дополнительное ПО – разработка, а точнее конфигурирование, выполняется непосредственно в браузере. Весь необходимый софт идет в комплекте и работает на борту.

Процесс разработки любого устройства, а тем более промышленного, кардинально отличается от разработки ПО. Здесь цена ошибки несравнимо выше. Цикл «внесения изменения – проверка результата» длится неделями т.к. модификация платы требует заказа ее на производстве, сборки, наладки. А это — большие сроки изготовления, сроки доставки (из Китая), деньги на логистику, сборку, монтаж, отладку. Но, к счастью, в начале нашего пути мы этого не знали. А иначе не знаю решились бы играть в эту игру или нет.

Первые шаги


Разрабатывать свой ПК мы не взялись. Для этого банально не было ни опыта, ни денег, ни подходящих кадров. К тому же классические ПК слабо подходят для нашего применения. Мы представляли себе наш прибор как небольшую коробочку, которую можно разместить в шкафу автоматизации на DIN-рейку и запитать от имеющихся уже в шкафу 24В. Для этого решили взять подходящий готовый System-On-Module (SOM) и собирать «материнскую плату» с источником питания и всей необходимой для нас периферией. Задача казалась совсем несложной и реализуемой за несколько недель, максимум – месяцев.

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

Для первой версии ПО поставили себе задачу минимум – работа с протоколами Siemens PPI и Modbus ASCII/RTU. Т.к. у меня был большой опыт в веб-разработке, то интерфейс был изначально основан на веб-технологиях. В последствии это стало ключевой особенностью продукта.

Почему именно эти протоколы? Мы нашли потенциального заказчика – достаточно лояльного нам клиента, который был готов опробовать наш продукт для мониторинга своей установки по упаковке продукции. У него в парке оборудования были ПЛК семейств Siemens S7 200 и Delta DVP. Сейчас, конечно, список поддерживаемых протоколов намного шире. Можно, если нужно, даже писать свои протоколы на языке Lua. Но тогда об этом мы и не мечтали.

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

В дальнейшем, все новые «фичи» добавлялись только по мере реальной необходимости. Когда уже очень припекало. Причем, если фича нужна только одному конкретному клиенту и ее никак нельзя сделать полезной другим клиентам – мы ее не добавляем. Делаем только то, что можно «продать» еще кому-то.

Для отладки использовалась отладочная плата от производителя SOM и куча самодельных плат с различными подсистемами. Так получалось отладить работу основных периферийных систем без постоянной переделки всей базовой платы. Ее делали уже когда все составные части были готовы и работали как нужно.

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

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

Это связано, прежде всего, с весьма ограниченными ресурсами выбранного SOM – 400MHz CPU, 64MB ОЗУ, 16 MB Flash-памяти. Делать web-сайты, которые бы хостились на таком «сервере» – ой как непросто. Но тем не менее, у нас на борту есть и PHP, и база данных, и Nginx, и много других «плюшек». И при этом система может работать с потрясающей отзывчивостью – например, можно рисовать тренды, которые обновляются 20 раз в секунду.

Первая версия ПО была, скажем так, лишь проверкой идеи. Мы больше проверяли, что на этой платформе вообще можно реализовать то, на что мы замахнулись. Через 3-4 месяца разработки, худо-бедно, но софт «ожил». У нас появился веб-интерфейс, где можно было самому создавать экраны для отображения и визуализации данных с ПЛК. Данные читались в фоне и браузер постоянно обновлял информацию на экране компьютера, планшета или телефона в режиме реального времени. Ориентированность на веб стала краеугольным камнем нашего продукта – это позволяет использовать почти любую операционную системы и любое устройство для отображения интерфейса оператора, от телефона до Smart TV. Также это позволяет гибко интегрироваться в сетевую инфраструктуру, работать удаленно через интернет и т.п.

Первый наш проект состоял из двух десятков регистров (переменных, читаемых из ПЛК). Тогда мы планировали, что WebHMI будет применяться как раз для мониторинга небольших обособленных систем. Как же мы были скромны и неуверенны в себе тогда! Сейчас у наших клиентов есть проекты автоматизации магазинов и спортивных комплексов, где по две тысячи регистров. Но между первой альфой и текущей версией софта было более трех лет кропотливой разработки, отладки и оптимизаций.

Примерно тогда, когда была готова первая альфа-версия софта, наш хардварный инженер спроектировал и изготовил первую версию печатной платы устройства. Мы были счастливы наконец-то подержать в руках свое детище в первый раз! Это непередаваемые ощущения. Нас распирала гордость от того, что это именно мы сделали это устройство. Оно тогда было все еще как гадкий утенок – страшное. Но свое, родное.


Первая плата. Изготовлена в домашних условиях. Сейчас трудится у нас в офисе.

После сборки – обработать напильником


Корпус делать с нуля мы не стали. Это дорого, долго и сложно. Мы решили использовать один из имеющихся на рынке стандартных корпусов. Плата изначально проектировалась под конкретный корпус. Корпус выбрали «покрасивее» – итальянский. Ох, как же мы потом намучались с этой Италией! Но об этом чуть позже.

Корпус самого первого «изделия», фактически прототипа, мы фрезеровали вручную дремелем, доводили напильником. Получилось, конечно, не очень аккуратно. И шаг отверстий под светодиоды «поплыл», и прямоугольные отверстия оказались совсем не ровными. Но понять, как оно будет выглядеть, и, самое главне, поместить плату в корпус у нас вышло.


Первый корпус

Мы боялись, что разъемы не попадут куда нужно, что где-то напортачим. В целом, без ошибок не обошлось, но на удивление ничего фатального не было. Тут и там нужно было передвинуть разъемы на 1-2 мм и все. Разъемы, светодиоды и отверстия в корпусе мы двигали последующие, наверное, ревизий 10-15. Все время было что улучшить. Сходу сделать идеально все не выходило. Разъем Wi-Fi вообще пришлось заменить на нестандартный, более длинный. Т.к. некоторые антенны не хотели накручиваться на короткую резьбу.

Продажи


Что делать, когда готов первый прототип? Сразу его продавать! Но как просто показать клиенту промышленное устройство, которое взаимодействует с другими устройствами? Мы собрали демо-чемодан, в котором разместили минимальный джентельменский набор – ПЛК, блок питания, HMI-панель, и конечно же WebHMI.


Демо-чемодан

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

После презентации прототипа клиенту и получения одобрения с его стороны мы решили изготовить первую партию – 5-10 устройств. Как же это непросто и неоправданно дорого в нашей стране!

Идем в серию


Плата для прототипа была изготовлена в домашних условиях. А вот изготовление 12 простых двухслойных плат в Гальванотехнике обошлось в какие-то дурные по тем временам деньги (больше $100, кажется). Но качество плат и особенно шелковки заставляло плакать – почти кустарщина. Потом еще пробовали заказывать на заводе Этал. Также были разочарованы.


Слева – плата производства завода Этал. Справа – Китай.

Намного позже, когда мы заказали платы уже в Китае, мы снова прослезились. Качество было по сравнению с отечественными как небо и земля! Четкая шелковка, отверстия точно в центре падов, плотная и равномерная паяльная маска. Качество на два порядка выше местного производства при цене в три раза меньшей… Ну и кто после этого будет поддерживать отечественного производителя?


Платы из Китая. Aurix – кодовое имя проекта.

Комплектующие были куплены. Платы собраны, проверены. А вот с корпусами была беда.

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

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


Первые коммерческие изделия в корпусе.

Но пока длилась эпопея с корпусами, мы смогли уже продать первое устройство! Срочно нужно было что-то ставить клиенту на объект. Корпусов готовых не было. Так что первое коммерческое устройство тоже фрезеровалось вручную на балконе и было без надписей. Корпус в наличии оставался только экстравагантно–зеленого цвета. Но это все было не важно. Важно что нам заплатили – значит, мы делаем то, что нужно людям.


Боевое «крещение»

Работа в промышленной среде


На этом объекте мы впервые столкнулись с тем, что называется Industrial – шум, пыль, наводки. Организовать устойчивую связь по шине RS-485 «на столе» не в пример проще, чем на реальном объекте. У нас постоянно глючила связь. Сколько мы намучались с этой шиной! Но, как потом оказалось, виной была… наводка на кабеле. Между землей и сигнальными линиями А и Б возникала разность потенциалов до 40В, импульсно и хаотично. И это на кабеле длиной 50 см! Причем наводку было видно только на осциллографе. На вольтметре все было в пределах нормы. Устранив причину наводок, мы стабилизировали связь и получили работающую систему. Смогли сдать работу и получить следующий заказ.

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

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

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

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

Второе поколение


Также, заменили много других компонент, много других – добавили. Память стала не в виде USB-модуля, а в виде SD-карты. Появился Li-Po аккумулятор для возможности правильно завершить работу и, при желании, иметь возможность работать до двух часов автономно. Это позволяет пережить короткие пропадания питания без выключения и перезагрузок. Также, можно подать сигнал «бедствия» в системы верхнего уровня. Добавили возможность отключить питание на внешнем USB-разъеме для сброса внешних 3G-модемов, которые любят периодически зависать. Перепробовали разные хабы, формирователи шины RS-485.

С шиной RS-485 было много сложностей. Обычно, они были связаны с тем, что интеграторы очень не любят покупать специальный кабель для RS-485. Вместо дорогого специального кабеля они используют обычную витую пару, считая это равноправной заменой. Смятения вносит и непонимание с их стороны основ работы этой шины. Распространен миф, что для работы этой шины достаточно всего двух проводов – А и Б. Но это не так. При работе в промышленных условиях, на длинной шине и при питании всех устройств от разных блоков питания или даже фаз, возникают разности потенциалов и третий, общий, провод крайне необходим для выравнивания потенциалов. Также, крайне желателен экран. Теперь у нас используется гальванически развязанный формирователь RS-485. Это повышает надежность.

После выпуска обновленной версии «железа» мы заменили все ранее установленные приборы на новые версии для собственного спокойствия.

Надежность


WebHMI может пережить многие ошибки монтажа «малой кровью». Но некоторые из них требуют обращения к нашему сервисному инженеру. Любимое развлечение интеграторов – подать 230В на RS-485. Кстати, это единственные причины обращения по поводу ремонтов! Если не насиловать наше оборудование неправильным монтажем, то все работает как часы вот уже много лет.


Последствия подключения 230В на шину RS-485.

С флеш-накопителями мы также имели много разных проблем. Он используется для хранения изображений и базы данных с журналами, графиками и всеми другими накопленными данными. USB DOM (Disk-On-Module), которые мы использовали изначально, были редкими, нестабильного качества и скорости, малого объема, непредсказуемой доступности. В итоге мы перешли на промышленные карты памяти. С картами памяти была отдельная эпопея.

WebHMI сейчас поставляется без карты памяти, т.к. всем нужен разный объем. Промышленные карты стоят существенно дороже, чем коммерческие. Поэтому выбор карты мы оставляем за клиентом – слишком уж большая вилка в цене и объемах карты. Кому-то хватит и 1GB, а кому-то подавай 32GB.

Мы всем рекомендуем использовать промышленные карты. Но новые клиенты, видимо желая сэкономить, пытаются использовать коммерческие карты из соседнего ларька. Для них нет разницы – если написано что это SD-карта, значит она должна работать. Логично? Нет. Такие карты живут недолго. И пока клиент не потеряет свои данные, он не хочет верить в то, что не все карты одинаковые. Коммерческие карты могут «умереть» буквально за несколько недель.

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


Представители Transcend у нас в офисе. Обсуждаем их продукцию.

Поиграем в тетрис?


Новая ревизия платы требовала место для установки дополнительных крупногабаритных компонентов. Т.к. места в корпусе не стало больше, то пришлось думать, как все это разместить внутри отведенного места. Мы придумали слепить бутерброд из трех плат. Это позволило использовать весь объем корпуса. Но это и привнесло дополнительные хлопоты в логистику и комплектацию.

Необходимо было найти стойки редкой длины, придумать как передавать уйму сигналов между платами (стандартные 2,54 мм пинхедеры занимают слишком много места). Придумать как передать еще одну уйму сигналов на переднюю панель, на которой добавились дополнительные светодиоды индикации наличия интернета и VPN-соединения, кнопки сброса сетевых настроек. Все это требовало поиска различных компонент, их поставщиков, согласования макетов, замеров всех габаритов со штангенциркулем и примерок в корпусе, производства пробных партий и повторных переделок. Платы стали многослойными. Этот процесс занял очень много сил, нервов и времени. Наверное, пол года.





Здесь виден внутренний номер ревизии платы V05.34L4. Расшифровывается он просто – 5-е поколение дизайна, 34-ая ревизия. Вдумайтесь, мы нарисовали, произвели и проверили 34 модификации плат, прежде чем дошли до этого этапа! Это большой путь. К слову сказать, после этого было всего две небольшие модификации.


Внешний вид устройства

Внешне WebHMI тогда тоже облагородился. Цвет надписей стал серым, надписи мы научились наносить сами. Решить проблему с фрезеровкой в нашей стране небольшими партиями за адекватные деньги мы смогли лишь временно. Нам отфрезеровали штук 50 корпусов, затем лавочка закрылась. Сейчас корпуса нам фрезеруют в Италии производитель корпусов. А вот надписи мы научились делать сами. Купили станок для тампонной печати, освоили технологию печати. Получается очень хорошо, даже лучше, чем у итальянцев. Оно и понятно — мы можем себе позволить вылизать до идеала печатный процесс на нашем корпусе т.к. изделие у нас одно. Мы модифицировали печатный станок, сделали свои приладки — в общем, заморочились. Но оно того стоило. Встречают — по одежке.


Наш станок во время покупки

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

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

После доработки «железа» для стабильной работы в условиях металлургического цеха мы спим спокойно. Теперь все остальные применения нам кажутся детским садом – WebHMI выживет почти везде. Сейчас он используется в самых разных и неожиданных местах – от хлебо-булочных предприятий до пивзаводов, от металлургических заводов до железной дороги и портов, от магазинов до спортивных комплексов. И, конечно же, распределенные объекты – теплицы, газовые и электрические котельни, насосные станции, станции подкачки, поливные системы. Единственное существенное ограничение – это температурный диапазон от 0 до +50°С. Он ограничен наличием Li-Po батареи и параметрами её эксплуатации.

Упаковка


Интересной задачей было создание упаковки. Т.к. изделие у нас производилось не очень большими партиями, то заказать сразу несколько тысяч упаковок мы не хотели — это замороженные деньги и мертвое место для хранения в офисе. Поэтому упаковку делали сами. Заказывали резку поролона на лазере и клеили ложемент по мере продаж. Вкладываем его в подходящие картонные коробки стандартного размера. Изображение на коробки нам наносит шелковкой знакомый мастер. Получается красиво и практично. Хотя резка поролона — противное занятие. Он все время норовит воспламениться, коптит, воняет. Получается дорого, много брака. Но зато конечный результат — классный. Выглядит дорого. Встречают, ведь, по одежке. Да и прибор при транспортировке надежно защищен.


Внешний вид упаковки

Затем мы нашли еще несколько хороших дилеров и интеграторов, со многими сотрудничаем и до сих пор. Прямыми продажами мы не занимаемся, зато работаем над развитием дилерской сети. Помогаем при необходимости дилерам, участвуем с ними в семинарах, выставках, обучаем их персонал работе с WebHMI. Развивать дилерскую сеть — это, как оказалось, тоже интересная и увлекательная задача. Дилеры постоянно норовят увести клиента друг у друга, ссорятся. И нам необходимо отстроить систему так, что бы и дилерам было интересно работать и клиенты были довольны.


Семинар по WebHMI

На семинарах задают много интересных вопросов. Некоторые из них приводят к улучшению прошивки. Но бывают и курьезы. Запомнился один мужчина, который на каком-то семинаре все пытался выяснить откуда мы «слизали» прибор. Пытался докопаться до любой мелочи что бы уличить нас в плагиате. Самым сильным его аргументом было то, что у нас тогда был только английский язык в интерфейсе – мол это потому, что мы взяли какой-то чужой софт и выдаем его за свой. Это сейчас у нас есть несколько языков интерфейса, включая английский и русский. А тогда мы даже немного опешили от его напора и недоверия.

В качестве эксперимента пару лет назад мы подарили демо-стенд с WebHMI на кафедру автоматизации в Национальных горный университет. Особых плодов это пока не принесло, но мы не расстраиваемся – вдруг это «выстрелит» позже?

Стенд для университета

Эпилог


Подводя итоги, хочу сказать что путь разработки промышленного устройства увлекателен, тернист и непредсказуем. Собрать прототип — дело нескольких недель. А вот создать коммерческое стабильно работающее сложное устройство — дело даже не одного года. Если вы чувствуете в себе силы идти по нему — смелее. Дорогу осилит идущий. Но наберитесь терпения — не все так просто, как кажется на первый взгляд.

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

Комментарии (57)


  1. Dru4
    09.03.2017 15:30
    +2

    Приятно прочитать -)

    Всё это до боли знакомо- мы производим лазерные станки, в том числе сложные и весьма нестандартные, под конкретного заказчика. Как обычно, со стороны кажется «Да что там, всё же просто и очевидно». И только тот кто реально занимается изготовлением, понимает, насколько это сложный, долгий, и иногда непредсказуемый путь.


  1. dmitryrf
    09.03.2017 17:07

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

    Нам точно так же предъявляли :)


  1. Arxitektor
    09.03.2017 18:25

    Спасибо. Супер с интересом прочитал.
    А почему используете светодиоды? А не небольшой дисплей?
    Просто показалось что он удобнее и плёночную клавиатуру с парой кнопок.
    И после прочтения понимаешь почему пром автоматика такая дорогая.
    Ограничения железа не чувствуете нет необходимости в более мощное?
    По поводу АКБ не пробовали использовать LiFe? Он долговечнее и диапазон температур выше.


    1. kuzmuk
      09.03.2017 19:30

      В промышленных условиях светодиод видно лучше и с бОльшего расстояния, чем маленький экран. Людям со слабым зрением легче рассмотреть светодиоды и по телефону легче сказать «магает красный», «зеленый светится постоянно», «все мигает». Светодиод легче встраивается в корпус — достаточно круглое отверстие просверлить.

      Не совсем понятно чем пленочная клавиатура удобнее? У нас всего две кнопки вкл/выкл/сброс и сброс сетевых настроек. Они хорошо помещаются под стеклянную крышку корпуса и защищены ею от случайного нажатия. Пленочная клавиатура потребует усложнения корпуса, изготовления этой самой заказной клавиатуры, логистики… Зачем?

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

      Cпасибо за подсказку про LiFe. Мы не знали что они могут эксплуатироваться от –30°С. Изучим вопрос, и, возможно, применим их если найдем подходящий по габаритам аккумулятор. У нас есть ограничение по максимальной толщине.


      1. evgeny_boger
        09.03.2017 21:08

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


        А не думали взять готовое железо? Сейчас его довольно много, вот например Wiren Board.

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


        1. kuzmuk
          10.03.2017 01:43
          +1

          Экономический смысл есть. Иначе бы и не ввязывались в эту игру.

          Чужой продукт – чужие баги, меньшая добавленная стоимость, ограниченная поддержка.

          Вы бы ездили к нашему клиенту вылавливать проблемы с зависанием или перезагрузкой устройства, которое возникает спонтанно раз в 2-4 недели? Или спихнули бы все на кривой софт? Сколько бы стоили такие поездки и за чей счет они бы были?

          А если бы нам был нужен другой тип формирователя RS-485 — вы бы подстроили продукт под нас? Или вот блок питания нас не устраивает. Хотим фильтрацию получше. Измените схемотехнку для нас? Как быстро? За чей счет?

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


          1. evgeny_boger
            10.03.2017 03:46
            +1

            Вы правильные вещи говорите, но ведь и в пользу другого решения есть сильные аргументы.

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

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

            Про трансивер RS-485 и фильтрацию: конкретно мы и конкретно эти две вещи — да изменили бы, да быстро: у нас и то и другое сделано маленькими модулями, которые можно выпускать отдельно и быстро. Но это плохой пример, потому что понятно, что какие-то другие вещи (форм-фактор, объём оперативки, расположение разъёмов) под клиента производитель менять не будет, потому что тут весь смысл продажи готового отлаженного устройства пропадает. В этом вы правы.

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

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

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

            Естественно, контролировать всю цепочку — это то, к чему нужно стремиться, но, как мне кажется, не так важно делать это с самого начала.

            В любом случае, получилось в итоге здОрово. И спасибо ещё раз за статью!


      1. teleghost
        10.03.2017 00:04

        температурный диапазон от 0 до +50°С. Он ограничен наличием Li-Po батареи и параметрами её эксплуатации.
        Cпасибо за подсказку про LiFe… применим их если найдем подходящий по габаритам аккумулятор. У нас есть ограничение по максимальной толщине.
        Ребята, при всём уважении ваши 0..+50°С на весьма холодном целевом рынке выглядят как-то несерьёзно. Может, проще сделать пару клемм для внешнего аккумулятора? Некрасиво, но IMHO дистанционный запуск котла в лютый мороз того стоит. Лично у меня надпись -40..85°C сразу вызывает приступ фетишизма:)


        1. kuzmuk
          10.03.2017 01:53

          Можем аккумулятор совсем не ставить :) Он нужен, в первую очередь, для правильного завершения записи в БД при пропадании внешнего питания.


  1. begemot_sun
    09.03.2017 18:27

    Интересно узнать кол-во инсталяций контроллера. Секрет?


    1. kuzmuk
      10.03.2017 01:54

      Несколько сотен


      1. segment
        10.03.2017 17:21

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


  1. Varkus
    09.03.2017 19:06

    Про сд-карты не согласен.
    Это не клиенты тупые нищеброды желающие сэкономить на картах, а ваши разрабы не
    желают подумать как оптимизировать работу с ФС.
    А если карта работает только в железке, то и ФС не обязательна. Так можно очень на долго продлить ей жизнь.
    Сам разработчик.
    Но когда сталкиваюсь с поставщиками, рассказывающими мне какое питание использовать, какие карты нужны, витая должна быть обязательно медная, а не омедненная — стопэ, парни, Вы за немалые деньги продаёте промышленную железку, которой нужны комнатные условия?
    В конечном итоге заканчивается — не нравится, не покупай.
    Сами же китайцев в пример проводите — они для клиента, а не клиент приползёт и в очередь встанет.


    1. kuzmuk
      09.03.2017 19:49
      +1

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

      С промышленными картами (которые SLC) у наших клиентов не было ни одной проблемы за многие годы эксплуатации на любых объектах. Много где данные пишутся на карту 24/7/365. А вот с бытовыми картами регулярно проявляются проблемы. В столе есть уже небольшое кладбище таких карт. Думаете, все дело в оптимизации ФС? Она более оптимизирована для SLC карт и менее оптимальна для самых дешевых MLC-шек, которые даже в смартфонах долго не живут?

      Да и если представители Transcend сами вертят носом от своих коммерческих карт, о чем тут еще говорить?


      1. evgeny_boger
        09.03.2017 20:57

        Там не в MLC/SLC дело. У нас MLC eMMC-чипы (индустриальные) стоят в контроллерах, за полтора года на несколько тысяч устройств — ноль возвратов по неисправности накопителя.

        До этого использовали microSD, коммерческие были Transcend. Вот они дохли от неосторожного взгляда.


        1. kuzmuk
          10.03.2017 01:55

          eMMC и SD карты (а особенно microSD) – это совсем разные вещи. Нарваться на поддельный чип eMMC намного сложнее т.к. ими не торгуют во всех ларьках.


      1. teleghost
        09.03.2017 23:08

        Раскройте, пожалуйста, коды изделий Transcend SLC флэш-памяти в формате USB DOM или microSD; я так понимаю, это именно SLC (не Super MLC)? Раньше был TS4GUFM, но он давно не актуален. Есть ещё HPE Flash Media Kit, по стоимости та ещё деталь самолёта…

        Я тоже интересуюсь тематикой износа флэшек и иногда пишу на эту тему тут и там. Для использования промышленной памяти вижу две основных причины: мороз и электрический износ. Второе зависит от типа (SLC/MLC) и регулируется встроенным микроконтроллером, прошивка которого в промышленных изделиях существенно умнее, а используемые коды ECC — длиннее. На SSD для ЦОД стоит конденсатор, ёмкости которого хватает на закрытие последней транзакции, иначе даже журнал не спасёт. Поинтересуйтесь у Transcend насчёт их USB DOM, CF и microSD — что они скажут?

        Вы как-то измеряли интенсивность записи в сутки, приводили её к чему-либо, или вся теория надёжности строится исключительно на практическом feedback? Какой тип файловой системы используете, выделяете ли раздел под запись? Может, лучше отдельную флэшку под систему, отдельную (или SSD) под данные? Или просто две флэшки в режиме резервирования?


        1. kuzmuk
          10.03.2017 02:12

          USB DOM мы не видели Transcend. Были другие, разные. Самые адекватные оказались STEC. У них сносная скорость записи (~70КБ/с в случайной записи по 4кб). Все остальное, что покупали, был мусор. Заказываешь одно – присылают другое и глазом не моргнув. Мол, «ой, мы тут обновили линейку, не успели вам сообщить что теперь это не SLC, а MLC».

          microSD не берем, берем полноразмерные SD SLC. По нашим наблюдениям они более живучие. Самый ходовой объем – 1GB. При объеме от 8 GB и выше клиенты уже крепко думают между MLC и SLC. 32GB берут только MLC, но тоже Industrial. Разница в цене уже очень ощутимая.

          Еще тестировали их superMLC (физически это MLC, но организована как SLC) для другого проекта. Но пока большой статистики нет.

          У нас аккумулятор как раз и был добавлен для правильного завершения работы в при пропадании внешнего питания. Искали альтернативы (больше электролитов, ионисторы и т.д) – все не дает хорошего результата. Особенно, если воткнут 3G-модем.

          Надежность вычисляем эмпирически. Используем ext4. Прошивка хранится во флеше SOMa. На карте – только изменяемые пользовательские данные. Про две флешки это уже перебор. Паранойя какая-то. Данные можно автоматически экспортировать к нам в облако и не переживать по поводу смерти карты настолько сильно. При большом желании можно подключить любой SSD или HDD в USB-порт и использовать его как хранилище.


          1. teleghost
            10.03.2017 09:46
            +1

            Используем ext4.
            microSD не берем
            и правильно делаете, потому что в microSD ставят максимально упрощённую «кухню», сильно оптимизированную под FAT в плане управления износом

            Прошивка хранится во флеше SOMa. На карте – только изменяемые пользовательские данные. Про две флешки это уже перебор.
            Нет, это и есть две флэшки, спасибо:)

            При большом желании можно подключить любой SSD или HDD в USB-порт
            Какую мощность подаёте на USB-порт? Есть ли полный сброс линии питания командой на несколько секунд?

            Я знаю, в Ваши края LTE ещё не пришёл, но когда придёт, лучше быть готовыми, ибо жрут LTE-терминалы изрядно. Заодно сразу подумайте про поддержку HiLink-модемов, иначе где-то на 20Мбит/с Ваш SOM будет тратить, наверное, треть ЦП на PPP-инкапсуляцию. Портал 4pda.ru — хороший источник. Впрочем, это так, перспектива…


            1. kuzmuk
              10.03.2017 13:15

              На USB выдаем 500мА. Есть микросхема, которая может по нашей команде отключить питание на внешнем USB-разъеме. Это как раз и нужно для борьбы с глючными коммерческими модемами.


              1. teleghost
                10.03.2017 18:59

                USB-порт со встроенным реле по питанию — молодцы, ну чем не Mikrotik:)

                Однако 500мА хватит на флэшечку, низкоскоростной 3G-терминал (в хорошей зоне приёма) и некоторые SSD (не все).

                При интенсивной передаче из какой-нибудь, простите, жопы модему нужно больше энергии: он может голодать и глючить. А вот LTE-терминал Huawei E3372 на скоростях передачи 30МБит/с потребляет порядка 600мА даже в зоне уверенного приёма, этому полампера точно не хватит. А Y-кабель нельзя использовать, реле не сработает.

                По SSD нагуглился один обзорчик бюджетных моделей 2010г., на Intel X25-V полампера хватит, а на X25-M G2 — уже нет.

                выводы:
                USB-порт с реле для сброса — must have для радиомодема в пром. оборудовании
                но 500мА маловато, гораздо лучше 900мА — nice to have:)


              1. teleghost
                11.03.2017 12:17

                PS.
                по профилированию и тестированию USB-питания очень рекомендую обзавестись хотя бы свистком «usb current voltage meter» с aliexpress, их там целый выводок всяких разных, цена 5 копеек

                для более точных и автоматизированных измерений подойдёт что-то вроде USBC-TKEY, хотя Вам наверняка такой проще самостоятельно изготовить и продавать;)


                1. kuzmuk
                  11.03.2017 12:22

                  У нас есть USB-амперметр. Иногда используем. Тут есть чуть больше по теме модемов 10 вредных советов по настройке интернет соединения через 3G модем

                  Для всего зоопарка модемов, что прошли через наши руки, 500мА хватало с головой.


                  1. teleghost
                    11.03.2017 13:24

                    10 вредных советов по настройке интернет соединения через 3G модем
                    амперметр увидел, Ok; если цель в том, чтобы заказчик после прочтения обратился к вам в контору за консультацией, то всё верно, так и надо:)

                    Однако тему USB-удлинителей можно чуть раскрыть:) Для начала рекомендую ввести дифференциацию на активные и обычные, добавить справочную таблицу с сечениями AWG и хотя бы дать элементарный совет как читать маркировку на кабеле: заказчик не разбирается, продавцы ахинею несут.

                    Раскрывать тему антенно-фидерных систем не стоит даже пытаться, это чисто проектная тема:) Я, кстати, тоже люблю советы давать, разделка популярного роутера как раз под шкаф (Wi-Fi антенны на кабелях снаружи, модем на активном удлинителе).
                    про активные USB-удлинители
                    Обычные удлинители — это вообще издевательство, иногда вместо внешней антенны лучше (проще) 5м активный удлинитель, но у них в «головах» (микроконтроллерах) тоже бывают своего рода тараканы (при обсуждении которых продавцы вообще не понимают, о чём речь, ведь это же удлинитель). Удлинитель №2 в моей статье отлично работает уже порядка года с весьма прожорливым LTE-модемом, добротная штука, рекомендую.


  1. shep
    09.03.2017 19:09
    +1

    Очень круто. Побольше бы таких статей! Очень вдохновляет на творчество. Было бы интересно про наиболее интересные технические решения почитать.


  1. sav6622
    09.03.2017 20:57

    Платы подобного класса и в России можно успешно сделать, Вам видимо сильно не повезло (таких «серпов» вокруг переходных не видел с середины 200х). Большие количества плат выгоднее и часто качественнее делать скорее в Китае.

    PS Дежавю какое-то, Вы точно статью пару лет назад не писали на эту же тему ?!?


  1. BalinTomsk
    09.03.2017 20:59
    +1

    — мы подарили демо-стенд с WebHMI

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

    тогда они и вашу продукцию на новой работе будут продвигать


  1. evgeny_boger
    09.03.2017 21:11

    Отличная статья, спасибо!

    1) Если не секрет, какой SOM использовали?
    2) На некоторых картинках на плате виден нарисованный на торце разъём. Можете рассказать, что такое и зачем?


    1. kuzmuk
      10.03.2017 02:17

      SOM на базе АR9331
      Инженерный разъем. Используется для программирования контроллера питания, диагностики железа, отладки. Удобен тем, что ничего не стоит.


  1. peacemakerv
    09.03.2017 21:40
    +2

    Уххх, напомнило те же самые «тернии к звездам» :)
    Когда в таком же режиме создавали систему беспроводного контроля вибраций и температуры подшипников на прокатных станах. И то, первичная версия была уже лет пять назад руководителем проекта создана, но кризис 2008 года сделал никому ненужным все эти «программные железки».
    А уж наша команда реанимировала и продолжила разработку, в том числе с тестированием и пилотным внедрением на прокатных станах.
    Две теоретические итерации с тренировками «на кошках», и три практические итерации на прокатных станах все-таки показали, что система может предотвращать аварии в реальном масштабе времени, не доводя огромные подшипники прокатного стана, заливаемые СОЖ (смазочно-хлаждающей жидкостью), до заклинивания, но… как обычно это бывает в _этой_ стране… начальство госпредприятия вдруг осознало, что недорогая система железок, оказывается, может остановить поток многоcоттысячных «откатов» при закупках подшипников в конкретные карманы…
    И наши разработки резко стали ненужными :)


  1. teleghost
    09.03.2017 23:52
    +1

    спасибо, авторы, тема интересная! но позвольте вставить свои пять копеек:)

    Делать web-сайты, которые бы хостились на таком «сервере» – ой как непросто. Но тем не менее, у нас на борту есть и PHP, и база данных, и Nginx, и много других «плюшек».
    Вот по этим плюшкам Вам и вломят, простите за прямоту:)

    Если общались с представителями отраслей по поводу безопасности АСУ ТП, там местами просто шок и ступор от осознания беспомощности. Какие-то inhouse-системы управления (условно) турбинами с ядерным распадом на древних виндах с кучей дырявого софта, парад уязвимостей, праздник для подрастающей хакерни школьного возраста. Обновить софт? Все уже давно забыли, что это вообще за софт, останавливать нельзя. Изолированные сетевые сегменты? Ага, сами владельцы тоже так думают до поры, до времени. Про физический доступ и шпионские USB-устройства даже не упоминаю. По этой теме, кстати, и начали срочно вводить уголовку за взлом критической инфраструктуры со сроками до 10 лет, чтобы не только владельцам этой самой инфраструктуры было страшно.

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

    Безопасность — добавленная стоимость и конкурентное преимущество, которое очень тяжело продавать потребителю. Как Вы решаете данные вопросы? Как мониторите уязвимости в используемых «плюшках», есть ли ответственный именно за это, сколько дней устраняете уязвимость? Как распространяете обновления? Может ли устройство обновиться автоматически, а в случае провала откатиться обратно?


    1. kuzmuk
      10.03.2017 02:47

      У нас почти 60 программистов в 4х странах выделено под применение security-патчей в ядро, системный и прикладной софт. Они 24/7 следят за обновлениями во всем используемом прикладном ПО и применяют все патчи еще за 10 минут до отправки push commit автором в ядро Linux или другие репозитории. Затем сразу же обновляют прошивки на всех наших WebHMI удаленно. Даже тех, что не подключены к интернету – у нас свой спутниковый канал связи. И обновляют даже те WebHMI, что выключены — мы можем подать удаленную команду и WebHMI найдет рядом розетку и включится.

      Это шутка, конечно.

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

      Представьте ситуацию. У вас конвеер, который штампует продукцию. Тут в контролер или панель прилетает (кстати, интересно как — по воздуху?) апдейт и он такой говорит соседним соседним ПЛК – «погодите, я щас буду обновляться». И конвеер останавливается. Ждет его обновления. Далее в процессе обновления слетает какая-нибудь настройка скорости обмена и еще возникает новый глюк в прошивке что приводит к остановке программы.
      Конвеер парализован. Продукция скоропортящяяся, так что 6 тонн продукта в утиль. Машина – импортная, на гарантии у итальянцев. Инженер приедет только через 2 недели и его приезд будет стоить $4-10k ну и простой еще $100-200k. Круто обновились, да?

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

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

      Как показывает мировой опыт – абсолютно безопасных систем не бывает. Та же история с фабрикой по обогащению урана в Иране это хорошо иллюстрирует.


      1. teleghost
        10.03.2017 09:16
        +1

        Вы серьезно считаете, что промышленное оборудование само будет накатывать апдейты?
        Нет, не считаю. Чтобы совсем само, нужно второе устройство в паре, полная синхронизация состояний и прочая кластерная атрибутика (с внешним сервером управления), чудес не бывает. Это достижимо, но весьма дорого (и не про АСУ).

        Но если вы (Ваша организация) без всяких серверов управления (1) максимально упростите ручное накатывание обновлений и (2) нейтрализуете последствия после неудачного обновления (автоматический откат), это будет большим достижением. Другими словами, те самые инженеры должны возлюбить эксплуатацию устройств и не бояться обновить софт. А тот трэш, который происходит на ПК заказчика, будет в самое ближайшее время иметь целью добраться до ваших детищ и устроить останов конвеера на $200k, стоит вам только подрасти до определённого уровня.

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


        1. kuzmuk
          10.03.2017 13:09

          Старое видео с демонстрацией обновления прошивки: https://www.youtube.com/watch?v=bT-4p3nefNo
          Куда уже проще?


          1. teleghost
            10.03.2017 15:03

            да, просто вводим код и скачиваем, т.е. асушный сегмент должен иметь Интернет-выход:)
            ладно, но что будет в случае сбоя обновления? или если через сутки всплывёт глюк, как вернуть всё обратно?

            PS
            ручной upload обновлений возможен?


            1. kuzmuk
              10.03.2017 16:11

              При необходимости откатиться на старую версию – вводите код обновления старой версии. При необходимости можно прошить конкретную версию ПО.
              Перед обновлением происходит валидация новой прошивки и тестовое обновление без физической записи на флеш. Это позволяет убедится в том, что скачанный файл корректный.
              Ручной upload пользователем невозможен.


              1. teleghost
                10.03.2017 19:32

                резюмирую для себя:
                большая работа по железу (если всё в статье правда, снимаю шляпу!)
                софт развивается, но без должного акцента на безопасности АСУ ТП (видимо, рынок не созрел)

                полезные мелочи (косвенно показывают product maturity):
                загрузка со встроенной флэшки (read-only ведь?)
                обновление прошивки только через Интернет, с валидацией холостым прогоном (неплохо)
                выделенная SD-карточка для записи (хорошо)
                рабочий диапазон 0..+50°С из-за Li-Po аккумулятора (так себе, надо стремиться к -40..+85°С, зима всегда близко, можно сделать клеммник на +12/24В и/или другую электрохимию)
                сбрасываемый USB-порт 500мА (неплохо, но подумайте про 900мА, LTE тоже близко)

                вывод: для некритичной инфраструктуры должно хватить

                но цена, видимо, покрывает все недочёты:)
                успехов Вам!


  1. dittohead
    09.03.2017 23:53

    Ого, оказывается вы из Днепра


    1. kuzmuk
      10.03.2017 03:32

      Да


  1. Cthulhu34
    10.03.2017 01:00

    Спасибо за статью! Очень интересно. Тоже есть свои наработки, которые еще сырые, но шеф хочет внедрять. Попытаюсь на данном примере донести про сроки доведения от поделки до промышленного устройства ))


    1. kuzmuk
      10.03.2017 03:32

      Раньше начнете внедрять – раньше доведете продукт до кондиции.


  1. Corel_aka_DDK
    10.03.2017 01:00

    Откуда наметился тренд в HMI и Web-HMI?
    Сейчас можно взять любой тонкий клиент и поднять на нем любую SCADA. Да тысячи их.
    В чем принципиальное отличие вашей системы?

    К тому же маленькая несостыковычка, вы сами пишете что:

    Ситуация была такой, что существующие решения на рынке автоматизации хорошо подходили для больших заводов с многомиллионными бюджетами, но в виду громоздкости и высокой стоимости были совершенно неприемлемы для среднего и малого бизнеса. Классические решения для мониторинга технологических процессов, SCADA системы, стоят много денег, требуют мощный промышленный ПК, лицензии на ОС и БД, требуют многих и многих часов работы квалифицированного инженера по настройке ПО и созданию проекта. Если у вас, например, небольшая теплица, то вкладывать десятки тысяч долларов в систему мониторинга нескольких десятков параметров вы, вероятно, не станете. А если таких теплиц, скажем, 10-20? А если они разнесены территориально? Стоимость таких систем сразу взлетает до небес, но они при этом все-равно плохо решают «небольшие» задачи. И совершенно не подходят для распределенных систем.


    но при этом вашими заказчиками стали промышленники, и при этом вы стараетесь сказать им что использовать в качестве средств КИПиА?
    Приедет из ПТУ мальчик которому по-барабану что для RS-485 нужно не 2 провода, а 3, а ещё лучше 4. Он видит что написано A и B — поэтому и подключает 2 провода. А почему не работает?
    — Да эт вот эта вот коробочка, да, не работает…

    А ты потом сиди и думай.

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

    По поводу HMI — панелей.

    Сейчас рынок кишит ими. Цена панели + плк порой доходит до смешных 200-300$.
    А если у вас теплица — ардуино + экран.

    В общем, немного непонятно для кого и что именно вы сделали.
    Презентацию продукта с её ключевыми особенностями можно? Какие решения применяли, какие баги отлавливали, какие продукты реверс-инженирингу подвергались?

    А сам процесс развития компании и устройства — труден и тернист. Это знают все.
    Молодцы, что сказать, но пока что… непонятно.


  1. kuzmuk
    10.03.2017 03:31
    +1

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

    У промышленников не всегда есть свои специалисты. Часто многие задачи идут через тендер. Побеждают там разные люди.
    Мы не говорим им что использовать. Мы их тыкаем носом в ошибки их линий связи когда они жалуются на нестабильную связь. Прямо первый вопрос у нас в таких случаях «У вас сколько проводов в линии RS-485?». Когда узнают, что нужно 3 – заявляют, что всю жизнь делали два и работало. Что это у нас неправильное оборудование. Про спец-кабеля, волновое сопротивление, переотражение, терминальные резисторы и духом не слышали.

    Конечно, СКАДУ можно поднять. Можно на тонком клиенте. На толстом. На промышленном ПК. Но тут встает вопрос цены конечного решения.

    Что нужно на объекте? Связь (роутер/свич, точка доступа Wi-Fi, поддержка 3G/проводного интернета), компьютер+монитор+мышь+клава, ИБП, формирователь RS-485. Сколько все это будет стоить? А такое, которое не будет зависать?

    Продолжаем. Лицензии на ОС, СКАДУ, БД, какой-нибудь OPC-сервер. Это сколько будет стоить?

    А сколько часов нужно потратить на сборку, монтаж, установку и настройку ПО? Сколько стоит это время хорошего специалиста? А как в эту СКАДУ потом добавить протокол теплосчетчика, который ею изначально не поддерживался?

    WebHMI + планшет заменяет собой все перечисленное выше за совсем небольшие деньги. Вы экономите кучу времени на развертывании оборудования и настройке софта. А значит – или зарабатываете больше или становитесь более конкурентноспособными. Вы просто берете готовый инструмент из коробки и сразу готовы его устанавливать на объекте.

    Теперь представьте, что у вас 30 теплопунктов или котелен по области. И вам нужно их диспетчеризировать. Видеть их все на карте, иметь возможность удаленно посмотреть на аварии, изменить уставки. Видеть показания газовых и электрических счетчиков со своими дурацкими протоколами. Сколько нужно железа и софта купить для решения этой задачи? Сколько нужно времени потратить на установку и настройку софта для каждого объекта? Сколько раз поехать на объект для устранения каких-нибудь проблем? Как перезагрузить зависший 3G модем? Как потом увидеть все эти объекты с их статусом на карте?

    Или как сделать так, что бы частотник в водозаборе управлялся по уровню приемного бассейна, который расположен в 10 км от него? Или как обновить прошивку в ПЛК для исправления какой-нибудь ошибки в проекте на объекте заказчика так, что бы не ехать туда физически? Или как посмотреть и сбросить ошибки, из-за которых частотники выбивает на удаленном объекте?

    Все ли это можно сделать на любой СКАДЕ? Удобно ли это делать на СКАДЕ?

    Да, есть недорогие HMI-панели. Но они ущербны как только речь заходит о чем-то более менее сложном. Вот как ими управлять оттуда, откуда удобно человеку? А если нужно управлять из разных мест одновременно? А если ему нужно передвигаться по объекту? А если главному инженеру нужно что-то проверить со своего рабочего места? А если из дому? А на бегу с телефона как? А как распечатать отчет? А как построить исторические графики? А отправить СМС дежурному инженеру?

    WebHMI может это все и многое другое.


    1. unhega
      10.03.2017 12:37

      Всегда в голове витала идея такого же продукта, рад что у вас все получилось.


  1. MLuk
    10.03.2017 12:37

    Добрый день!!!
    И все таки из этого огромного количества букв не особо понятно, для чего нужен ваш девайс!!!
    Да и в чемоданчике у вас панель стоит, которую можно просто подключить к контроллеру


    1. kuzmuk
      10.03.2017 13:06

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

      Панель в чемодане нужна для демонстрации клиенту. Мы показываем ему проект на панели и говорим «У вас сейчас вот так». Затем достаем телефон/планшет/ноутбук, заходим по WiFi или через 3П в интерфейс WebHMI где тот же проект и говорим «а может быть вот так».


  1. Rainevent
    10.03.2017 12:37

    Восхитительно просто!

    Занимаемся примерно тем же самым. Только разрабатываем контроллеры для отопления и вентиляции свои, а систему диспетчеризации делаем на клиенте на Atom — ethernet и внешний USB 485ый для связи с контроллерами.
    Дайте пожалуйста советов по улучшению нашего оборудования и софта. Я конечно не программист, но проблемы насущные знаю, и пытаюсь донести идеи.

    1. Сброс 3g модема. Каким образом это сделано? В промышленных модемах такая функция заложена в контроллер, но мы, как и вы используем самые обычные usb, и это просто головная боль.
    2. Расскажите подробнее про web реализацию, каким образом сделана такая Scada система и на чем?
    Используем что то подобное, на Java Script(до этого были Java оплеты).
    Средство разработки — Scada созданная своим, единственным(!) программистом. Честно говоря не вникал в нее, но как минимум конструктор web интерфейса просто ужасный(ну, на что способен один человек). Посоветуйте какую нибудь альтернативу или дайте советы по улучшению.
    Спасибо заранее.


    1. kuzmuk
      10.03.2017 12:59

      Про ваше оборудование и софт я ничего не знаю. Как можно давать какие-либо советы в такой ситуации?

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

      2. Ой, про софт писать можно очень много. Если кратко – то у нас есть бекэнд, API и фронтрэнд. Ядром системы является специальный демон на С/С++, который выполняет всю реальную работу – обмен данными с ПЛК, пользовательские программы, журналирование, запись в БД и т.д. и т.п. Он оптимизирован и вылизан. От его быстродействия и стабильности зависит все остальное. Взаимодействие с человеком и другими системами происходит через API. Есть разные способы взаимодействия – начиная от встроенного веб-интерфейса, заканчивая возможностью написать свое Андроид- или iOS- приложение. Можно данные читать из Excel, 1C и т.д.
      Веб-интерфейс – это встроенный сайт, который через API общается с демоном и базой данных. Там очень много JavaScript и тоже много интересных оптимизаций, которые просто необходимы для проектов, в которых количество регистров исчисляется сотнями и тысячами. А для систем вентиляции и отопления сколь-нибудь нормального здания, где десятки контролеров, счетчиков и другого оборудования – это обычное дело.

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


  1. MLuk
    10.03.2017 13:44

    То есть простым языком, ваше устройство представляет собой внешний Веб-сервер???


    1. kuzmuk
      10.03.2017 16:23

      Если простым языком, то это интеграционный контролер.


  1. SerJ_82
    10.03.2017 15:37

    Подскажите, а можно ли будет использовать вашу систему в КФХ? Например в автоматизации работы теплиц или иных процессов? Или может проще что-то на Ардуино придумывать?


    1. kuzmuk
      10.03.2017 16:18

      Конечно можно. Сейчас как раз помогаем делать одному клиенту проект автоматизации 10 теплиц. Они клубнику выращивают.


  1. prospero78su
    10.03.2017 16:06

    Молодцы, ребята, что сделали. Правда, очень круто.
    Упоминание про С/С++ заставит меня ещё долго просто говорить вам, что вы молодцы)) Не поймите неправильно.


  1. ser-mk
    13.03.2017 12:25

    Интересный прибор выпустили. очень похвально!
    Сразу стал смотреть технические х-ки. и возникло пару вопросов:
    первое:

    «Сторожевые таи?меры Да (системныи? и коммуникационныи?)»

    системный это тот что в чипе? а что означает комуникационный?
    второе:
    «Быстродеи?ствие и производительность Настраиваемое время опроса (от 5 мс.) Настраиваемая частота отображения данных в веб-интерфеи?се (от 20 раз/сек.)»

    Зачем делать такую малую нижню границу периода опроса, если период отображаемый данных начинается только от 50 мс?


    1. kuzmuk
      13.03.2017 12:49

      Сторожевых таймера у нас два.

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

      Второй перезагружает WebHMI если что-то происходит с операционной системой или самой платформой. Самое частое его применение – перезагрузка при сбое SD-карты. Если карта плохая и глючит, Linux переводит ее в режим Read-Only и мы больше не можем собирать данные. Поэтому в таких ситуациях мы выполняем перезагрузку, во время загрузки ОС пытается восстановить файловую систему. Если повезет – работаем дальше. Но обычно такая ситуация требует максимально быстрой замены карты. И опять же, если карта промышленная, то такой ситуации не возникает.

      Зачем делать такую малую нижню границу периода опроса, если период отображаемый данных начинается только от 50 мс?
      html-теги

      В WebHMI есть встроенный язык программирования Lua. Он позволяет писать пользовательские программы, частично заменяя функции ПЛК. Если проект не требует критически быстрого управления, то всю логику можно выполнить на языке высокого уровня Lua прямо в WebHMI и заменить в проекте ПЛК на более примитивное УСО, исключить работы по программированию PLC. А иногда, применяя хитрости и смекалку, можно избежать даже применения УСО, что очень удешевляет себестоимость проекта.
      Вот для максимально быстрой реакции программ и есть возможность опрашивать внешние устройства с интервалами от 5мс (но фактическая скорость, понятное дело, сильно зависит от скорости обмена по шине RS485).


  1. LeDima
    13.03.2017 17:47

    Вы смотрели в сторону OpenSCADA ?
    С её помощью удалось автоматизировать Установку электронно лучевого напыления материалов.
    С коробки у скады есть куча протоколов, свободно програмируемый GUI, WEB-морда, архивы, и еще куча вкусностей причем бесплатно.
    В итоге: несколько плат управления на STM32 + ModBUS + Встраиваемый пром компьютер(следующий раз заменю на обычный + монитор + расширители RS485) + 1чел/год работы = Рабочая пром. система управления и мониторинга.


    1. kuzmuk
      13.03.2017 17:55

      Я уже отвечал на очень похожий вопрос тут