www.pyramid.tech
FX4
Manual do programador FX4
Código do documento: 2711715845
Versión: v3
Programador FX4
Código do documento: 2711715845
FX4 – Manual do programador de FX4
ID do documento: 2711650310
Autor | Matthew Nichols |
Propietario | Xefe de Proxecto |
Finalidade | Explicar os conceptos de programación necesarios para utilizar a API e estender o produto a través de aplicacións externas. |
Ámbito | Conceptos de programación relacionados con FX4. |
Público destinado | Desenvolvedores de software interesados en utilizar o produto. |
Proceso | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Proceso de creación manual estándar |
Formación | NON APLICABLE |
Control de versións
Versión | Descrición | Gardado por | Gardado en | Estado |
v3 | Engadiu un simple sobreview e máis examples. | Matthew Nichols | 6 de marzo de 2025 ás 10:29 | APROBADO |
v2 | Engadíronse interfaces de E/S dixitais e referencias a IGX. | Matthew Nichols | 3 de maio de 2024 ás 7:39 | APROBADO |
v1 | Lanzamento inicial, aínda un traballo en progreso. | Matthew Nichols | 21 de febreiro de 2024 ás 11:25 | APROBADO |
Control de documentos Non Reviewed
Versión actual do documento: v.1
Non reviewers asignados.
1.1 Sinaturas
para a versión máis recente do documento
Venres, 7 de marzo de 2025, 10:33 UTC
Matthew Nichols asinou ; significado: Review
Referencias
Documento | ID do documento | Autor | Versión |
IGX - Manual do programador | 2439249921 | Matthew Nichols | 1 |
Programación FX4 terminadaview
O procesador FX4 execútase nun entorno chamado IGX, que está construído sobre o sistema operativo en tempo real de alta fiabilidade QNX de BlackBerry (QNX Websitio¹). IGX proporciona unha interface de programación de aplicacións (API) flexible e completa para usuarios que desexen escribir o seu propio software para o ordenador anfitrión.
O ambiente IGX compártese con outros produtos Pyramid, o que permite que as solucións de software desenvolvidas para un produto se poidan transferir facilmente a outros.
Os programadores poden consultar a documentación completa para IGX dispoñible na Pyramid websitio en: IGX | Marco de sistemas de control modular moderno para Webaplicacións habilitadas²
Esta sección ofrece unha introdución á proba de dous dos métodos da API: HTTP con formato JSON e EPICS. Para simplificar, Python (Python Websitio³) úsase como exemploampa linguaxe do ordenador host, que é accesible e fácil de usar para programadores non profesionais.
3.1 Usando Python e HTTP
Como example, supoña que quere ler a suma das correntes medidas con Python. Necesitas o URL para ese IO en particular. O FX4 web GUI ofrece un xeito sinxelo de atopalo: simplemente prema co botón dereito do rato no campo e seleccione "Copiar HTTP URL' para copiar a cadea no portapapeis.
Agora podes usar Python para probar a conectividade co software do usuario a través de HTTP e JSON. É posible que teñas que importar as solicitudes e as bibliotecas json para xestionar as solicitudes HTTP e a análise de datos.
1 HTTP simple de Python Example
3.2 Usando EPICS
O proceso para conectar o FX4 a través de EPICS (Experimental Physics and Industrial Control System) é similar. EPICS é un conxunto de ferramentas e aplicacións de software utilizadas para desenvolver e implementar sistemas de control distribuídos, moi utilizados en instalacións científicas.
- Obtén o nome da variable de proceso (PV) EPICS para a E/S desexada.
- Importa a biblioteca EPICS e le o valor.
2 Obter o nome EPICS PV
3 Simple Python EPICS Example
Ademais, Pyramid creou unha utilidade (Conexión EPICS⁴) que che permite monitorizar as variables do proceso EPICS en tempo real. Esta ferramenta é útil para confirmar se o nome do fotovoltaico EPICS é correcto e se o FX4 serve o fotovoltaico correctamente na túa rede.
4 PTC EPICS Connect
API de programación FX4
Os conceptos e métodos descritos neste manual baséanse nos conceptos establecidos no Manual do Programador IGX. Consulte ese documento para obter explicacións e examparquivos de como funcionan as interfaces e a programación básica de IGX. Este manual só cubrirá o IO específico do dispositivo e a funcionalidade que é exclusiva do FX4.
4.1 Entrada analóxica IO
Estes IO están relacionados coa configuración e recollida de datos nas entradas de corrente analóxica do FX4. As unidades das entradas da canle baséanse na configuración configurable polo usuario chamada "Sample Units”, as opcións válidas inclúen pA, nA, uA, mA e A.
As 4 canles usan a mesma interface IO e son controladas de forma independente. Substitúe channel_x por channel_1 , channel_2 , channel_3 ou channel_4 respectivamente.
Camiño IO | Descrición |
/fx4/adc/channel_x | NÚMERO DE SÓ LECTURA Entrada de corrente medida. |
/fx4/adc/channel_x/scalar | NÚMERO Escalar simple sen unidades aplicado á canle, 1 por defecto. |
/fx4/adc/channel_x/zero_offset | NUMBER Desprazamento de corrente en nA para o canal. |
As seguintes IO non son independentes da canle e aplícanse a todas as canles simultaneamente.
Camiño IO | Descrición |
/fx4/canal_sum | READONLY NUMBER Suma dos canais de entrada actuais. |
/fx4/adc_unit | STRING Define as unidades do usuario actual para cada canal e suma. Opcións: "pa", "na", "ua", "ma", "a" |
/fx4/rango | STRING Define o rango de entrada actual. Consulta a GUI para ver como cada código de rango corresponde aos límites máximos de entrada actual e ao ancho de banda. Opcións: "0", "1", "2", "3", "4", "5", "6", "7" |
/fx4/adc/sample_frecuencia | NÚMERO A frecuencia en Hz que samppromediarase os datos a. Isto controla o sinal a ruído e a taxa de datos para todas as canles. |
/fx4/adc/conversion_frequency | NÚMERO A frecuencia en Hz á que o ADC converterá os valores analóxicos en dixitais. Por defecto, é de 100 kHz e só raramente precisará cambiar este valor. |
/fx4/adc/offset_correction | READONLY NUMBER Suma dos desprazamentos actuais de todos os canais. |
4.2 IO de saída analóxica
Estes IO están relacionados coa configuración das saídas analóxicas de propósito xeral do FX4 que se atopan baixo as entradas analóxicas do panel frontal. As 4 canles usan a mesma interface IO e son controladas de forma independente. Substitúe channel_x por channel_1 , channel_2 , channel_3 ou channel_4 respectivamente.
Camiño IO | Descrición |
/fx4/dac /canle_x | Vol. do comando NUMÉRICOtage saída. Este valor só se pode escribir cando o modo de saída está configurado como manual. |
/fx4/dac/channel_x/readback | NÚMERO DE SÓ LECTURA Vol. medidotagsaída. Isto é máis útil cando se usa o modo de saída de expresión. |
/fx4/dac/channel_x/output_mode | STRING Define o modo de saída para o canal. Opcións: “manual”, “expresión”, “control_de_procesos” |
/fx4/dac/channel _ x/slew_control_enable | BOOL Activa ou desactiva a limitación da velocidade de cambio. |
/fx4/dac/channel_x/velocidade_de_variación | NÚMERO Taxa de variación en V/s para o canal. |
/fx4/dac/channel_x/upper_limit | NÚMERO O volume máximo de comandos permitidotage para a canle. Aplícase a todos os modos de operación. |
/fx4/dac/canle _ x/límite_inferior | NÚMERO O volume mínimo de comandos permitidotage para a canle. Aplícase a todos os modos de operación. |
/fx4/dac/channel _ x/ saída _ expresión | STRING Define a cadea de expresión empregada polo canal cando está no modo de saída de expresión. |
/fx4/dac/canle _ x/botón_de_reinicio | BOTÓN Reinicia o volume do comandotage a 0. |
4.3 Entradas e saídas dixitais
Estes IO están relacionados co control das diversas entradas e saídas dixitais de propósito xeral que se atopan no FX4.
Camiño IO | Descrición |
/fx4/fr1 | READONLY BOOL Receptor de fibra 1. |
/fx4/ft1 | Transmisor de fibra BOOL 1. |
/fx4/fr2 | READONLY BOOL Receptor de fibra 2. |
/fx4/ft2 | Transmisor de fibra BOOL 2. |
/fx4/fr3 | READONLY BOOL Receptor de fibra 3. |
/fx4/ft3 | Transmisor de fibra BOOL 3. |
/fx4/digital_expansion/d1 | BOOL D1 E/S de expansión dixital bidireccional. |
/fx4/digital_expansion/d2 | BOOL D2 E/S de expansión dixital bidireccional. |
/fx4/digital_expansion/d3 | BOOL D3 E/S de expansión dixital bidireccional. |
/fx4/digital_expansion/d4 | BOOL D4 E/S de expansión dixital bidireccional. |
4.3.1 Configuración de E/S dixital
Todos os dixitais teñen IO fillo para configurar o seu comportamento, incluíndo un modo de funcionamento que controla como funcionará ese dixital. Cada dixital terá un conxunto diferente de opcións dispoñibles. Consulte a GUI para obter detalles sobre as opcións dispoñibles para o que IO.
Ruta IO infantil | Descrición |
…/modo | Modo de funcionamento de STRING para o dixital. Opcións: "entrada", "saída", "pwm", "temporizador", "codificador", "captura", "uart_rx", "uart_tx", "can_rx", "can_tx", "pru_input" ou "pru_output" |
…/sinal_proceso | STRING O nome do sinal de control do proceso, se existe algún. |
…/pull_mode | Modo STRING Pull up/down para unha entrada dixital. Opcións: "arriba", "abaixo" ou "desactivar" |
4.4 Control de relés
Ambos relés son controlados de forma independente e comparten o mesmo tipo de interface. Substitúe relay_x por relay_a ou relay_b respectivamente.
Camiño IO | Descrición |
/fx4/relay _ x/permit /comando_de_usuario | BOOL Ordena que o relé se abra ou peche. Un comando verdadeiro tentará pechar o relé se se conceden os bloqueos e un comando falso sempre abrirá o relé. |
/fx4/relé _ x/estado | READONLY STRING O estado actual do relé. Os relés bloqueados están abertos pero non se poden pechar debido a un bloqueo. Estados: "aberto", "pechado" ou "bloqueado" |
/fx4/relé _ x/pechar _ automaticamente | BOOL Cando se define como verdadeiro, o relé pecharase automaticamente cando se concedan os bloqueos. Falso por defecto. |
/fx4/relé _ x/ contador _ de ciclos | READONLY NUMBER O número de ciclos do relé desde o último reinicio. Útil para rastrexar a vida útil do relé. |
4.5 Alto Voltage Módulo
Consulte o manual do programador IGX para obter detalles sobre o FX4 high voltage interface. A ruta principal do compoñente é /fx4/high_votlage .
4.6 Controlador de dose
Consulte o manual do programador IGX para obter detalles sobre a interface do controlador de dose FX4. A ruta principal do compoñente é /fx4/dose_controller .
FX4 Python Examples
5.1 Registrador de datos usando HTTP
Este example mostra como capturar unha serie de lecturas e gardalas nun CSV file. Ao escoller un longo atraso entre lecturas, pode realizar un rexistro de datos a longo prazo aínda que o FX4 sampa taxa de ling é máis alta. Isto permítelle recoller e almacenar medicións continuamente durante períodos prolongados sen sobrecargar o sistema, garantindo que os datos se capten a intervalos axeitados para a súa análise. O atraso entre lecturas axuda a regular o ritmo ao que se rexistran os datos, permitindo un almacenamento eficiente e reducindo o risco de perder puntos de datos ao mesmo tempo que se benefician de s de alta velocidade.ampling para medicións en tempo real.
5.2 GUI simple de Python
O segundo example usa a ferramenta GUI de Tkinter, que está construída para Python, para crear unha visualización das correntes medidas. Esta interface permítelle visualizar as lecturas actuais nun formato gráfico amigable. Pódese cambiar o tamaño da pantalla para que sexa o suficientemente grande como para ler desde toda unha sala, o que a fai ideal para escenarios nos que se necesita un seguimento en tempo real en espazos máis grandes. Tkinter ofrece un xeito sinxelo de crear interfaces interactivas e, integrándoo co FX4, pode crear rapidamente unha visualización visual das correntes medidas que se poden personalizar para adaptarse ás súas necesidades específicas.
5.3 Simple WebEnchufes Example
Este example demostra o WebInterface de sockets, que é o método preferido para ler datos do FX4 cando se require o ancho de banda máximo. WebOs sockets proporcionan unha canle de comunicación full-duplex en tempo real, o que permite unha transferencia de datos máis rápida e eficiente en comparación con outros métodos.
O example le unha serie de samples, informa o tempo medio por sample e máxima latencia, e garda os datos nun CSV file para a súa posterior análise. Esta configuración permite un seguimento eficiente en tempo real e un fácil almacenamento de datos para o procesamento posterior.
O rendemento específico que se pode conseguir WebOs sockets dependen da fiabilidade da súa interface Ethernet e da prioridade relativa da súa aplicación. Para obter resultados óptimos, asegúrese de que a súa rede é estable e de que se prioriza a transmisión de datos do FX4 se é necesario.
Versión: v3
FX4 Python Exampnúmero: 21
Documentos/Recursos
![]() |
Programador PYRAMID FX4 [pdfManual de instrucións Programador FX4, FX4, Programador |