Подключение Neon PLC к Yandex Cloud (IoT Core) через MQTT

Предисловие

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

Начало работы с Yandex IoT Core

Создание устройства

Топики устройства

Пример консольного клиента на C#

Но написаны они на столько лаконично, что легко по ним пройтись едва ли удастся. Но как подспорье в непонятных моментах они очень пригодятся.

Подготовка облака Яндекс

Для начала необходимо создать аккаунт (если у Вас его нет) в Yandex Cloud - для этого переходим по ссылке и регистрируем новый аккаунт (необходимо указать реальный номер телефона).

Теперь нажимаем "Подключиться" в правом верхнем углу Облака.

Необходимо создать базовые элементы облака, начиная с консоли.

Создаём само облако.

Обязательно необходимо добавить платежную информацию (создать платёжный аккаунт) - если облако Вы создаёте впервые, то какое-то время пользоваться им можно будет бесплатно, в противном случае необходимо будет пополнить счет.

Нажмите "Создать аккаунт" и заполните все поля реальными данными.

Добавьте сервис "IoT Core".

Войдя в созданный сервис Вы получите приглашение создать реестр устройств.

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

Создавая реестр, укажите пароль, который мы будем использовать при подключении клиентским приложением для мониторинга устройств, логином же будет идентификатор реестра.

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

Указанный пароль будет необходимо прописать в ПЛК Neon для коммуникации с облаком Яндекса, а логином будет идентификатор устройства.

Создание проекта для ПЛК Neon

* Данный проект находится во вложении к статье - можете скачать его.

Откройте YartStudio (версии не ниже, чем 0.18) и создайте новый проект. Контроллер выберите Neon, установите период исполнения 20 мс.

Откройте раздел "Переменные пользователя" и создайте 3 переменные (для демонстрации этого будет достаточно).

Перейдите в структуру проекта и создайте новую программу.

Теперь откройте "Свойства проекта", раздел "Телеметрия" и заполните все поля настройки коммуникации (обратите внимание на не стандартный порт и на совпадение логина и ID устройства).

Во вкладке "Настройка публикации" выносим контейнер state и закидываем в него оставшиеся переменные (контейнера "Подписка" у Вас может не быть).

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