logo PIRAMIDEwww.piramide.tech
Modello FX4
Manuale del programmatore FX4
ID documento: 2711715845
Versione: v3Programmatore PYRAMID FX4

Programmatore FX4

ID documento: 2711715845
FX4 – Manuale del programmatore FX4

Programmatore PYRAMID FX4 - icona ID documento: 2711650310

Autore Matteo Nichols
Proprietario Responsabile del progetto
Scopo Spiegare i concetti di programmazione necessari per utilizzare l'API ed estendere il prodotto attraverso applicazioni esterne.
Ambito Concetti di programmazione relativi a FX4.
Pubblico di destinazione Sviluppatori di software interessati a utilizzare il prodotto.
Processo https://pyramidtc.atlassian.net/wiki/pages/createpage.action?
spaceKey=PQ&title=Processo%20di%20creazione%20manuale%XNUMXstandard
Formazione NON APPLICABILE

Controllo della versione

Versione Descrizione  Salvato da  Salvato su  Stato
v3 Aggiunto un semplice overview e più exampmeno. Matteo Nichols 6 marzo 2025 10:29 APPROVATO
v2 Aggiunte interfacce IO digitali e riferimenti a IGX. Matteo Nichols 3 maggio 2024 7:39 APPROVATO
v1 Versione iniziale, ancora in fase di sviluppo. Matteo Nichols 21 febbraio 2024 11:25 APPROVATO

Programmatore PYRAMID FX4 - icona 1 Controllo documenti Non Riviewed
Versione corrente del documento: versione 1
Nessun riviewassegnati.

1.1 Firme
per la versione del documento più recente
Venerdì 7 marzo 2025, 10:33 UTC
Matthew Nichols ha firmato; significato: Review

Riferimenti

Documento ID documento  Autore  Versione
IGX – Manuale del programmatore 2439249921 Matteo Nichols 1

Programmazione FX4 finitaview

Il processore FX4 funziona su un ambiente chiamato IGX, che è basato sul sistema operativo in tempo reale ad alta affidabilità QNX di BlackBerry (QNX Websito¹). IGX fornisce un'interfaccia di programmazione delle applicazioni (API) flessibile e completa per gli utenti che desiderano scrivere il proprio software per computer host.
L'ambiente IGX è condiviso tra gli altri prodotti Pyramid, consentendo di trasferire facilmente le soluzioni software sviluppate per un prodotto ad altri.
I programmatori possono fare riferimento alla documentazione completa per IGX disponibile su Pyramid websito a: IGX | Framework moderno del sistema di controllo modulare per Web-Applicazioni abilitate²

Questa sezione fornisce un'introduzione al test di due dei metodi API: HTTP usando il formato JSON ed EPICS. Per semplicità, Python (Pitone Websito³) è usato come esamplinguaggio di programmazione host, accessibile e facile da usare anche per i programmatori non professionisti.

3.1 Utilizzo di Python e HTTP
Come un example, supponiamo che tu voglia leggere la somma delle correnti misurate con Python. Hai bisogno di URL per quel particolare IO. L'FX4 web L'interfaccia utente grafica fornisce un modo semplice per trovarlo: basta fare clic con il pulsante destro del mouse nel campo e selezionare "Copia HTTP" URL' per copiare la stringa negli appunti.

Programmatore PYRAMID FX4 - Utilizzo di Python e HTTP

Ora puoi usare Python per testare la connettività al software utente tramite HTTP e JSON. Potresti dover importare le richieste e le librerie json per gestire le richieste HTTP e l'analisi dei dati.

Programmatore PYRAMID FX4 - Richieste HTTP e analisi dei dati1 semplice Python HTTP Example

3.2 Utilizzo di EPICS
Il processo per collegare FX4 tramite EPICS (Experimental Physics and Industrial Control System) è simile. EPICS è un set di strumenti software e applicazioni utilizzati per sviluppare e implementare sistemi di controllo distribuiti, ampiamente utilizzati nelle strutture scientifiche.

  1. https://blackberry.qnx.com/en
  2. https://pyramid.tech/products/igx
  3. https://www.python.org/
  1. Ottenere il nome della variabile di processo EPICS (PV) per l'IO desiderato.
  2. Importare la libreria EPICS e leggere il valore.

Programmatore PYRAMID FX4 - Variabile di processo EPICS2 Ottieni il nome EPICS PVProgrammatore PYRAMID FX4 - Semplice Python EPICS Example3 semplici Python EPICS Example

Inoltre, Pyramid ha creato un'utilità (Connessione EPICS⁴) che consente di monitorare le variabili di processo EPICS in tempo reale. Questo strumento è utile per confermare se il nome EPICS PV è corretto e se FX4 sta servendo correttamente il PV sulla rete.

Programmatore PYRAMID FX4 - EPICS Connect4 PTC EPICS Connetti

API di programmazione FX4

I concetti e i metodi descritti in questo manuale si basano sui concetti stabiliti nell'IGX – Manuale del programmatore. Si prega di consultare quel documento per spiegazioni ed esample di come funzionano la programmazione e le interfacce IGX di base. Questo manuale coprirà solo gli I/O specifici del dispositivo e le funzionalità esclusive dell'FX4.

4.1 Ingresso analogico IO
Questi IO si riferiscono alla configurazione e alla raccolta dei dati sugli ingressi di corrente analogici dell'FX4. Le unità degli ingressi dei canali si basano sull'impostazione configurabile dall'utente denominata “Sample Units”, le opzioni valide includono pA, nA, uA, mA e A.
Tutti e 4 i canali utilizzano la stessa interfaccia IO e sono controllati in modo indipendente. Sostituisci channel_x rispettivamente con channel_1 , channel_2 , channel_3 o channel_4.

Percorso IO Descrizione
/fx4/adc/canale_x NUMERO DI SOLA LETTURA Ingresso corrente misurata.
/fx4/adc/channel_x/scalar NUMERO Semplice scalare senza unità applicato al canale, 1 per impostazione predefinita.
/fx4/adc/canale_x/offset_zero NUMERO Offset corrente in nA per il canale.

I seguenti IO non sono indipendenti dal canale e vengono applicati a tutti i canali contemporaneamente.

Percorso IO  Descrizione
/fx4/somma_canale NUMERO DI SOLA LETTURA Somma dei canali di ingresso correnti.
/fx4/adc_unità STRINGA Imposta le unità utente correnti per ciascun canale e la somma.
Opzioni: “pa”, “na”, “ua”, “ma”, “a”
/fx4/intervallo STRING Imposta l'intervallo di input corrente. Vedere GUI per sapere come ogni codice di intervallo corrisponde ai limiti massimi di input corrente e BW.
Opzioni: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”
/fx4/adc/sample_frequenza NUMERO La frequenza in Hz che sampverrà calcolata la media dei dati. Controlla il rapporto segnale-rumore e la velocità dei dati per tutti i canali.
/fx4/adc/frequenza_di_conversione NUMERO La frequenza in Hz a cui l'ADC convertirà i valori analogici in digitali. Per impostazione predefinita, è 100 kHz e raramente sarà necessario modificare questo valore.
/fx4/adc/offset_correction NUMERO DI SOLA LETTURA Somma di tutti gli offset correnti del canale.

4.2 Uscita analogica IO
Questi IO si riferiscono alla configurazione delle uscite analogiche generiche dell'FX4 che si trovano sotto gli ingressi analogici sul pannello frontale. Tutti e 4 i canali utilizzano la stessa interfaccia IO e sono controllati in modo indipendente. Sostituisci channel_x rispettivamente con channel_1 , channel_2 , channel_3 o channel_4.

Percorso IO  Descrizione
/fx4/dac /canale_x NUMERO Comando voltage uscita. Questo valore può essere scritto solo quando la modalità di uscita è impostata su manuale.
/fx4/dac/channel_x/readback NUMERO DI SOLA LETTURA Volume misuratotage uscita.
Questa funzionalità è particolarmente utile quando si utilizza la modalità di output dell'espressione.
/fx4/dac/channel_x/output_mode STRING Imposta la modalità di uscita per il canale.
Opzioni: “manuale”, “espressione”, “process_control”
/fx4/dac/canale _ x/abilita_controllo_slew BOOL Abilita o disabilita la limitazione della velocità di variazione.
/fx4/dac/canale_x/velocità_di_slew NUMERO Velocità di variazione in V/s per il canale.
/fx4/dac/channel_x/upper_limit NUMERO Il volume massimo consentito per i comanditage per il canale. Si applica a tutte le modalità operative.
/fx4/dac/canale _ x/limite_inferiore NUMERO Il volume minimo consentito per i comanditage per il canale. Si applica a tutte le modalità operative.
/fx4/dac/canale _ x/ espressione di output _ STRING Imposta la stringa di espressione utilizzata dal canale quando è in modalità di output dell'espressione.
/fx4/dac/canale _ x/pulsante_reset PULSANTE Reimposta il volume del comandotage a 0.

4.3 Ingressi e uscite digitali
Questi IO sono correlati al controllo dei vari ingressi e uscite digitali di uso generale presenti sull'FX4.

Percorso IO  Descrizione
/fx4/fr1 READONLY BOOL Ricevitore in fibra 1.
/fx4/ft1 BOOL Trasmettitore in fibra 1.
/fx4/fr2 READONLY BOOL Ricevitore in fibra 2.
/fx4/ft2 BOOL Trasmettitore in fibra 2.
/fx4/fr3 READONLY BOOL Ricevitore in fibra 3.
/fx4/ft3 BOOL Trasmettitore in fibra 3.
/fx4/espansione_digitale/d1 BOOL D1 espansione digitale bidirezionale IO.
/fx4/espansione_digitale/d2 BOOL D2 espansione digitale bidirezionale IO.
/fx4/espansione_digitale/d3 BOOL D3 espansione digitale bidirezionale IO.
/fx4/espansione_digitale/d4 BOOL D4 espansione digitale bidirezionale IO.

4.3.1 Configurazione IO digitale
Tutti i digitali hanno un IO figlio per configurare il loro comportamento, inclusa una modalità operativa che controlla come funzionerà quel digitale. Ogni digitale avrà un diverso set di opzioni disponibili. Consultare la GUI per i dettagli su quali opzioni sono disponibili per quale IO.

Percorso IO figlio Descrizione
…/modalità STRING Modalità di funzionamento per il digitale.
Opzioni: “input”, “output”, “pwm”, “timer”, “encoder”, “capture”, “uart_rx”, “uart_tx”, “can_rx”, “can_tx”, “pru_input” o “pru_output”
…/process_signal STRINGA Nome del segnale di controllo del processo, se presente.
…/modalità_pull STRING Modalità pull up/down per un ingresso digitale.
Opzioni: “su”, “giù” o “disabilita”

4.4 Controllo relè
Entrambi i relè sono controllati indipendentemente e condividono lo stesso tipo di interfaccia. Sostituisci relay_x con relay_a o relay_b rispettivamente.

Percorso IO  Descrizione
/fx4/relay _ x/permit / user _ comando BOOL Comanda l'apertura o la chiusura del relè. Un comando true tenterà di chiudere il relè se gli interblocchi sono concessi, mentre un comando false aprirà sempre il relè.
/fx4/relè _ x/stato STRINGA DI SOLA LETTURA Stato corrente del relè.
I relè bloccati sono aperti ma non possono essere chiusi a causa di un interblocco.
Stati: “aperto”, “chiuso” o “bloccato”
/fx4/relay _ x/chiudi automaticamente BOOL Se impostato su true, il relè si chiuderà automaticamente quando vengono concessi gli interblocchi. Falso per impostazione predefinita.
/fx4/relay _ x/ ciclo _ conteggio READONLY NUMBER Il numero di cicli del relè dall'ultimo reset. Utile per tracciare la durata del relè.

4.5 Alto volumetage Modulo
Consulta l'IGX – Manuale del programmatore per i dettagli sull'FX4 ad alto volumetage interfaccia. Il percorso principale del componente è /fx4/high_votlage .

4.6 Controllore della dose
Consultare IGX – Manuale del programmatore per dettagli sull'interfaccia del controller della dose FX4. Il percorso principale del componente è /fx4/dose_controller .

FX4 Python Examples

5.1 Data Logger tramite HTTP
Questo example dimostra come catturare un certo numero di letture e salvarle in un file CSV fileScegliendo un ritardo lungo tra le letture, è possibile eseguire la registrazione dei dati a lungo termine anche se l'FX4 sampla velocità di ling è impostata più alta. Ciò consente di raccogliere e archiviare continuamente le misurazioni per periodi prolungati senza sovraccaricare il sistema, assicurando che i dati vengano acquisiti a intervalli adatti alla tua analisi. Il ritardo tra le letture aiuta a regolare il ritmo con cui i dati vengono registrati, consentendo un'archiviazione efficiente e riducendo il rischio di perdere punti dati, beneficiando comunque di s ad alta velocitàampper misurazioni in tempo reale.

Programmatore PYRAMID FX4 - Data Logger tramite HTTPProgrammatore PYRAMID FX4 - Data Logger tramite HTTP 2Programmatore PYRAMID FX4 - Data Logger tramite HTTP 3Programmatore PYRAMID FX4 - Data Logger tramite HTTP 4

5.2 Semplice interfaccia grafica Python
Il secondo esample utilizza lo strumento GUI Tkinter, creato per Python, per creare una visualizzazione delle correnti misurate. Questa interfaccia consente di visualizzare le letture di corrente in un formato grafico intuitivo. Il display può essere ridimensionato per renderlo abbastanza grande da poter essere letto da una stanza all'altra, rendendolo ideale per scenari in cui è necessario un monitoraggio in tempo reale in spazi più ampi. Tkinter fornisce un modo semplice per creare interfacce interattive e, integrandolo con FX4, è possibile creare rapidamente una visualizzazione delle correnti misurate che può essere personalizzata per soddisfare le proprie esigenze specifiche.

Programmatore PYRAMID FX4 - Semplice interfaccia grafica PythonProgrammatore PYRAMID FX4 - Semplice interfaccia grafica Python 2Programmatore PYRAMID FX4 - Semplice interfaccia grafica Python 3Programmatore PYRAMID FX4 - Semplice interfaccia grafica Python 4Programmatore PYRAMID FX4 - Semplice interfaccia grafica Python 5Programmatore PYRAMID FX4 - Semplice interfaccia grafica Python 6Programmatore PYRAMID FX4 - Semplice interfaccia grafica Python 7

5.3 Semplice WebPrese Example
Questo example dimostra il WebInterfaccia socket, che rappresenta il metodo preferito per la lettura dei dati dall'FX4 quando è richiesta la massima larghezza di banda. WebI socket forniscono un canale di comunicazione full-duplex in tempo reale, consentendo un trasferimento dati più rapido ed efficiente rispetto ad altri metodi.
L'example legge una serie di samples, riporta il tempo medio al sample e la latenza massima e salva i dati in un file CSV file per analisi successive. Questa configurazione consente un monitoraggio efficiente in tempo reale e una facile archiviazione dei dati per la post-elaborazione.
Le prestazioni specifiche che possono essere raggiunte con WebSockets dipende dall'affidabilità della tua interfaccia Ethernet e dalla priorità relativa della tua applicazione. Per risultati ottimali, assicurati che la tua rete sia stabile e che la trasmissione dati di FX4 sia prioritaria, se necessario.

Programmatore PYRAMID FX4 - Semplice WebPrese ExampleProgrammatore PYRAMID FX4 - Semplice WebPrese Exampil 2Programmatore PYRAMID FX4 - Semplice WebPrese Exampil 3

Versione: v3
FX4 Python Example: 21

Documenti / Risorse

Programmatore PYRAMID FX4 [pdf] Manuale di istruzioni
Programmatore FX4, FX4, Programmatore

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *