Перейти к основному контенту

HLC программисты 2025-02-12

Кто такие программисты

Что делают программисты?

  1. Пишут код — это набор инструкций, которые говорят компьютеру, что и как делать. Например, как открыть фотографию, отправить сообщение или посчитать что-то.
  2. Исправляют ошибки — если программа работает неправильно, программисты ищут, где ошибка, и исправляют её. Это называется "отладка".
  3. Создают новые функции — добавляют в программы новые возможности. Например, в приложении для фото можно добавить фильтры или стикеры.
  4. Тестируют — проверяют, всё ли работает так, как задумано. Это важно, чтобы программа не "глючила".
  5. Работают в команде — часто программисты сотрудничают с другими специалистами, например, дизайнерами или менеджерами, чтобы создать что-то полезное и удобное. Главная задача программиста — решать задачи с помощью кода

Что делают программисты HLC

high level control system

  • Занимаются решением задач высокого уровня сортировки на уровне точек маршрута
  • Создают веб-интерфейс для отображения статусов и изменения настроек
  • Поддерживают старые проекты, помогая техподдержке
  • Составляют ТЗ обсуждая реализацию с клиентом
  • Разрабатывают архитектуру и способы взаимодействия с внешними системами или оборудованием
  • Оптимизируют свой труд и процессы

Чем отличается HLC от LLC

  1. Задачами
    • LLC решают задачи управления группой железок (преимущественно механических или аналоговых)
    • HLC управляет совокупностью разрозненных систем, одной из которых является LLC
  2. Подходом к решению задач
    • LLC преимущественно реализует простые и чёткие алгоритмы управления, уменьшая вероятность ошибок до минимума
    • HLC допускает возможность ошибок, и должна обрабатывать их поддерживая работоспособность системы не смотря на их наличие
  3. Оборудованием
    • LLC работает в условиях ограниченных ресурсов
    • HLC работает используя мощности одного или нескольких ПК
  4. Языком программирования
    • LLC использует язык STEP7 ST похожий на CLang
    • HLC пишут на C# .Net, древняя версия которого известна как .Net framework встроенная в OS Windows

Что ещё программисты умеют делать

  • Писать прикладной софт, не связанный с сортировкой
    • Отображение фотографий со сканеров штрихкодов
    • Отображение состояния системы конвейеров
    • Подсчёт статистики
  • Чинить принтеры (по крайней мере пытаться)
  • Устанавливать винду и линукс
  • Настраивать инфраструктуру, настраивая готовые решения под свои задачи
    • https://cloud.pepe1984.ru
    • https://hlc.photomechanics.ru/
    • https://docs.pepe1984.ru/
    • https://pm.pepe1984.ru/

Что же конкретно делают HLC?

  • Обсуждение с клиентом ТЗ на созвоне, уточнение логики сортировки и способ обмена информацией
  • Доработка ядра системы под конкретные условия и требования
  • Реализация нестандартной логики или добавление устройств (принтеры, весы и т.п.)
  • Расширение протоколов взаимодействия с ПЛК под нестандартную логику
  • Настройка прод сервера (установка виртуализатора proxmox и нескольких виртуальных машин)
  • Настройка инфраструктуры (база данных, сервисы HLC, логи, метрики)
  • Активное участие в ПНР на последнем этапе. Проверка всей логики внутри и с клиентом

Глобальные задачи

Сделано

  • Виртуализация систем
    • Возможность использовать несколько систем на одном компьютере (Linux, windows)
    • Разделение систем под задачи (хранение и обмен данными, логика, мониторинг, управление ПЛК)
  • Контейнеризация сервисов HLC используя docker и docker-registry
    • Чёткое разделение версий одного приложения
    • Мониторинг и управление сервисами
    • Отсутствие потенциальных побочных эффектов
  • Автоматические тесты логики используя симулятор оборудования
  • Улучшение качества логов
  • Стандартизация проектов используя одно и то же ядро системы
  • Оптимизация взаимодействия с ПЛК используя протокол MQTT и MessagePack
  • Система хранения паролей для совместного доступа
  • Nuget репозиторий для хранения отдельных библиотек (почти не задействован)

В планах

  • Настройка CI/CD процессов, автоматизированное обновление сервисов
  • Добавление алертов на основе метрик
  • Добавление метрик сервисов HLC
  • Повышение надёжности системы путём репликации и резервирования сервисов на разных серверах
  • Система регистрации ошибок (чтобы клиент имел возможность сообщить о проблеме где то кроме чата ТГ)

Что мы используем в работе

  • C# и .Net
  • Linux
  • PostgreSql
  • RabbitMq + Mqtt plugin
  • Gitlab
  • Docker + docker-repo
  • OpenSearch + OpenSearch-dashboards
  • Proxmox
  • Prometheus + Grafana
  • Obsidian + GitLab