PYRAMID logowww.pyramid.tech
FX4
FX4 programmeringsmanual
Dokument-id: 2711715845
Version: v3PYRAMID FX4 programmør

FX4 programmør

Dokument-id: 2711715845
FX4 – FX4 Programmeringsmanual

PYRAMID FX4 Programmer - ikon Dokument-id: 2711650310

Forfatter Matthew Nichols
Ejer Projektleder
Formål Forklar de programmeringskoncepter, der er nødvendige for at bruge API'et og udvide produktet gennem eksterne applikationer.
Omfang FX4 relaterede programmeringskoncepter.
Tilsigtet publikum Softwareudviklere, der er interesserede i at bruge produktet.
Behandle https://pyramidtc.atlassian.net/wiki/pages/createpage.action?
spaceKey=PQ&title=Standard%20Manual%20Creation%20Process
Uddannelse IKKE ANVENDELIG

Versionskontrol

Version Beskrivelse  Gemt af  Gemt på  Status
v3 Tilføjet en simpel overview og mere examples. Matthew Nichols 6. marts 2025 10:29 GODKENDT
v2 Tilføjet digitale IO-grænseflader og referencer tilbage til IGX. Matthew Nichols 3. maj 2024 kl. 7 GODKENDT
v1 Første udgivelse, stadig et arbejde i gang. Matthew Nichols 21. februar 2024 kl. 11 GODKENDT

PYRAMID FX4 Programmer - ikon 1 Dokument kontrol Ikke Reviewed
Aktuel dokumentversion: v.1
Nej vedrviewere tildelt.

1.1 Underskrifter
for den seneste dokumentversion
Fredag ​​den 7. marts 2025, 10:33 UTC
Matthew Nichols underskrev ; betydning: Vedrview

Referencer

Dokument Dokument ID  Forfatter  Version
IGX – Programmeringsmanual 2439249921 Matthew Nichols 1

FX4 programmering overståetview

FX4-processoren kører på et miljø kaldet IGX, som er bygget på QNX højpålidelige realtidsoperativsystem fra BlackBerry (QNX Webwebsted¹). IGX giver en fleksibel og omfattende applikationsprogrammeringsgrænseflade (API) til brugere, der ønsker at skrive deres egen værtscomputersoftware.
IGX-miljøet deles på tværs af andre Pyramid-produkter, så softwareløsninger, der er udviklet til ét produkt, nemt kan overføres til andre.
Programmører kan henvise til den komplette dokumentation for IGX, der er tilgængelig på pyramiden webwebsted på: IGX | Moderne Modular Control System Framework for Web-aktiverede applikationer²

Dette afsnit giver en introduktion til test af to af API-metoderne: HTTP ved hjælp af JSON-format og EPICS. For nemheds skyld, Python (Python Webwebsted³) bruges som example værtscomputersprog, som er tilgængeligt og nemt at bruge for ikke-professionelle programmører.

3.1 Brug af Python og HTTP
Som eksample, antag at du vil læse summen af ​​de målte strømme med Python. Du har brug for URL for den pågældende IO. FX4 web GUI giver en nem måde at finde dette på: blot højreklik i feltet og vælg 'Kopier HTTP URL' for at kopiere strengen til udklipsholderen.

PYRAMID FX4 Programmer - Bruger Python og HTTP

Nu kan du bruge Python til at teste forbindelse til brugersoftware via HTTP og JSON. Du skal muligvis importere anmodningerne og json-bibliotekerne for at håndtere HTTP-anmodningerne og dataparsing.

PYRAMID FX4 Programmer - HTTP-anmodninger og dataparsing1 Simple Python HTTP Example

3.2 Brug af EPICS
Processen til at forbinde FX4 gennem EPICS (Experimental Physics and Industrial Control System) er den samme. EPICS er et sæt softwareværktøjer og applikationer, der bruges til at udvikle og implementere distribuerede kontrolsystemer, der er meget udbredt i videnskabelige faciliteter.

  1. https://blackberry.qnx.com/en
  2. https://pyramid.tech/products/igx
  3. https://www.python.org/
  1. Hent navnet på EPICS-procesvariabelen (PV) for den ønskede IO.
  2. Importer EPICS-biblioteket og læs værdien.

PYRAMID FX4 Programmer - EPICS procesvariabel2 Få EPICS PV-navnPYRAMID FX4 Programmer - Simple Python EPICS Example3 Simple Python EPICS Example

Derudover oprettede Pyramid et hjælpeprogram (EPICS Connect⁴), der giver dig mulighed for at overvåge EPICS-procesvariabler i realtid. Dette værktøj er nyttigt til at bekræfte, om EPICS PV-navnet er korrekt, og FX4'en serverer PV'en korrekt på dit netværk.

PYRAMID FX4 Programmer - EPICS Connect4 PTC EPICS Connect

FX4 programmerings-API

Koncepterne og metoderne, der er beskrevet i denne manual, bygger på de koncepter, der er etableret i IGX – Programmer Manual. Se venligst dette dokument for forklaring og examples om, hvordan grundlæggende IGX-programmering og grænseflader fungerer. Denne manual vil kun dække den enhedsspecifikke IO og funktionalitet, der er unik for FX4.

4.1 Analog indgang IO
Disse IO vedrører konfiguration og indsamling af data på de analoge strømindgange på FX4. Enhederne for kanalindgangene er baseret på den brugerkonfigurerbare indstilling kaldet "Sample Units", inkluderer gyldige muligheder pA, nA, uA, mA og A.
Alle 4 kanaler bruger den samme interface IO og styres uafhængigt. Erstat kanal_x med henholdsvis kanal_1 , kanal_2 , kanal_3 eller kanal_4.

IO-sti Beskrivelse
/fx4/adc/kanal_x LÆSEKUN NUMMER Målt strømindgang.
/fx4/adc/channel_x/scalar NUMBER Simpel enhedsløs skalar anvendt på kanalen, 1 som standard.
/fx4/adc/channel_x/nul_offset NUMBER Aktuel offset i nA for kanalen.

Følgende IO er ikke kanaluafhængige og anvendes på alle kanaler samtidigt.

IO-sti  Beskrivelse
/fx4/kanal_sum LÆSEKUN NUMMER Summen af ​​de aktuelle inputkanaler.
/fx4/adc_unit STRING Indstiller de aktuelle brugerenheder for hver kanal og sum.
Valgmuligheder: "pa", "na", "ua", "ma", "a"
/fx4/område STRING Indstiller det aktuelle inputområde. Se GUI for, hvordan hver områdekode svarer til de maksimale strømindgangsgrænser og BW.
Valgmuligheder: "0", "1", "2", "3", "4", "5", "6", "7"
/fx4/adc/sample_frekvens NUMBER Frekvensen i Hz, der sample data vil blive gennemsnittet til. Dette styrer signal-til-støj og datahastighed for alle kanaler.
/fx4/adc/conversion_frequency NUMMER Frekvensen i Hz, som ADC'en vil konvertere analoge til digitale værdier ved. Som standard er dette 100kHz, og du behøver kun sjældent at ændre denne værdi.
/fx4/adc/offset_correction LÆSEKUN NUMMER Summen af ​​alle kanalens aktuelle offsets.

4.2 Analog udgang IO
Disse IO vedrører konfigurationen af ​​de generelle analoge udgange på FX4, som findes under de analoge indgange på frontpanelet. Alle 4 kanaler bruger den samme interface IO og styres uafhængigt. Erstat kanal_x med henholdsvis kanal_1 , kanal_2 , kanal_3 eller kanal_4.

IO-sti  Beskrivelse
/fx4/dac /kanal_x NUMBER Command voltage output. Denne værdi kan kun skrives til, når output-tilstand er indstillet til manuel.
/fx4/dac/channel_x/readback LÆSEKUN NUMMER Målt voltage output.
Dette er mest nyttigt, når du bruger udtryksoutputtilstand.
/fx4/dac/kanal_x/output_mode STRING Indstiller udgangstilstanden for kanalen.
Valgmuligheder: "manuel", "udtryk", "proces_kontrol"
/fx4/dac/channel _ x/slew_control_enable BOOL Aktiverer eller deaktiverer begrænsning af slew rate.
/fx4/dac/channel_ x/slew_rate NUMBER Slew rate i V/s for kanalen.
/fx4/dac/channel_x/upper_limit NUMBER Den maksimalt tilladte kommando voltage for kanalen. Gælder for alle driftstilstande.
/fx4/dac/kanal _ x/lower_limit NUMBER Den mindst tilladte kommando voltage for kanalen. Gælder for alle driftstilstande.
/fx4/dac/kanal _ x/ output _ udtryk STRING Indstiller den udtryksstreng, der bruges af kanalen, når den er i udtryksoutputtilstand.
/fx4/dac/kanal _ x/reset_button KNAP Nulstiller kommandoen voltage til 0.

4.3 Digitale ind- og udgange
Disse IO vedrører styring af de forskellige digitale ind- og udgange til generelle formål, der findes på FX4.

IO-sti  Beskrivelse
/fx4/fr1 READONLY BOOL Fibermodtager 1.
/fx4/ft1 BOOL Fibersender 1.
/fx4/fr2 READONLY BOOL Fibermodtager 2.
/fx4/ft2 BOOL Fibersender 2.
/fx4/fr3 READONLY BOOL Fibermodtager 3.
/fx4/ft3 BOOL Fibersender 3.
/fx4/digital_udvidelse/d1 BOOL D1 tovejs digital ekspansion IO.
/fx4/digital_udvidelse/d2 BOOL D2 tovejs digital ekspansion IO.
/fx4/digital_udvidelse/d3 BOOL D3 tovejs digital ekspansion IO.
/fx4/digital_udvidelse/d4 BOOL D4 tovejs digital ekspansion IO.

4.3.1 Digital IO-konfiguration
Alle digitale enheder har underordnede IO til at konfigurere deres adfærd, herunder en driftstilstand, der styrer, hvordan den digitale vil fungere. Hver digital vil have et andet sæt tilgængelige muligheder. Se GUI for detaljer om, hvilke muligheder der er tilgængelige for hvilken IO.

Børns IO-sti Beskrivelse
…/mode STRING Driftstilstand for det digitale.
Valgmuligheder: "input", "output", "pwm", "timer", "encoder", "capture", "uart_rx", "uart_tx", "can_rx", "can_tx", "pru_input" eller "pru_output"
…/proces_signal STRING Navnet på processtyringssignalet, hvis der er et.
…/pull_mode STRING Træk op/ned-tilstand for en digital indgang.
Valgmuligheder: "op", "ned" eller "deaktiver"

4.4 Relæstyring
Begge relæer styres uafhængigt og deler den samme type interface. Erstat relay_x med henholdsvis relay_a eller relay_b.

IO-sti  Beskrivelse
/fx4/relay _ x/permit / user _ kommando BOOL Befaler relæet åbent eller lukket. En sand kommando vil forsøge at lukke relæet, hvis sikringerne er givet, og falsk kommando vil altid åbne relæet.
/fx4/relæ _ x/tilstand READONLY STRING Relæets aktuelle tilstand.
Låste relæer er åbne, men kan ikke lukkes på grund af en aflåsning.
Stater: "åbnet", "lukket" eller "låst"
/fx4/relæ _ x/automatisk _ lukke BOOL Når den er indstillet til sand, vil relæet automatisk lukke, når sikringerne er tildelt. Falsk som standard.
/fx4/relæ _ x/ cyklus _ tæller READONLY NUMBER Antallet af relæcyklusser siden sidste nulstilling. Nyttigt til sporing af relæets levetid.

4.5 Høj Voltage modul
Se IGX – Programmer Manual for detaljer om FX4 high voltage interface. Komponentens overordnede sti er /fx4/high_votlage .

4.6 Dosisregulator
Se IGX – Programmeringsmanualen for detaljer om FX4 dosiscontrollergrænsefladen. Komponentens overordnede sti er /fx4/dose_controller .

FX4 Python Examples

5.1 Datalogger ved hjælp af HTTP
Denne example demonstrerer, hvordan man fanger et antal aflæsninger og gemmer dem i en CSV file. Ved at vælge en lang forsinkelse mellem aflæsningerne kan du udføre langtidsdatalogning, selvom FX4 sampling rate er sat højere. Dette giver dig mulighed for kontinuerligt at indsamle og gemme målinger over længere perioder uden at overvælde systemet, hvilket sikrer, at data fanges med intervaller, der passer til din analyse. Forsinkelsen mellem aflæsningerne hjælper med at regulere det tempo, hvormed data logges, hvilket muliggør effektiv lagring og reducerer risikoen for manglende datapunkter, mens du stadig drager fordel af højhastigheds-sampling til realtidsmålinger.

PYRAMID FX4 Programmer - Datalogger ved hjælp af HTTPPYRAMID FX4 Programmer - Datalogger ved hjælp af HTTP 2PYRAMID FX4 Programmer - Datalogger ved hjælp af HTTP 3PYRAMID FX4 Programmer - Datalogger ved hjælp af HTTP 4

5.2 Simpel Python GUI
Det andet example bruger Tkinter GUI-værktøjet, som er bygget til Python, til at skabe en visning af de målte strømme. Denne grænseflade giver dig mulighed for at visualisere de aktuelle aflæsninger i et brugervenligt grafisk format. Displayet kan ændres størrelse for at gøre det stort nok til at læse fra tværs af et rum, hvilket gør det ideelt til scenarier, hvor realtidsovervågning er nødvendig i større rum. Tkinter giver en nem måde at skabe interaktive grænseflader på, og ved at integrere den med FX4 kan du hurtigt bygge en visuel visning af de målte strømme, som kan tilpasses til dine specifikke behov.

PYRAMID FX4 Programmer - Simpel 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 Enkel WebStikkontakter Eksample
Denne example demonstrerer WebSockets interface, som er den foretrukne metode til at læse data fra FX4, når der kræves maksimal båndbredde. WebSockets giver en real-time, fuld-duplex kommunikationskanal, hvilket muliggør hurtigere og mere effektiv dataoverførsel sammenlignet med andre metoder.
Eksample læser en række samples, rapporterer den gennemsnitlige tid pr. sample og maksimal latenstid, og gemmer dataene i en CSV file til senere analyse. Denne opsætning giver mulighed for effektiv overvågning i realtid og nem datalagring til efterbehandling.
Den specifikke præstation, der kan opnås med WebSockets afhænger af pålideligheden af ​​din Ethernet-grænseflade og den relative prioritet af din applikation. For optimale resultater skal du sikre dig, at dit netværk er stabilt, og at FX4's dataoverførsel prioriteres, hvis det er nødvendigt.

PYRAMID FX4 Programmer - Enkel WebStikkontakter EksamplePYRAMID FX4 Programmer - Enkel WebStikkontakter Eksample 2PYRAMID FX4 Programmer - Enkel WebStikkontakter Eksample 3

Version: v3
FX4 Python Examplæs: 21

Dokumenter/ressourcer

PYRAMID FX4 programmør [pdf] Brugsanvisning
FX4 programmør, FX4, programmør

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *