www.pyramid.tech
FX4
FX4 Programmer Manual
Dokumint ID: 2711715845
Ferzje: 3
FX4 programmeur
Dokumint ID: 2711715845
FX4 - FX4 Programmer Hânlieding
Dokumint ID: 2711650310
Skriuwer | Matthew Nichols |
Eigner | Projektlieder |
Doel | Ferklearje de programmearbegripen dy't nedich binne om de API te brûken en it produkt út te wreidzjen fia eksterne applikaasjes. |
Scope | FX4 relatearre programmearring konsepten. |
Bedoeld publyk | Software-ûntwikkelders ynteressearre yn it brûken fan it produkt. |
Proses | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Standert%20Hânlieding%20Creation%20Proses |
Trening | NET FAN TAPASSING |
Ferzje Control
Ferzje | Beskriuwing | Bewarre troch | Opslein op | Status |
v3 | In ienfâldige oer tafoegeview en mear eksamples. | Matthew Nichols | 6. mear 2025 10:29 | GOEDGEKEURD |
v2 | Digitale IO-ynterfaces tafoege en ferwizings werom nei IGX. | Matthew Nichols | 3 mei 2024 7:39 | GOEDGEKEURD |
v1 | Inisjele release, noch in wurk oan 'e gong. | Matthew Nichols | 21. Febrewaris 2024 11:25 | GOEDGEKEURD |
Dokumint kontrôle Net Reviewed
Aktuele dokumintferzje: v.1
Gjin reviewers tawiisd.
1.1 Hantekenings
foar meast resinte dokumint ferzje
Freed 7. Mar 2025, 10:33 UTC
Matthew Nichols tekene; betsjutting: review
Referinsjes
Dokumint | Dokumint ID | Skriuwer | Ferzje |
IGX - Programmer Manual | 2439249921 | Matthew Nichols | 1 |
FX4 Programming Overview
De FX4-prosessor rint op in omjouwing neamd IGX, dy't boud is op it QNX realtime bestjoeringssysteem mei hege betrouberens fan BlackBerry (QNX Website¹). IGX biedt in fleksibele en wiidweidige applikaasje-programmearring-ynterface (API) foar brûkers dy't har eigen hostkomputersoftware wolle skriuwe.
De IGX-omjouwing wurdt dield oer oare Pyramid-produkten, wêrtroch software-oplossings ûntwikkele foar ien produkt maklik kinne wurde oerdroegen oan oaren.
Programmeurs kinne ferwize nei de folsleine dokumintaasje foar IGX beskikber op 'e Piramide webside op: IGX | Modern Modular Control System Framework foar Web-ynskeakele Applications²
Dizze seksje jout in ynlieding foar it testen fan twa fan 'e API-metoaden: HTTP mei JSON-formaat en EPICS. Foar ienfâld, Python (Python Website³) wurdt brûkt as eksample host kompjûter taal, dat is tagonklik en maklik te brûken foar net-profesjonele programmeurs.
3.1 Python en HTTP brûke
As eksample, oannimme dat jo wolle lêze de som fan de mjitten streamingen mei Python. Jo moatte de URL foar dy bepaalde IO. De FX4 web GUI biedt in maklike manier om dit te finen: klik gewoan mei rjochts yn it fjild en selektearje 'Kopiearje HTTP URL' om de tekenrige nei it klamboerd te kopiearjen.
No kinne jo Python brûke om ferbining te testen mei brûkerssoftware fia HTTP en JSON. Jo moatte miskien de oanfragen en json-biblioteken ymportearje om de HTTP-oanfragen en gegevensparsing te behanneljen.
1 Ienfâldige Python HTTP Example
3.2 EPICS brûke
It proses foar it ferbinen fan de FX4 fia EPICS (Experimental Physics and Industrial Control System) is fergelykber. EPICS is in set fan software-ark en -applikaasjes dy't brûkt wurde foar it ûntwikkeljen en ymplementearjen fan ferspraat kontrôlesystemen, breed brûkt yn wittenskiplike foarsjenningen.
- Krij de EPICS-prosesfariabele (PV) namme foar de winske IO.
- Ymportearje de EPICS-bibleteek en lês de wearde.
2 Get EPICS PV Namme
3 Simple Python EPICS Example
Derneist makke Pyramid in hulpprogramma (EPICS Ferbine⁴) wêrmei jo EPICS-prosesfariabelen yn realtime kinne kontrolearje. Dit ark is nuttich om te befestigjen as de EPICS PV-namme korrekt is en de FX4 de PV korrekt op jo netwurk tsjinnet.
4 PTC EPICS Ferbine
FX4 Programming API
De konsepten en metoaden beskreaun yn dizze hantlieding bouwe op 'e begripen fêststeld yn' e IGX - Programmer Manual. Sjoch asjebleaft dat dokumint foar útlis en examples fan hoe't basis IGX-programmearring en ynterfaces wurkje. Dizze hantlieding sil allinich de apparaatspesifike IO en funksjonaliteit dekke dy't unyk is foar de FX4.
4.1 Analoge Ynfier IO
Dizze IO relatearje oan it konfigurearjen en sammeljen fan gegevens oer de analoge aktuele yngongen fan 'e FX4. De ienheden fan 'e kanaalynputen binne basearre op de brûker konfigureare ynstelling neamd "Sample Units", jildige opsjes omfetsje pA, nA, uA, mA, en A.
Alle 4 kanalen brûke deselde ynterface IO en wurde ûnôfhinklik regele. Ferfange kanaal_x mei respektivelik kanaal_1 , kanaal_2 , kanaal_3 , of kanaal_4.
IO Paad | Beskriuwing |
/fx4/adc/kanaal_x | READONLY NUMMER Gemjitten hjoeddeistige ynfier. |
/fx4/adc/channel_x/scalar | NUMBER Ienfâldige skalaar sûnder ienheid tapast op it kanaal, 1 standert. |
/fx4/adc/channel_x/nul_offset | NUMBER Aktuele offset yn nA foar it kanaal. |
De folgjende IO binne net kanaalûnôfhinklik en wurde tagelyk tapast op alle kanalen.
IO Paad | Beskriuwing |
/fx4/kanaal_sum | READONLY NUMMER Som fan de hjoeddeiske ynfier kanalen. |
/fx4/adc_unit | STRING Stelt de hjoeddeiske brûkersienheden yn foar elk kanaal en som. Opsjes: "pa", "na", "ua", "ma", "a" |
/fx4/range | STRING Stelt it aktuele ynfierberik yn. Sjoch GUI foar hoe't elk berik koade oerienkomt mei de maksimale hjoeddeistige ynfier grinzen en BW. Opsjes: "0", "1", "2", "3", "4", "5", "6", "7" |
/fx4/adc/sample_frekwinsje | NUMBER De frekwinsje yn Hz dat sample gegevens wurde gemiddeld oan. Dit kontrolearret it sinjaal-to-lûd en gegevensrate foar alle kanalen. |
/fx4/adc/conversion_frequency | NUMMER De frekwinsje yn Hz wêrop de ADC analooch nei digitale wearden sil omsette. Standert is dit 100kHz, en jo sille mar komselden moatte feroarje dizze wearde. |
/fx4/adc/offset_correction | ALLINNICH-LÊZENUMMER Som fan alle hjoeddeistige offsets fan kanalen. |
4.2 Analoge Utfier IO
Dizze IO relatearje oan de konfiguraasje fan 'e algemiene analoge útgongen fan' e FX4 fûn ûnder de analoge yngongen op it foarpaniel. Alle 4 kanalen brûke deselde ynterface IO en wurde ûnôfhinklik regele. Ferfange kanaal_x mei respektivelik kanaal_1 , kanaal_2 , kanaal_3 , of kanaal_4.
IO Paad | Beskriuwing |
/fx4/dac /kanaal_x | NUMBER Kommando voltage útgong. Dizze wearde kin allinich skreaun wurde as de útfiermodus ynsteld is op hânmjittich. |
/fx4/dac/channel_x/readback | READONLY NUMBER Metten voltage útfier. Dit is it nuttichst by it brûken fan de útdrukkingsútfiermodus. |
/fx4/dac/channel_x/output_mode | STRING Stelt de útfiermodus foar it kanaal yn. Opsjes: "manual", "expression", "process_control" |
/fx4/dac/kanaal _ x/slew_control_enable | BOOL Aktivearret of útskeakelje slew rate beheinen. |
/fx4/dac/channel_ x/slew_rate | NUMBER Slew rate yn V / s foar it kanaal. |
/fx4/dac/channel_x/upper_limit | NUMBER It maksimum tastiene kommando voltage foar it kanaal. Jildt foar alle operaasjemodi. |
/fx4/dac/kanaal _ x/lower_limit | NUMBER It minimum tastiene kommando voltage foar it kanaal. Jildt foar alle operaasjemodi. |
/fx4/dac/kanaal _ x/ útfier _ ekspresje | STRING Stelt de ekspresjestring yn dy't brûkt wurdt troch it kanaal as it yn 'e ekspresjeútfiermodus is. |
/fx4/dac/kanaal _ x/reset_button | BUTTON Reset it kommando voltage oan 0. |
4.3 Digitale ynput en útgongen
Dizze IO relatearje oan it kontrolearjen fan de ferskate digitale yn- en útgongen foar algemiene doelen fûn op 'e FX4.
IO Paad | Beskriuwing |
/fx4/fr1 | READONLY BOOL Fiberûntfanger 1. |
/fx4/ft1 | BOOL Fiber stjoerder 1. |
/fx4/fr2 | READONLY BOOL Fiberûntfanger 2. |
/fx4/ft2 | BOOL Fiber stjoerder 2. |
/fx4/fr3 | READONLY BOOL Fiberûntfanger 3. |
/fx4/ft3 | BOOL Fiber stjoerder 3. |
/fx4/digitale_útwreiding/d1 | BOOL D1 bidirectionele digitale útwreiding IO. |
/fx4/digitale_útwreiding/d2 | BOOL D2 bidirectionele digitale útwreiding IO. |
/fx4/digitale_útwreiding/d3 | BOOL D3 bidirectionele digitale útwreiding IO. |
/fx4/digitale_útwreiding/d4 | BOOL D4 bidirectionele digitale útwreiding IO. |
4.3.1 Digital IO konfiguraasje
Alle digitalen hawwe bern IO foar it konfigurearjen fan har gedrach, ynklusyf in bestjoeringsmodus dy't kontrolearret hoe't dat digitale sil wurkje. Elke digitale sil in oare set fan beskikbere opsjes hawwe. Sjoch de GUI foar details oer hokker opsjes beskikber binne foar hokker IO.
Bern IO Paad | Beskriuwing |
…/wize | STRING Operaasje modus foar de digitale. Opsjes: "input", "output", "pwm", "timer", "encoder", "capture", "uart_rx", "uart_tx", "can_rx", "can_tx", "pru_input", of "pru_output" |
…/proces_signal | STRING De namme fan it proseskontrôlesinjaal, as d'r ien is. |
…/pull_mode | STRING Pull up/down modus foar in digitale ynfier. Opsjes: "up", "down", of "útskeakelje" |
4.4 Relay Control
Beide relais wurde ûnôfhinklik regele en diele itselde type ynterface. Ferfange relay_x mei respektivelik relay_a of relay_b.
IO Paad | Beskriuwing |
/fx4/relay _ x/fergunning / brûker _ kommando | BOOL Bestjoert it estafette iepen of sluten. In wiere kommando sil besykje te sluten it estafette as de interlocks wurde ferliend, en falske kommando sil altyd iepenje de estafette. |
/fx4/relay _ x/state | READONLY STRING De hjoeddeistige tastân fan it estafette. Beskoattele relais binne iepen, mar kinne net sluten wurde fanwege in interlock. Steaten: "iepene", "sletten", of "beskoattele" |
/fx4/relay _ x/automatysk _ slute | BOOL As ynsteld op wier, sil it estafette automatysk slute as de fergrendelingen wurde ferliend. Standert false. |
/fx4/relay _ x/ cycle _ count | READONLY NUMMER It oantal relaysyklusen sûnt de lêste reset. Nuttich foar it folgjen fan it libben fan estafette. |
4.5 Heech Voltage module
Sjoch it IGX - Programmer Manual foar details oer de FX4 hege voltage ynterface. It komponint-âlderpaad is /fx4/high_votlage.
4.6 Dose Controller
Sjoch it IGX - Programmer Manual foar details oer de FX4 dose controller ynterface. It komponint âlder paad is /fx4/dose_controller.
FX4 Python Examples
5.1 Data Logger mei HTTP
Dizze eksample lit sjen hoe't jo in oantal lêzingen kinne fange en opslaan yn in CSV file. Troch in lange fertraging te kiezen tusken lêzingen, kinne jo gegevenslogging op lange termyn útfiere, sels as de FX4 sampling rate wurdt ynsteld heger. Hjirmei kinne jo mjittingen kontinu sammelje en opslaan oer langere perioaden sûnder it systeem te oerweldigjen, en soargje derfoar dat gegevens wurde fêstlein mei yntervallen dy't passend binne foar jo analyse. De fertraging tusken lêzings helpt te regeljen it tempo wêrmei't gegevens wurde ynlogd, wêrtroch effisjinte opslach mooglik is en it risiko fan ûntbrekkende gegevenspunten ferminderje, wylst se noch profitearje fan hege snelheid sampling foar real-time mjittingen.
5.2 Ienfâldige Python GUI
De twadde eksample brûkt it Tkinter GUI-ark, dat is boud foar Python, om in werjefte fan 'e mjitten streamingen te meitsjen. Mei dizze ynterface kinne jo de aktuele lêzingen visualisearje yn in brûkerfreonlik grafysk formaat. De werjefte kin feroare wurde om it grut genôch te meitsjen om fanút in keamer te lêzen, wêrtroch it ideaal is foar senario's wêr't realtime tafersjoch nedich is yn gruttere romten. Tkinter biedt in maklike manier om ynteraktive ynterfaces te meitsjen, en troch it te yntegrearjen mei de FX4, kinne jo fluch in fisuele werjefte bouwe fan 'e mjitten streamingen dy't kinne wurde oanpast oan jo spesifike behoeften.
5.3 Ienfâldich WebSockets Example
Dizze eksample demonstrearret de WebSockets-ynterface, dat is de foarkommende metoade foar it lêzen fan gegevens fan 'e FX4 as maksimale bânbreedte fereaske is. WebSockets jouwe in real-time, full-duplex kommunikaasjekanaal, wêrtroch flugger en effisjinter gegevensoerdracht mooglik is yn ferliking mei oare metoaden.
De eksample lêst in rige fan samples, rapportearret de gemiddelde tiid per sample en maksimale latency, en bewarret de gegevens nei in CSV file foar lettere analyze. Dizze opset soarget foar effisjinte real-time tafersjoch en maklike gegevens opslach foar post-ferwurking.
De spesifike prestaasje dat kin wurde berikt mei WebSockets hinget ôf fan 'e betrouberens fan jo Ethernet-ynterface en de relative prioriteit fan jo applikaasje. Foar optimale resultaten, soargje derfoar dat jo netwurk stabyl is en dat de gegevensoerdracht fan 'e FX4 prioritearre wurdt as it nedich is.
Ferzje: 3
FX4 Python Exampljip: 21
Dokuminten / Resources
![]() |
PYRAMID FX4 Programmer [pdf] Ynstruksjehânlieding FX4 Programmer, FX4, Programmer |