Come posso ottenere i nomi dei tag PI dal server Web PI?Cara comunità di utenti JMP,
Io e il mio collega stiamo attualmente lavorando su un componente aggiuntivo JMP che consentirebbe ai nostri utenti interni di interrogare i tag PI come desiderano e di averli tutti in un'unica tabella con alcuni script allegati e alcuni passaggi di manipolazione dei dati eseguiti in anticipo.
Quindi, in sostanza, vogliamo riprodurre e utilizzare la funzionalità "Importa dal server OSIsoft PI" in JMP ma con alcune modifiche alle nostre esigenze.
Al momento siamo bloccati nel recuperare dinamicamente i nomi dei tag PI desiderati dal server Web PI che vogliamo quindi archiviare in un elenco su cui eseguire il client PI. Per ora, disponiamo di un elenco codificato di alcuni tag PI, ma poiché la denominazione potrebbe cambiare o potrebbero essere aggiunti nuovi tag Pi, questa non è una soluzione ideale.
Usare un carattere jolly come % ci aiuterebbe a creare categorie più precise di pitag - tali categorie dipenderanno dalla precedente selezione dell'utente, ad esempio, fase del processo, linea di produzione - ma non abbiamo avuto fortuna nel trovare una controparte in jsl per gli elenchi.
Inoltre, non possiamo utilizzare SQL per interrogare il server web PI.
Questo è il nostro percorso AF:

Asset_DB e Stat_DB sono elenchi il cui contenuto è basato sulla selezione dell'utente. Pitags è attualmente un elenco codificato di alcuni tag pi, ma vogliamo che sia basato anche sulla selezione dell'utente.
La mia domanda: come avete recuperato (sviluppatori JMP) i nomi dei tag pi dal server Web in base alla selezione dell'utente?
Grazie mille in anticipo!
C'è un
Automazione e scriptingAccesso ai datiRi: Come posso ottenere i nomi dei tag PI dal server Web PI?C'è un,
Per ottenere gli elementi secondari a un particolare livello della gerarchia AF, JMP utilizza il metodo API Web "Element - Get Elements", documentato qui: https://docs.aveva.com/bundle/pi-web-api- riferimento/pagina/aiuto/controllers/elemento/actions/getelements.html
JMP effettua una richiesta simile alla seguente:
GET elementi/{webId}/elements?webidtype=idonly&selectedfields=items.webid;items.name;items.description;items.path;items.haschildren;items.templatename
Il {webId} viene sostituito dal webId della gerarchia del percorso per la quale desideri i figli. Ciò restituisce una descrizione JSON degli elementi secondari inclusi i relativi nomi, descrizioni, webId, se hanno elementi secondari e a quale modello appartengono, se presente. Potresti non aver bisogno di tutti questi attributi, quindi potresti ridurre il parametro di query "selectedfields" a ciò di cui hai bisogno. Dovresti essere in grado di inviare una richiesta come questa utilizzando i metodi "Richiesta HTTP" di JSL. È quindi possibile analizzare il risultato utilizzando la funzione "Parse JSON" di JSL.
Spero che questo ti aiuti!
--Michael
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Non lo faccio da un po'... Ricordo che c'era un modo per ottenere una tabella Excel di tutti i tag pi greco. Una volta ottenuto questo, aprilo in JMP e trasponilo in modo che i nomi dei tag siano nella prima colonna. Da lì puoi analizzare e filtrare i nomi per generare elenchi che puoi utilizzare nei tuoi script.
..scusa, non potrei essere più specifico.
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Ciao Byron,
grazie mille per la tua risposta!
Avevo anche questa opzione nella mia testa, ma speravo che ci fosse un modo più semplice.
Migliore,
C'è un
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Ciao Michele,
grazie mille per questa bella soluzione!
Andremo avanti e proveremo a implementare questo metodo.:)
Auguri,
C'è un
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Ciao Michael,
abbiamo provato la funzione "Nuova richiesta HTTP" per recuperare i tag pi dalla gerarchia AF.
Come questo:

Lo script è in esecuzione, ma riceviamo il seguente messaggio di errore. Hai familiarità con quell'errore?

Poiché possiamo interrogare le variabili PI con la funzione "Nuovo client PI", la mancanza di autorizzazione non sembra essere un problema. Il nostro responsabile dei sistemi PI ha confermato i nostri diritti di accesso e non è riuscito a trovare un problema relativo ai diritti di accesso mancanti.
Grazie mille in anticipo!
C'è un
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Il tuo server Pi richiede, ad esempio, l'autorizzazione di base? se è così allora vorresti usare:
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
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Grazie Bryan, abbiamo implementato la tua soluzione utilizzando Kerberos.
Ri: Come posso ottenere i nomi dei tag PI dal server Web PI?Era qualcosa del tipo:
PI_web = New HTTP Request(
URL([your url]),
Method("GET"),
Secure(0),Authentication Method("KERBEROS"),
QueryString(qrry)
) << Send