Обновить
50.14

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

Все об АСУ ТП

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

Скандал вокруг Volkswagen и роль программистов в нём

Время на прочтение2 мин
Количество просмотров66K
Вам известно имя Майкла Хорна? Он генеральный директор Volkswagen of America.



Вы в курсе, что происходит сейчас с Фольксваген? Дизельгейт? (отсылка к Уотергейту) То, что софт, управляющий дизельным двигателем в некоторых их машинах, был заточен на прохождение тестов на выхлопные газы? Да, видимо, этот софт мог определить, что проводится тест на выхлопы, и перевести двигатель в режим, когда он выбрасывает в сорок раз меньше вредных оксидов углерода по сравнению с обычным режимом.

Несколько дней назад Майкл Хорн давал показания перед конгрессом по этой проблеме.
Читать дальше →

Aero Framework — новое дыхание WPF. Поднимаемся выше MVVM

Время на прочтение6 мин
Количество просмотров14K
Aero Framework — передовая библиотека для промышленной и индивидуальной разработки кросс-платформенных XAML-ориентированных приложений с применением концепций MVVM-проектирования. Её основные достоинства — интуитивная ясность, предельная лаконичность, минималистичность и высокое быстродействие.

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

Вложив небольшую сумму денег и день-два в углубленное изучение её особенностей, вы сохраните недели и месяцы труда на реальных проектах. Более того, даже если вы опытный разработчик, значительно повысите свой технический уровень, архитектурные навыки и системность мышления. В данный момент всё зависит лишь от вашей усидчивости и трудолюбия. Гарантирую, что оно того стоит.

image
Читать дальше →

АСУ ТП: как мы создавали систему для точного расчета наработки станков большого завода

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

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

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

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

На высокотехнологичных производствах один из методов – поставить специальный контроллер на каждый технический объект, требующий учета его наработки. Это достаточно дорого. Есть станки и прочее высокотехнологичное оборудование, которые считают сами, важно просто правильно забирать данные. В нашем случае учет наработки велся вручную, в журнал с помощью механика типа «станок проработал 3 дня плюс-минус 4 часа». В итоге было принято решение подцепиться к управляющему софту и снимать данные с него. Сейчас расскажу, что случилось дальше и какое к этому имеет отношение картинка выше.
Читать дальше →

Состояние экосистемы Common Lisp на 2015 год

Время на прочтение10 мин
Количество просмотров18K
От переводчика:
Мне часто доводилось слышать, что в Common Lisp библиотеки из 80ых, и других вобще нет, а множество его пользователей представляет собой 3.5 профессоров, работающих над искусственным интеллектом в катакомбах DARPA и не имеющих даже близкого представления о повседневных задач рядового программиста. Данная статья хорошо показывает, что хоть вы и можете наткнуться на старые библиотеки, но использовать стоит лишь современные аналоги, что существующие библиотеки развиваются и постоянно появляются новые.

Автор этой статьи, Fernando Borretti, является активным контрибьютором в экосистему Common Lisp'а, автор более 30 библиотек, большинство из которых предназначены для веб-разработки.

Проходящий мимо читатель получит общее представление о состоянии дел в Common Lisp, интересующийся сможет понять что ему необходимо чтобы попробовать написать код и какие библиотеки взять для пробной задачки, а опытный разработчик узнает о самых последних разработках, поймет, библиотеками в каких направлениях он сможет помочь сообществу и получит несколько советов о том, как отвечать на вопросы новичков, чтобы не убить в них интерес к этой замечательной технологии. Поехали!


Читать дальше →

Настоящее и будущее C++. Интервью с Эриком Ниблером

Время на прочтение14 мин
Количество просмотров42K
Эрик Ниблер — известный эксперт по C++, один из важных контрибьюторов Boost, человек, который добавил в стандарт библиотеку Ranges.

26 августа в рамках C++ Party Эрик выступит в новосибирском офисе Яндекса, где как раз расскажет о библиотеке и поговорит с гостями о новых стандартах C++.

image

Я заранее поговорил с Эриком и задал ему несколько вопросов от себя и коллег о том, каким он видит настоящее и будущее C++, что ему кажется самым важным в программировании, будет ли в C++ когда-нибудь нормальный менеджер пакетов, модули, что будет со стандартной библиотекой и о многом другом.

Кстати, если у вас есть ещё хорошие вопросы к Эрику, — их можно задать в комментариях, и мы попросим его на них ответить.
Читать дальше →

Умная плата для управления силовыми 3-х фазными нагрузками

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

Продолжаем разработку на микроконтроллерах семейства Kinetis.

Умный дом или здание не ограничиваются только датчиками температуры или освещением. Там также присутствуют лифты, различные подъемники для людей с ограниченными физическими возможностями, грузовые подъемники, ворота, шлагбаумы, насосы, вентиляторы и прочее хозяйство. Традиционно это консервативные области, в них концепции умного дома проникают с трудом. Данная плата позволяет модернизировать устоявшиеся решения и добавить в них интеграцию в IoT (интернет вещей).
Читать дальше →

Наш перевод статьи: Двадцать пять целей индустрии программного обеспечения на 2015–2019г.г

Время на прочтение25 мин
Количество просмотров7.4K
Наш перевод статьи:
Двадцать пять целей индустрии программного обеспечения на 2015–2019г.г.
С разрешения автора: Каперс Джонс

Каперс Джонс, VP and CTO Namcook Analytics LLC
Версия 5.0 28 февраля 2015 г.


Краткий обзор
Развитие индустрии программного обеспечения имеет сходство с походкой алкоголика, при которой движение одновременно и выравнивается и дает задний ход. Например, гибкая методология разработки – это выравнивание малых проектов, а парное программирование — это движение назад, слишком дорогостоящее для роли двигателя.

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

В этой небольшой статье представлены 25 реальных целей, которые могут быть достигнуты в течение 5 лет, принимая за точку отсчета 2015 год. Некоторые цели выражены в показателях метрики функциональных баллов (Function Points — FPs), которая является единственной широко используемой метрикой, допустимой для освещения экономической результативности и качества без серьезных погрешностей.
Читать дальше →

Моя система тестирования и повышения качества GSM-шлюза. Часть вторая

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


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

В схему была внедрена функция самодиагностики. Для этого в шлюз были добавлены измерительные цепи, цепи управления питанием и подъёма телефонной трубки, цепи для нагрузочной проверки питания и критичных узлов. Для связи с ПК и перепрошивки установлен мост USB-USART, который может работать как программатор.

В этой и следующей статье я расскажу о тестовой прошивке: как она тестирует всю периферию, какие идеи были заложены в неё и как они были реализованы на примере разбора тестового лога.
Тестовая прошивка проверяет:
  • Тактовые частоты, с точностью до ppm.
  • Все ветки питания.
  • Все ножки процессора.
  • Светодиоды.
  • Источник телефонной линии.
  • Выдачу и приём звука с телефонной линии. АЧХ, КНИ, уровень шума.
  • GSM-модуль.
  • SD-карту.

Тестовый лог целиком

Я не нашёл ни одной статьи на хабре про программу производственного тестирования реально существующего изделия. Поэтому, надеюсь, я первый. Если нет, то с удовольствием почитал бы статьи других.
Окунуться в тайны производственного тестирования...

Лекции и тренинги Intel по Software Engineering. Август, Москва

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

Если вы, студент или аспирант, до сих пор не придумали, как интересно и с пользой провести последние дни перед учебным годом в Москве – это пост для вас!
С 24 по 28 августа в московском офисе компании Intel состоится курс лекций и тренингов для студентов, магистрантов и аспирантов естественно-научных специальностей ВУЗов России. Лекторы – высококлассные профессионалы компании Intel, развивающие самые современные направления программной инженерии.
Лекции и тренинги позволят слушателям узнать о том, какие знания, умения и навыки будут полезны им для работы в крупной IT-компании и как эти знания применяются в реальном процессе производства и тестирования ПО. Кто знает, быть может, это тот шанс, который вы искали?
Подробности

Забудьте о DAO, используйте Repository

Время на прочтение6 мин
Количество просмотров187K
Недавно задумался о том, чем отличаются паттерны, позволяющие абстрагироваться от работы с хранилищем данных. Много раз поверхностно читал описания и различные реализации DAO и Repository, даже применял их в своих проектах, видимо, до конца не понимая концептуальных отличий. Решил разобраться, закопался в Google и нашел статью, которая для меня разъяснила все. Подумал, что неплохо было бы перевести ее на русский. Оригинал для англочитающих здесь. Остальным интересующимся добро пожаловать под кат.
Читать дальше →

Открытый проект универсального микроконтроллерного модуля

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


После беглого знакомства в прошлой статье с микроконтроллерами семейства Kinetis от фирмы Freescale я хотел бы представить проект микроконтроллерного модуля на этих чипах.
Читать дальше →

Моя система тестирования и повышения качества GSM шлюза, часть первая: функциональный и схемный уровень

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

Вторая часть

С чего всё начиналось


Я работаю в небольшой фирме, которая разрабатывает и производит системы записи телефонных разговоров. Но в ряде случаев клиентам нужен аналоговый GSM шлюз как источник телефонной линии. Ранее его закупали и перепродавали. Но то что закупали было низкого качества и часто попадался брак — было принято решение самим разработать. Разработали мы вдвоём: схемотехник и я — программист, недавние выпускники без опыта разработок в аналоговой телефонии и без опыта внедрения в производства. Получилось, мягко говоря, не очень, хоть и была решена проблема брака и скорее «вопреки».

Но проблема в том, что для нас даже 1% брака недопустим: на каждый случай у тех поддержки и разработчиков уходило очень много времени на клиента. Да и для всех нас это недопустимо чисто из соображений профессиональной гордости. Мы хотели такой шлюз снять с производства, даже несмотря на то, что у нас была доля от каждого изделия. Это очень стыдно, когда дилеры про остальные изделия говорят: «у вас вообще брак бывает?», а про наши «мы боимся их продавать — у нас же потом ничего не купят».

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

Как мы от этого

Снизу платы только китайский GSM модуль

Пришли к этому
Верх:



Низ:



Расскажу как полностью изменилось изделие и появилась система тестирования и сопровождения производства. Расскажу как изменилась функциональная схема, объясню как работает электрическая схема доработанного варианта. А в следующих частях расскажу про логи и алгоритмы тестирования и чем тестируется плата. Приведу немного исходного кода. И расскажу об распределённой АРМ для прошивки, тестирования и анализа логов, что была развернута на производстве и у разработчиков.
Читать дальше →

Нужна ли нормализация в числах с плавающей точкой?

Время на прочтение4 мин
Количество просмотров16K
В прошлом топике (1 ) мы говорили о числах с плавающей точкой/запятой, нормализованных в соответствии со стандартом IEEE754. Там же были рассмотрены денормализованные числа, искусственное введение которых в стандарте привело к чудовищным программно-аппаратным затратам, тормозящим процессы компьютерной обработки чисел в десятки и сотни раз. Но, так уж ли нужна эта самая нормализация и тем более оправдано ли введение экзотического класса денормализованных чисел в компьютерную арифметику? Попробуем разобраться с этим вопросом.
Читать дальше →

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

«Программирование мышкой» для микроконтроллеров

Время на прочтение5 мин
Количество просмотров39K
Многие микроконтроллерные платформы поддерживают инструменты для создания начальной конфиграции периферийных устройств и портов ввода/вывода. Обычно это графическая среда, в которой задаются параметры работы кристалла и может быть сгенерирован исходный код — заготовка будущего проекта.

При использовании такого конфигуратора вы существенно упрощаете начальный этап программирования, но делаете это не в ущерб пониманию процессов, происходящих на кристалле.
Ниже приведен пример использования конфигуратора для микроконтроллера C8051F930 от Silicon Labs. Будем управлять яркостью светодиода с потенциомера, написав руками всего две строчки кода. Just for fun, конечно.

Читать дальше →

Применение KolibriOS. Часть 2: Экзоверсия ядра для разработчиков железа

Время на прочтение6 мин
Количество просмотров17K
За окном уже наступило лето, ну а мы представляем вам продолжение цикла статей о практическом применении КолибриОС. В первой части мы провели теоретический обзор возможных сфер применения, а теперь, как и было обещано, переходим к более практической части: экзоверсии ядра для разработчиков железа.
Читать дальше →

О том, как мы опробовали статический анализ на своем проекте учебного симулятора рентгенэндоваскулярной хирургии

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

Хочу поделиться с вами историей о том, как мы опробовали статический анализатор кода PVS-Studio в своем проекте и попытались определить, какую выгоду можно извлечь из этого инструмента. В этой статье не будут описаны уникальные и интересные для специалистов программные ошибки. Все найденные в коде статическим анализом баги и недочеты оказались достаточно прозаичными. Я опишу здесь взгляд на данный инструмент с точки зрения руководителя проекта. Возможно, этот ракурс не так точен и однозначен, как оценка инженера: своё влияние оказывают особенности организации работы в конкретном проекте. Но все же я думаю, что приведенные в статье мысли могут оказаться интересны тем, кто задумывается об использовании статического анализа в работе. Или тем, кто сталкивается в своих проектах со значительными потерями ресурсов на фиксы ошибок, отлавливаемых на стадии тестирования.
Читать дальше →

Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M

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

С некоторых пор фирма Segger предлагает технологию Real Time Terminal (RTT) для своих JTAG адаптеров J-Link. Суть ее в том, что программа на микроконтроллере может выводить и принимать отладочную информацию из JTAG/SWJ-DP порта, как это обычно делается через UART. И тогда нам больше не нужен реальный отладочный UART. Далее чуть подробнее о возможностях этой технологии.
Читать дальше →

Первые шаги к умной бане

Время на прочтение4 мин
Количество просмотров28K
В своих первых статьях на хабре мы пообещали рассказывать о конкретных проектах, в которых применяется наша система. Идей очень много, но начать мы решили с рассказа об одном из наших внутренних DIY-проектов:

Расскажу о своей попытке немного автоматизировать баню. Во время капитального ремонта бани появилась идея заодно провести в нее отопление. Чтобы зимой не промерзала, как следствие, быстрей протапливалась. В результате этого обогрева мы не пускаем точку росы внутрь бани, избавляемся от ненужного конденсата на бревнах, сруб дольше служит, ну, в общем, одни плюсы. Если бы не один минус: за дополнительное отопление придется платить. Дальше я постараюсь рассказать, как можно минимизировать издержки на это отопление и автоматизировать процесс.


Читать дальше →

SEMAT? Приятно познакомиться

Время на прочтение2 мин
Количество просмотров13K
А что-то про SEMAT тут никто еще не написал? Исправляем.


Предисловие


Знакомлюсь с SEMAT – Software Engineering Method and Theory. Показалось разумным. Размышляю о возможности применения в своих проектах. Анализирую риски. Хотелось бы привлечь Хабраразум.
Читать дальше →

Применение KolibriOS. Часть 1: Обзорная

Время на прочтение4 мин
Количество просмотров63K
Очень часто нам задают вопросы «Для чего разрабатывается КолибриОС?» или же «Какова область применения ОС?» Поэтому было решено рассказать подробнее о том где и как можно применять КолибриОС, а также, что возможно даже более интересно, где и как она УЖЕ применяется.
Интересно? Добро пожаловать под кат

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