PI Web Server에서 PI 태그 이름을 어떻게 얻습니까?친애하는 JMP 사용자 커뮤니티 여러분,
저와 제 동료는 현재 내부 사용자가 원하는 대로 PI 태그를 쿼리하고 몇 개의 스크립트가 첨부되고 일부 데이터 조작 단계가 사전에 수행된 한 테이블에 태그를 모두 포함할 수 있는 JMP 추가 기능을 개발하고 있습니다.
따라서 본질적으로 우리는 JMP의 "OSIsoft PI 서버에서 가져오기" 기능을 재현하고 활용하고 싶지만 필요에 따라 약간 조정했습니다.
현재 PI 클라이언트를 실행하기 위해 목록에 저장하려는 PI 웹 서버에서 원하는 PI 태그 이름을 동적으로 검색하는 데 갇혀 있습니다. 현재로서는 일부 PI 태그의 하드 코딩된 목록이 있지만 이름이 변경되거나 새 Pi 태그가 추가될 수 있으므로 이는 이상적인 솔루션이 아닙니다.
%와 같은 와일드카드를 사용하면 더 미세한 카테고리의 피태그를 생성하는 데 도움이 됩니다. 이러한 카테고리는 프로세스 단계, 생산 라인 등 이전 사용자 선택에 따라 달라집니다. 그러나 jsl에서 목록에 해당하는 항목을 찾는 데는 운이 없었습니다.
또한 SQL을 사용하여 PI 웹 서버를 쿼리할 수 없습니다.
AF 경로는 다음과 같습니다.

Asset_DB 및 Stat_DB는 사용자 선택에 따라 내용이 결정되는 목록입니다. Pitags는 현재 몇 개의 pi 태그로 구성된 하드 코딩된 목록이지만 사용자 선택에도 기반을 두기를 원합니다.
내 질문: JMP 개발자는 사용자 선택에 따라 웹 서버에서 파이 태그 이름을 어떻게 검색했습니까?
많은 감사드립니다!
거기에
자동화 및 스크립팅데이터 접근Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?거기에,
AF 계층의 특정 수준에서 하위 요소를 가져오기 위해 JMP는 https://docs.aveva.com/bundle/pi-web-api- 에 문서화된 "요소 - 요소 가져오기" 웹 API 메서드를 사용합니다. reference/page/help/controllers/element/actions/getelements.html
JMP는 다음과 같은 요청을 합니다.
GET 요소/{webId}/elements?webidtype=idonly&selectedfields=items.webid;items.name;items.description;items.path;items.haschildren;items.templatename
{webId}는 하위 항목을 원하는 경로 계층 구조의 webId로 대체됩니다. 그러면 이름, 설명, webId, 하위 요소가 있는지 여부, 해당 요소가 속한 템플릿(있는 경우)을 포함하여 하위 요소에 대한 JSON 설명이 반환됩니다. 이러한 속성이 모두 필요하지 않을 수도 있으므로 'selectedfields' 쿼리 매개변수를 필요한 만큼 줄일 수 있습니다. JSL의 'HTTP 요청' 메소드를 사용하여 이와 같은 요청을 보낼 수 있어야 합니다. 그런 다음 JSL의 'Parse JSON' 기능을 사용하여 결과를 구문 분석할 수 있습니다.
도움이 되었기를 바랍니다!
--남자 이름
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?한동안 이 작업을 수행하지 않았습니다... 모든 파이 태그에 대한 엑셀 테이블을 얻을 수 있는 방법이 있었던 것으로 기억합니다. 그런 다음 JMP에서 열고 태그 이름이 첫 번째 열에 있도록 위치를 바꿉니다. 여기에서 이름을 구문 분석하고 필터링하여 스크립트에서 사용할 수 있는 목록을 생성할 수 있습니다.
..더 구체적으로 말씀드릴 수 없어서 죄송합니다.
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?안녕 바이런,
답변해주셔서 정말 감사합니다!
나는 또한 내 머리 뒤쪽에 그 옵션이 있었지만 더 쉬운 방법이 있기를 바랐습니다.
최상의,
거기에
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?안녕 마이클,
이 깔끔한 솔루션에 대해 정말 감사드립니다!
계속해서 해당 방법을 구현해 보겠습니다.:)
최고의 소원,
거기에
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?안녕하세요 마이클,
AF 계층 구조에서 파이 태그를 검색하기 위해 "새 HTTP 요청" 기능을 시도했습니다.
이와 같이:

스크립트가 실행 중이지만 다음과 같은 오류 메시지가 나타납니다. 그 오류에 대해 잘 알고 계시나요?

"새 PI 클라이언트" 기능을 사용하여 PI 태그를 쿼리할 수 있으므로 권한 누락은 문제가 되지 않는 것 같습니다. PI 시스템 관리자가 액세스 권한을 확인했지만 액세스 권한 누락 문제를 찾을 수 없었습니다.
많은 감사드립니다!
거기에
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?Pi 서버에 기본 인증이 필요합니까? 그렇다면 다음을 사용하고 싶을 것입니다:
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),<BR />Username([your username]),<BR />Password([your password]),<BR />Authentication Method("BASIC"),
QueryString(qrry)
) << Send
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?Bryan에게 감사드립니다. Kerberos를 사용하여 솔루션을 구현했습니다.
Re: PI 웹 서버에서 PI 태그 이름을 어떻게 얻나요?다음과 같았나요?
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),Authentication Method("KERBEROS"),
QueryString(qrry)
) << Send