Сначала небольшое историческое отступление о том, что такое четвертая промышленная революция, анонсированная в прошлом году.
- Появление промышленности. Первая промышленная революция произошла в начале XIX века и была связана с массовым переходом от использования мускульной силы к энергии парового двигателя. Ключевые технологии — паровой двигатель, фабрика. Появилась возможность массового производства, но его продукты стоили дорого.
- Массовое производство. Вторая революция случилась в начале 20 века, и ознаменовала начало дешевого массового производства. Ключевые технологии — конвейер и Тейлоризм. Продукты массового производства подешевели на порядок.
- Автоматизация. Третий переворот в промышленности произошел в 80-е годы. Станки с ЧПУ и роботы сделали современные фабрики практически безлюдными. (Аутсорсинг ручного труда в развивающиеся страны сгладил эту тенденцию.) Продукты массового производства подешевели еще на порядок (стало дешевле выкинуть, чем чинить).
- Децентрализация. Революция четыре точка ноль происходит сейчас. Ключевая технология — конвергенция промышленности и IT, 3д принтеры. Появляется возможность производства мелкой серии или уникального продукта по цене, приближающейся к стоимости того же самого в крупной серии.
Это немецкий взгляд на 4 четыре фазы развития промышленности. Существует еще и американский, который не разделяет третью и четвертую фазы.
Мне кажется, во вступлении я написал слишком много общих фраз и слишком мало технического хардкора. Исправлю это под катом, описав некоторые технические детали о промышленных сетях и продуктах Intel, связанных с ними (+ еще одна картинка с роботом).
Лично для меня главный вопрос четвертой промышленной революции заключается в том, кто кого сборет, кит или слон? произойдет ли в отрасли повторение хорошо известной в IT индустрии истории с mainframes->mini computers->PCs или нет. Поясню. Так как конвергенция IT и промышленности — дело решенное, остается вопрос, на чьих условиях она будет происходить? Гиганты промышленности — Siemens, Rockwell, Mitsubishi, ABB, Schneider и т.д., похоже хорошо понимают тенденцию и на всех парах внедряют технологии из IT, позволяющие выполнить обещания Industrial revolution 4.0 по радикальному удешевлению мелкосерийного производства. Однако появляется конкуренция со стороны IT в виде 3д принтеров и стартапов, обещающих серьезное удешевление промышленных роботов. Где-то собирается новый homebrew computerindustry club, где юные хакеры готовятся сразиться с промышленными аналогами IBM и DEC. На кого поставили бы вы??
Выше я повторял мантру — «технологии из IT приходят в промышленность, и радикально удешевляют производство». Чтобы не быть голословным, надо бы перечислить, какие именно технологии. Я вижу три основных элемента.
1. Использование управляющих устройств на основе процессоров/чипсетов общего назначения, немного доработанных, чтобы удовлетворять промышленным требованиям (надежность, realtime, температуры, fanless и тд). Об этой тенденции я здесь уже писал.
2. Использование сетевой инфраструктуры IT для общения сенсоров, актуаторов, роботов, автоматических станков с управляющими элементами. Об этом сегодняшний пост.
3. Два предыдущих пункта автоматически означают необходимость использования в индустриальных продуктах IT подходов к программированию, системному администрированию и обеспечению информационной безопасности. Поле здесь непаханное! (Кстати, нужен ли на хабре пост об особенностях программирования станков ЧПУ и роботов, и как в эту область уже проникают технологии программирования, к которым мы привыкли в IT?)
Экономический аргумент в пользу использования IT технологий в промышленности очень прост. Миллиарды пользователей ноутбуков и персональных компьютеров уже оплатили R&D и массовое производство соответствующих технологий. Почему бы этим не воспользоваться, например, так же, как этим пользуются в HPC? (Процессоры большинства суперкомпьютеров производятся на фабе стоимостью много миллиардов баксов, загруженном в основном процессорами для ноутбуков. Микроархитектура ядер Xeon EP и Core i3 не отличается.)
Итак, подробнее о промышленных сетях (Filedbus). Во времена третьей промышленной революции было создано множество стандартов Fieldbus: Profibus, Modbus, Sercos, и тд и тд… Все они используют специализированные phy, и, как следствие, вендорам приходилось разрабатывать и поддерживать спец железки (ASIC или FPGA) и спец дрова, а пользователям — протягивать нестандартные кабели и использовать экзотические коннекторы.
В IT когда-то существовал такой же зоопарк сетей (помните Token Ring, Apple Net, ARCNET, Ethernet через коаксиал?). В конце концов Ethernet по витой паре и TCP/IP всех победили. В промышленности с основой конвергенции на phy уровне вопросов тоже уже нет. Очевидно, что будущее промышленных сетей за протоколами, работающими на базе Ethernet, на обычной витой паре: Profinet, Ethercat, Sercos III и EtherNet/IP. На самом деле количество видов промышленных сетей на базе Ethernet несколько больше. Например, есть даже корейский национальный стандарт. Но приведенные выше наиболее распространены, и поэтому в данном обзоре я ограничусь ими.
Все они могут использовать кабельную и сетевую инфраструктуру, проверенную годами использования в IT индустрии. Дебажить их можно Wireshark'ом, а не осциллографом, как старые fieldbus'ы. У каждого стандарта есть большая «мама» (Profinet — Siemens, Ethercat — Beckhoff, Ethernet/IP — Rockwell, Sercos III — Bosch) и консорциум компаний, который его продвигают. Однако оборудование каждого крупного производителя поддерживает не только свой «любимый» стандарт промышленной сети, но и большинство остальных. Поэтому на рынке имеется несметное количество вариантов бриджей между этими сетями. Такая фрагментация не очень радует, и есть подозрение, что через несколько лет останется 1-2 основных стандарта. Можно заняться антинаучным гаданием и набросать табличку со сравнением характеристик самых распространенных протоколов.
Протокол | Устойств в одном сегменте | Минимальный цикл | Интернет совместимость | Топология |
Ethercat | 65536 | 12.5us | не очень | произвольная, но логически кольца |
Profinet | дофига | 31.25us | хорошая | произвольная |
Sercos III | 511 | 31.25us | хорошая | кольцо, линия |
Ethernet/IP | дофига | ~1ms | лучшая | произвольная |
Некоторые моменты я упростил, но в целом как-то так. Интересно было бы угадать, какой стандарт в конце концов победит. (Конечно, если считать, что в конце останется только один).
Уровень интернет совместимости я оценивал по степени поддержки сетевых протоколов TCP/IP. Пакеты каждой из сетей Ethercat, Profinet и Sercos III передаются в Ethernet фреймах и имеют собственный Ethertype (как IP или ARP). Ethernet/IP, в отличие от них, пользуется IP, за исключения случая ring топологии, тогда он также использует свой ethertype. Таким образом, Ethernet/IP самый IT ориентированный из множетсва стандартов промышленного Ethernet'a. В этом его главная фишка, но это же и главный недостаток — сложно обеспечить real time с быстрыми циклами. Потом идут Profinet и Sercos III, в которых бай дизайн интернет трафик ходит по тем же проводам, в то время, когда они не заняты передачей критичных данных. Например, в сети profinet можно пользоваться IP, UDP, TCP, раздавать адреса по DHCP (или пользоваться его младшим братом — DCP).
Самый далекий от IT — Ethercat, но он же потенциально самый быстрый. Сети Ethercat Profinet и Sercos III отличаются тем, что в них есть два класса устройств — master и slave (controller и device, ). Master может быть реализован на обычной сетевой карточке, а slave карточка работает немного хитрее. Она должна «на лету» считывать приходящий пакет, вставлять в него свои данные и отправлять его дальше (или обратно, если она стоит в конце линии Ethercat). Получается, что она реализует MAC напоминающий token ring.
Я немного упрощал, описывая, как промышленные сети могут использовать сетевую инфраструктуру. Конечно, кабели и коннекторы будут работать, как и некоторые свитчи (впрочем, с ними возможны нюансы). Но обычные сетевые карточки и главное их драйвера с детерминистическими циклами в десятки микросекунд работать не приспособлены. Какие обычно требования в цифрах? Надо уметь соединять в одном сегменте сети множество устройств, обменивающихся небольшими пакетами данных (от единиц до сотен байт) с частотой до десятков килогерц, и с гарантированной доставкой данных вовремя каждый цикл. Максимальная частота в 30 килогерц означает, что минимальный цикл равен 33 микросекундам. Отсюда в Profinet IRT и SERCOS III стандартах минимальный цикл определен как 31.25 микросекунд. Передача сотни байт каждый цикл — это до 25 мегабит в секунду на устройство. Промышленные сети до сих пор отлично живут на 100BASE-TX. Переход на 1 гигабит только начинается, и в-основном по соображениям уменьшения latency (ширины «трубы», как я показал достаточно и на ста мегабитах).
У всех вендоров есть спец карточки с обычным Ethernet phy трансивером, и спец обвеской для реализации вышестоящих слоев соответствующего сетевого стека. Есть так же различной степени платности прошивки с реализацией этих сетей для FPGA Xilinx и Altera. Всем известно, что помимо процессоров и чипсетов Intel производит сетевые карточки. Недавно вышла карточка I210 (Springville), в которой реализованы некоторые возможности, позволяющие реализовать на ее основе fieldbus адаптер с быстрым циклом.
Что делает Intel I210 особенно пригодной для реализации промышленных сетей, базирующихся на Ethernet phy? В ней есть свой RT таймер, доступный для чтения и записи, и позволяющий генерировать прерывания. Это позволило реализовать в железе
IEEE 1588/802.1AS синхронизацию, которая включена в протоколы Profinet и Sercos III. Также это делает возможным передачу фреймов по таймеру, что полезно для реализации любого fieldbus протокола. 4 независимые очереди на передачу и 4 на прием могут быть использованы для разделения realtime и не realtime трафика или для работы нескольких виртуальных машин(с VMDq).
Этого железного товарища, собирающего кубики рубика, я сфотографировал на экспозиции Intel на Embedded World 2013 два месяца назад. Он контролируется с материнской платы на заднем плане, через сеть Profinet, сетевой адаптер Intel I210 и Profinet IRT стэк от KW-Software.
Надеюсь, я отдал налог техническими деталями хабрачитателям, и теперь мне будет позволено завершить пост парой общих фраз. Мы в IT индустрии привычны к hype — ежегодному появлению новой технологии, которая должна перевернуть мир (cloud, web 2.0, etc.) Свой hype есть и в промышленности — Internet of things, M2M, etc. Но я думаю, что четвертая индустриальная революция имеет под собой конкретные технические и экономические основы. И в ней можно поучаствовать. В 70х-2010х было такое распространенное родительское проклятие — будешь плохо учиться, пойдешь в ПТУ, а потом на завод. Но теперь, похоже, работа на фабрике снова может стать sexy! (Правда, фабрики будут совсем не те)
Помимо непосредственного рабочего опыта (к сожалению, Ethernet/IP не очень распространен в Европе, поэтому я с ним никогда не сталкивался и брал данные из Википедии), в посте использованы данные из двух академических статей:
1. «Minimum Cycle Time Analysis of Ethernet-Based Real-Time Protocols»
2. «The fieldbus war: History or short break between battles?»
Автор: izard