Оптимизация PLCnext с Azure IoT Edge: Edge-аналитика и облачная интеграция
Введение
Azure IoT Edge позволяет переносить облачную аналитику и пользовательскую логику на "край" — в нашем случае на устройство PLCnext. Это снижает использование полосы пропускания и задержки. С Azure IoT Edge можно разрабатывать и развертывать свои приложения из центрального облачного приложения. В этом блоге — установка Azure IoT Edge и базовые принципы.
Полное описание Azure IoT Edge выходит за рамки блога, ознакомьтесь с порталом перед продолжением.
Установка
Создание Azure IoT Hub и устройства
Предполагается, что у вас уже есть учётная запись Azure.
- Создайте группу ресурсов с понятным именем.
- Создайте службу IoT Hub (можно выбрать бесплатный уровень).
- В сервисе найдите "IoT Edge" и создайте новое IoT Edge устройство. Задайте ID, остальные настройки — по умолчанию.
- Запишите "Primary Connection String" нового устройства — он понадобится для провижининга.
Установка Azure IoT Edge Runtime
Выполните команды от root (актуальная версия всегда здесь):
git clone https://github.com/pxcbe/azure-iot-edge.git cd azure-iot-edge/install sudo passwd root su chmod +x SetupEdge.sh ./SetupEdge.sh
Провижнинг устройства: отредактируйте /etc/iotedge/config.yaml, вставьте connection string на строку 55 (сохранить: Ctrl+S, выйти: Ctrl+X). Затем перезагрузите контроллер:
reboot
Проверка установки
Запустите от root:
iotedge check --verbose
Если ошибок нет — продолжаем. При ошибках проверьте GitHub репозиторий или создайте issue.
Развертывание модулей
Только runtime недостаточно. Развернём модули. В портале Azure: "Set modules" → "Runtime settings" → измените "Hostport", чтобы избежать конфликта с NGINX на PLCnext. Добавьте модуль из маркетплейса "Simulated Temperature Sensor". Нажмите "Review + create" и задеплойте на устройство.
Настройки runtime:
{
"HostConfig": {
"PortBindings": {
"443/tcp": [{"HostPort": "444"}],
"5671/tcp": [{"HostPort": "5671"}],
"8883/tcp": [{"HostPort": "8883"}]
}
}
}
Просмотр телеметрии
Установите Azure IoT Tools в VS Code (нужен вход в Azure, сертификаты должны быть на машине разработчика).
Передача данных PLCnext в IoT Hub
Способы: Modbus-модуль + Modbus-сервер в проекте PLCnext, REST-сервис с кастомным модулем, или OPC Publisher для встроенного OPC UA сервера PLCnext.
ВАЖНО: Сейчас есть ошибка в модуле OPC Publisher, используйте другой метод.
Disclaimer: Для блога отключены функции безопасности PLCnext, в продакшене так не делайте!
Отключите аутентификацию пользователей в WBM PLCnext. Добавьте OPCPublisher из маркетплейса, настройте "Container Create Options":
{
"Hostname": "publisher",
"Cmd": ["publisher", "--pf=/appdata/publishednodes.json", "--di=60", "--to", "--aa", "--si=10", "--ms=262144"],
"HostConfig": {
"Binds": ["/iiotedge:/appdata"],
"PortBindings": {"62222/tcp": [{"HostPort": "62222"}]},
"ExtraHosts": ["localhost:127.0.0.1"]
}
}
Создайте папку /appdata и файл publishednodes.json с конфигурацией ваших узлов (пример для Counter и Sinusoid). Если всё прошло хорошо, данные появятся в Azure IoT Tools для VS Code.
Диагностика: iotedge logs -f "namemode".
Благодарности и контакты
Особая благодарность Oliver Warneke. При проблемах: axsupport@phoenixcontact.be.
Ссылки
Промышленные технологии
- Почему Edge Computing критичен для успеха IoT
- Renesas представляет безопасную серию RA MCU для промышленного IoT и edge‑приложений
- От Edge к Cloud: мастерство IoT data pipelines
- Инсайты по Edge Computing и стратегии ИоТ с IoT World 2019
- Sprint и Ericsson запускают 5G-готовое периферийное IoT-платформу интеллекта
- Освоение проектирования печатных плат для Интернета вещей: Полное руководство
- Использование пограничных вычислений для IoT, ИИ и новых технологий
- Edge и IoT: гармонизация данных для цифрового успеха
- Как IoT и периферийные вычисления дополняют друг друга
- Открытый исходный код питает рост IoT и периферийных вычислений