www.pyramid.tech
FX4
Manual de programare FX4
ID document: 2711715845
Versiune: v3
Programator FX4
ID document: 2711715845
Manual de programare FX4 – FX4
ID document: 2711650310
| Autor | Matthew Nichols |
| Proprietar | Sef de proiect |
| Scop | Explicați conceptele de programare necesare pentru a utiliza API-ul și pentru a extinde produsul prin aplicații externe. |
| Domeniul de aplicare | Concepte de programare legate de FX4. |
| Publicul vizat | Dezvoltatori de software interesați să utilizeze produsul. |
| Proces | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Standard%20Manual%20Creation%20Proces |
| Antrenamentul | NU SE APLICĂ |
Controlul versiunilor
| Versiune | Descriere | Salvat de | Salvat pe | Stare |
| v3 | A adăugat un simplu overview si mai mult examples. | Matthew Nichols | 6 martie 2025 10:29 | APROBAT |
| v2 | S-au adăugat interfețe digitale IO și referințe înapoi la IGX. | Matthew Nichols | 3 mai 2024 7:39 | APROBAT |
| v1 | Lansare inițială, încă o lucrare în curs. | Matthew Nichols | 21 februarie 2024 11:25 | APROBAT |
Controlul documentelor Nu Reviewed
Versiunea curentă a documentului: v.1
Nu reviewei alocați.
1.1 Semnături
pentru cea mai recentă versiune a documentului
Vineri, 7 martie 2025, 10:33 UTC
Matthew Nichols a semnat; sens: Review
Referințe
| Document | ID document | Autor | Versiune |
| IGX – Manual de programare | 2439249921 | Matthew Nichols | 1 |
S-a terminat programarea FX4view
Procesorul FX4 rulează într-un mediu numit IGX, care este construit pe sistemul de operare QNX de înaltă fiabilitate în timp real de la BlackBerry (QNX Website-ul¹). IGX oferă o interfață de programare a aplicațiilor (API) flexibilă și cuprinzătoare pentru utilizatorii care doresc să scrie propriul software pentru computerul gazdă.
Mediul IGX este partajat peste alte produse Pyramid, permițând ca soluțiile software dezvoltate pentru un produs să fie ușor transferate altora.
Programatorii se pot referi la documentația completă pentru IGX disponibilă pe Pyramid website la: IGX | Cadrul modern al sistemului de control modular pentru Web-Aplicații activate²
Această secțiune oferă o introducere în testarea a două dintre metodele API: HTTP folosind formatul JSON și EPICS. Pentru simplitate, Python (Piton Website-ul³) este folosit ca examplimbajul computerului gazdă, care este accesibil și ușor de utilizat pentru programatorii neprofesioniști.
3.1 Utilizarea Python și HTTP
Ca un exampsă presupunem că doriți să citiți suma curenților măsurați cu Python. Ai nevoie de URL pentru acel IO anume. FX4 web GUI oferă o modalitate ușoară de a găsi acest lucru: pur și simplu faceți clic dreapta în câmp și selectați „Copiați HTTP URL' pentru a copia șirul în clipboard.

Acum puteți utiliza Python pentru a testa conectivitatea la software-ul utilizatorului prin HTTP și JSON. Poate fi necesar să importați cererile și bibliotecile json pentru a gestiona solicitările HTTP și analiza datelor.
1 Ex. HTTP simplu Pythonample
3.2 Utilizarea EPICS
Procesul de conectare a FX4 prin EPICS (Experimental Physics and Industrial Control System) este similar. EPICS este un set de instrumente software și aplicații utilizate pentru dezvoltarea și implementarea sistemelor de control distribuit, utilizate pe scară largă în facilitățile științifice.
- Obțineți numele variabilei de proces (PV) EPICS pentru IO-ul dorit.
- Importați biblioteca EPICS și citiți valoarea.
2 Obțineți numele EPICS PV
3 EPICS simple Python Example
În plus, Pyramid a creat un utilitar (EPICS Connect⁴) care vă permite să monitorizați variabilele procesului EPICS în timp real. Acest instrument este util pentru a confirma dacă numele EPICS PV este corect și dacă FX4 deservește corect PV în rețeaua dvs.
4 PTC EPICS Connect
API de programare FX4
Conceptele și metodele descrise în acest manual se bazează pe conceptele stabilite în Manualul IGX – Programator. Vă rugăm să consultați acel document pentru explicații și exampfișiere despre cum funcționează programarea de bază și interfețele IGX. Acest manual va acoperi doar IO-urile și funcționalitățile specifice dispozitivului, care sunt unice pentru FX4.
4.1 Intrare analogică IO
Aceste IO se referă la configurarea și colectarea datelor pe intrările de curent analogice ale FX4. Unitățile de intrare ale canalului se bazează pe setarea configurabilă de utilizator numită „Sample Units”, opțiunile valide includ pA, nA, uA, mA și A.
Toate cele 4 canale folosesc aceeași interfață IO și sunt controlate independent. Înlocuiți channel_x cu channel_1 , channel_2 , channel_3 , sau, respectiv, channel_4.
| Calea IO | Descriere |
| /fx4/adc/channel_x | NUMĂR DE CITIRE Intrarea curentă măsurată. |
| /fx4/adc/channel_x/scalar | NUMĂR Scalar simplu fără unitate aplicat canalului, 1 implicit. |
| /fx4/adc/channel_x/zero_offset | NUMBER Offset curent în nA pentru canal. |
Următoarele IO nu sunt independente de canal și sunt aplicate la toate canalele simultan.
| Calea IO | Descriere |
| /fx4/canal_sum | READONLY NUMBER Suma canalelor de intrare curente. |
| /fx4/adc_unit | STRING Setează unitățile utilizator curente pentru fiecare canal și sumă. Opțiuni: „pa”, „na”, „ua”, „ma”, „a” |
| /fx4/range | STRING Setează intervalul de intrare curent. Consultați GUI pentru modul în care fiecare cod de interval corespunde limitelor maxime de intrare curente și BW. Opțiuni: „0”, „1”, „2”, „3”, „4”, „5”, „6”, „7” |
| /fx4/adc/sample_frequency | NUMĂR Frecvența în Hz care sampdatele vor fi mediate la. Aceasta controlează raportul semnal-zgomot și rata de date pentru toate canalele. |
| /fx4/adc/conversion_frequency | NUMĂR Frecvența în Hz la care ADC-ul va converti valorile analogice în digitale. În mod implicit, aceasta este de 100 kHz și va trebui să modificați această valoare doar rar. |
| /fx4/adc/offset_correction | NUMĂR DE CITIRE Suma decalajelor curente ale tuturor canalului. |
4.2 Ieșire analogică IO
Aceste IO se referă la configurația ieșirilor analogice de uz general ale FX4 aflate sub intrările analogice de pe panoul frontal. Toate cele 4 canale folosesc aceeași interfață IO și sunt controlate independent. Înlocuiți channel_x cu channel_1 , channel_2 , channel_3 , sau, respectiv, channel_4.
| Calea IO | Descriere |
| /fx4/dac /channel_x | Comanda NUMĂR voltagieșire. Această valoare poate fi scrisă numai atunci când modul de ieșire este setat pe manual. |
| /fx4/dac/channel_x/readback | NUMĂR DE CITIRE Vol. măsurattagieșire. Acest lucru este cel mai util atunci când utilizați modul de ieșire a expresiei. |
| /fx4/dac/channel_x/output_mode | STRING Setează modul de ieșire pentru canal. Opțiuni: „manual”, „expresie”, „control_proces” |
| /fx4/dac/channel _ x/slew_control_enable | BOOL Activează sau dezactivează limitarea ratei de înclinare. |
| /fx4/dac/channel_x/slew_rate | NUMĂR Rată de slew în V/s pentru canal. |
| /fx4/dac/channel_x/upper_limit | NUMĂR Comanda maximă permisă voltage pentru canal. Se aplică tuturor modurilor de operare. |
| /fx4/dac/channel _ x/lower_limit | NUMĂR Comanda minimă permisă voltage pentru canal. Se aplică tuturor modurilor de operare. |
| /fx4/dac/channel _ x/ ieșire _ expresie | STRING Setează șirul de expresie utilizat de canal atunci când este în modul de ieșire a expresiei. |
| /fx4/dac/channel _ x/buton_resetare | BUTON Resetează comanda voltage la 0. |
4.3 Intrări și ieșiri digitale
Aceste IO se referă la controlul diferitelor intrări și ieșiri digitale de uz general găsite pe FX4.
| Calea IO | Descriere |
| /fx4/fr1 | READONLY BOOL Fibră receptor 1. |
| /fx4/ft1 | BOOL Transmițător cu fibră 1. |
| /fx4/fr2 | READONLY BOOL Fibră receptor 2. |
| /fx4/ft2 | BOOL Transmițător cu fibră 2. |
| /fx4/fr3 | READONLY BOOL Fibră receptor 3. |
| /fx4/ft3 | BOOL Transmițător cu fibră 3. |
| /fx4/digital_expansion/d1 | BOOL D1 extindere digitală bidirecțională IO. |
| /fx4/digital_expansion/d2 | BOOL D2 extindere digitală bidirecțională IO. |
| /fx4/digital_expansion/d3 | BOOL D3 extindere digitală bidirecțională IO. |
| /fx4/digital_expansion/d4 | BOOL D4 extindere digitală bidirecțională IO. |
4.3.1 Configurare digitală IO
Toate digitalele au IO copil pentru configurarea comportamentului lor, inclusiv un mod de operare care controlează modul în care va funcționa acel digital. Fiecare digital va avea un set diferit de opțiuni disponibile. Consultați GUI pentru detalii despre opțiunile disponibile pentru ce IO.
| Cale IO copil | Descriere |
| …/modul | STRING Mod de operare pentru digital. Opțiuni: „input“, „output”, „pwm”, „timer”, „encoder”, „capture”, „uart_rx”, „uart_tx”, „can_rx”, „can_tx”, „pru_input” sau „pru_output” |
| …/semnal_proces | ȘIR Numele semnalului de control al procesului, dacă există. |
| …/pull_mode | STRING Mod trage sus/jos pentru o intrare digitală. Opțiuni: „sus”, „jos” sau „dezactivare” |
4.4 Control releu
Ambele relee sunt controlate independent și au același tip de interfață. Înlocuiți relay_x cu relay_a sau, respectiv, relay_b.
| Calea IO | Descriere |
| /fx4/relay _ x/permit / user _ comanda | BOOL Comandă deschiderea sau închiderea releului. O comandă adevărată va încerca să închidă releul dacă interblocările sunt acordate, iar o comandă falsă va deschide întotdeauna releul. |
| /fx4/releu _ x/stare | READONLY STRING Starea curentă a releului. Releele blocate sunt deschise, dar nu pot fi închise din cauza unei interblocări. State: „deschis”, „închis” sau „blocat” |
| /fx4/releu _ x/închidere automată | BOOL Când este setat la adevărat, releul se va închide automat când interblocarea este acordată. Fals în mod implicit. |
| /fx4/releu _ x/ ciclu _ număr | READONLY NUMBER Numărul de cicluri de releu de la ultima resetare. Util pentru urmărirea duratei de viață a releului. |
4.5 Vol. Ridicattage Modulul
Consultați manualul IGX – Programator pentru detalii despre FX4 high voltage interfață. Calea părinte a componentei este /fx4/high_votlage .
4.6 Controler de doză
Consultați Manualul IGX – Programator pentru detalii despre interfața controlerului de doză FX4. Calea părinte a componentei este /fx4/dose_controller .
FX4 Python Examples
5.1 Înregistrare de date folosind HTTP
Acest example demonstrează cum să captați un număr de citiri și să le salvați într-un CSV file. Alegând o întârziere mare între citiri, puteți efectua înregistrarea de date pe termen lung chiar dacă FX4 samprata de ling este stabilită mai mare. Acest lucru vă permite să colectați și să stocați în mod continuu măsurători pe perioade lungi, fără a copleși sistemul, asigurându-vă că datele sunt capturate la intervale potrivite pentru analiza dumneavoastră. Întârzierea dintre citiri ajută la reglarea ritmului în care sunt înregistrate datele, permițând stocarea eficientă și reducând riscul de lipsă a punctelor de date, beneficiind în același timp de viteze mari.ampling pentru măsurători în timp real.




5.2 GUI Python simplu
Al doilea example folosește instrumentul Tkinter GUI, care este construit pentru Python, pentru a crea o afișare a curenților măsurați. Această interfață vă permite să vizualizați citirile curente într-un format grafic ușor de utilizat. Ecranul poate fi redimensionat pentru a-l face suficient de mare pentru a putea citi dintr-o cameră, ceea ce îl face ideal pentru scenariile în care este necesară monitorizarea în timp real în spații mai mari. Tkinter oferă o modalitate ușoară de a crea interfețe interactive și, integrându-l cu FX4, puteți construi rapid un afișaj vizual al curenților măsurați, care poate fi personalizat pentru a se potrivi nevoilor dumneavoastră specifice.







5.3 Simplu WebPrize Example
Acest example demonstrează WebInterfață socket, care este metoda preferată pentru citirea datelor de la FX4 atunci când este necesară o lățime de bandă maximă. WebPrizele oferă un canal de comunicație full-duplex în timp real, permițând un transfer de date mai rapid și mai eficient în comparație cu alte metode.
Example citește o serie de samples, raportează timpul mediu pe sample și latența maximă și salvează datele într-un CSV file pentru analiza ulterioară. Această configurație permite monitorizarea eficientă în timp real și stocarea ușoară a datelor pentru post-procesare.
Performanța specifică cu care se poate obține WebPrizele depinde de fiabilitatea interfeței dumneavoastră Ethernet și de prioritatea relativă a aplicației dumneavoastră. Pentru rezultate optime, asigurați-vă că rețeaua dvs. este stabilă și că transmisia de date a FX4 are prioritate, dacă este necesar.



Versiune: v3
FX4 Python Exampcoduri: 21
Documente/Resurse
![]() |
Programator PYRAMID FX4 [pdfManual de instrucțiuni Programator FX4, FX4, Programator |
