www.pirâmide.tech
FX4
Manual do programador FX4
ID do documento: 2711715845
Versão: v3
Programador FX4
ID do documento: 2711715845
FX4 – Manual do Programador FX4
ID do documento: 2711650310
| Autor | Mateus Nichols |
| Proprietário | Líder do Projeto |
| Propósito | Explique os conceitos de programação necessários para usar a API e estender o produto por meio de aplicativos externos. |
| Escopo | Conceitos de programação relacionados ao FX4. |
| Público-alvo | Desenvolvedores de software interessados em usar o produto. |
| Processo | https://pyramidtc.atlassian.net/wiki/pages/createpage.action? spaceKey=PQ&title=Processo%20de%20Criação%20Manual%XNUMXPadrão |
| Treinamento | NÃO APLICÁVEL |
Controle de versão
| Versão | Descrição | Salvo por | Salvo em | Status |
| v3 | Adicionou um over simplesview e mais examples. | Mateus Nichols | 6 de março de 2025 10h29 | APROVADO |
| v2 | Adicionadas interfaces de E/S digitais e referências ao IGX. | Mateus Nichols | 3 de maio de 2024 7h39 | APROVADO |
| v1 | Lançamento inicial, ainda em andamento. | Mateus Nichols | 21 de fevereiro de 2024 11h25 | APROVADO |
Controle de documento Não éviewed
Versão atual do documento: v.1
Não háviewatribuídos.
1.1 Assinaturas
para a versão mais recente do documento
Sexta-feira, 7 de março de 2025, 10h33 UTC
Matthew Nichols assinou; significado: Review
Referências
| Documento | ID do documento | Autor | Versão |
| IGX – Manual do Programador | 2439249921 | Mateus Nichols | 1 |
Programação FX4 Terminadaview
O processador FX4 é executado em um ambiente chamado IGX, que é construído no sistema operacional QNX de alta confiabilidade em tempo real da BlackBerry (QNX Website¹). O IGX fornece uma interface de programação de aplicativos (API) flexível e abrangente para usuários que desejam escrever seu próprio software de computador host.
O ambiente IGX é compartilhado com outros produtos Pyramid, permitindo que soluções de software desenvolvidas para um produto sejam facilmente transferidas para outros.
Os programadores podem consultar a documentação completa do IGX disponível no Pyramid website em: IGX | Estrutura de Sistema de Controle Modular Moderno para Web-Aplicativos habilitados²
Esta seção fornece uma introdução aos testes de dois métodos da API: HTTP usando o formato JSON e EPICS. Para simplificar, Python (Pitão Website³) é usado como um exampa linguagem de computador host, que é acessível e fácil de usar para programadores não profissionais.
3.1 Usando Python e HTTP
Como um example, suponha que você queira ler a soma das correntes medidas com Python. Você precisa do URL para aquele IO específico. O FX4 web A GUI fornece uma maneira fácil de encontrar isso: basta clicar com o botão direito no campo e selecionar 'Copiar HTTP URL' para copiar a string para a área de transferência.

Agora você pode usar Python para testar a conectividade com o software do usuário via HTTP e JSON. Você pode precisar importar as requisições e bibliotecas json para manipular as requisições HTTP e análise de dados.
1 Exemplo Simples de Python HTTPample
3.2 Usando EPICS
O processo para conectar o FX4 através do EPICS (Experimental Physics and Industrial Control System) é similar. O EPICS é um conjunto de ferramentas de software e aplicativos usados para desenvolver e implementar sistemas de controle distribuídos, amplamente usados em instalações científicas.
- Obtenha o nome da variável de processo (PV) do EPICS para o IO desejado.
- Importe a biblioteca EPICS e leia o valor.
2 Obtenha o nome do PV do EPICS
3 EPICS simples em Pythonample
Além disso, a Pyramid criou um utilitário (Conexão ÉPICA⁴) que permite monitorar variáveis de processo do EPICS em tempo real. Esta ferramenta é útil para confirmar se o nome do PV do EPICS está correto e se o FX4 está servindo o PV corretamente na sua rede.
4 PTC ÉPICOS Conectar
API de programação FX4
Os conceitos e métodos descritos neste manual baseiam-se nos conceitos estabelecidos no IGX – Manual do Programador. Por favor, consulte esse documento para explicação e exampinformações sobre como funcionam a programação e as interfaces básicas do IGX. Este manual cobrirá apenas o IO específico do dispositivo e a funcionalidade exclusiva do FX4.
4.1 Entrada Analógica IO
Estas IO referem-se à configuração e coleta de dados nas entradas de corrente analógica do FX4. As unidades das entradas do canal são baseadas na configuração configurável pelo usuário chamada “Sample Units”, as opções válidas incluem pA, nA, uA, mA e A.
Todos os 4 canais usam a mesma interface IO e são controlados de forma independente. Substitua channel_x por channel_1 , channel_2 , channel_3 ou channel_4 respectivamente.
| Caminho de E/S | Descrição |
| /fx4/adc/canal_x | NÚMERO SOMENTE LEITURA Entrada de corrente medida. |
| /fx4/adc/channel_x/scalar | NÚMERO Escalar simples sem unidade aplicado ao canal, 1 por padrão. |
| /fx4/adc/canal_x/deslocamento_zero | NÚMERO Deslocamento atual em nA para o canal. |
Os seguintes IO não são independentes de canal e são aplicados a todos os canais simultaneamente.
| Caminho de E/S | Descrição |
| /fx4/canal_sum | NÚMERO SOMENTE LEITURA Soma dos canais de entrada atuais. |
| /fx4/adc_unit | STRING Define as unidades do usuário atuais para cada canal e soma. Opções: “pa”, “na”, “ua”, “ma”, “a” |
| /fx4/intervalo | STRING Define a faixa de entrada atual. Consulte a GUI para saber como cada código de faixa corresponde aos limites máximos de entrada de corrente e à BW. Opções: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7” |
| /fx4/adc/sample_frequency | NÚMERO A frequência em Hz que sampserá calculada a média dos dados. Isso controla a relação sinal-ruído e a taxa de dados de todos os canais. |
| /fx4/adc/frequencia_de_conversão | NÚMERO A frequência em Hz na qual o ADC converterá valores analógicos para digitais. Por padrão, é 100 kHz, e você raramente precisará alterar esse valor. |
| /fx4/adc/offset_correction | NÚMERO SOMENTE LEITURA Soma de todos os deslocamentos atuais do canal. |
4.2 E/S de saída analógica
Estas E/S estão relacionadas à configuração das saídas analógicas de uso geral do FX4 encontradas nas entradas analógicas no painel frontal. Todos os 4 canais usam a mesma interface IO e são controlados de forma independente. Substitua channel_x por channel_1 , channel_2 , channel_3 ou channel_4 respectivamente.
| Caminho de E/S | Descrição |
| /fx4/dac /canal_x | Comando NÚMERO voltage saída. Este valor só pode ser gravado quando o modo de saída estiver definido como manual. |
| /fx4/dac/channel_x/readback | NÚMERO SOMENTE LEITURA Vol medidotage saída. Isso é muito útil ao usar o modo de saída de expressão. |
| /fx4/dac/channel_x/output_mode | STRING Define o modo de saída do canal. Opções: “manual”, “expressão”, “process_control” |
| /fx4/dac/canal_x/slew_control_enable | BOOL Habilita ou desabilita a limitação da taxa de variação. |
| /fx4/dac/canal_x/taxa_de_variação | NÚMERO Taxa de variação em V/s para o canal. |
| /fx4/dac/channel_x/limite_superior | NÚMERO O volume máximo de comando permitidotage para o canal. Aplica-se a todos os modos de operação. |
| /fx4/dac/canal_x/limite_inferior | NÚMERO O volume mínimo de comando permitidotage para o canal. Aplica-se a todos os modos de operação. |
| /fx4/dac/canal_x/ saída_expressão | STRING Define a string de expressão usada pelo canal quando ele está no modo de saída de expressão. |
| /fx4/dac/canal_x/botão_de_reset | BOTÃO Reinicia o volume de comandotage para 0. |
4.3 Entradas e Saídas Digitais
Essas E/S estão relacionadas ao controle de várias entradas e saídas digitais de uso geral encontradas no FX4.
| Caminho de E/S | Descrição |
| /fx4/fr1 | READONLY BOOL Receptor de fibra 1. |
| /fx4/ft1 | Transmissor de fibra BOOL 1. |
| /fx4/fr2 | READONLY BOOL Receptor de fibra 2. |
| /fx4/ft2 | Transmissor de fibra BOOL 2. |
| /fx4/fr3 | READONLY BOOL Receptor de fibra 3. |
| /fx4/ft3 | Transmissor de fibra BOOL 3. |
| /fx4/expansão_digital/d1 | BOOL D1 expansão digital bidirecional IO. |
| /fx4/expansão_digital/d2 | BOOL D2 expansão digital bidirecional IO. |
| /fx4/expansão_digital/d3 | BOOL D3 expansão digital bidirecional IO. |
| /fx4/expansão_digital/d4 | BOOL D4 expansão digital bidirecional IO. |
4.3.1 Configuração de E/S digital
Todos os digitais têm IO filho para configurar seu comportamento, incluindo um modo operacional que controla como esse digital irá operar. Cada digital terá um conjunto diferente de opções disponíveis. Veja a GUI para detalhes sobre quais opções estão disponíveis para qual IO.
| Caminho IO filho | Descrição |
| …/modo | STRING Modo de operação para o digital. Opções: “entrada”, “saída”, “pwm”, “temporizador”, “codificador”, “captura”, “uart_rx”, “uart_tx”, “can_rx”, “can_tx”, “pru_input” ou “pru_output” |
| …/processo_sinal | STRING Nome do sinal de controle do processo, se houver. |
| …/modo_pull | STRING Modo pull up/down para uma entrada digital. Opções: “para cima”, “para baixo” ou “desativar” |
4.4 Controle de Relé
Ambos os relés são controlados independentemente e compartilham o mesmo tipo de interface. Substitua relay_x por relay_a ou relay_b respectivamente.
| Caminho de E/S | Descrição |
| /fx4/relay_x/permit/user_command | BOOL Comanda a abertura ou o fechamento do relé. Um comando verdadeiro tentará fechar o relé se os intertravamentos forem concedidos, e um comando falso sempre abrirá o relé. |
| /fx4/relay_x/estado | STRING SOMENTE LEITURA O estado atual do relé. Os relés bloqueados estão abertos, mas não podem ser fechados devido a um intertravamento. Estados: “aberto”, “fechado” ou “bloqueado” |
| /fx4/relay_x/fechar_automaticamente | BOOL: Quando definido como verdadeiro, o relé fechará automaticamente quando os intertravamentos forem concedidos. Falso por padrão. |
| /fx4/relay_x/ciclo_contagem | NÚMERO SOMENTE LEITURA: Número de ciclos do relé desde a última reinicialização. Útil para monitorar a vida útil do relé. |
4.5 High Voltage Módulo
Veja o Manual do Programador IGX para detalhes sobre o FX4 high voltage interface. O caminho pai do componente é /fx4/high_votlage .
4.6 Controlador de dose
Veja o IGX – Programmer Manual para detalhes sobre a interface do controlador de dose FX4. O caminho pai do componente é /fx4/dose_controller .
FX4 Python Exampos
5.1 Registrador de dados usando HTTP
Este example demonstra como capturar uma série de leituras e salvá-las em um CSV file. Ao escolher um longo atraso entre as leituras, você pode executar o registro de dados de longo prazo, mesmo que o FX4 estejaampa taxa de leitura é definida mais alta. Isso permite que você colete e armazene medições continuamente por períodos prolongados sem sobrecarregar o sistema, garantindo que os dados sejam capturados em intervalos adequados para sua análise. O atraso entre as leituras ajuda a regular o ritmo em que os dados são registrados, permitindo um armazenamento eficiente e reduzindo o risco de pontos de dados perdidos, ao mesmo tempo em que se beneficia da alta velocidade de gravação.ampling para medições em tempo real.




5.2 GUI Python simples
O segundo example usa a ferramenta Tkinter GUI, que é construída para Python, para criar uma exibição das correntes medidas. Esta interface permite que você visualize as leituras atuais em um formato gráfico amigável. A exibição pode ser redimensionada para torná-la grande o suficiente para ler do outro lado de uma sala, tornando-a ideal para cenários onde o monitoramento em tempo real é necessário em espaços maiores. O Tkinter fornece uma maneira fácil de criar interfaces interativas e, ao integrá-lo com o FX4, você pode construir rapidamente uma exibição visual das correntes medidas que podem ser personalizadas para atender às suas necessidades específicas.







5.3 Simple WebSoquetes Example
Este exampele demonstra o WebInterface de soquetes, que é o método preferido para leitura de dados do FX4 quando é necessária largura de banda máxima. WebOs soquetes fornecem um canal de comunicação full-duplex em tempo real, permitindo uma transferência de dados mais rápida e eficiente em comparação com outros métodos.
O example lê uma série de samples, relata o tempo médio por sampe latência máxima, e salva os dados em um CSV file para análise posterior. Esta configuração permite monitoramento eficiente em tempo real e fácil armazenamento de dados para pós-processamento.
O desempenho específico que pode ser alcançado com WebSockets depende da confiabilidade da sua interface Ethernet e da prioridade relativa da sua aplicação. Para resultados ótimos, garanta que sua rede esteja estável e que a transmissão de dados do FX4 seja priorizada, se necessário.



Versão: v3
FX4 Python Examparquivos: 21
Documentos / Recursos
![]() |
Programador PYRAMID FX4 [pdf] Manual de Instruções Programador FX4, FX4, Programador |
