5. Blocos de entrada, matemática e lógica
#Como ler as fichas
Cada bloco tem uma ficha com as mesmas linhas, na mesma ordem. Este capítulo cobre 11 blocos: os que trazem um número para dentro da função, os que fazem conta, os que escolhem, os que limitam e os que guardam o resultado anterior.
No menu de novo bloco (clique com o botão direito no grafo, o desenho da função) os blocos ficam em quatro categorias: Entradas, Saídas, Tabelas e Lógicas. Valor Fixo e Valor da VCU estão em Entradas. Os outros nove blocos deste capítulo estão em Lógicas. Este guia divide as Lógicas em grupos (matemática e lógica, seleção, limites e estado) só para facilitar a leitura: o menu não tem esses grupos. Ao passar o mouse sobre um bloco no menu, a coluna da direita mostra o texto de ajuda dele. Quando o texto de ajuda da tela descreve o bloco de outro jeito, vale o descrito neste guia.
Um bloco tem o título (o nome que você deu e, em letra menor, o tipo), os soquetes de entrada à esquerda, os soquetes de saída à direita e os parâmetros no corpo. Soquete é o ponto onde o cabo se liga. Ao lado de cada soquete a tela mostra o nome e o valor atual, com 6 casas, calculado pelo FuelTech Vision no computador. A engrenagem do título abre Configurar bloco.

| Linha da ficha | O que mostra |
|---|---|
| Entradas | Os soquetes de entrada, com o nome que a tela mostra, e o que cada um recebe. Diz o que vale se o soquete ficar sem cabo. |
| Saída | O que o bloco entrega no soquete de saída. |
| Nome de um parâmetro | Um campo do corpo do bloco, com a faixa, o padrão e a unidade. Os parâmetros dos blocos deste capítulo podem ser mostrados na tela do usuário. |
| Texto abaixo da tabela | A regra exata do bloco, em linguagem simples. As caixas de destaque trazem a armadilha principal. |
| Memória | Quanto o bloco ocupa nas duas memórias da VCU (explicadas abaixo). |
Entrada desligada é um soquete de entrada sem cabo. Ela vale 0, e não o último valor que teve. O editor não avisa quando uma entrada está sem cabo. Há exceções, descritas nas fichas: os soquetes Mín e Máx do Limitador e Lim. sup e Lim. inf da Histerese passam a usar o parâmetro do bloco, e o SetValue do SR Latch vale 1.
Todo cabo leva um número decimal. Um sinal lógico é o número 1 (verdadeiro) ou 0 (falso). O que conta como verdadeiro depende do bloco. No bloco Lógica, uma entrada é verdadeira quando é maior que 0: 0, números negativos e entrada desligada são falsos, e 0,3 já é verdadeiro. No SR Latch, Set e Reset ficam ativos quando passam do Limiar do próprio bloco (padrão 0,5).
O fim de cada ficha diz quanto o bloco ocupa de duas memórias da VCU, divididas entre todas as funções habilitadas do mapa. A memória de trabalho (limite de 512 bytes) guarda o que o bloco calcula a cada ciclo: a saída e, em alguns blocos, um estado. A memória de configuração (limite de 2048 bytes) guarda o tipo do bloco, as ligações e os parâmetros. O medidor de memória do editor mostra as duas, nas barras RAM e Config. Os blocos com estado (Histerese, SR Latch e Multiplexador por faixa) recomeçam do zero toda vez que um mapa é gravado na VCU.
#Entradas
#Valor Fixo
Entrega sempre o mesmo número, que você digita no bloco.
| Item | Descrição |
|---|---|
| Entradas | Nenhuma. |
| Saída | Valor: o número digitado. |
| Valor fixo | Texto livre, com até 6 casas decimais. Faixa de −999999 a 999999 (a tela não barra valores fora dela). Padrão 0. Sem unidade. |
A saída é o número digitado, em toda execução da função. O número tem cerca de 7 dígitos significativos. Cada constante ocupa memória, e uma saída pode alimentar várias entradas: reaproveite um mesmo Valor Fixo em vez de repetir a constante.
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 6 bytes de configuração (limite de 2048).
#Valor da VCU
Lê um canal que a VCU mantém (leitura de sensor, valor calculado, estado, dado vindo do CAN ou escrito por um bloco Valor para VCU) e entrega o número no cabo.
| Item | Descrição |
|---|---|
| Entradas | Nenhuma. |
| Saída | Valor: o número que a VCU guarda, neste instante, no canal escolhido. |
| Dado da VCU | Lista com busca, em ordem alfabética. Padrão Nenhum. Os canais que têm fonte no mapa aparecem marcados. |
Os canais de sinalizador (ligado ou desligado) só entregam 0 ou 1. Se a lista terminar em um item sem nome ou chamado Canal Matemático, não o escolha: ele não é um canal da VCU e lê 0.
Oito canais aparecem na lista, mas a função customizada não consegue lê-los: o valor é sempre 0. São Temperatura do Processador, Tempo da VCU, Data da VCU, Hora da VCU, Odômetro, Odômetro parcial, Horímetro e Horímetro parcial. Na FT470, as entradas Entrada analógica 28: tensão a Entrada analógica 36: tensão também leem sempre 0.
Unidade: o bloco entrega o número como a VCU o guarda, sem conversão de escala. A tabela de medidas do FuelTech Vision declara uma unidade-base por canal, por exemplo MAP (a pressão no coletor de admissão) em bar, temperatura em °C e velocidade em km/h. Confira a unidade do canal antes de comparar o valor com uma constante: o valor fica na unidade-base mesmo com a tela em °F, psi ou mph, e os exemplos deste guia usam as unidades-base.
Quando a medida vem de uma entrada física e nada a alimenta, o bloco mostra um ícone de alerta com o texto Esta medida não tem entrada configurada no mapa. O aviso só existe para medidas que vêm de entrada: canais calculados não o geram.

Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 4 bytes de configuração (limite de 2048).
#Matemática e lógica
#Operação matemática
Faz uma conta com dois números e entrega o resultado.
| Item | Descrição |
|---|---|
| Entradas | Dado 1 e Dado 2: os dois números. Sem cabo, valem 0. |
| Saída | Saída: o resultado da conta. |
| Operação | Lista, padrão Adição. As seis opções estão na tabela abaixo. |
| Operação | Saída |
|---|---|
| Adição | Dado 1 + Dado 2 |
| Subtração | Dado 1 − Dado 2 |
| Multiplicação | Dado 1 × Dado 2 |
| Divisão | Dado 1 ÷ Dado 2. Se o Dado 2 for 0, a saída é 0. |
| Mínimo | O menor dos dois (se forem iguais, esse valor). |
| Máximo | O maior dos dois (se forem iguais, esse valor). |
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 7 bytes de configuração (limite de 2048).
#Lógica
Faz uma operação lógica entre duas entradas e entrega 1 ou 0.
| Item | Descrição |
|---|---|
| Entradas | A e B: os dois operandos. Sem cabo, valem 0 (falso). O NOT ignora o B. |
| Saída | Saída: 1 (verdadeiro) ou 0 (falso). O bloco não repassa o valor da entrada. |
| Operação | Lista, padrão AND. Os nomes aparecem em inglês na tela. As seis opções estão na tabela abaixo. |
| Operação | A saída vale 1 quando |
|---|---|
| AND | A e B são verdadeiros. |
| OR | A ou B (ou os dois) é verdadeiro. |
| NOT | A é falso. O B não é usado. |
| XOR | Só um dos dois é verdadeiro. |
| NAND | Os dois não são verdadeiros ao mesmo tempo (o inverso do AND). |
| NOR | Nenhum dos dois é verdadeiro (o inverso do OR). |
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 7 bytes de configuração (limite de 2048).
#Seleção
#Chave
Compara uma referência com um ou dois limites e entrega um entre dois valores.
| Item | Descrição |
|---|---|
| Entradas | Referência: o número comparado. Dado Verdadeiro e Dado Falso: os dois valores possíveis. Limite superior e Limite inferior: os limites. Sem cabo, todas valem 0, inclusive os limites. |
| Saída | Saída: o valor de Dado Verdadeiro ou o de Dado Falso, e não um 0 ou 1. |
| Modo | Lista, padrão Acima. Define a condição, na tabela abaixo. |
| Modo | Condição verdadeira |
|---|---|
| Acima | Referência > Limite superior. Só o Limite superior conta. |
| Abaixo | Referência < Limite inferior. Só o Limite inferior conta. |
| Dentro da faixa | Referência > Limite inferior e Referência < Limite superior. |
| Fora da faixa | Referência < Limite inferior ou Referência > Limite superior. |
Se a condição é verdadeira, a saída é o Dado Verdadeiro; senão, é o Dado Falso. As comparações são estritas: no valor exato do limite a condição é falsa. Não há histerese; para isso use o bloco Histerese. Na tela, o soquete de limite que o modo não usa fica desabilitado.
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 13 bytes de configuração (limite de 2048).
#Multiplexador
Escolhe um entre quatro canais de entrada pelo número do seletor.
| Item | Descrição |
|---|---|
| Entradas | Seletor: o número que escolhe. Canal 1 a Canal 4: os valores possíveis. Sem cabo, todas valem 0. |
| Saída | Saída: o valor do canal escolhido. Se o canal escolhido estiver sem cabo, a saída é 0. |
O seletor é truncado para inteiro: a parte decimal é descartada. De 0 a 0,99 escolhe o Canal 1; de 1 a 1,99, o Canal 2; de 2 a 2,99, o Canal 3; de 3 em diante, o Canal 4. Fora dessa faixa não há erro: valores negativos escolhem o Canal 1. Um seletor sem cabo (0) também escolhe o Canal 1. O bloco não tem parâmetros nem estado.
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 12 bytes de configuração (limite de 2048).
#Multiplexador por faixa
Escolhe um entre quatro canais conforme a faixa de valores em que o seletor cai.
| Item | Descrição |
|---|---|
| Entradas | Seletor: o número testado. Canal A a Canal D: os valores possíveis. Sem cabo, todas valem 0. |
| Saída | Saída: o valor do canal da faixa que casou. |
| Canal A a Canal D (Mín e Máx) | Os extremos da faixa de cada canal, de −999999 a 999999. Padrões: A de 0 a 1, B de 1 a 2, C de 2 a 3 e D de 3 a 4. |
| Sem correspondência | O que sai quando nenhuma faixa casa: Saída = 0 (padrão) ou Segurar último válido. |
O bloco testa as faixas na ordem A, B, C, D e para na primeira que contém o seletor (os extremos contam: Mín ≤ seletor ≤ Máx). A saída é o valor do canal dessa faixa, que o bloco memoriza como último valor válido. Se nenhuma faixa casa, a saída é 0 ou o valor memorizado, conforme Sem correspondência. O valor memorizado começa em 0 e é o que o canal valia quando a faixa casou: se o canal mudar depois, a saída não acompanha. Uma faixa com Mín maior que Máx fica desligada.
Memória: 8 bytes da memória de trabalho (limite de 512 do mapa) e 48 bytes de configuração (limite de 2048).
#Limites
#Limitador
Mantém um número entre um mínimo e um máximo.
| Item | Descrição |
|---|---|
| Entradas | Entrada: o número a limitar (sem cabo, vale 0). Mín e Máx: se tiverem cabo, substituem os parâmetros. |
| Saída | Saída: a entrada, já limitada. |
| Valor mínimo | De −999999 a 999999. Padrão 0. Vale quando o soquete Mín está sem cabo. |
| Valor máximo | De −999999 a 999999. Padrão 100. Vale quando o soquete Máx está sem cabo. |
Se a entrada é menor que o mínimo, sai o mínimo. Depois, se o resultado é maior que o máximo, sai o máximo. Ter cabo é o que conta, não o valor: um Mín ligado a uma fonte que vale 0 limita em 0, e o parâmetro é ignorado.
Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 16 bytes de configuração (limite de 2048).
#Zona Morta
Zera o sinal enquanto ele está dentro de uma faixa. Fora dela, entrega só a parte que passa do limite.
| Item | Descrição |
|---|---|
| Entradas | Entrada. Sem cabo, vale 0 e entra na conta (com a faixa de 5 a 10, a saída seria −5). Não há soquetes para os limites: eles vêm só dos parâmetros. |
| Saída | Saída: 0 dentro da faixa; fora dela, a entrada menos o limite ultrapassado. |
| Limite inferior | De −999999 a 999999. Padrão −1. |
| Limite superior | De −999999 a 999999. Padrão +1. |
entrada acima do limite superior: saída = entrada − limite superior
entrada abaixo do limite inferior: saída = entrada − limite inferior
entrada dentro da faixa (inclui os limites): saída = 0
Com a faixa padrão, de −1 a 1: a entrada 3 dá saída 2, a entrada −4 dá saída −3 e a entrada 0,7 dá saída 0.

Memória: 4 bytes da memória de trabalho (limite de 512 do mapa) e 12 bytes de configuração (limite de 2048).
#Estado
#Histerese
Liga uma saída quando o sinal sobe até um limite e só a desliga quando ele cai até um limite mais baixo.
| Item | Descrição |
|---|---|
| Entradas | Entrada: o sinal (sem cabo, vale 0). Lim. sup e Lim. inf: se tiverem cabo, substituem os parâmetros. |
| Saída | Saída: 1 ou 0. |
| Limite superior | De −999999 a 999999. Padrão 100. |
| Limite inferior | De −999999 a 999999. Padrão 0. |
Entrada maior ou igual ao limite superior: a saída vai a 1. Entrada menor ou igual ao limite inferior: a saída vai a 0. Entre os dois, a saída mantém o valor anterior. Nos limites exatos a saída também muda.

Memória: 8 bytes da memória de trabalho (limite de 512 do mapa) e 16 bytes de configuração (limite de 2048).
#SR Latch
Guarda um valor: um pulso em Set grava, um pulso em Reset zera, e o valor fica guardado entre os pulsos.
| Item | Descrição |
|---|---|
| Entradas | Set e Reset: ficam ativos quando passam do Limiar. Sem cabo, valem 0 e nunca ficam ativos. SetValue: o valor a guardar; sem cabo, vale 1. |
| Saída | Q: o valor guardado. Q barra: a segunda saída, que a tela escreve como Q com um traço em cima. |
| Limiar (Threshold) | De 0 a 10000 (a tela não aceita negativo). Padrão 0,5. O mesmo limiar vale para Set e Reset. Uma entrada em 0 nunca fica ativa, porque 0 não é maior que 0. |
| Prioridade | Lista: Reset (padrão) ou Set. Decide quem vence quando os dois estão ativos ao mesmo tempo. |
- Só Set ativo: Q = SetValue. Enquanto o Set continua ativo, Q acompanha o SetValue; quando o Set cai, Q congela no último valor.
- Só Reset ativo: Q = 0.
- Os dois ativos: com prioridade Reset, Q = 0; com prioridade Set, Q = SetValue.
- Nenhum ativo: Q mantém o valor anterior.
Q barra vale o SetValue quando Q é 0 e vale 0 quando Q é diferente de 0: só com o SetValue em 1 ele é o inverso de Q, e com o SetValue em 0 os dois valem 0. Q começa em 0 ao ligar a VCU e a cada gravação de mapa; na primeira execução, Q barra passa a valer o SetValue. Para guardar um sinal de 0 e 1, deixe o SetValue sem cabo: ele vale 1.

Memória: 8 bytes da memória de trabalho (limite de 512 do mapa) e 16 bytes de configuração (limite de 2048).