PYRAMID logotypwww.pyramid.tech
FX4
FX4 programmeringsmanual
Dokument-ID: 2711715845
Version: v3PYRAMID FX4 programmerare

FX4 programmerare

Dokument-ID: 2711715845
FX4 – FX4 programmeringsmanual

PYRAMID FX4 programmerare - ikon Dokument-ID: 2711650310

Författare Matthew Nichols
Ägare Projektledare
Ändamål Förklara de programmeringskoncept som krävs för att använda API:t och utöka produkten genom externa applikationer.
Omfattning FX4-relaterade programmeringskoncept.
Avsedd publik Mjukvaruutvecklare som är intresserade av att använda produkten.
Behandla https://pyramidtc.atlassian.net/wiki/pages/createpage.action?
spaceKey=PQ&title=Standard%20Manual%20Creation%20Process
Utbildning INTE TILLÄMPBAR

Versionskontroll

Version Beskrivning  Sparad av  Sparad på  Status
v3 Lade till en enkel överview och mer examples. Matthew Nichols 6 mars 2025 10:29 GODKÄND
v2 Lade till digitala IO-gränssnitt och referenser tillbaka till IGX. Matthew Nichols 3 maj 2024 7:39 GODKÄND
v1 Initial release, fortfarande pågår. Matthew Nichols 21 februari 2024 11:25 GODKÄND

PYRAMID FX4-programmerare - ikon 1 Dokument kontroll Inte Reviewed
Aktuell dokumentversion: v.1
Nej reviewtilldelade.

1.1 Signaturer
för senaste dokumentversionen
Fredagen den 7 mars 2025, 10:33 UTC
Matthew Nichols undertecknade ; betydelse: Review

Referenser

Dokumentera Dokument-ID  Författare  Version
IGX – Programmeringsmanual 2439249921 Matthew Nichols 1

FX4-programmering överview

FX4-processorn körs på en miljö som kallas IGX, som är byggd på QNX högtillförlitliga realtidsoperativsystem från BlackBerry (QNX Webplats¹). IGX tillhandahåller ett flexibelt och omfattande applikationsprogrammeringsgränssnitt (API) för användare som vill skriva sin egen värddatorprogramvara.
IGX-miljön delas mellan andra Pyramid-produkter, vilket gör att mjukvarulösningar som utvecklats för en produkt enkelt kan överföras till andra.
Programmerare kan hänvisa till den fullständiga dokumentationen för IGX som finns på Pyramid webwebbplats på: IGX | Modernt modulärt styrsystem ramverk för Web-aktiverade applikationer²

Det här avsnittet ger en introduktion till att testa två av API-metoderna: HTTP med JSON-format och EPICS. För enkelhetens skull, Python (Pytonorm Webplats³) används som example värddatorspråk, som är tillgängligt och lätt att använda för icke-professionella programmerare.

3.1 Använda Python och HTTP
Som example, anta att du vill läsa summan av de uppmätta strömmarna med Python. Du behöver URL för just den IO. FX4 web GUI ger ett enkelt sätt att hitta detta: högerklicka helt enkelt i fältet och välj "Kopiera HTTP URL' för att kopiera strängen till urklipp.

PYRAMID FX4-programmerare - Använder Python och HTTP

Nu kan du använda Python för att testa anslutning till användarprogramvara via HTTP och JSON. Du kan behöva importera förfrågningarna och json-biblioteken för att hantera HTTP-förfrågningar och dataanalys.

PYRAMID FX4-programmerare - HTTP-förfrågningar och dataanalys1 Enkel Python HTTP Example

3.2 Använda EPICS
Processen för att ansluta FX4 genom EPICS (Experimental Physics and Industrial Control System) är liknande. EPICS är en uppsättning mjukvaruverktyg och applikationer som används för att utveckla och implementera distribuerade kontrollsystem, som ofta används i vetenskapliga anläggningar.

  1. https://blackberry.qnx.com/en
  2. https://pyramid.tech/products/igx
  3. https://www.python.org/
  1. Hämta namnet EPICS processvariabel (PV) för önskad IO.
  2. Importera EPICS-biblioteket och läs värdet.

PYRAMID FX4 Programmerare - EPICS processvariabel2 Hämta EPICS PV-namnPYRAMID FX4-programmerare - Simple Python EPICS Example3 Simple Python EPICS Example

Dessutom skapade Pyramid ett verktyg (EPICS Connect⁴) som låter dig övervaka EPICS processvariabler i realtid. Det här verktyget är användbart för att bekräfta om EPICS PV-namnet är korrekt och att FX4 betjänar PV:n korrekt i ditt nätverk.

PYRAMID FX4 Programmerare - EPICS Connect4 PTC EPICS Anslut

FX4 programmerings-API

Koncepten och metoderna som beskrivs i denna handbok bygger på koncepten som fastställts i IGX – Programmerarmanualen. Se det dokumentet för förklaring och exampläser om hur grundläggande IGX-programmering och gränssnitt fungerar. Denna manual kommer endast att täcka den enhetsspecifika IO och funktionalitet som är unik för FX4.

4.1 Analog ingång IO
Dessa IO hänför sig till konfigurering och insamling av data på de analoga strömingångarna på FX4. Enheterna för kanalingångarna är baserade på den användarkonfigurerbara inställningen som kallas "Sample Units” inkluderar giltiga alternativ pA, nA, uA, mA och A.
Alla 4 kanaler använder samma gränssnitt IO och styrs oberoende av varandra. Ersätt kanal_x med kanal_1 , kanal_2 , kanal_3 respektive kanal_4.

IO-väg Beskrivning
/fx4/adc/kanal_x SKRIVBARA NUMMER Uppmätt strömingång.
/fx4/adc/channel_x/scalar NUMBER Enkel enhetslös skalär tillämpad på kanalen, 1 som standard.
/fx4/adc/channel_x/zero_offset NUMBER Aktuell offset i nA för kanalen.

Följande IO är inte kanaloberoende och tillämpas på alla kanaler samtidigt.

IO-väg  Beskrivning
/fx4/kanalsumma READONLY NUMBER Summan av de aktuella ingångskanalerna.
/fx4/adc_unit STRING Ställer in de aktuella användarenheterna för varje kanal och summa.
Alternativ: "pa", "na", "ua", "ma", "a"
/fx4/intervall STRING Ställer in det aktuella inmatningsintervallet. Se GUI för hur varje områdeskod motsvarar de maximala strömingångsgränserna och BW.
Alternativ: "0", "1", "2", "3", "4", "5", "6", "7"
/fx4/adc/sample_frekvens NUMBER Frekvensen i Hz som sampmedeldata kommer att beräknas till. Detta styr signal-till-brus och datahastighet för alla kanaler.
/fx4/adc/conversion_frequency NUMBER Frekvensen i Hz som ADC:n kommer att konvertera analoga till digitala värden vid. Som standard är detta 100kHz, och du behöver bara sällan ändra detta värde.
/fx4/adc/offset_correction READONLY NUMBER Summan av alla kanalers aktuella offset.

4.2 Analog utgång IO
Dessa IO hänför sig till konfigurationen av de allmänna analoga utgångarna på FX4 som finns under de analoga ingångarna på frontpanelen. Alla 4 kanaler använder samma gränssnitt IO och styrs oberoende av varandra. Ersätt kanal_x med kanal_1 , kanal_2 , kanal_3 respektive kanal_4.

IO-väg  Beskrivning
/fx4/dac /kanal_x NUMBER Kommando voltage utgång. Detta värde kan endast skrivas till när utgångsläget är inställt på manuellt.
/fx4/dac/channel_x/readback SKRIVBARA NUMMER Uppmätt voltage -utgång.
Detta är mest användbart när du använder uttrycksutmatningsläge.
/fx4/dac/kanal_x/utgångsläge STRING Ställer in utgångsläget för kanalen.
Alternativ: "manual", "expression", "process_control"
/fx4/dac/channel _ x/slew_control_enable BOOL Aktiverar eller inaktiverar begränsning av svänghastighet.
/fx4/dac/channel_ x/slew_rate NUMBER Svänghastighet i V/s för kanalen.
/fx4/dac/channel_x/upper_limit NUMBER Maximalt tillåtna kommando voltage för kanalen. Gäller alla driftlägen.
/fx4/dac/kanal _ x/lower_limit NUMBER Minsta tillåtna kommando voltage för kanalen. Gäller alla driftlägen.
/fx4/dac/kanal _ x/ output _ uttryck STRING Ställer in uttryckssträngen som används av kanalen när den är i uttrycksutmatningsläge.
/fx4/dac/kanal _ x/reset_button KNAPP Återställer kommandot voltage till 0.

4.3 Digitala in- och utgångar
Dessa IO hänför sig till styrning av de olika digitala ingångarna och utgångarna för allmänna ändamål som finns på FX4.

IO-väg  Beskrivning
/fx4/fr1 READONLY BOOL Fibermottagare 1.
/fx4/ft1 BOOL Fibersändare 1.
/fx4/fr2 READONLY BOOL Fibermottagare 2.
/fx4/ft2 BOOL Fibersändare 2.
/fx4/fr3 READONLY BOOL Fibermottagare 3.
/fx4/ft3 BOOL Fibersändare 3.
/fx4/digital_expansion/d1 BOOL D1 dubbelriktad digital expansion IO.
/fx4/digital_expansion/d2 BOOL D2 dubbelriktad digital expansion IO.
/fx4/digital_expansion/d3 BOOL D3 dubbelriktad digital expansion IO.
/fx4/digital_expansion/d4 BOOL D4 dubbelriktad digital expansion IO.

4.3.1 Digital IO-konfiguration
Alla digitala enheter har underordnade IO för att konfigurera deras beteende inklusive ett driftläge som styr hur den digitala kommer att fungera. Varje digital kommer att ha en annan uppsättning tillgängliga alternativ. Se GUI för detaljer om vilka alternativ som finns tillgängliga för vilken IO.

Barn IO-väg Beskrivning
…/läge STRING Driftläge för den digitala.
Alternativ: "input", "output", "pwm", "timer", "encoder", "capture", "uart_rx", "uart_tx", "can_rx", "can_tx", "pru_input" eller "pru_output"
…/process_signal STRING Namnet på processkontrollsignalen, om det finns ett.
…/pull_mode STRING Dra upp/ned-läge för en digital ingång.
Alternativ: "upp", "ner" eller "inaktivera"

4.4 Reläkontroll
Båda reläerna styrs oberoende av varandra och delar samma typ av gränssnitt. Ersätt relay_x med relay_a respektive relay_b.

IO-väg  Beskrivning
/fx4/relay _ x/permit / user _ kommando BOOL Styr reläet öppet eller stängt. Ett sant kommando kommer att försöka stänga reläet om förreglingarna beviljas, och falskt kommando kommer alltid att öppna reläet.
/fx4/relä _ x/tillstånd READONLY STRING Aktuellt tillstånd för reläet.
Låsta reläer är öppna men kan inte stängas på grund av en förregling.
Tillstånd: "öppnad", "stängd" eller "låst"
/fx4/relä _ x/automatiskt _ stäng BOOL När inställningen är sant, kommer reläet att stängas automatiskt när förreglingarna beviljas. Falskt som standard.
/fx4/relä _ x/ cykel _ antal READONLY NUMBER Antalet reläcykler sedan den senaste återställningen. Användbar för att spåra reläets livslängd.

4.5 Hög voltage Modul
Se IGX – Programmeringsmanualen för detaljer om FX4 high voltage gränssnitt. Komponentens överordnade sökväg är /fx4/high_votlage .

4.6 Doskontroll
Se IGX – Programmeringsmanualen för detaljer om FX4-dosregulatorns gränssnitt. Komponentens överordnade sökväg är /fx4/dose_controller .

FX4 Python Examples

5.1 Datalogger med HTTP
Detta example visar hur man fångar ett antal avläsningar och sparar dem i en CSV file. Genom att välja en lång fördröjning mellan avläsningarna kan du utföra långtidsdataloggning även om FX4 samplinghastigheten är högre. Detta gör att du kontinuerligt kan samla in och lagra mätningar över längre perioder utan att överväldiga systemet, vilket säkerställer att data samlas in med intervall som är lämpliga för din analys. Fördröjningen mellan avläsningarna hjälper till att reglera takten med vilken data loggas, vilket möjliggör effektiv lagring och minskar risken för att datapunkter missas samtidigt som du drar nytta av höghastighets sampling för realtidsmätningar.

PYRAMID FX4-programmerare - Datalogger som använder HTTPPYRAMID FX4-programmerare - Datalogger som använder HTTP 2PYRAMID FX4-programmerare - Datalogger som använder HTTP 3PYRAMID FX4-programmerare - Datalogger som använder HTTP 4

5.2 Enkelt Python-gränssnitt
Det andra example använder Tkinter GUI-verktyget, som är byggt för Python, för att skapa en visning av de uppmätta strömmarna. Detta gränssnitt låter dig visualisera aktuella avläsningar i ett användarvänligt grafiskt format. Skärmen kan ändras i storlek för att göra den stor nog att läsa från hela rummet, vilket gör den idealisk för scenarier där realtidsövervakning behövs i större utrymmen. Tkinter ger ett enkelt sätt att skapa interaktiva gränssnitt, och genom att integrera det med FX4 kan du snabbt bygga en visuell visning av de uppmätta strömmarna som kan anpassas för att passa dina specifika behov.

PYRAMID FX4-programmerare - Enkelt Python-gränssnittPYRAMID FX4-programmerare - Simple Python GUI 2PYRAMID FX4-programmerare - Simple Python GUI 3PYRAMID FX4-programmerare - Simple Python GUI 4PYRAMID FX4-programmerare - Simple Python GUI 5PYRAMID FX4-programmerare - Simple Python GUI 6PYRAMID FX4-programmerare - Simple Python GUI 7

5.3 Enkelt WebUttag Example
Detta example demonstrerar WebSockets-gränssnitt, vilket är den föredragna metoden för att läsa data från FX4 när maximal bandbredd krävs. WebSockets ger en fullduplex-kommunikationskanal i realtid, vilket möjliggör snabbare och mer effektiv dataöverföring jämfört med andra metoder.
Example läser en serie samples, rapporterar den genomsnittliga tiden per sample och maximal latens, och sparar data till en CSV file för senare analys. Denna inställning möjliggör effektiv övervakning i realtid och enkel datalagring för efterbearbetning.
Den specifika prestanda som kan uppnås med WebSockets beror på tillförlitligheten hos ditt Ethernet-gränssnitt och den relativa prioritet för din applikation. För optimala resultat, se till att ditt nätverk är stabilt och att FX4:s dataöverföring prioriteras vid behov.

PYRAMID FX4 Programmerare - Enkel WebUttag ExamplePYRAMID FX4 Programmerare - Enkel WebUttag Example 2PYRAMID FX4 Programmerare - Enkel WebUttag Example 3

Version: v3
FX4 Python Examples: 21

Dokument/resurser

PYRAMID FX4 programmerare [pdf] Bruksanvisning
FX4 programmerare, FX4, programmerare

Referenser

Lämna en kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade *