www.pyramid.tech
FX4
Manuale di programmazione FX4
ID Documentu: 2711715845
Versione: v3
FX4 programmatore
ID Documentu: 2711715845
FX4 - Manuale di programmazione FX4
ID Documentu: 2711650310
Autore | Matthew Nichols |
Pruprietariu | Capu di Prughjettu |
Scopu | Spiegà i cuncetti di prugrammazione necessarii per utilizà l'API è allargà u pruduttu per l'applicazioni esterne. |
Scopu | FX4 cuncetti di prugrammazione in relazione. |
Audience destinata | Sviluppatori di software interessatu à utilizà u pruduttu. |
Prucessu | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Standard%20Manual%20Creation%20Processu |
A furmazione | INAPPLICHEVULE |
Version Control
Versione | Descrizzione | Salvatu da | Salvatu nantu | Status |
v3 | Aghjunghjite un simplice sopraview è più examples. | Matthew Nichols | 6 di marzu di 2025 10:29 | APPROVATA |
v2 | Aghjunghjite interfacce IO digitale è referenze à IGX. | Matthew Nichols | 3 di maghju di u 2024 7:39 | APPROVATA |
v1 | Liberazione iniziale, sempre un travagliu in corso. | Matthew Nichols | 21 di ferraghju 2024 11:25 | APPROVATA |
Cuntrolla di Documenti Ùn Reviewed
Versione attuale di u documentu: v.1
No riviewers assignati.
1.1 Firme
per a versione più recente di u documentu
Venneri, 7 di marzu di u 2025, 10:33 UTC
Matthew Nichols hà firmatu; significatu: Review
Referenze
Documentu | Document ID | Autore | Versione |
IGX - Manuale di programmazione | 2439249921 | Matthew Nichols | 1 |
A prugrammazione FX4 hè finitaview
U processore FX4 funziona in un ambiente chjamatu IGX, chì hè custruitu nantu à u sistema operatore QNX d'alta affidabilità in tempu reale da BlackBerry (QNX Websitu¹). IGX furnisce una interfaccia di prugrammazione di l'applicazione (API) flessibile è cumpleta per l'utilizatori chì volenu scrive u so propiu software di computer host.
L'ambiente IGX hè spartutu cù l'altri prudutti Pyramid, chì permettenu e soluzioni software sviluppate per un pruduttu per esse facilmente trasferitu à l'altri.
I programatori ponu riferite à a documentazione cumpleta per IGX dispunibule nantu à a Piramide websitu à: IGX | Quadru di Sistema di Control Modulare Modernu per Web-applicazioni attivate²
Questa sezione furnisce una introduzione à pruvà dui di i metudi API: HTTP utilizendu u formatu JSON è EPICS. Per simplicità, Python (Python Websitu³) hè adupratu cum'è example lingua di computer host, chì hè accessibile è faciule d'utilizà per i programatori non prufessiunali.
3.1 Utilizà Python è HTTP
Cum'è example, assume chì vulete leghje a somma di i currenti misurati cù Python. Avete bisognu di URL per quellu IO particulari. U FX4 web GUI furnisce un modu faciule per truvà questu: simpricimenti fate un clic right in u campu è selezziunate "Copia HTTP". URL' per copià a stringa in u clipboard.
Avà pudete aduprà Python per pruvà a cunnessione à u software d'utilizatore via HTTP è JSON. Pudete bisognu di impurtà e richieste è e librerie json per trattà e richieste HTTP è l'analisi di dati.
1 Simple Python HTTP Example
3.2 Utilizà EPICS
U prucessu per cunnette u FX4 attraversu EPICS (Fisica Sperimentale è Sistema di Control Industriale) hè simile. EPICS hè un inseme di strumenti software è applicazioni utilizati per sviluppà è implementà sistemi di cuntrollu distribuitu, largamente utilizati in strutture scientifiche.
- Ottene u nome di a variabile di prucessu EPICS (PV) per l'IO desideratu.
- Importa a biblioteca EPICS è leghje u valore.
2 Get EPICS PV Name
3 Simple Python EPICS Example
Inoltre, Pyramid hà creatu una utilità (EPICS Connect⁴) chì permette di monitorà e variabili di prucessu EPICS in tempu reale. Questu strumentu hè d'utile per cunfirmà se u nome EPICS PV hè currettu è u FX4 serve u PV currettamente in a vostra reta.
4 PTC EPICS Connect
API di prugrammazione FX4
I cuncetti è i metudi descritti in stu manuale si basanu nantu à i cuncetti stabiliti in l'IGX - Manuale di Programmatore. Per piacè vede stu documentu per spiegazione è example di cumu funziunamentu di prugrammazione è interfacce IGX di basa. Stu manuale coprerà solu l'IO specificu di u dispusitivu è a funziunalità chì hè unicu à u FX4.
4.1 Input analogicu IO
Questi IO riguardanu a cunfigurazione è a cullizzioni di dati nantu à l'inputs currenti analogici di l'FX4. L'unità di l'inputs di u canali sò basate nantu à u paràmetru configurabile da l'utilizatore chjamatu "Sample Units", le opzioni valide includono pA, nA, uA, mA e A.
Tutti i 4 canali utilizanu a stessa interfaccia IO è sò cuntrullati indipindente. Sustituisci channel_x cù channel_1 , channel_2 , channel_3 , o channel_4 rispettivamente.
IO Path | Descrizzione |
/fx4/adc/channel_x | READONLY NUMBER Input currente misuratu. |
/fx4/adc/channel_x/scalar | NUMRU Unità scalare simplice applicata à u canali, 1 per difettu. |
/fx4/adc/channel_x/zero_offset | NUMBER Offset attuale in nA per u canali. |
I seguenti IO ùn sò micca indipendenti di i canali è sò appiicati à tutti i canali simultaneamente.
IO Path | Descrizzione |
/fx4/channel_sum | READONLY NUMBER Suma di i canali di input attuale. |
/fx4/adc_unit | STRING Definisce l'unità di l'utilizatori attuali per ogni canale è somma. Opzioni: "pa", "na", "ua", "ma", "a" |
/fx4/range | STRING Imposta l'intervallo di input attuale. Vede GUI per cumu ogni codice di gamma currisponde à i limiti massimi di input attuale è BW. Opzioni: "0", "1", "2", "3", "4", "5", "6", "7" |
/fx4/adc/sample_frequency | NUMERU A freccia in Hz chì sample dati sarà mediu à. Questu cuntrolla u signal-to-noise è a tarifa di dati per tutti i canali. |
/fx4/adc/conversion_frequency | NUMERO A frequenza in Hz chì l'ADC cunverterà i valori analogici à digitali. Per automaticamente, questu hè 100kHz, è raramenti avete bisognu di cambià stu valore. |
/fx4/adc/offset_correction | READONLY NUMBER Suma di tutti l'offset attuali di u canali. |
4.2 Output Analogicu IO
Questi IO riguardanu a cunfigurazione di l'outputs analogichi generali di u FX4 truvati sottu à l'inputs analogichi nantu à u pannellu frontale. Tutti i 4 canali utilizanu a stessa interfaccia IO è sò cuntrullati indipindente. Sustituisci channel_x cù channel_1 , channel_2 , channel_3 , o channel_4 rispettivamente.
IO Path | Descrizzione |
/fx4/dac /channel_x | NUMBER Command voltage output. Stu valore pò esse scrittu solu quandu u modu di output hè stallatu in manuale. |
/fx4/dac/channel_x/readback | NUMERO READONLY Voltage uscita. Questu hè più utile quandu si usa u modu di output d'espressione. |
/fx4/dac/channel_x/output_mode | STRING Imposta u modu di output per u canale. Opzioni: "manuale", "espressione", "process_control" |
/fx4/dac/channel _x/slew_control_enable | BOOL Abilita o disattiva a limitazione di slew rate. |
/fx4/dac/channel_x/slew_rate | NUMBER Slew rate in V/s per u canali. |
/fx4/dac/channel_x/upper_limit | NUMRU U cummandu massimu permessu voltage per u canali. S'applica à tutti i modi di funziunamentu. |
/fx4/dac/channel _x/lower_limit | NUMRU U cumandimu minimu permessu voltage per u canali. S'applica à tutti i modi di funziunamentu. |
/fx4/dac/channel _ x/ output _ expression | STRING Stabilisce a stringa di espressione utilizata da u canali quandu hè in u modu di output di espressione. |
/fx4/dac/channel _x/reset_button | BUTTON Resetta u cumandamentu voltage à 0. |
4.3 Input è Outputs digitale
Questi IO riguardanu u cuntrollu di e diverse ingressi è output digitali di u scopu generale chì si trovanu nantu à u FX4.
IO Path | Descrizzione |
/fx4/fr1 | READONLY BOOL Ricevitore in fibra 1. |
/fx4/ft1 | Trasmettitore in fibra BOOL 1. |
/fx4/fr2 | READONLY BOOL Ricevitore in fibra 2. |
/fx4/ft2 | Trasmettitore in fibra BOOL 2. |
/fx4/fr3 | READONLY BOOL Ricevitore in fibra 3. |
/fx4/ft3 | Trasmettitore in fibra BOOL 3. |
/fx4/digital_expansion/d1 | BOOL D1 espansione digitale bidirezionale IO. |
/fx4/digital_expansion/d2 | BOOL D2 espansione digitale bidirezionale IO. |
/fx4/digital_expansion/d3 | BOOL D3 espansione digitale bidirezionale IO. |
/fx4/digital_expansion/d4 | BOOL D4 espansione digitale bidirezionale IO. |
4.3.1 Configurazione IO digitale
Tutti i digitali anu IO di u zitellu per cunfigurà u so cumpurtamentu, cumpresu un modu operativu chì cuntrolla cumu u digitale operarà. Ogni digitale averà un inseme sfarente di opzioni dispunibili. Vede a GUI per i dettagli nantu à quali opzioni sò dispunibili per ciò chì IO.
Child IO Path | Descrizzione |
.../mode | STRING Modu di funziunamentu per u digitale. Opzioni: "input", "output", "pwm", "timer", "encoder", "capture", "uart_rx", "uart_tx", "can_rx", "can_tx", "pru_input", o "pru_output" |
…/signale_processu | STRING U nome di u signale di cuntrollu di prucessu, s'ellu ci hè unu. |
…/pull_mode | STRING Modu pull up/down per un input digitale. Opzioni: "up", "down" o "disable" |
4.4 Relay Control
I dui relè sò cuntrullati indipindentamente è sparte u listessu tipu d'interfaccia. Sustituisci relay_x cù relay_a o relay_b rispettivamente.
IO Path | Descrizzione |
/fx4/relay _ x/permit / user _ cumanda | BOOL Cumanda u relè apertu o chjusu. Un veru cumandamentu pruvarà à chjude u relay se l'interlocks sò cuncessi, è u falsu cumandamentu sempre apre u relay. |
/fx4/relè _ x/state | READONLY STRING U statu attuale di u relay. I relè chjusi sò aperti ma ùn ponu esse chjusi per via di un interlock. Stati: "apertu", "chjusu", o "chjusu" |
/fx4/relay _ x/automatically _ close | BOOL Quandu si mette à veru, u relè si chjude automaticamente quandu l'interlocks sò cuncessi. False per difettu. |
/fx4/relè _ x/ cycle _ count | READONLY NUMBER U numeru di cicli di relè da l'ultimu reset. Utile per seguità a vita di u relè. |
4.5 High Voltage Modulu
Vede u IGX - Manuale di u prugrammatore per i dettagli nantu à u FX4 high voltage interfaccia. U percorsu parente di u cumpunente hè /fx4/high_votlage .
4.6 Dose Controller
Vede u IGX - Manuale di Programmatore per i dettagli nantu à l'interfaccia di u controller di dose FX4. U percorsu parente di u cumpunente hè /fx4/dose_controller.
FX4 Python Examples
5.1 Data Logger cù HTTP
Questu example mostra cumu catturà una quantità di letture è salvà in un CSV file. Sceglie un longu ritardu trà e letture, pudete fà una registrazione di dati à longu andà ancu se u FX4 s.ampling rate hè stabilitu più altu. Questu vi permette di cullà continuamente è almacenà e misurazioni per periodi estesi senza sopraffare u sistema, assicurendu chì e dati sò catturati à intervalli adattati per a vostra analisi. U ritardu trà e letture aiuta à regulà u ritmu à quale i dati sò registrati, permettendu un almacenamentu efficiente è riducendu u risicu di mancanu punti di dati mentre prufiteghjanu ancu di l'alta velocità.ampling per misure in tempu reale.
5.2 GUI simplice di Python
U secondu example usa l'utile Tkinter GUI, chì hè custruitu per Python, per creà una visualizazione di i currenti misurati. Questa interfaccia permette di visualizà e letture attuali in un formatu gràficu user-friendly. A visualizazione pò esse ridimensionata per rende abbastanza grande per leghje da una stanza, facendu l'ideale per scenarii induve u monitoraghju in tempu reale hè necessariu in spazii più grandi. Tkinter furnisce un modu faciule per creà interfacce interattive, è integrendu cù l'FX4, pudete custruisce rapidamente una visualizazione visuale di i currenti misurati chì ponu esse persunalizati per adattà à i vostri bisogni specifichi.
5.3 Semplice WebSockets Example
Questu example dimostra u WebInterfaccia Sockets, chì hè u metudu preferitu per leghje dati da u FX4 quandu a larghezza di banda massima hè necessaria. WebI sockets furniscenu un canali di cumunicazione full-duplex in tempu reale, chì permettenu un trasferimentu di dati più veloce è più efficiente cumparatu cù altri metudi.
L'example leghje una seria di samples, riporta u tempu mediu per sample è a latenza massima, è salva i dati in un CSV file per analisi più tardi. Questa cunfigurazione permette un monitoraghju efficace in tempu reale è un almacenamentu faciule di dati per u post-processamentu.
U rendimentu specificu chì pò esse ottenutu cù WebSockets dipende da l'affidabilità di a vostra interfaccia Ethernet è a priorità relative di a vostra applicazione. Per risultati ottimali, assicuratevi chì a vostra reta hè stabile è chì a trasmissione di dati di u FX4 hè priorità se ne necessariu.
Versione: v3
FX4 Python Examples: 21
Documenti / Risorse
![]() |
PYRAMID FX4 Programmer [pdfManuale d'istruzzioni FX4 Programmatore, FX4, Programmatore |