Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Промышленные технологии

Оптимизация PLCnext REST API: Настройка Reverse Proxy

PLCnext REST Interface — фантастический инструмент как для представления, так и для приема данных от бэкенд-системы. REST, или REpresentational State Transfer, — это стиль программной архитектуры, состоящий из рекомендаций и лучших практик для создания масштабируемых веб-сервисов. Уже есть много отличной информации на PLCnext infoportal, обязательно проверьте её! URI, предоставляемые прошивкой PLCnext, идеальны, если вы строите систему с нуля. Однако они не идеальны, если вы хотите адаптировать существующий REST-интерфейс на PLCnext. Этот блог покажет, как настроить свои собственные URI и связать их с вашими переменными с помощью reverse proxy. Начнем с настройки небольшого примера и будем развивать его!

Предварительные требования

Я использую контроллер AXC F 2152 с FW2020.6 и PLCnext Engineer 2020.6. Но то же самое должно быть возможно с предыдущими версиями позже 2020.0. Я буду использовать PuTTY для настройки SSH-соединения и Postman для обработки HTTP-запросов. Я отключил аутентификацию для целей разработки, вы не должны делать то же самое в продакшене! Инструкции для PLCnext Engineer будут даны очень высокого уровня, не уверены, что делать? Посмотрите на PLCnext infoportal и инструкционные видео и/или сравните с примером проекта! Контроллер, который я использую, имеет IP-адрес 192.168.10.10, пожалуйста, измените это на IP-адрес, который вы используете.

Пример

В этом блоге я буду использовать простой UDT насоса в качестве примера. Вы можете скачать пример программы с этой страницы GitHub, или, конечно, создать свой собственный. Отключите использование «user management» в настройках eHMI и создайте глобальную переменную. Используйте эту переменную на странице eHMI, чтобы мы могли использовать её в API.

Первый API-вызов

Может быть, сначала мы должны узнать, что именно мы собираемся изменить через несколько мгновений!
Давайте отправим GET-запрос, чтобы получить значение нашего первого насоса.

Используйте Postman для отправки GET-запроса на следующий URI:

GET https://192.168.10.10/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1

(Вы можете изменить Pump1 на свою переменную)

Результат:

{
  "apiVersion": "1.4.0.0",
  "projectCRC": 3448945666,
  "userAuthenticationRequired": true,
  "variables": [
    {
      "path": "Arp.Plc.Eclr/Pump1",
      "value": {
        "xStatus": false,
        "iNumberOfStarts": 0,
        "sStatus": ""
      }
    }
  ]
}

Настройка пользовательской конечной точки

Откройте сессию оболочки, создайте пароль root и войдите как пользователь root.
Далее введите следующую команду в терминале, перейдите в «конец» терминала и будьте осторожны, не вводите ничего в это время!

nano /etc/nginx/nginx.conf

Скопируйте и вставьте следующую часть в терминал и сохраните с ctrl + s и закройте с ctrl + x.

location /Pump1 {
  proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr/Pump1;
}

Отправка запроса на новую конечную точку

Отправьте новый GET-запрос с Postman, на этот раз на следующий URI:

GET https://192.168.10.10/Pump1

Получили тот же ответ? Поздравляю, ваш прокси настроен успешно!

Настройка нескольких насосов

Хорошо, а что если у меня несколько насосов? Ну, один подход может быть создание массива, содержащего наши UDT насосов. Вы можете получить весь массив, вызвав переменную, или только нужный элемент, указав индекс в квадратных скобках, например Pump2[1] даст вам элемент с индексом 1 в массиве Pump2.

Но это не тема этого блога. Мы также можем настроить прокси так, чтобы получить доступ к нескольким насосам.
Измените текст, вставленный на предыдущих шагах, чтобы соответствовать следующей схеме:

location /pumps {
  proxy_pass https://127.27.0.1:443/_pxc_api/api/variables?paths=Arp.Plc.Eclr;
}

Отправка GET-запроса с Postman на первый URI даст то же, что и раньше. Отправка GET-запроса на второй URI даст массив того же типа данных.

https://192.168.10.10/pumps/Pump1
https://192.168.10.10/pumps/Pump2

Теперь у вас должно быть все, чтобы соответствовать любой схеме API, с которой вы сталкиваетесь, и интегрировать её в ваше устройство PLCnext!

Дополнительное чтение

Промышленные технологии

  1. Термореактивные пластики vs Термопластики: Понимание ключевых различий и применений
  2. Эволюция умного дома: что будущее готовит для коннектед жилья
  3. Откройте CONNEX™: ведущая платформа нетворкинга цепочек поставок для производителей
  4. Будьте первым выбором: 26 обязательных пунктов чек-листа для успеха B2B-закупок
  5. Раскрытие ценности: оптимизированная обратная логистика повышает ROI и лояльность клиентов
  6. Возрождение обратных аукционов: расширение возможностей поставщиков в ценовых войнах
  7. Максимизируйте эффективность: экспертные советы для вашей системы сканирования склада
  8. Максимизируйте ROI от инвестиций в генерацию лидов
  9. Внедрение Индустрии 4.0: Испания в глобальном ландшафте
  10. Мастерство Edge AI-инференса: практическое руководство к действительным инсайтам