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

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

Все об АСУ ТП

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

Интересно, до какой скорости можно разогнать 6502-е ядро с современными технологиями?

Допустим, у нас есть чиплет «6502 + 64К SRAM», выполненный в максимально быстром исполнении, вплоть до экзотики типа арсенида галлия (ядро проектировали не дураки и уложились в три с половиной тысячи транзисторов, что тогда было немало для кремния, а сейчас — для арсенида галлия тоже, насколько я знаю, очень до фига).

…и есть несколько кремниевых чиплетов с умножителем, DRAM и прочей веселухой. Или даже один кремниевый чиплет с этим всем, плюс с бутлоадером, который прогружает наши 64К с некоего SPI и после этого снимает с 6502-го ресет.

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

Команды 6502-го выполняются фиксированное время, причём довольно небольшое (в тактах. А арсенид галлия этих тактов нам даёт не просто много, а очень много). Пульнул той же DDR указание, занимается своими делами, через некоторое время прочитал от неё ответ. Мы с точностью до команды знаем, когда за ним лезть в порт.

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

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

Вопрос, правда, в количестве транзисторов в GaAs. SRAM шибко большая, но там за единицу времени переключается только одна ячейка, а остальные спят сном праведника. А вот три с половиной тысячи ключей самого 6502-го могут выдать огоньку, превышающего возможности технологии. Тут я не шибко великий технолог по чипам, увы.

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии7

Друзья инженеры, разработчики пишу в Вашу поддержку честный отзыв о наших соотечественниках.

НАБОЛЕЛО!!!!

Что бы вы не сделали, диванным критикам просто до одного места! Даже диван на котором он лежит это тоже Г-но потому, что болит левая пятка.

Семь лет назад нам нужен был промышленный компьютер (1000 штук), который бы собрал данные через промышленные протоколы и отправил их в облачную платформу с бюджетом до 15к (400 баксов) рублей на то время.

По какой то причине мы не заметили контроллер Wirenboard 6 (на процессоре NXP который покрывал все наши задачи) и начали разработку своего устройства AntexGate на базе Raspberry cm3 (теперь уже на Raspberry CM4 )


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

Мы тратим много сил и средств, чтобы развивать свой продукт и поддержку, отвечаем в Телеграм канале почти круглосуточно на вопросы.

Имея таких конкурентов как Wirenboard, ОВЕН, RealLab, Siemens .... мы нашли своих клиентов и продаем в год более 700 компьютеров.

Мы заморозили свое прибор до -65 (легко запустился на таком морозе), нагрели до +101 (на 102гр выключился).
Все равно получаем каждый день отзывы: "Вы просто засунули малину в свое коробку!"
Нет не просто! Мы угрохали более 5 лет жизни небольшой команды на то, чтобы это все работало - "Так как должно!" Перебрали рефенсные схемы самых именитых Европейских производителей под свои реалии.


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


Я желаю пройти каждому разработчику правильный путь и по возможности сделать свое решение на сколько можно.
Я надеюсь, что оттепель настанет в нашей стране и появятся действительно Росcийские процессоры и другая элементная база, а пока увы Broadcom, Raspberry, NXP да на худой конец RockChip главное что-то делать и с голоду не умереть.


Уважаемые инженеры - разрабы, присоединяйтесь к нашему каналу в телеге мы ответим на любой вопрос (как сделать корпус, выбор источника питания и тд..), поможем и поддержим, дадим ответ на любой вопрос не только по прибору, но и любой другой.
Спасибо за внимание.

Теги:
Всего голосов 15: ↑14 и ↓1+16
Комментарии10

Учебник по Программированию Микроконтроллеров.

Господа,

Я сочинил книгу для библиотеки.

Предлагаю Вашему вниманию мой авторский учебник по программированию микроконтроллеров.

Всё утро его писал.

Называется
Практические Аспекты Программирования Микроконтроллеров

Эта книга адресована всем нынешним программистам микроконтроллеров, студентам технических ВУЗов, а также всем тем, кто думает заниматься программированием микроконтроллеров.

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

Скачать учебник можно по ссылке на git hub.

Есть две версии учебника: censored и unleashed.
Версию UnLeashed я буду высылать только под NDA в ответ на сообщение.

Учебник постоянно и непрерывно улучшается, исправляются опечатки, добавляются новые главы. Поэтому последняя версия лежит на git hub.

https://github.com/aabzel/Artifacts/blob/main/mcu_book_m

клонируйте репозиторий https://github.com/aabzel/Artifacts.git

git clone https://github.com/aabzel/Artifacts.git

И *.pdf окажется в папке mcu_book

Буду признателен за конструктивные предложения к улучшению материала в новых изданиях и за обнаружение опечаток.

Теги:
Всего голосов 30: ↑27 и ↓3+34
Комментарии63

Итоги хакатона: ML, ГОСТ, металлургия

Привет! Вот и мы с итогами!

Мне нужны твои решения для обработки текстов ГОСТов
Мне нужны твои решения для обработки текстов ГОСТов

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

В хакатоне приняло участие около 30 человек. Мы протестировали все решения и выбрали три лучших:

3 место занял Андрей Леонов. Его решение основано на создании базы вопросов и ответов. Система ищет пару вопрос-ответ с помощью специального метода без использования ИИ. Мы присудили третье место за оригинальный подход.

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

А победу мы отдали команде Игоря Пластова и Литаврина Ярослава. Они разработали систему на основе ИИ, которая предобрабатывает тексты ГОСТов в разных форматах и выдает точные рекомендации по запросам в свободной форме. Алгоритм имеет высокую точность и открытый код, то есть готов к интеграции.

Планируем как можно скорее внедрить и проверить решение победителя в деле! Хакатон зашел на ура, так что точно будем проводить такие штуки еще! Следите за анонсами!

Теги:
Всего голосов 6: ↑5 и ↓1+8
Комментарии3

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

Пока идут подготовительные и другие необходимые работы по сворачиванию проекта, на объект запустили робопса-инспектора. Его задача — автономно исследовать пространство, собирать данные, проверять статус отдельных аппаратов. При этом не мешаться под ногами сотрудникам и освободить их от выполнения опасных задач. К слову сказать, сам реактор JET и так максимально роботизирован и автоматизирован, но вот инспекция всегда проводилась вручную. 

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

Уровень существующих готовых решений с робособаками и другими автономными роботами уже позволяет использовать их в виде side-project, то есть не сильно вкладываясь и не тратя время и силы на их внедрение. И если это справедливо даже для самых масштабных мировых научных проектов, то, наверное, для (не таких масштабных и не таких мировых) промышленных проектов это тоже может быть очень полезно. 

Больше IT-новостей бизнеса и бизнес-новостей IT — в нашем канале

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

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

Но можно гораздо проще. У нас есть значения A (B, C - свои тех. переменные) и 1 (1,1 те же уникальные тех. переменные из определнных в количестве 10) и 0 (00). Всего 9. 10 последнее испольуем как условную функцию равенства. Теперь аппаратным программированием строим тринарную матрицу 3х3 с 9 возможными значениями для строки. Это по часовой стрелке (A=B=C=(A)?(1)?(0), BCA, CAB или 3 строки). Программируем для столбца, - против. Далее описываем все возможные варианты значений квадратной матрицы третьего порядка. Индекс строки, индекс столбца, матричное значение выражаем линейно распределенными равенствами (предварительно выделив оперативное пространство в параллельной логике: I + ∑I+ ∑∑II + ∑∑∑I,II + ∑∑∑∑II,I + ∑∑∑∑∑III повторяем копированием полностью каждый раз предшествующую запись ∑ и запоминаем вновь образованные входные переменные, банальным равенством f=(₃3³), удов-им О.О.Ф. или 10ой тех-ой переменной из 13 битов) и обрабатываем запросы элеткронно-вычислительной машины, создав таблицы истинности, логические операторы и, конечно, перепроверку USB устройством 3 из 5 каждого посланного и принятого в такте битов (5 тактов для обработки 1 бита). Либо Y - 3 матр. значения, Y - 3 индекса матрицы, Y - вход., вых. приравнивания, переменная.

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

Важна ли вам защищенность промышленного интернета вещей?

Мы активно разрабатываем технологии для безопасности industrial internet of things (IIoT). За счет быстрого распространения IoT-технологий риск взлома таких устройств и систем постоянно растет.

Если в вашей компании используется IIoT, ➡️ поделитесь мыслями и наблюдениями в опросе.

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

Давайте работать сообща в области исследования угроз, объектов защиты и методов обеспечения безопасности инфраструктуры IIoT🔒

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

Всем привет. Возможно, вы помните меня по статьям об изменениях в C++ и о фреймворке 🐙 userver, поэтому сразу к делу. 27 июля я выступаю на конференции C++ Zero Cost Conf, которая пройдёт в Москве и Ереване. Там я поделюсь новостями со встречи Международного комитета по стандартизации языка в Сент-Луисе и расскажу о наших планах на C++26 и C++29. А ещё отвечу на ваши вопросы. Приходите в гости!

Помимо меня, вас также будут ждать: 

  • Константин Владимиров, руководитель отдела компиляторов и средств разработки Syntacore. Покажет развитие архитектуры сложного LLVM-based-C++-проекта и конкретные задачи, возникающие при его развитии.

  • Андрей Аксёнов, руководитель разработки инфраструктуры поиска Авито/Sphinx. Расскажет историю из продакшена с One Billion Row Challenge, парсингом гигабайтов TSV’шек, десятью странными оптимизациями и боттлнеками вообще везде.

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

  • Константин Облаков, старший разработчик браузера Яндекс Поиска и Рекламных технологий. Покажет на практике, как GDB позволяет добиться результатов, недоступных другими методами.

Полный список спикеров и темы докладов смотрите на сайте

Если не получится прийти лично, подключайтесь дистанционно.

Теги:
Всего голосов 5: ↑5 и ↓0+9
Комментарии0

Российская компания «Е-Флопс» рассказала о разработке системной платы под названием «Ключевская» для двух Arm-процессоров.

По данным разработчиков, 20-слойная системная плата «Ключевская» не только многофункциональная, но и максимально компактная в рамках модульной концепции. Её размеры: 44,6х20,3 см.

Технические характеристики платы «Ключевская»:

  • 2 процессора архитектуры ARM64;

  • 48 ядер на процессор, частота до 2,2 ГГц;

  • 12 слотов оперативной памяти при использовании 6 каналов;

  • память стандарта DDR4 (RDIMM, LRDIMM) с частотой 3200 МГц;

  • 80 линий PCIe 4.0, из них 48 линий совместимы с CCIX;

  • встроенный интерфейс USB 2.0;

  • встроенный интерфейс Ethernet 1 Гб/с;

  • 2 разъёма M.2 для встроенных накопителей SSD NVMe x4 M.2 (2242);

  • 2 разъёма PCIe 4.0 x16 для подключения до 8 накопителей M.2 NVMe или специализированных карт расширения с горячей заменой;

  • слот PCIe 4.0 x16 OCP 3.0;

  • 4 разъёма PCIe 4.0x16/CCIX для установки райзеров;

  • 2 сетевых разъёма 10/25 Гб/с и 1x USB 2.0, 1x DP (при установке платы ввода-вывода);

  • разъем 260-pin SODIMM DDR4 (для установки модуля удалённого мониторинга и управления стандарта RunBMC).

Первая ревизия платы была выпущена в качестве макетного образца в 2023 году, все макетные были образцы с ограниченным функционалом, не предполагающим установку процессоров.

Вторая ревизия платы выпущена в качестве опытного (предсерийного) образца в начале апреля 2024 года.

Разработчики сообщили, что в итоге всё протестированное стабильно работает. Первая партия плат выйдет в сентябре 2024 года.

Теги:
Всего голосов 7: ↑7 и ↓0+12
Комментарии0
OEM компьютер AntexGate
OEM компьютер AntexGate

Наконец новый промышленный компьютер на базе процессора broadcom, который полностью совместим с софтом для raspberry можно взять на тест бесплатно. Производство РФ.

Чат - техническая поддержка, и инструкция.

Запрос образца на тест в свободной форме.

Особенности устройства:

Интерфейс Etnernet 100Mb — 1шт;

Интерфейс Etnernet 1Gb — 1шт;

Интерфейс CAN-BUS – 1шт;

Интерфейс RS485 ISOLATED– 2шт;

Интерфейс RS232 – 1шт;

Интерфейс 1Wire – 1шт; Интерфейс USB – 2шт;

Дискретные входы оптопара- 4шт;

Релейные выходы – 2шт;

Выход оптопара – 1шт;

Разъем mPCIe – 1шт (на выбор):

  • Lora;

  • WiFi;

  • 3G/LTE;

  • NB-IOT;

    Разъем m.2 – 1шт Для диска NVMe SSD

    Разъем HDMI;

    Разъем для подключения GSM-антенны;

    Разъем для подключения WiFi-антенны;

    Рабочая температура: -25°C… +80°C. 

    Потребляемая мощность Питание: клеммы DC 12-48В; Passive Poe AC/DC 12-48В; Мощность: 1.56-5.8 Вт в зависимости от конфигурации.

    Системные характеристики Процессор: BCM2711 на базе Raspberry Pi CM4; ЦПУ: 4-ядерный Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz Flash: 8/16/32GB eMMC. RAM: 1/2/4/8GB 

    Поддерживаемые протоколы ModBus; Dmx 512, MQTT, Profinet; LoRaWAN; CAN; OPC UA и доугте

    Поддерживаемых платформы и ПО

    NodeRed; OpenHab; CoDeSys; MasterSCADA 4D; Home Assistant; iRidiumMobile; Совместимый софт с raspberry pi4

    Поддерживаемые веб-сервисы ApacheHTTP; NGINX.

    Операционная система Поддержка Linux, Ubuntu, Debian, Astra Linux, OpenWrt

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

Числа, которые должен знать каждый программист в 2024 году и далее:

  • L1 cache reference = 1 ns (1 нс)

  • Branch mispredict = 3 ns (3 нс)

  • L2 cache reference = 4 ns (4 нс)

  • Send 1K bytes over 1 Gbps network = 11 ns (11 нс)

  • Mutex lock/unlock = 17 ns (17 нс)

  • Main memory reference = 100 ns (100 нс)

  • Read 1 MB sequentially from memory = 1 us (1 мкс)

  • Compress 1K bytes with Zippy = 2 us (2 мкс)

  • Read 4K randomly from SSD = 16 us (16 мкс)

  • Read 1 MB sequentially from SSD = 19 us (19 мкс)

  • Read 1 MB sequentially from disk = 474 us (474 мкс)

  • Round trip within same datacenter = 500 us (500 мкс)

  • Disk seek = 2 ms (2 мс)

  • Send packet CA->Netherlands->CA = 150 ms (150 мс)

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

Напишите, пожалуйста, в комментариях ваши числа для проектов в 2024 году.

Теги:
Всего голосов 9: ↑5 и ↓4+1
Комментарии4

Какой процент текста программы должны занимать комментарии? Комментировать каждую строку? или через одну? Каждая фирма, разрабатывающая программы испытывает прессинг со стороны программистов/кодеров, которые считают что:

  • в коде переменные и функции имеют значимые названия и поэтому ничего не надо комментировать

  • специалисту и так должно быть все понятно что тут написано

  • Я ко всем функциям и объектам дал пояснения. Этого вполне достаточно.

  • Всякие другие слова, которые объясняют почем комментировать не надо

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

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

Слева ADAFruit справа idiBus
Слева ADAFruit справа idiBus

Разработчик, который сдал готовый отлаженный код, не хочет тратить время на комменты. А я как заказчик текста, хотел бы иметь комментариями минимум 30 процентов текста. Чтобы я мог если надо быстро передать текст другому разработчику. Или на аутсорсинг. Или обновить код через 10 лет. Когда бывший разработчик давно будет хакером на Бали.

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

Теги:
Всего голосов 6: ↑3 и ↓30
Комментарии7