www.pyramid.tech
FX4
FX4 Programmierhandbuch
Dokument-ID: 2711715845
Version: v3
FX4-Programmierer
Dokument-ID: 2711715845
FX4 – FX4 Programmierhandbuch
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 |
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.
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.
1 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.
- Rufen Sie den Namen der EPICS-Prozessvariable (PV) für die gewünschte E/A ab.
- Importieren Sie die EPICS-Bibliothek und lesen Sie den Wert.
2 Holen Sie sich den EPICS PV-Namen
3 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.
4 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.
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.
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.
Version: v3
FX4 Python ExampDateien: 21
Dokumente / Ressourcen
![]() |
PYRAMID FX4 Programmierer [pdf] Bedienungsanleitung FX4-Programmierer, FX4, Programmierer |