Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: Сервер hypercorn на Python 3.8.2 для преобразования пром протоколов в HTTP

  1. #1

    По умолчанию Сервер hypercorn на Python 3.8.2 для преобразования пром протоколов в HTTP

    Всех приветствую! Начал такой небольшой проект на ПЛК210-11CS. Тема на подумать и обсудить. (Не судите строго пишу на форуме впервые)
    Создал два микросервиса. В основе лежит Flask, разворачиваемый, на сервере hypercorn. Первый микросервис конвертирует OPC UA в HTTP (основу написал за день). Второй делает POST запросы к первому и формирует БД (также около дня с отладкой). В будущем планирую перейти на более эффективную шину для обмена данными но пока так. Возможно также переведу это с питона на rust, пока хз как на ПЛК это будет работать поэтому не уверен.

    По первому микросервису
    Имеется три основных enpoint для работы. Все три POST. Все json POST запроса содержат ключ и либо только список нодов либо список нодов + значение(для записи). Ответом является отладочная инфа + нужные данные (для чтения - это значение и его тип; для записи - результат выполнения команды). Простое решение на библиотеке asyncua 1.1.5 + Flask 3.0.3.
    Первый endpoint - чтение нодов. Второй endpoint - запись нодов. Третий - создать новый ключ доступа.
    Тесты показали следующее быстродействие на ПЛК:
    1) 100 нодов чтение/запись от 0.9сек до 1.2 сек.
    2) 200 нодов чтение/запись от 2.2сек до 2.5 сек.
    3) 500 нодов чтение/запись от 5.2сек до 7.2 сек.
    Это время именно на опрос OPC UA. Время с HTTP ответом конечно будет разниться в зависимости от удаленки (время рассчитывал как общее время ответа минус время ответа от OPC). Например на keen dns примерно время запроса занимает от 1 до 5 сек. Количество нодов сильно не сказывается. А если через VPN сервер фирмы то время сильно сокращается и не гуляет. В среднем максимальный ответ был за полсекунды.

    По второму микросервису
    Микросервис чисто для БД. Использует Flask, request а для запись в БД - стандартная Python библиотека sqLite3. Микросервис обращается к первому и записывает данные с периодичностью которая указывается в настройках для каждой группы нодов. Flask нужен для изъятия данных из БД. Имеет POST для запроса данных из нужной БД. Также несколько сервисных endpoint для проверки сети и работы микросервиса. Может работать с несколькими микросервисами первого типа. Настройки пока храню в json.

    Вообще на будущее есть идеи по переносу серверов на Rust, а пока пишу WEB UI при помощи NiceGui 2.24.2. Отличная библиотека для тех кому нафиг не сдался json html и css(в библиотеке есть возможность их использования).
    Есть ли кто-то кто делал такое?
    Можно ли развернуть rust на ПЛК?
    Возможно кто-то писал скрипты для сервера на другом языке?
    В дальнейшем я также буду выкладывать в тему свои результаты. Если есть вопросы задавайте)

  2. #2

    По умолчанию

    вы немного не по адресу зашли
    вам куданибудь к тру кодерам
    понятно что у вас много времени
    но вопрос один - зачем всё это?

  3. #3
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

    а сколько весит сам питон?

  4. #4

    По умолчанию

    Сам Питон весит около 100мб и встроен уже в ПЛК210 и ПЛК200 на новых версиях прошивок.

  5. #5

    По умолчанию

    Трушнуго в этом ничего нет. Стандартные знания сетевых протоколов + знания промышленных протоколов связи. Это как по мне стандарт который должен знать каждый уважающий себя инженер КИПиА.
    Питон такой же инструмент реализации проектов как и языки МЭК стандарта. Также ничего сложного в нем нет. Он даже проще чем тот же ST.
    А цель проста. Очень многие не хотят платить помесячно за использование клауд систем, да и нормальные клауд системы управления технологическими процессами остались за бугром.
    Плюс многие заказчики требуют современного интерфейса, который адаптируется под экран телефона, а СКАДы им кажутся допотопными какие бы фичи и дизайнерские решения не применялись.
    Тут спрос рождает предложение. Понятно, что не совсем правильно делать так, но что просят то и делаю.

  6. #6

    По умолчанию

    Цитата Сообщение от Dark Mech Посмотреть сообщение
    Трушнуго в этом ничего нет. Стандартные знания сетевых протоколов + знания промышленных протоколов связи. Это как по мне стандарт который должен знать каждый уважающий себя инженер КИПиА.
    Питон такой же инструмент реализации проектов как и языки МЭК стандарта. Также ничего сложного в нем нет. Он даже проще чем тот же ST.
    А цель проста. Очень многие не хотят платить помесячно за использование клауд систем, да и нормальные клауд системы управления технологическими процессами остались за бугром.
    Плюс многие заказчики требуют современного интерфейса, который адаптируется под экран телефона, а СКАДы им кажутся допотопными какие бы фичи и дизайнерские решения не применялись.
    Тут спрос рождает предложение. Понятно, что не совсем правильно делать так, но что просят то и делаю.
    Хорошо. Может и с форумом поделишься своими разработками.

  7. #7

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    надеюсь, заказчик предупрежден что в плк нет многозадачности, и единственный процессор делит бремя работы как с основной задачей контроллера, так и построенной Вами визуализацией, да еще на микросервисах
    А если в ПЛК процессор двухъядерный стоит ?

  8. #8
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

    Центральный процессор 4х Cortex-А55 1,8 ГГц - там как бы не 4-х ядерный, можно посмотреть инфу по архитектуре... Тут больше вопрос, как этими ядрами распоряжается CodeSys...
    опять же в терминале Linux можно посмотреть командами, сколько их там в этом ARMe

    и даже может быть 8-мь https://www.cpubenchmark.net/cpu.php...00+MHz&id=5104
    Последний раз редактировалось melky; 17.11.2025 в 12:55.

  9. #9

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Центральный процессор 4х Cortex-А55 1,8 ГГц - там как бы не 4-х ядерный, можно посмотреть инфу по архитектуре... Тут больше вопрос, как этими ядрами распоряжается CodeSys...
    опять же в терминале Linux можно посмотреть командами, сколько их там в этом ARMe

    и даже может быть 8-мь https://www.cpubenchmark.net/cpu.php...00+MHz&id=5104
    Dark Mech парень не простой. Он разберется как ядрами распорядиться.

  10. #10
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    12,982

    По умолчанию

    стало понятнее?
    очень интересно, у вас явно не Cortex A55 а какое-то старое барахло с ARMv7 - сайт Овен трындит в характеристиках ПЛК210-1х ?
    https://owen.ru/product/plk210 - сравнительная таблица. У вас 210-0х ? тогда похоже

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Получение данных с OPC сервер (Python)
    от Eldar_28 в разделе Помощь Разработчикам
    Ответов: 2
    Последнее сообщение: 03.08.2024, 10:46
  2. Ответов: 3
    Последнее сообщение: 19.12.2019, 15:45
  3. надежность протоколов
    от aven в разделе Сетевые технологии
    Ответов: 4
    Последнее сообщение: 16.02.2010, 13:37
  4. ПЛК100/150 и нестандартная пром.электроника
    от Прохожий в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.01.2007, 19:13
  5. ПЛК100/150 и нестандартная пром.электроника
    от Прохожий в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 28.12.2006, 11:39

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •