PYRAMIDE-Logowww.pyramid.tech
FX4
FX4 Programmierhandbuch
Dokument-ID: 2711715845
Version: v3PYRAMID FX4 Programmierer

FX4-Programmierer

Dokument-ID: 2711715845
FX4 – FX4 Programmierhandbuch

PYRAMID FX4 Programmierer - Symbol Dokument Identifikation: 2711650310

Autor Matthäus Nichols
Eigentümer Projektleitung
Zweck Erläutern Sie die Programmierkonzepte, die zur Verwendung der API und zur Erweiterung des Produkts durch externe Anwendungen erforderlich sind.
Umfang FX4-bezogene Programmierkonzepte.
Zielgruppe Softwareentwickler, die an der Nutzung des Produkts interessiert sind.
Verfahren https://pyramidtc.atlassian.net/wiki/pages/createpage.action?
spaceKey=PQ&title=Standard%20Manueller%20Erstellungsprozess
Ausbildung UNZUTREFFEND

Versionskontrolle

Version Beschreibung  Gespeichert von  Gespeichert am  Status
v3 Hinzugefügt ein einfaches Overview und mehr Examples. Matthäus Nichols 6. März 2025, 10:29 Uhr GENEHMIGT
v2 Digitale IO-Schnittstellen und Verweise zurück zu IGX hinzugefügt. Matthäus Nichols 3. Mai 2024, 7:39 Uhr GENEHMIGT
v1 Erstveröffentlichung, noch in Arbeit. Matthäus Nichols 21. Februar 2024, 11:25 Uhr GENEHMIGT

PYRAMID FX4 Programmierer - Symbol 1 Dokumentenkontrolle Nicht Reviewed
Aktuelle Dokumentversion: Version 1
Neinviewzugewiesen.

1.1 Signaturen
für die aktuellste Dokumentversion
Freitag, 7. März 2025, 10:33 Uhr UTC
Matthew Nichols hat unterschrieben; Bedeutung: Review

Verweise

Dokumentieren Dokument-ID  Autor  Version
IGX – Programmierhandbuch 2439249921 Matthäus Nichols 1

FX4-Programmierung abgeschlossenview

Der FX4-Prozessor läuft auf einer Umgebung namens IGX, die auf dem hochzuverlässigen Echtzeitbetriebssystem QNX von BlackBerry basiert (QNX WebWebsite¹). IGX bietet eine flexible und umfassende Anwendungsprogrammierschnittstelle (API) für Benutzer, die ihre eigene Hostcomputersoftware schreiben möchten.
Die IGX-Umgebung wird von anderen Pyramid-Produkten gemeinsam genutzt, sodass für ein Produkt entwickelte Softwarelösungen problemlos auf andere übertragen werden können.
Programmierer können die vollständige Dokumentation für IGX auf der Pyramid-Website einsehen. webWebsite unter: IGX | Modernes modulares Steuerungssystem-Framework für Web-fähige Anwendungen²

Dieser Abschnitt bietet eine Einführung in das Testen zweier API-Methoden: HTTP im JSON-Format und EPICS. Der Einfachheit halber wird Python (Python WebWebsite³) wird als Beispiel verwendetample Host-Computersprache, die für nicht professionelle Programmierer zugänglich und einfach zu verwenden ist.

3.1 Verwenden von Python und HTTP
Als ExampNehmen wir an, Sie möchten die Summe der gemessenen Ströme mit Python auslesen. Sie benötigen die URL für diesen speziellen IO. Der FX4 web Die GUI bietet eine einfache Möglichkeit, dies zu finden: Klicken Sie einfach mit der rechten Maustaste in das Feld und wählen Sie „HTTP kopieren“. URL', um die Zeichenfolge in die Zwischenablage zu kopieren.

PYRAMID FX4-Programmierer – Verwenden von Python und HTTP

Jetzt können Sie mit Python die Konnektivität zur Benutzersoftware über HTTP und JSON testen. Möglicherweise müssen Sie die Anfragen und JSON-Bibliotheken importieren, um die HTTP-Anfragen und die Datenanalyse zu verarbeiten.

PYRAMID FX4-Programmierer – HTTP-Anfragen und Datenanalyse1 Einfaches Python-HTTP-Example

3.2 EPICS verwenden
Der Anschluss des FX4 über EPICS (Experimental Physics and Industrial Control System) erfolgt ähnlich. EPICS ist eine Reihe von Softwaretools und Anwendungen zur Entwicklung und Implementierung verteilter Steuerungssysteme, die in wissenschaftlichen Einrichtungen weit verbreitet sind.

  1. https://blackberry.qnx.com/en
  2. https://pyramid.tech/products/igx
  3. https://www.python.org/
  1. Rufen Sie den Namen der EPICS-Prozessvariable (PV) für die gewünschte E/A ab.
  2. Importieren Sie die EPICS-Bibliothek und lesen Sie den Wert.

PYRAMID FX4 Programmierer - EPICS Prozessvariable2 Holen Sie sich den EPICS PV-NamenPYRAMID FX4-Programmierer – Simple Python EPICS Example3 einfache Python EPICS-Example

Darüber hinaus hat Pyramid ein Dienstprogramm erstellt (EPICS Connect⁴), mit dem Sie EPICS-Prozessvariablen in Echtzeit überwachen können. Dieses Tool ist hilfreich, um zu überprüfen, ob der EPICS-PV-Name korrekt ist und der FX4 die PV in Ihrem Netzwerk korrekt bereitstellt.

PYRAMID FX4 Programmierer - EPICS Connect4 PTC EPICS Connect

FX4-Programmier-API

Die in diesem Handbuch beschriebenen Konzepte und Methoden bauen auf den im IGX – Programmierhandbuch festgelegten Konzepten auf. Erläuterungen und Beispiele finden Sie in diesem DokumentampDateien zur Funktionsweise der grundlegenden IGX-Programmierung und -Schnittstellen. Dieses Handbuch behandelt nur die gerätespezifischen IOs und Funktionen, die nur dem FX4 vorbehalten sind.

4.1 Analoger Eingang IO
Diese IO beziehen sich auf die Konfiguration und Erfassung von Daten an den analogen Stromeingängen des FX4. Die Einheiten der Kanaleingänge basieren auf der vom Benutzer konfigurierbaren Einstellung „Sample-Einheiten“, gültige Optionen sind pA, nA, uA, mA und A.
Alle 4 Kanäle verwenden dieselbe Schnittstelle IO und werden unabhängig gesteuert. Ersetzen Sie channel_x durch channel_1, channel_2, channel_3 bzw. channel_4.

IO-Pfad Beschreibung
/fx4/adc/channel_x NUR-LESEN-NUMMER Gemessener Stromeingang.
/fx4/adc/channel_x/skalar NUMBER Einfacher, einheitenloser Skalar, der auf den Kanal angewendet wird, standardmäßig 1.
/fx4/adc/channel_x/zero_offset NUMMER Aktueller Offset in nA für den Kanal.

Die folgenden IO sind nicht kanalunabhängig und werden auf alle Kanäle gleichzeitig angewendet.

IO-Pfad  Beschreibung
/fx4/Kanalsumme READONLY NUMBER Summe der aktuellen Eingangskanäle.
/fx4/adc_einheit STRING Legt die aktuellen Benutzereinheiten für jeden Kanal und jede Summe fest.
Optionen: „pa“, „na“, „ua“, „ma“, „a“
/fx4/Bereich STRING Legt den aktuellen Eingangsbereich fest. Die Zuordnung der einzelnen Bereichscodes zu den maximalen Eingangsgrenzen und der Bandbreite finden Sie in der grafischen Benutzeroberfläche.
Optionen: „0“, „1“, „2“, „3“, „4“, „5“, „6“, „7“
/fx4/adc/sample_frequenz NUMBER Die Frequenz in Hz, dieample-Daten werden gemittelt. Dies steuert das Signal-Rausch-Verhältnis und die Datenrate für alle Kanäle.
/fx4/adc/Konvertierungsfrequenz NUMMER: Die Frequenz in Hz, mit der der ADC analoge in digitale Werte umwandelt. Standardmäßig liegt sie bei 100 kHz, und Sie müssen diesen Wert nur selten ändern.
/fx4/adc/Offsetkorrektur READONLY NUMBER Summe der aktuellen Offsets aller Kanäle.

4.2 Analoger Ausgang IO
Diese IO beziehen sich auf die Konfiguration der allgemeinen analogen Ausgänge des FX4, die sich unter den analogen Eingängen auf der Vorderseite befinden. Alle 4 Kanäle verwenden die gleiche Schnittstellen-IO und werden unabhängig gesteuert. Ersetzen Sie channel_x jeweils durch channel_1, channel_2, channel_3 oder channel_4.

IO-Pfad  Beschreibung
/fx4/dac /channel_x NUMBER Befehlsnummertage-Ausgabe. Dieser Wert kann nur geschrieben werden, wenn der Ausgabemodus auf manuell eingestellt ist.
/fx4/dac/channel_x/readback NUR-LESEN-NUMMER Gemessenes Volumentage Ausgabe.
Dies ist besonders hilfreich, wenn Sie den Ausdrucksausgabemodus verwenden.
/fx4/dac/Kanal_x/Ausgabemodus STRING Legt den Ausgabemodus für den Kanal fest.
Optionen: „manuell“, „Ausdruck“, „Prozesssteuerung“
/fx4/dac/channel _ x/slew_control_enable BOOL Aktiviert oder deaktiviert die Anstiegsratenbegrenzung.
/fx4/dac/channel_x/slew_rate NUMMER Anstiegsrate in V/s für den Kanal.
/fx4/dac/channel_x/obere_grenze NUMBER Die maximal zulässige Befehlslautstärketage für den Kanal. Gilt für alle Betriebsarten.
/fx4/dac/channel _ x/untere_Grenze NUMBER Die minimal zulässige Befehlslautstärketage für den Kanal. Gilt für alle Betriebsarten.
/fx4/dac/channel _ x/ Ausgabe _ Ausdruck STRING Legt die Ausdruckszeichenfolge fest, die vom Kanal verwendet wird, wenn er sich im Ausdrucksausgabemodus befindet.
/fx4/dac/channel _ x/reset_button BUTTON Setzt den Befehl vol zurücktage auf 0.

4.3 Digitale Ein- und Ausgänge
Diese E/A beziehen sich auf die Steuerung der verschiedenen allgemeinen digitalen Ein- und Ausgänge des FX4.

IO-Pfad  Beschreibung
/fx4/fr1 READONLY BOOL Glasfaserempfänger 1.
/fx4/ft1 BOOL Glasfasersender 1.
/fx4/fr2 READONLY BOOL Glasfaserempfänger 2.
/fx4/ft2 BOOL Glasfasersender 2.
/fx4/fr3 READONLY BOOL Glasfaserempfänger 3.
/fx4/ft3 BOOL Glasfasersender 3.
/fx4/digital_expansion/d1 BOOL D1 bidirektionale digitale Erweiterungs-E/A.
/fx4/digital_expansion/d2 BOOL D2 bidirektionale digitale Erweiterungs-E/A.
/fx4/digital_expansion/d3 BOOL D3 bidirektionale digitale Erweiterungs-E/A.
/fx4/digital_expansion/d4 BOOL D4 bidirektionale digitale Erweiterungs-E/A.

4.3.1 Digitale IO-Konfiguration
Alle Digitalsignale verfügen über untergeordnete Ein-/Ausgabekanäle zur Konfiguration ihres Verhaltens, einschließlich eines Betriebsmodus, der die Funktionsweise des Digitalsignals steuert. Jedes Digitalsignal verfügt über unterschiedliche Optionen. Details zu den verfügbaren Optionen für die einzelnen Ein-/Ausgabekanäle finden Sie in der grafischen Benutzeroberfläche.

Child-IO-Pfad Beschreibung
…/Modus STRING Betriebsart für das Digitale.
Optionen: „Eingabe“, „Ausgabe“, „PWM“, „Timer“, „Encoder“, „Erfassung“, „Uart_RX“, „Uart_TX“, „CAN_RX“, „CAN_TX“, „PRU_Eingabe“ oder „PRU_Ausgabe“
…/Prozesssignal STRING Der Name des Prozesssteuerungssignals, sofern vorhanden.
…/pull_mode STRING Pull-Up/Down-Modus für einen digitalen Eingang.
Optionen: „hoch“, „runter“ oder „deaktivieren“

4.4 Relaissteuerung
Beide Relais werden unabhängig voneinander gesteuert und verwenden denselben Schnittstellentyp. Ersetzen Sie relay_x durch relay_a bzw. relay_b.

IO-Pfad  Beschreibung
/fx4/relay _ x/permit / Benutzer _ Befehl BOOL Befiehlt das Öffnen oder Schließen des Relais. Ein wahrer Befehl versucht, das Relais zu schließen, wenn die Verriegelungen gewährt sind, und ein falscher Befehl öffnet das Relais immer.
/fx4/Relais _ x/Status READONLY STRING Der aktuelle Status des Relais.
Gesperrte Relais sind geöffnet, können aber aufgrund einer Verriegelung nicht geschlossen werden.
Zustände: „geöffnet“, „geschlossen“ oder „gesperrt“
/fx4/Relay _ x/automatisch _ schließen BOOL Wenn auf „true“ gesetzt, wird das Relais automatisch geschlossen, wenn die Verriegelungen gewährt werden. Standardmäßig „false“.
/fx4/Relais _ x/ Zyklus _ Anzahl NUR-LESEN-NUMMER Die Anzahl der Relaiszyklen seit dem letzten Zurücksetzen. Nützlich zur Verfolgung der Relaislebensdauer.

4.5 Hohe Lautstärketage Modul
Weitere Informationen zum FX4 High Vol finden Sie im IGX – Programmierhandbuch.tage-Schnittstelle. Der übergeordnete Pfad der Komponente lautet /fx4/high_votlage .

4.6 Dosierregler
Weitere Informationen zur Schnittstelle des FX4-Dosisreglers finden Sie im IGX-Programmierhandbuch. Der übergeordnete Pfad der Komponente lautet /fx4/dose_controller .

FX4 Python Examples

5.1 Datenlogger über HTTP
Dieses Example zeigt, wie man eine Reihe von Messwerten erfasst und in einer CSV-Datei speichert file. Durch die Wahl einer langen Verzögerung zwischen den Messwerten können Sie eine langfristige Datenaufzeichnung durchführen, auch wenn der FX4 sampDie Messrate ist höher eingestellt. Dadurch können Sie Messungen über längere Zeiträume hinweg kontinuierlich erfassen und speichern, ohne das System zu überlasten. So wird sichergestellt, dass die Daten in für Ihre Analyse geeigneten Intervallen erfasst werden. Die Verzögerung zwischen den Messwerten reguliert die Geschwindigkeit der Datenerfassung. Dies ermöglicht eine effiziente Speicherung und reduziert das Risiko fehlender Datenpunkte, während gleichzeitig die Vorteile der Hochgeschwindigkeits-Simulation genutzt werden.ampling für Echtzeitmessungen.

PYRAMID FX4 Programmierer - Datenlogger mit HTTPPYRAMID FX4 Programmierer - Datenlogger mit HTTP 2PYRAMID FX4 Programmierer - Datenlogger mit HTTP 3PYRAMID FX4 Programmierer - Datenlogger mit HTTP 4

5.2 Einfache Python-GUI
Die zweite Example verwendet das für Python entwickelte GUI-Tool Tkinter, um die gemessenen Ströme anzuzeigen. Diese Schnittstelle ermöglicht die Visualisierung der Stromwerte in einem benutzerfreundlichen grafischen Format. Die Anzeige lässt sich so anpassen, dass sie auch von der anderen Seite des Raumes aus gut lesbar ist. Dies macht sie ideal für Szenarien, in denen Echtzeitüberwachung in größeren Räumen erforderlich ist. Tkinter bietet eine einfache Möglichkeit zur Erstellung interaktiver Schnittstellen. Durch die Integration mit dem FX4 können Sie schnell eine visuelle Anzeige der gemessenen Ströme erstellen, die an Ihre spezifischen Bedürfnisse angepasst werden kann.

PYRAMID FX4-Programmierer – Einfache Python-GUIPYRAMID FX4-Programmierer – Einfache Python-GUI 2PYRAMID FX4-Programmierer – Einfache Python-GUI 3PYRAMID FX4-Programmierer – Einfache Python-GUI 4PYRAMID FX4-Programmierer – Einfache Python-GUI 5PYRAMID FX4-Programmierer – Einfache Python-GUI 6PYRAMID FX4-Programmierer – Einfache Python-GUI 7

5.3 Einfach WebSteckdosen Example
Dieses Example demonstriert die WebSockets-Schnittstelle, die bevorzugte Methode zum Lesen von Daten vom FX4, wenn maximale Bandbreite erforderlich ist. WebSockets bieten einen Echtzeit-Vollduplex-Kommunikationskanal und ermöglichen so im Vergleich zu anderen Methoden eine schnellere und effizientere Datenübertragung.
Der Example liest eine Reihe von samples, meldet die durchschnittliche Zeit pro SekundeampDatei und maximale Latenz und speichert die Daten in einer CSV file für spätere Analysen. Dieses Setup ermöglicht eine effiziente Echtzeitüberwachung und eine einfache Datenspeicherung für die Nachbearbeitung.
Die spezifische Leistung, die erreicht werden kann mit WebDie Anzahl der Sockets hängt von der Zuverlässigkeit Ihrer Ethernet-Schnittstelle und der relativen Priorität Ihrer Anwendung ab. Für optimale Ergebnisse stellen Sie sicher, dass Ihr Netzwerk stabil ist und die Datenübertragung des FX4 bei Bedarf priorisiert wird.

PYRAMID FX4 Programmierer - Einfach WebSteckdosen ExamplePYRAMID FX4 Programmierer - Einfach WebSteckdosen ExampTeil 2PYRAMID FX4 Programmierer - Einfach WebSteckdosen ExampTeil 3

Version: v3
FX4 Python ExampDateien: 21

Dokumente / Ressourcen

PYRAMID FX4 Programmierer [pdf] Bedienungsanleitung
FX4-Programmierer, FX4, Programmierer

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *