산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

REST API 개조 – 역방향 프록시 설정

PLCnext REST Interface는 백엔드 시스템에서 데이터를 표시하고 수신하는 환상적인 도구입니다. REST 또는 REpresentational State Transfer는 확장 가능한 웹 서비스를 만들기 위한 지침과 모범 사례로 구성된 소프트웨어 아키텍처 스타일입니다. PLCnext infoportal에는 이미 좋은 정보가 많으니 꼭 확인하세요! PLCnext 펌웨어에서 제공하는 URI는 처음부터 시스템을 구축할 수 있다면 완벽합니다. 그러나 PLCnext에서 기존 REST 인터페이스를 개조하려는 경우에는 이상적이지 않습니다. 이 블로그에서는 고유한 URI를 설정하고 역 프록시를 사용하여 변수와 연결하는 방법을 보여줍니다. 우리는 작은 예를 설정하고 거기에서 작업을 시작합니다!

전제조건

저는 FW2020.6 및 PLCnext Engineer 2020.6과 함께 AXC F 2152 컨트롤러를 사용하고 있습니다. 그러나 2020.0 이후의 이전 버전에서도 동일하게 가능해야 합니다. 저는 PuTTY를 사용하여 SSH 연결을 설정하고 우편 배달부를 사용하여 HTTP 요청을 처리할 것입니다. 개발 목적으로 인증을 비활성화했습니다. 프로덕션에서 동일한 작업을 수행하면 안 됩니다! PLCnext Engineer에 대한 지침은 매우 높은 수준으로 제공될 것입니다. 어떻게 해야 할지 모르겠습니까? PLCnext 정보 포털 및 지침 비디오를 살펴보고 샘플 프로젝트와 비교하십시오! 내가 사용하는 컨트롤러의 IP 주소는 192.168.10.10입니다. 사용 중인 IP 주소로 변경하십시오.

예시

이 블로그에서는 간단한 펌프 UDT를 예로 사용하겠습니다. 이 GitHub 페이지에서 샘플 프로그램을 다운로드하거나 직접 만들 수 있습니다. eHMI 설정에서 "사용자 관리" 사용을 끄고 전역 변수를 생성합니다. eHMI 페이지에서 이 변수를 사용하면 API에서 사용할 수 있습니다.

첫 번째 API 호출

아마도 우리는 몇 분 안에 정확히 무엇을 변경하고 있는지 먼저 발견해야 할 것입니다!
첫 번째 펌프의 가치를 얻기 위해 GET 요청을 보내도록 합시다.

Postman을 사용하여 다음 URI로 GET 요청을 보냅니다.

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": ""
}
}
]
}

커스텀 엔드포인트 설정

셸 세션을 열고 루트 암호를 만들고 루트 사용자로 로그인합니다.
다음으로, 터미널에 다음 명령어를 입력하고 터미널의 "하단"으로 이동하여 그 사이에 아무것도 입력하지 않도록 주의하세요!

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 요청을 전송합니다. 이번에는 다음 URI로 전송합니다.

GET https://192.168.10.10/Pump1

같은 답변을 받았습니까? 축하합니다. 프록시가 성공적으로 설정되었습니다!

여러 펌프 설정

알겠습니다. 하지만 펌프가 여러 개인 경우에는 어떻게 합니까? 글쎄, 한 가지 접근 방식은 집이 펌프 UDT인 어레이를 만들 수 있습니다. 변수를 호출하여 전체 배열을 얻거나 오른쪽 대괄호 사이에 원하는 인덱스를 지정하여 관심 있는 요소만 가져올 수 있습니다. 예를 들어 Pump2[1]은 Pump2라는 배열에서 인덱스 1의 요소를 제공합니다.

그러나 그것이 이 블로그의 주제입니다. 여러 펌프에 액세스할 수 있는 방식으로 프록시를 설정할 수도 있습니다.
다음 구성표와 일치하도록 이전 단계에서 붙여넣은 텍스트를 수정합니다.

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

우편 배달부와 함께 GET 요청을 첫 번째 URI로 전송하면 이전과 동일한 결과를 얻을 수 있습니다. 두 번째 URI에 GET 요청을 보내면 동일한 데이터 유형의 배열이 제공됩니다.

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

이제 어떤 API 체계와도 일치하는 모든 것을 갖추고 PLCnext 장치에 통합해야 합니다!

추가 자료

https://www.howtogeek.com/343877/what-is-an-api/https://www.w3schools.com/tags/ref_httpmethods.asphttps://medium.com/@TebbaVonMathenstien/what-is-an -api-and-why-should-i-use-one-863c3365726bhttps://restfulapi.net/rest-api-design-tutorial-with-example/

산업기술

  1. 열경화성 수지와 열가소성 수지의 차이점 알아보기
  2. 스마트해지:가정의 미래
  3. 제조업체를 강화하기 위한 공급망 네트워킹 도구인 CONNEX™ 알아보기
  4. B2B 구매 과정에서 선정되기:확인해야 할 26개 항목
  5. 역 물류의 미개척 가능성
  6. 역경매의 귀환:공급업체가 참여할 것인가?
  7. 창고 스캐닝 시스템을 최대한 활용하는 방법
  8. 리드 창출 투자를 최대한 활용하려면 어떻게 해야 합니까?
  9. 스페인과 나머지 국가 간의 Industry 4.0 비교
  10. 가장자리에서 AI 추론을 시작하는 방법