Programação em LabVIEW Real- Time e LabVIEW FPGA André Pereira Gerente de Marketing Técnico Anderson Takemoto Engenheiro de Campo
Arquitetura de E/S reconfigurável (RIO) 3
1 Construindo uma interface de usuário remota 4
1 Construindo uma interface de usuário remota Abordagem Thick Client Executáveis de IU distribuídas para cada cliente Necessita LabVIEW Run-Time Engine Use técnicas de comunicação de acordo com os requisitos (atualizações, streaming, e mais) PC hosts Host EXE LabVIEW Run-Time RT EXE Ethernet LabVIEW RT Target 5
1 Construindo uma interface de usuário remota PCs clientes Web Server* Abordagem Thin Client Desenvolva um web service e rode no target RT Crie um app. thin client e armazene-o em um servidor Clientes em qualquer lugar poderão conectar-se a uma web page e atualizar ou visualizar informações (sem instalação) Atualizações somente (sem streaming) Navegador ou app. Cliente Web Svc. Ethernet RT EXE App. Thin Client LabVIEW RT Target *Thin client pode ser armazenado em PCs Cliente ou no LabVIEW RT target. 6
/uibuilder 7
2 Programando com o jitter em mente 8
2 Programando com o jitter em mente Operações determinísticas Controle PID Comunicação FIFO Real-Time Lógica segura Chamadas a drivers ou bibliotecas determinísticas Operações não-determinísticas Arquivo de entrada e saída Comunicação serial ou via rede Alocação de memória Dados com tamanho dinâmico Chamadas a drivers ou bibliotecas nãodeterminísticas 9
2 Programando com o jitter em mente 10
3 Planejando para o caso de pior cenário Use o API watchdog timer para auto reinicializar o hardware ou suspender o software Pode ser programado também para impor o trigger PXI ou gerar uma ocorrência Pense com cuidado sobre os estados seguros do FPGA e as condições de inicialização 11
EFEITO 4 Trabalhando com recursos limitados Espaço em Disco RAM CPU Bandwidth Portas FPGA Perda de dados Crash Starvation (processo não executado) Falha na Criação do Bitfile 12
5 Trabalhando com dados de tamanho fixo LabVIEW Real-Time: Reduz o jitter devido as alocações Reduz a carga da CPU Aumenta a confiabilidade LabVIEW FPGA Pré-determinado; sem dados de tamanho dinâmico 13
6 Debug remoto LabVIEW Real-Time Possibilidade de uso das ferramentas padrão de debug do LabVIEW no host Atualização Automática do Painel Frontal do LabVIEW Real-Time VI via rede Envio de mensagens ao console RT programaticamente PC host RT FPs (modo interactive ) RT EXE Ethernet Debug IU Monitor LabVIEW RT Target 14
6 Debug remoto LabVIEW FPGA Não utiliza as ferramentas de debug padrão do LabVIEW (HW versus SW) Atualização Automática do Painel Frontal do LabVIEW FPGA VI via rede Instrument VI para debug Para um debug prático use FPGA simulation PC Host FPGA FPs (interactive mode) RT EXE Ethernet FPGA LabVIEW RT Target 15
7 Bitfile: Geração versus compilação Compilação VI DFIR LLVM EXE Síntese FPGA VI LabVIEW Compiler HDL Netlist Bitfile LabVIEW Back End Xilinx ISE 16
LabVIEW FPGA Compile Farm Toolkit Servidor de Compilação Alto Desempenho Nuvem PC de Desenvolvimento Único CPU compilando Parque de compiladores On-Site Compilação na nuvem 17
7 Síntese versus compilação Interface no Host DMA e Registradores Código FPGA Ambiente (Mundo real E/S) 18
7 Síntese versus compilação Interface no Host DMA e Registradores Código FPGA Requisição das Entradas e Análise das Saídas 19
7 Síntese versus compilação Reutilização de IP Compartilhamento IPNet IP Integration Node Reutilize HDL Importe Xilinx CORE Generator libraries CLIP Node IP Assíncrono 21
8 Trabalhando com matemática de pontofixo Ponto flutuante Ponto fixo 22
8 Trabalhando com matemática de ponto-fixo Ponto flutuante Ponto fixo Utilização de recursos para cálculos no FPGA Separador decimal Precisão Range Potencial de overflow Alta Móvel, o tamanho do dado pode variar Muda de acordo com a posição do separador decimal Muito Alto (~3.4 x 10^38 para single ) Baixo devido ao Alto Range Baixa Fixo; número definido de bits depois do separador decimal Fixo Pequeno (menor que int sem expoente) Alto devido a Baixo Range 23
8 Trabalhando com matemática de ponto-fixo Janela de propriedades numéricas 24
9 Entendendo simultaneidade e temporização de hardware Uma arquitetura de hardware de execução periódica, deve ser excitada por um temporizador Taxas de execução múltiplas, exigem múltiplos domínios de temporização 25
9 Entendendo simultaneidade e temporização de hardware 26
9 Entendendo simultaneidade e temporização de Hardware Single-Cycle Timed Loop (SCTL) 27
10 Transferindo dados para o host DMA FIFOs Registradores (Indicadores FPGA VI) 29
Treinamentos recomendados para LabVIEW FPGA e LabVIEW Real-Time Prototipagem de Sistemas Desenvolvimento e Implementação de Sistemas LabVIEW Core 1 1 LabVIEW Real-Time 1 2 LabVIEW Core 2 1 LabVIEW Real-Time 2 2 LabVIEW Core 3 MSEL LabVIEW FPGA 1 LabVIEW Core 1 and 2 convenientemente preenchem um semana, assim você pode decidir por fazer ambos os cursos LabVIEW Core de uma só vez, previamente aos treinamentos LabVIEW FPGA e LabVIEW Real-Time 1. 2 Se você utiliza o SO Windows, você pode escolher por não realizar os treinamentos de Real Time Requerido Recomendado Opcional 30