Вопросы и ответы
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.
В разработке находится версия контроллера на двухъядерной архитектуре, где пользовательский сценарий будет выполняться на отдельном ядре процессора.