FuelTech ManualsGlossarySearch

5. Input, math and logic blocks

Version 1.1Software: FuelTech Vision 3.0Products: FT700, FT470, VisionFT2026-10-13

#How to read the block sheets

Each block has a sheet with the same lines, in the same order. This chapter covers 11 blocks: those that bring a number into the function, those that do calculations, those that choose, those that limit and those that keep the previous result.

In the new block menu (right-click the graph, the drawing of the function), the blocks are in four categories: Inputs, Outputs, Tables and Logics. Fixed value and VCU value are in Inputs. The other nine blocks in this chapter are in Logics. This guide divides the Logics into groups (math and logic, selection, limits and state) only to make reading easier: the menu has no such groups. When you hover over a block in the menu, the right-hand column shows its help text. When the help text on the screen describes the block differently, this guide's description prevails.

A block has a title (the name you gave it and, in smaller letters, the type), input sockets on the left, output sockets on the right, and parameters in the body. A socket is the point where a link connects. Next to each socket, the screen shows the name and the current value, with 6 decimal places, calculated by FuelTech Vision on the computer. The gear in the title opens Block settings.

Parts of a block: title with the name and the type, input sockets on the left, output sockets on the right, parameters in the body, and the Block settings gear.
Parts of a block: title with the name and the type, input sockets on the left, output sockets on the right, parameters in the body, and the Block settings gear.
Sheet lineWhat it shows
InputsThe input sockets, with the name the screen shows, and what each one receives. It says what the value is if the socket has no link.
OutputWhat the block delivers at the output socket.
Name of a parameterA field in the body of the block, with the range, the default and the unit. The parameters of the blocks in this chapter can be shown on the User screen.
Text below the tableThe exact rule of the block, in plain language. The highlight boxes carry the main pitfall.
MemoryHow much the block takes from the VCU's two memories (explained below).

Unconnected input is an input socket with no link. It is 0, not the last value it had. The editor does not warn when an input has no link. There are exceptions, described in the sheets: the Min and Max sockets of the Limiter and the Upper limit and Lower limit sockets of the Hysteresis use the block parameter instead, and the Set value of the SR Latch is 1.

Every link carries a decimal number. A logic signal is the number 1 (true) or 0 (false). What counts as true depends on the block. In the Logic block, an input is true when it is greater than 0: 0, negative numbers and an unconnected input are false, and 0.3 is already true. In the SR Latch, Set and Reset become active when they exceed the block's own Threshold (default 0.5).

The end of each sheet says how much the block takes from two VCU memories, shared among all the enabled functions in the map. The working memory (limit of 512 bytes) stores what the block calculates in each cycle: the output and, in some blocks, a state. The configuration memory (limit of 2048 bytes) stores the block type, the connections and the parameters. The editor's memory meter shows both, in the RAM and Settings bars. Blocks with state (Hysteresis, SR Latch and Band multiplexer) restart from zero every time a map is written to the VCU.

#Inputs

#Fixed value

Always delivers the same number, which you type in the block.

ItemDescription
InputsNone.
OutputValue: the number typed.
Fixed valueFree text, with up to 6 decimal places. Range from −999999 to 999999 (the screen does not block values outside it). Default 0. No unit.

The output is the number typed, on every execution of the function. The number has about 7 significant digits. Each constant takes memory, and one output can feed several inputs: reuse the same Fixed value instead of repeating the constant.

Memory: 4 bytes of working memory (map limit of 512) and 6 bytes of configuration (limit of 2048).

#VCU value

Reads a channel that the VCU maintains (a sensor reading, a calculated value, a state, data coming from CAN or written by a Value for VCU block) and delivers the number on the link.

ItemDescription
InputsNone.
OutputValue: the number the VCU holds, at this instant, in the chosen channel.
VCU dataList with search, in alphabetical order. Default None. The channels that have a source in the map appear marked.

The flag channels (on or off) only deliver 0 or 1. If the list ends in an item with no name or called Math channel, do not choose it: it is not a VCU channel and reads 0.

Eight channels appear in the list, but the custom function cannot read them: the value is always 0. They are Processor temperature, VCU Time, VCU Date, VCU Time (the second channel has the same name), Odometer, Trip odometer, Hourmeter and Trip hourmeter. On the FT470, the inputs Analog input #28: Voltage to Analog input #36: Voltage also always read 0.

Unit: the block delivers the number as the VCU stores it, without scale conversion. The FuelTech Vision measurement table declares a base unit per channel, for example MAP (the intake manifold pressure) in bar, temperature in °C and speed in km/h. Check the unit of the channel before comparing the value with a constant: the value stays in the base unit even when the screen shows °F, psi or mph, and the examples in this guide use the base units.

When the measurement comes from a physical input and nothing feeds it, the block shows a warning icon with the text This measure has no input configured in the map. The warning only exists for measurements that come from an input: calculated channels do not generate it.

VCU value with the warning icon next to the chosen channel and the text This measure has no input configured in the map.
VCU value with the warning icon next to the chosen channel and the text This measure has no input configured in the map.

Memory: 4 bytes of working memory (map limit of 512) and 4 bytes of configuration (limit of 2048).

#Math and logic

#Math operation

Does a calculation with two numbers and delivers the result.

ItemDescription
InputsData 1 and Data 2: the two numbers. With no link, they are 0.
OutputOutput: the result of the calculation.
OperationList, default Add. The six options are in the table below.
OperationOutput
AddData 1 + Data 2
SubtractData 1 − Data 2
MultiplyData 1 × Data 2
DivideData 1 ÷ Data 2. If Data 2 is 0, the output is 0.
MinimumThe smaller of the two (if they are equal, that value).
MaximumThe larger of the two (if they are equal, that value).

Memory: 4 bytes of working memory (map limit of 512) and 7 bytes of configuration (limit of 2048).

#Logic

Does a logic operation between two inputs and delivers 1 or 0.

ItemDescription
InputsA and B: the two operands. With no link, they are 0 (false). NOT ignores B.
OutputOutput: 1 (true) or 0 (false). The block does not pass on the value of the input.
OperatorList, default AND. The names are not translated: the screen shows them in English in every language. The six options are in the table below.
OperatorThe output is 1 when
ANDA and B are true.
ORA or B (or both) is true.
NOTA is false. B is not used.
XOROnly one of the two is true.
NANDThe two are not true at the same time (the inverse of AND).
NORNeither of the two is true (the inverse of OR).

Memory: 4 bytes of working memory (map limit of 512) and 7 bytes of configuration (limit of 2048).

#Selection

#Switch

Compares a reference with one or two limits and delivers one of two values.

ItemDescription
InputsReference: the number compared. True data and False data: the two possible values. Upper limit and Lower limit: the limits. With no link, all are 0, including the limits.
OutputOutput: the value of True data or of False data, not a 0 or 1.
ModeList, default Above. It sets the condition, in the table below.
ModeTrue condition
AboveReference > Upper limit. Only the Upper limit counts.
BelowReference < Lower limit. Only the Lower limit counts.
In the rangeReference > Lower limit and Reference < Upper limit.
Out of rangeReference < Lower limit or Reference > Upper limit.

If the condition is true, the output is the True data; otherwise, it is the False data. The comparisons are strict: at the exact value of the limit the condition is false. There is no hysteresis; for that, use the Hysteresis block. On the screen, the limit socket that the mode does not use is disabled.

Memory: 4 bytes of working memory (map limit of 512) and 13 bytes of configuration (limit of 2048).

#Multiplexer

Chooses one of four input channels by the selector number.

ItemDescription
InputsSelector: the number that chooses. Channel 1 to Channel 4: the possible values. With no link, all are 0.
OutputOutput: the value of the chosen channel. If the chosen channel has no link, the output is 0.

The selector is truncated to an integer: the decimal part is discarded. From 0 to 0.99 it chooses Channel 1; from 1 to 1.99, Channel 2; from 2 to 2.99, Channel 3; from 3 upward, Channel 4. Outside that range there is no error: negative values choose Channel 1. A selector with no link (0) also chooses Channel 1. The block has no parameters and no state.

Memory: 4 bytes of working memory (map limit of 512) and 12 bytes of configuration (limit of 2048).

#Band multiplexer

Chooses one of four channels according to the range of values in which the selector falls.

ItemDescription
InputsSelector: the number tested. Channel A to Channel D: the possible values. With no link, all are 0.
OutputOutput: the value of the channel of the range that matched.
Channel A to Channel D (Min and Max)The ends of the range of each channel, from −999999 to 999999. Defaults: A from 0 to 1, B from 1 to 2, C from 2 to 3 and D from 3 to 4.
No matchWhat comes out when no range matches: Output = 0 (default) or Follow last valid.

The block tests the ranges in the order A, B, C, D and stops at the first one that contains the selector (the ends count: Min ≤ selector ≤ Max). The output is the value of the channel of that range, which the block memorizes as the last valid value. If no range matches, the output is 0 or the memorized value, according to No match. The memorized value starts at 0 and is what the channel was worth when the range matched: if the channel changes later, the output does not follow. A range with Min greater than Max is off.

Memory: 8 bytes of working memory (map limit of 512) and 48 bytes of configuration (limit of 2048).

#Limits

#Limiter

Keeps a number between a minimum and a maximum.

ItemDescription
InputsInput: the number to limit (with no link, it is 0). Min and Max: if they have a link, they replace the parameters.
OutputOutput: the input, already limited.
Minimum ValueFrom −999999 to 999999. Default 0. It applies when the Min socket has no link.
Maximum ValueFrom −999999 to 999999. Default 100. It applies when the Max socket has no link.

If the input is smaller than the minimum, the minimum comes out. Then, if the result is greater than the maximum, the maximum comes out. Having a link is what counts, not the value: a Min connected to a source that is 0 limits at 0, and the parameter is ignored.

Memory: 4 bytes of working memory (map limit of 512) and 16 bytes of configuration (limit of 2048).

#Deadband

Zeroes the signal while it is inside a range. Outside it, delivers only the part beyond the limit.

ItemDescription
InputsInput. With no link, it is 0 and goes into the calculation (with the range from 5 to 10, the output would be −5). There are no sockets for the limits: they come only from the parameters.
OutputOutput: 0 inside the range; outside it, the input minus the limit exceeded.
Lower limitFrom −999999 to 999999. Default −1.
Upper limitFrom −999999 to 999999. Default +1.
input above the upper limit:   output = input − upper limit
input below the lower limit:   output = input − lower limit
input inside the range (includes the limits):  output = 0

With the default range, from −1 to 1: input 3 gives output 2, input −4 gives output −3 and input 0.7 gives output 0.

Deadband with a range from −1 to 1: inside the range the output is 0; outside it, the output is the input minus the limit exceeded.
Deadband with a range from −1 to 1: inside the range the output is 0; outside it, the output is the input minus the limit exceeded.

Memory: 4 bytes of working memory (map limit of 512) and 12 bytes of configuration (limit of 2048).

#State

#Hysteresis

Turns an output on when the signal rises to a limit and turns it off only when it falls to a lower limit.

ItemDescription
InputsInput: the signal (with no link, it is 0). Upper limit and Lower limit (the sockets): if they have a link, they replace the parameters.
OutputOutput: 1 or 0.
Upper limitFrom −999999 to 999999. Default 100.
Lower limitFrom −999999 to 999999. Default 0.

Input greater than or equal to the upper limit: the output goes to 1. Input smaller than or equal to the lower limit: the output goes to 0. Between the two, the output keeps the previous value. At the exact limits the output also changes.

Hysteresis with the default limits, 0 and 100: the output rises to 1 when the input reaches 100 and returns to 0 only when the input reaches 0.
Hysteresis with the default limits, 0 and 100: the output rises to 1 when the input reaches 100 and returns to 0 only when the input reaches 0.

Memory: 8 bytes of working memory (map limit of 512) and 16 bytes of configuration (limit of 2048).

#SR Latch

Stores a value: a pulse on Set writes it, a pulse on Reset zeroes it, and the value stays stored between the pulses.

ItemDescription
InputsSet and Reset: become active when they exceed the Threshold. With no link, they are 0 and are never active. Set value: the value to store; with no link, it is 1.
OutputQ: the stored value. Q bar: the second output, which the screen writes as a Q with a bar over it.
ThresholdFrom 0 to 10000 (the screen does not accept negative values). Default 0.5. The same threshold applies to Set and Reset. An input at 0 is never active, because 0 is not greater than 0.
PriorityList: Reset (default) or Set. It decides which one wins when both are active at the same time.

Q bar is the Set value when Q is 0 and is 0 when Q is different from 0: only with the Set value at 1 is it the inverse of Q, and with the Set value at 0 both are 0. Q starts at 0 when the VCU is powered on and at every map write; on the first execution, Q bar becomes the Set value. To store a signal of 0 and 1, leave the Set value without a link: it is 1.

SR Latch: Q writes the Set value while Set is active, returns to 0 with Reset and holds between the pulses; Q bar is the Set value when Q is 0.
SR Latch: Q writes the Set value while Set is active, returns to 0 with Reset and holds between the pulses; Q bar is the Set value when Q is 0.

Memory: 8 bytes of working memory (map limit of 512) and 16 bytes of configuration (limit of 2048).