Telematic может использоваться как программируемый контроллер (ПЛК), однако по архитектуре и возможностям выходит за рамки классического понимания ПЛК.

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

Тем не менее исторически закрепилось обозначение «ПЛК», а стандарты IEC 61131-3 (ГОСТ Р МЭК 61131-3) определили набор специализированных языков программирования: LD; FBD; SFC; ST; IL. Поэтому в современном контексте под ПЛК обычно понимают программируемый контроллер, поддерживающий один или несколько языков стандарта IEC 61131-3.

Telematic не поддерживает IEC 61131-3 и в этом смысле не является классическим ПЛК.

Нет. Стандарт IEC 61131-3 определяет языки программирования для ПЛК: LD; FBD; SFC; ST; IL.

В Telematic используются языки MicroPython и C. Мы считаем, что подход IEC 61131-3 хорошо подходит для традиционных ПЛК, но ограничивает развитие контроллера рамками модели: вход → алгоритм → выход

Telematic ориентирован не только на локальную автоматизацию, но и на:

  • сетевое взаимодействие;
  • обработку данных;
  • интеграцию с внешними сервисами;
  • удалённое управление;
  • визуализацию;
  • функции SCADA/DCS.

Ключевые особенности Telematic:

  • Интеграция функций SCADA/DCS непосредственно в контроллер:

    • пользовательская HMI-панель;
    • визуализация технологического процесса;
    • сбор и хранение данных;
    • тревоги и уведомления;
    • удалённый доступ.
  • Программирование на современных языках:

    • MicroPython;
    • C.
  • Встроенная веб-среда разработки:

    • не требует установки ПО;
    • работает на любой платформе;
    • доступна через браузер;
    • сценарии хранятся и выполняются непосредственно на контроллере.
  • Простая архитектура:

    • отсутствие отдельной SCADA для типовых задач;
    • отсутствие отдельной IDE;
    • минимизация промежуточных компонентов.

Для инженеров АСУ ТП, привыкших к IEC 61131-3, переход на другой подход действительно может быть непривычным.

Однако Telematic создавался как попытка выйти за ограничения классической архитектуры ПЛК. Это касается:

  • способов разработки;
  • интеграции;
  • удалённого взаимодействия;
  • обработки данных;
  • пользовательских интерфейсов.

Использование универсальных языков программирования позволяет:

  • снизить ограничения платформы;
  • упростить интеграцию с внешними системами;
  • сократить разрыв между промышленной автоматизацией и классической разработкой ПО.

При разработке Telematic основными критериями выбора языка программирования были:

  • текстовый формат языка;
  • универсальность;
  • популярность;
  • низкий порог входа;
  • минимальные требования к аппаратным ресурсам.

По нашему мнению, визуальные языки программирования имеют ряд ограничений:

  • слабая масштабируемость больших проектов;
  • ограниченные возможности интеграции с современными инструментами разработки и ИИ;
  • узкая специализация.

Язык программирования контроллера должен подходить не только для классических задач автоматизации по схеме: вход → алгоритм → выход но и для:

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

MicroPython хорошо соответствует этим требованиям:

  • основан на Python 3;
  • имеет низкий порог входа;
  • широко распространён;
  • требует минимальных ресурсов;
  • хорошо подходит для embedded-систем.

Язык C используется как высокопроизводительная альтернатива MicroPython для задач, критичных к быстродействию и потреблению ресурсов.

MicroPython — это компактная реализация Python 3, предназначенная для систем с ограниченными ресурсами.

Основные отличия:

  • уменьшенное потребление памяти;
  • более компактный runtime;
  • оптимизация для микроконтроллеров и embedded-систем.

Синтаксис MicroPython практически полностью совместим с Python 3, поэтому разработчику Python обычно не требуется переучиваться.

Контроллер построен на микроконтроллерной архитектуре с ограниченным объёмом памяти.

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

Использование CPython на микроконтроллере данного класса невозможно и нецелесообразно.

Telematic подходит для:

  • автоматизации технологических процессов;
  • управления оборудованием;
  • сбора и обработки данных;
  • диспетчеризации;
  • удалённого мониторинга;
  • удалённого управления;
  • сетевого взаимодействия между устройствами и сервисами.

Подключение к серверу не является обязательным.

Подключение к серверу предоставляет дополнительные возможности:

  • серверная компиляция C-сценариев;
  • хранение метрик и событий на сервере;
  • удалённый доступ к веб-интерфейсу;
  • уведомления о тревогах и нештатных ситуациях.

Да.

Возможна организация серверной инфраструктуры внутри локальной или изолированной сети заказчика.

Вопрос решается индивидуально: support@telematic.dev

На текущий момент серийной версии в корпусе нет.

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

На текущий момент таких версий нет.

При необходимости возможна индивидуальная разработка модификации платы под требования заказчика.

  • обновления прошивки;
  • получения системной и отладочной информации.

Да.

Количество DI/DO/AI/AO может быть расширено с помощью внешних модулей по Modbus RTU.

В будущем возможно появление собственных модулей расширения Telematic.

В Telematic используется операционная система собственной разработки.

Контроллер не использует Linux и не основан на Linux-компонентах.

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

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

Telematic ориентирован на компактную и контролируемую embedded-архитектуру.

Для интеграции с внешними системами в Telematic поддерживаются:

  • Modbus RTU;
  • Modbus TCP;
  • SNMP;
  • REST API.

Подробнее: https://telematic.dev/docs/control/

При возникновении ошибки:

  • выполнение сценария будет остановлено;
  • информация об ошибке будет выведена в консоль.

Если контроллер работает в режиме «Эксплуатация»:

  • будет активирована системная авария;
  • пользователю будет отправлено уведомление.

Ошибка пользовательского сценария MicroPython не приводит к перезагрузке контроллера.

Сценарии на языке C выполняются непосредственно процессором контроллера без изоляции виртуальной машины.

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

В этом случае контроллер:

  • сохранит диагностическую информацию в BKP-памяти:
    • дату и время;
    • версию прошивки;
    • имя задачи FreeRTOS;
    • значения регистров микроконтроллера;
  • выполнит перезагрузку по Watchdog.

Если контроллер работает в режиме «Эксплуатация»:

  • будет активирована системная авария;
  • пользователю будет отправлено уведомление.

Если включён автозапуск сценария:

  • после перезагрузки будет выполнен повторный запуск;
  • если ошибка повторится 3 раза подряд в течение 60 секунд, автозапуск будет автоматически отключён.

Да.

В контроллере используется FreeRTOS с вытесняющей многозадачностью.

Это позволяет:

  • разделять пользовательские и системные задачи;
  • задавать приоритеты выполнения;
  • обеспечивать предсказуемое время реакции системы.

Однако степень realtime-детерминизма зависит:

  • от используемого языка;
  • архитектуры сценария;
  • интенсивности сетевого взаимодействия;
  • объёма пользовательской логики.

Сценарии на языке C обеспечивают более предсказуемое время выполнения по сравнению с MicroPython.

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