www.pyramid.tech
FX4
FX4 Programisto Manlibro
Dokumenta ID: 2711715845
Versio: v3
FX4 Programisto
Dokumenta ID: 2711715845
FX4 – Manlibro por FX4-Programisto
Dokumenta ID: 2711650310
Aŭtoro | Matthew Nichols |
Posedanto | Projekta Ĉefo |
Celo | Klarigu la programajn konceptojn necesajn por uzi la API kaj etendi la produkton per eksteraj aplikoj. |
Amplekso | FX4 rilataj programaj konceptoj. |
Intencita Publiko | Programistoj interesataj pri uzado de la produkto. |
Procezo | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Norma%20Mana%20Kreado%20Proceso |
Trejnado | NE APLIKEBLA |
Versia Kontrolo
Versio | Priskribo | Savita de | Savita je | Statuso |
v3 | Aldonita simpla superview kaj pli eksamples. | Matthew Nichols | 6. mar 2025 10:29 | APROBITA |
v2 | Aldonitaj ciferecaj IO-interfacoj kaj referencoj reen al IGX. | Matthew Nichols | la 3-an de majo 2024 7:39 | APROBITA |
v1 | Komenca eldono, ankoraŭ laboro en progreso. | Matthew Nichols | 21. Feb 2024 11:25 | APROBITA |
Dokumenta Kontrolo Ne Reviewed
Aktuala dokumentversio: v.1
Ne reviewers asignitaj.
1.1 Subskriboj
por plej lasta dokumentversio
Vendredo, la 7-an de marto 2025, 10:33 UTC
Matthew Nichols subskribis; signifo: Review
Referencoj
Dokumento | Dokumenta ID | Aŭtoro | Versio |
IGX - Manlibro pri Programisto | 2439249921 | Matthew Nichols | 1 |
FX4 Programado Finisview
La procesoro FX4 funkcias en medio nomata IGX, kiu estas konstruita sur la alt-fidinda realtempa operaciumo QNX de BlackBerry (QNX Webretejo¹). IGX provizas flekseblan kaj ampleksan aplikaĵan programan interfacon (API) por uzantoj, kiuj volas verki sian propran komputilan programaron.
La IGX-medio estas dividita inter aliaj Pyramid-produktoj, permesante programajn solvojn evoluigitajn por unu produkto facile translokiĝi al aliaj.
Programistoj povas raporti al la kompleta dokumentaro por IGX havebla sur la Piramido webretejo ĉe: IGX | Moderna Modula Kontrola Sistemo-Kadro por Web-ebligitaj Aplikaĵoj²
Ĉi tiu sekcio provizas enkondukon al testado de du el la API-metodoj: HTTP uzante JSON-formaton kaj EPICS. Por simpleco, Python (Python Webretejo³) estas uzata kiel ekzempleample gastiga komputila lingvo, kiu estas alirebla kaj facile uzebla por neprofesiaj programistoj.
3.1 Uzante Python kaj HTTP
Kiel eksample, supozu, ke vi volas legi la sumon de la mezuritaj fluoj per Python. Vi bezonas la URL por tiu aparta IO. La FX4 web GUI provizas facilan manieron trovi ĉi tion: simple dekstre alklaku en la kampo kaj elektu 'Kopii HTTP URL' por kopii la ŝnuron al la tondujo.
Nun vi povas uzi Python por testi konekteblecon al uzantprogramaro per HTTP kaj JSON. Vi eble bezonos importi la petojn kaj json-bibliotekojn por trakti la HTTP-petojn kaj datuman analizon.
1 Simpla Python HTTP Ekzample
3.2 Uzante EPICS
La procezo por konekti la FX4 tra EPICS (Eksperimenta Fiziko kaj Industria Kontrolo-Sistemo) estas simila. EPICS estas aro de programaraj iloj kaj aplikaĵoj uzataj por disvolvi kaj efektivigi distribuitajn kontrolsistemojn, vaste uzatajn en sciencaj instalaĵoj.
- Akiru la nomon de la EPICS-proceza variablo (PV) por la dezirata IO.
- Importu la bibliotekon EPICS kaj legu la valoron.
2 Akiru EPICS PV-Nomon
3 Simpla Python EPICS Ekzample
Plie, Pyramid kreis ilon (EPICS Connect⁴) kiu permesas al vi monitori EPICS-procezajn variablojn en reala tempo. Ĉi tiu ilo estas helpema por konfirmi ĉu la nomo de EPICS PV estas ĝusta kaj la FX4 servas la PV ĝuste en via reto.
4 PTC EPICS Konekti
FX4 Programada API
La konceptoj kaj metodoj priskribitaj en ĉi tiu manlibro baziĝas sur la konceptoj establitaj en la IGX - Programer Manual. Bonvolu vidi tiun dokumenton por klarigo kaj ekzamploj pri kiel bazaj IGX-programado kaj interfacoj funkcias. Ĉi tiu manlibro nur kovros la aparato-specifan IO kaj funkciojn, kiuj estas unikaj al la FX4.
4.1 Analoga Enigo IO
Ĉi tiuj IO rilatas al agordo kaj kolektado de datumoj pri la analogaj nunaj enigaĵoj de la FX4. La unuoj de la kanalaj enigaĵoj baziĝas sur la agordebla de la uzanto nomata "Sample Units", validaj opcioj inkluzivas pA, nA, uA, mA kaj A.
Ĉiuj 4 kanaloj uzas la saman interfacon IO kaj estas sendepende kontrolitaj. Anstataŭigu channel_x per channel_1 , channel_2 , channel_3 , aŭ channel_4 respektive.
IO Vojo | Priskribo |
/fx4/adc/channel_x | NURLEGEBLA NOMBRO Mezurita kurenta enigo. |
/fx4/adc/channel_x/scalar | NUMERO Simpla senunua skalaro aplikita al la kanalo, 1 defaŭlte. |
/fx4/adc/channel_x/zero_offset | NUMERO Aktuala deŝovo en nA por la kanalo. |
La sekvaj IO ne estas kanal-sendependaj kaj estas aplikataj al ĉiuj kanaloj samtempe.
IO Vojo | Priskribo |
/fx4/kanalo_sumo | NURLEGEBLA NOMBRO Sumo de la nunaj enigaj kanaloj. |
/fx4/adc_unit | STRING Agordas la nunajn uzantajn unuojn por ĉiu kanalo kaj sumo. Opcioj: "pa", "na", "ua", "ma", "a" |
/fx4/gamo | STRING Agordas la nunan enigan intervalon. Vidu la grafikan interfacon por kiel ĉiu intervala kodo respondas al la maksimumaj nunaj enigaj limoj kaj larĝlarĝo. Opcioj: "0", "1", "2", "3", "4", "5", "6", "7" |
/fx4/adc/sample_frequency | NOMBRO La frekvenco en Hz kiu sampla datumoj estos averaĝe al. Ĉi tio kontrolas la signal-al-bruon kaj datumrapidecon por ĉiuj kanaloj. |
/fx4/adc/conversion_frequency | NUMERO La frekvenco en Hz, je kiu la ADC konvertos analogajn al ciferecaj valoroj. Defaŭlte, ĉi tio estas 100 kHz, kaj vi nur malofte bezonos ŝanĝi ĉi tiun valoron. |
/fx4/adc/offset_correction | NURLEGEBLA NOMBRO Sumo de ĉiuj nunaj deŝovoj de la kanalo. |
4.2 Analoga Eligo IO
Ĉi tiuj IO rilatas al la agordo de la ĝeneraluzeblaj analogaj eliroj de la FX4 trovitaj sub la analogaj enigaĵoj sur la antaŭa panelo. Ĉiuj 4 kanaloj uzas la saman interfacon IO kaj estas sendepende kontrolitaj. Anstataŭigu channel_x per channel_1 , channel_2 , channel_3 , aŭ channel_4 respektive.
IO Vojo | Priskribo |
/fx4/dac /kanalo_x | NUMERO Komando volumotage eligo. Ĉi tiu valoro povas esti skribita nur kiam eligo-reĝimo estas agordita al manlibro. |
/fx4/dac/channel_x/readback | NURLEGEBLA NOMBRO Mezurita volumotage eligo. Ĉi tio estas plej helpema kiam oni uzas espriman eligan reĝimon. |
/fx4/dac/channel_x/output_mode | STRING Agordas la eligan reĝimon por la kanalo. Opcioj: "manuo", "esprimo", "procezkontrolo" |
/fx4/dac/channel _ x/slew_control_enable | BOOL Ebligas aŭ malebligas la limigon de ŝanĝiĝema rapideco. |
/fx4/dac/kanalo_x/ŝanĝrapideco | NUMERO Ŝovrapideco en V/s por la kanalo. |
/fx4/dac/channel_x/upper_limit | NUMERO La maksimuma permesita komanda volumotage por la kanalo. Validas por ĉiuj operaciaj reĝimoj. |
/fx4/dac/kanalo _ x/malsupra_limo | NUMERO La minimuma permesita komanda volumotage por la kanalo. Validas por ĉiuj operaciaj reĝimoj. |
/fx4/dac/kanalo _ x/ eligo _ esprimo | STRING Agordas la esprimĉenon uzatan de la kanalo kiam ĝi estas en la esprima eligreĝimo. |
/fx4/dac/kanalo _ x/restarigi_butonon | BUTONO Rekomencigas la komandon voltage ĝis 0. |
4.3 Cifereca Enigo kaj Eligoj
Ĉi tiuj IO rilatas al kontrolado de la diversaj ĝeneraluzeblaj ciferecaj enigaĵoj kaj eliroj trovitaj sur la FX4.
IO Vojo | Priskribo |
/fx4/fr1 | READONLY BOOL Fibra ricevilo 1. |
/fx4/ft1 | BOOL Fibra dissendilo 1. |
/fx4/fr2 | READONLY BOOL Fibra ricevilo 2. |
/fx4/ft2 | BOOL Fibra dissendilo 2. |
/fx4/fr3 | READONLY BOOL Fibra ricevilo 3. |
/fx4/ft3 | BOOL Fibra dissendilo 3. |
/fx4/digital_expansion/d1 | BOOL D1 dudirekta cifereca vastiĝa IO. |
/fx4/digital_expansion/d2 | BOOL D2 dudirekta cifereca vastiĝa IO. |
/fx4/digital_expansion/d3 | BOOL D3 dudirekta cifereca vastiĝa IO. |
/fx4/digital_expansion/d4 | BOOL D4 dudirekta cifereca vastiĝa IO. |
4.3.1 Cifereca IO-Agordo
Ĉiuj ciferecaj havas infanon IO por agordi sian konduton inkluzive de operaciumo kiu kontrolas kiel tiu cifereca funkcios. Ĉiu cifereca havos malsaman aron de disponeblaj opcioj. Vidu la GUI por detaloj pri kiaj opcioj disponeblas por kio IO.
Infana IO Vojo | Priskribo |
…/reĝimo | STRING Funkciada reĝimo por la cifereca. Opcioj: “enigo“, “eligo“, “pwm“, “tempigilo“, “kodigilo“, “kapto“, “uart_rx“, “uart_tx“, “povas_rx“, “povas_tx“, “pru_enigo“, aŭ “pru_eligo“ |
…/proceza_signalo | ĈENO La nomo de la procesrega signalo, se tia ekzistas. |
…/tiri_reĝimon | STRING Tir supren/malsupren reĝimo por cifereca enigo. Opcioj: "supren", "malsupren", aŭ "malŝalti" |
4.4 Relajsa Kontrolo
Ambaŭ relajsoj estas sendepende kontrolitaj kaj dividas la saman specon de interfaco. Anstataŭigu relay_x per relay_a aŭ relay_b respektive.
IO Vojo | Priskribo |
/fx4/relajso _ x/permeso / uzanto _ komando | BOOL Komando malfermas aŭ fermas la relajson. Vera komando provos fermi la relajson se la interŝlosoj estas donitaj, kaj malvera komando ĉiam malfermos la relajson. |
/fx4/relajso _ x/stato | NURLEGEBLA ĈENO La nuna stato de la relajso. Ŝlositaj relajsoj estas malfermitaj sed ne povas esti fermitaj pro interŝloso. Ŝtatoj: "malfermita", "fermita", aŭ "ŝlosita" |
/fx4/relajso _ x/aŭtomate _ fermi | BOOL Kiam agordita al vera, la relajso aŭtomate fermiĝos kiam la interŝlosoj estas permesitaj. Falsa defaŭlte. |
/fx4/relajso _ x/ ciklo _ kalkulo | NURLEGEBLA NOMBRO La nombro da relajsocikloj ekde la lasta restarigo. Utila por spuri la vivdaŭron de la relajso. |
4.5 Alta Voltage Modulo
Vidu la IGX - Programman Manual por detaloj pri la FX4 alta voltage interfaco. La komponanta gepatra vojo estas /fx4/high_votlage .
4.6 Dozo-Regilo
Vidu la Manlibron pri Programisto IGX por detaloj pri la interfaco de la dozoregilo FX4. La komponanta gepatra vojo estas /fx4/dose_controller .
FX4 Python Eksamples
5.1 Datumregistrilo uzante HTTP
Ĉi tiu ekzample montras kiel kapti kelkajn legaĵojn kaj konservi ilin al CSV file. Elektante longan prokraston inter legaĵoj, vi povas fari longdaŭran datumregistradon eĉ se la FX4 s.ampling-indico estas starigita pli alta. Ĉi tio permesas vin kontinue kolekti kaj stoki mezuradojn dum plilongigitaj periodoj sen superforti la sistemon, certigante ke datumoj estas kaptitaj je intervaloj taŭgaj por via analizo. La prokrasto inter legaĵoj helpas reguligi la rapidecon, je kiu datumoj estas registritaj, permesante efikan stokadon kaj reduktante la riskon manki datumpunktojn dum daŭre profitas de altrapidaj s.ampling por realtempaj mezuradoj.
5.2 Simpla Python GUI
La dua eksample uzas la Tkinter GUI-ilon, kiu estas konstruita por Python, por krei ekranon de la mezuritaj fluoj. Ĉi tiu interfaco ebligas al vi bildigi la aktualajn legaĵojn en afabla grafika formato. La ekrano povas esti regrandigita por fari ĝin sufiĉe granda por legi de trans ĉambro, igante ĝin ideala por scenaroj kie realtempa monitorado estas necesa en pli grandaj spacoj. Tkinter provizas facilan manieron krei interagajn interfacojn, kaj integrigante ĝin kun la FX4, vi povas rapide konstrui vidan ekranon de la mezuritaj fluoj, kiuj povas esti personecigitaj por konveni viajn specifajn bezonojn.
5.3 Simpla WebSockets Example
Ĉi tiu ekzample pruvas la WebSockets-interfaco, kiu estas la preferata metodo por legi datumojn de la FX4 kiam maksimuma bendolarĝo estas postulata. WebIngoj disponigas realtempan, plen-dupleksan komunikadkanalon, ebligante pli rapidan kaj pli efikan datumtransigo kompare kun aliaj metodoj.
La eksample legas serion de samples, raportas la averaĝan tempon por sample kaj maksimuma latenteco, kaj konservas la datumojn al CSV file por posta analizo. Ĉi tiu aranĝo permesas efikan realtempan monitoradon kaj facilan datumstokadon por post-prilaborado.
La specifa agado, per kiu oni povas atingi WebSockets dependas de la fidindeco de via Ethernet-interfaco kaj la relativa prioritato de via aplikaĵo. Por optimumaj rezultoj, certigu, ke via reto estas stabila kaj ke la transdono de datumoj de la FX4 estas prioritatita se necese.
Versio: v3
FX4 Python Eksamples: 21
Dokumentoj/Rimedoj
![]() |
Programisto PYRAMID FX4 [pdf] Instrukcia Manlibro FX4 Programisto, FX4, Programisto |