PYRAMID logowww.pyramid.tech
FX4
FX4 Programmer Manual
Dokumint ID: 2711715845
Ferzje: 3PYRAMID FX4 Programmer

FX4 programmeur

Dokumint ID: 2711715845
FX4 - FX4 Programmer Hânlieding

PYRAMID FX4 Programmer - ikoan 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

PYRAMID FX4 Programmer - ikoan 1 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.

PYRAMID FX4 Programmeur - Mei help fan Python en HTTP

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.

PYRAMID FX4 Programmer - HTTP-oanfragen en gegevensparsing1 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.

  1. https://blackberry.qnx.com/en
  2. https://pyramid.tech/products/igx
  3. https://www.python.org/
  1. Krij de EPICS-prosesfariabele (PV) namme foar de winske IO.
  2. Ymportearje de EPICS-bibleteek en lês de wearde.

PYRAMID FX4 Programmer - EPICS proses fariabele2 Get EPICS PV NammePYRAMID FX4 Programmer - Simple Python EPICS Example3 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.

PYRAMID FX4 Programmer - EPICS Ferbine4 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.

PYRAMID FX4 Programmer - Data Logger mei HTTPPYRAMID FX4 Programmeur - Datalogger mei HTTP 2PYRAMID FX4 Programmeur - Datalogger mei HTTP 3PYRAMID FX4 Programmeur - Datalogger mei HTTP 4

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.

PYRAMID FX4 Programmer - Simple Python GUIPYRAMID FX4 Programmer - Simple Python GUI 2PYRAMID FX4 Programmer - Simple Python GUI 3PYRAMID FX4 Programmer - Simple Python GUI 4PYRAMID FX4 Programmer - Simple Python GUI 5PYRAMID FX4 Programmer - Simple Python GUI 6PYRAMID FX4 Programmer - Simple Python GUI 7

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.

PYRAMID FX4 Programmer - Ienfâldich WebSockets ExamplePYRAMID FX4 Programmer - Ienfâldich WebSockets Example 2PYRAMID FX4 Programmer - Ienfâldich WebSockets Example 3

Ferzje: 3
FX4 Python Exampljip: 21

Dokuminten / Resources

PYRAMID FX4 Programmer [pdf] Ynstruksjehânlieding
FX4 Programmer, FX4, Programmer

Referinsjes

Lit in reaksje efter

Jo e-mailadres sil net publisearre wurde. Ferplichte fjilden binne markearre *