HLC программисты 2025-02-13
Кто такие программисты
Что делают программисты?
- Пишут код — это набор инструкций, которые говорят компьютеру, что и как делать. Например, как открыть фотографию, отправить сообщение или посчитать что-то.
- Исправляют ошибки — если программа работает неправильно, программисты ищут, где ошибка, и исправляют её. Это называется "отладка".
- Создают новые функции — добавляют в программы новые возможности. Например, в приложении для фото можно добавить фильтры или стикеры.
- Тестируют — проверяют, всё ли работает так, как задумано. Это важно, чтобы программа не "глючила".
- Работают в команде — часто программисты сотрудничают с другими специалистами, например, дизайнерами или менеджерами, чтобы создать что-то полезное и удобное. Главная задача программиста — решать задачи с помощью кода
Что делают программисты HLC
high level control system
- Занимаются решением задач
высокого уровнясортировки на уровне точек маршрута - Создают веб-интерфейс для отображения статусов и изменения настроек
- Поддерживают старые проекты, помогая техподдержке
- Составляют ТЗ обсуждая реализацию с клиентом
- Разрабатывают архитектуру и способы взаимодействия с внешними системами или оборудованием
- Оптимизируют свой труд и процессы
Чем отличается HLC от LLC
- Задачами
- LLC решают задачи управления группой железок (преимущественно механических или аналоговых)
- HLC управляет совокупностью разрозненных систем, одной из которых является LLC
- Подходом к решению задач
- LLC преимущественно реализует простые и чёткие алгоритмы управления, уменьшая вероятность ошибок до минимума
- HLC допускает возможность ошибок, и должна обрабатывать их поддерживая работоспособность системы не смотря на их наличие
- Оборудованием
- LLC работает в условиях ограниченных ресурсов
- HLC работает используя мощности одного или нескольких ПК
- Языком программирования
- 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