FOXBORO Industrial Control Platform

Michal Kvasnica

Different roles

Operator

Set up workstation

Set up workstation

Configure workstation

Foxselect

Foxselect

Ingredients of the control system • Input/output blocks • Computational tasks - scaling - conversion of units - performance evaluation

• Control algorithms - logic control (ladder logic) - P, PI, PID

• Human-machine interface (HMI) - visualization - trends - alarms

Control scheme

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

Input processing

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or from another block, and converts it into suitable form for use in an I/A Series control strategy. The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB), and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

Input processing (AIN block) High/Low Scale for Output Range 1

Signal Condition ing Index Fieldbus Module Identifier Point Number External ReferenceOption External Reference Input Extender Block

Linear Square Root

BAD and OOR Option

output units

o RTD o

Thermocouple

o

Special T.C.

output units

C

C

Bad & Out-ofRange Processing

Scaling/ Unit Conversion

Clamp

Bad Indicator High/ Low OutofRange Indicators Point (Engineering Units Value)

Filter

C Alarming

counts Characterizer (None)

Gain Offset Figure 2-1. AIN Block Diagram

Alarm Options

Alarm Limits

Alarm Indicators

Analog Input (AIN)

Analog Input (AIN)

Analog Input (AIN)

Execution time base Period 0 1 2 3 4 5 6 7 8 9 10 11 12 13

Length 0.1 sec 0.5 sec 1.0 sec 2.0 sec 10 sec 30 sec 1 min 10 min 60 min 0.2 sec 5.0 sec 0.6 sec 6.0 sec 0.05 sec

Engineering unit description

The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or from another block, and converts it into suitable form for use in an I/A Series control strategy. The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB), and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

Linearization / Signal conditioning High/Low Scale for Output Range 1

Signal Condition ing Index Fieldbus Module Identifier Point Number External ReferenceOption External Reference Input Extender Block

Linear Square Root

BAD and OOR Option

output units

o RTD o

Thermocouple

o

Special T.C.

output units

C

C

Bad & Out-ofRange Processing

Scaling/ Unit Conversion

Clamp

Bad Indicator High/ Low OutofRange Indicators Point (Engineering Units Value)

Filter

C Alarming

counts Characterizer (None)

Gain Offset Figure 2-1. AIN Block Diagram

Alarm Options

Alarm Limits

Alarm Indicators

2.10 Appendix A – Signal Conditioning Tables 2.10.1 Summary SCI = 0: SCI = 1: SCI = 2: SCI = 3: SCI = 4: SCI = 5: SCI = 6: SCI = 7: SCI = 8: SCI = 9: SCI = 10: SCI = 12: SCI = 13: SCI = 20: SCI = 21: SCI = 23: SCI = 24:

Signal conditioning (SCI)

No linearization; output = input Linear (0 to 64000) (“0 to 100%”) Linear (1600 to 64000) (“0 to 100%, Elevated Zero”) Linear (12800 to 64000) (“20 to 100%”) Square root (0 to 64000) (“0 to 100%”) Square root (12800 to 64000), clamped (“20 to 100%”) Square root, low cutoff (0 to 64000), clamp < 3/4% (“0 to 100%”) Square root, low cutoff (12800 to 64000), clamp < 3/4% (“20 to 100%”) Pulse rate Linear, low cutoff (1600 to 64000) (“0 to 100%, Elevated Zero”) Linear, low cutoff (12800 to 64000)(“20 to 100%”) Linear (14080 to 64000)(“20 to 100%, Elevated Zero”) Square root, low cutoff (14080 to 64000),(“20 to 100%, Elevated Zero”) Type B Thermocouple Type E Thermocouple Type J Thermocouple Type K Thermocouple

Signal conditioning (SCI)

IOMOPT

IOMPT

Meaning

0

conditioning + software signal

1

conditioning + hardware signal

2

no conditioning (still scaling)

The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or from another block, and converts it into suitable form for use in an I/A Series control strategy. The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB), and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

Input processing High/Low Scale for Output Range 1

Signal Condition ing Index Fieldbus Module Identifier Point Number External ReferenceOption External Reference Input Extender Block

Linear Square Root

BAD and OOR Option

output units

o RTD o

Thermocouple

o

Special T.C.

output units

C

C

Bad & Out-ofRange Processing

Scaling/ Unit Conversion

Clamp

Bad Indicator High/ Low OutofRange Indicators Point (Engineering Units Value)

Filter

C Alarming

counts Characterizer (None)

Gain Offset Figure 2-1. AIN Block Diagram

Alarm Options

Alarm Limits

Alarm Indicators

N – Analog Input Block

B0193AX – Rev R

Scaling (KSCALE, BSCALE)

2.5.2.2 Thermocouple Input

UT FROM FBM 02/36 (Thermocouple Input) Input = Raw Counts Channel 9

XREFOP XREFIN

SCI = 20-28

Cold Junction Compensation

External Block

hor, lor

Linearization 2.5.2.2

oC

KSCALE (1.8) X

BSCALE (32.0) o

F

+

hor,lor

Channel Status FBM Status

Scaled value = (Conditioned value * KSCALE) + BSCALE Figure 2-4. Thermocouple Input Example

The following FBMs or FBCs and point numbers provide thermocouple inputs: FBM

FBM202

ECB ECB1

Functional Description 8 Analog In

Electrical Type mV

Valid Points Points 1 to 8

Analog Input (AIN)

The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or from another block, and converts it into suitable form for use in an I/A Series control strategy. The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB), and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

Input processing High/Low Scale for Output Range 1

Signal Condition ing Index Fieldbus Module Identifier Point Number External ReferenceOption External Reference Input Extender Block

Linear Square Root

BAD and OOR Option

output units

o RTD o

Thermocouple

o

Special T.C.

output units

C

C

Bad & Out-ofRange Processing

Scaling/ Unit Conversion

Clamp

Bad Indicator High/ Low OutofRange Indicators Point (Engineering Units Value)

Filter

C Alarming

counts Characterizer (None)

Gain Offset Figure 2-1. AIN Block Diagram

Alarm Options

Alarm Limits

Alarm Indicators

Section 2.5.2.4). 2. AIN – Analog Input Block Inputs from Intelligent Field Devices are usually in final output units when received from the devices themselves (see Section 2.5.2.6). osv (units) Pulse count inputs may not be scaled (see Section HSCO1 2.5.2.5). Clamping

B0193AX – Rev R

To ignore the scaling function, leave KSCALE at the defaultINPUT value of 1 and leave BSCALE at the default value of 0. LSCO1 osv (units)

2.5.4 Clamping OSV = output span variance

osv (units)LOR, LASTGV Key Parameters: HSCO1, LSCO1, OSV, HOR, HSCO1

HOR =engineering 1 Clamping keeps the linearized and converted value within the block’s units range, as OUTPUT determined by HSCO1 and LSCO1. LOR = 1 LSCO1

osv (units) The scaled value is clamped as follows: Compute the Low and High Clamp Values: Figure 2-9. Clamping Low Clamp Value = LSCO1 - ((OSV/100.0) * (HSCO1 - LSCO1)) 2.5.5 Filtering High Clamp Value = HSCO1 + ((OSV1/100.0) * (HSCO1 - LSCO1)) Key Parameters: FLOP, FTIM

The clamped value is subjected to possible filtering, as the last signal processing activity. Filtering If Scaled Value ≤Low Clamp Value then: introduces a lag to changes in the input signal, thus smoothing out input changes or suppressing Scaled Value = Low Clamp Value noise. Note that this feature should be used with caution to avoid removing true process information. Parameter Low Out-of-Range (LOR) set true If theisblock is in Auto and Filter Option (FLOP) is non-zero, either first-order lag filtering 1) or second-order Butterworth If BADOPT so specifies, parameter(FLOP Bad =(BAD) is also set true. filtering (FLOP = 2) or two-sample-average filtering (FLOP = 3) is applied. The lag that first or second-order filtering introduces has time constant Filter Time (FTIM). You can use them to attenuate measurement noise. However, if FTIM is set If Scaled Value ≥ High Clamp Value then: too low, there is relatively insignificant filtering. If set too high, the lag may be large enough to Scaled Value = High Clamp Value affect loop accuracy. In addition filtering, aliasing is minimized and resolution improved by configuring the RES Parameter High Out-of-Range (HOR) is settotrue. parameter of the ECB so that the fieldbus integration time is equal to twice the block period. the sectionis“Fieldbus If BADOPT so specifies, parameterRefer Badto(BAD) also setIntegration true. Time” in the appropriate Integrated Control Software Concepts document (B0700AG or B0193AW).

Based on BADOPT, LASTGV, IOMOPT, and the SCI in use, the value is either used or ignored, 2.5.5.1 First Order Lag Filtering (FLOP = 1) as described in Section 2.6.

Clamping (HSC01, LSC01, OSV)

The Analog Input Block (AIN) receives an input value from a single point of an analog, pulse count, or Intelligent Field Device type of Fieldbus Module (FBM) or Fieldbus Card (FBC), or from another block, and converts it into suitable form for use in an I/A Series control strategy. The input to the block is the digitized data from the FBM’s Equipment Control Block (ECB), and the output is a value expressed in the appropriate engineering units. See Figure 2-1.

Input processing High/Low Scale for Output Range 1

Signal Condition ing Index Fieldbus Module Identifier Point Number External ReferenceOption External Reference Input Extender Block

Linear Square Root

BAD and OOR Option

output units

o RTD o

Thermocouple

o

Special T.C.

output units

C

C

Bad & Out-ofRange Processing

Scaling/ Unit Conversion

Clamp

Bad Indicator High/ Low OutofRange Indicators Point (Engineering Units Value)

Filter

C Alarming

counts Characterizer (None)

Gain Offset Figure 2-1. AIN Block Diagram

Alarm Options

Alarm Limits

Alarm Indicators

Filtering

1st order filter

Filter output = PNT + (Filter input - PNT) / (T + 1)

PNT = present block input

T = 60 * FTIM / Block period in seconds

Y (s) =

1 U (s) Ts + 1

T=1

T = 2.5

T=5

Filtering parameters (FLOP, FTIM)

FLOP

Filter

0

no filtering

1

1st order filter

2

2nd order filter

3

averaging

FTIM = (T * Block period in seconds)/60

AIN parameters Parameter

Meaning

PERIOD

block execution interval (PERIOD=1 for 0.5 sec interval)

SCI

signal conditioning (0 = no conditioning)

HSCO1, LSCO1

upper/lower limits of the signal (used for clamping)

EO1

engineering units (string, e.g. “m”, “oC”, ...)

OSV

output span variance (used for clamping)

FLOP, FTIM

filter options (FLOP=0 for no filtering)

KSCALE, BSCALE

scaling (out = KSCALE*out + BSCALE)

MEAS

input measurements

PNT

block output (conditioned, scaled and clamped value)

Control scheme

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

Output processing (AOUT block)

Output processing (AOUT block)

5. AOUT – Analog Output Block

B0193AX – Rev R

5.5 Functions Output processing (AOUT block) 5.5.1 Detailed Diagram MSCALE

MEAS

OUT

BTIME LOLIM HOLIM

(M) O MA

SUP_IN Last Good Value

SCALING

BALANCING

CLAMPING

Back Calculated Input Bias Selection

OUT

O (A)

O

Back Calculation

OUT

BCALCO SUPBCO

HSCO1 LSCO1 SCO OUT • MEAS = input of the AOUT block SIGNAL IOMOPT = 0,1

RAWC

CONDITIONING

• SUP_IN = supervisory input • SCALING = IN*MSCALE + Bias

SUPOPT AND SE • BALANCING BLKSTA.SC

IOMOPT = 1

AND

To ECB

O USE SUP_IN = filtering Failsafe Transition Cycle

• Back calculation = inverse to scaling

FS BLKSTA.FS

AND

MANFS

AND

Manual

Last Good Value

SCALING

BALANCING

O (A)

CLAMPING

Back Calculated Input Bias Selection

Back Calculation

Signal conditioning OUT

O

OUT

BCALCO SUPBCO

HSCO1 LSCO1 SCO OUT

SIGNAL CONDITIONING

IOMOPT = 0,1

SUPOPT 2. AIN – Analog Input Block AND SE BLKSTA.SC

RAWC

IOMOPT = 1

AND

B0193AX – Rev R

O USE SUP_IN Failsafe Transition Cycle

osv (units) HSCO1

AND

IOMPT

INPUT

MANFS

LSCO1 osv (units)

MEAS.BAD MEAS.OOS MEAS.Disconnect osv (units)

OR

LSCO1

MEAS.BAD osv (units) MEAS.OOS MEAS.Disconnect MEAS.ERROR

MEROPT=1 AND OUTPUT

AND

2.5.5 Filtering

0

LOR = 1

OR

USE LAST O GOOD VALUE

2

AND

Figure 2-9. Clamping

Initialization Cycle

AND

FS Meaning BLKSTA.FS Manual conditioning + software signal FS

1

HOR = 1

MEROPT= 2 OR

AND

MEAS.ACK

HSCO1

PROPT Auto

To ECB

conditioning + hardware signal BLKSTA.FS no conditioning

USE BACK Back O CALCULATED Calculation INPUT

The value IOMOPT = 2 indicates that there is no connected FBM or FBC, and that signal conditioning is not used. The values of IOM_ID, PNT_NO, and SCO are all ignored. The values of SCO, which must be in the ranges listed below, cause various inverse linear or inverse square root signal conditionings to be applied to the scaled, balanced, and clamped input. The signal conditioning algorithms are described in the following list. In each case, the input to the algorithm is the value of OUT, and the output of the algorithm is stored in RAWC.

Signal conditioning (SCO)

SCO = 0: SCO = 1:

SCO = 2:

SCO = 3:

SCO = 4:

SCO = 5:

SCO = 12:

SCO = 13:

SCO = 14: SCO = 50: SCO = 51: SCO = 52:

No Conditioning RAWC = OUT Inverse Linear (0 to 64000) Analog Output 0 to 20 mA RAWC = (OUT - LSCO1) * 64000/(HSCO1 - LSCO1) Inverse Linear (1600 to 64000) Analog Output 0 to 10 V dc RAWC = ((OUT - LSCO1) * 62400/(HSCO1 - LSCO1)) + 1600 Inverse Linear (12800 to 64000) Analog Output 4 to 20 mA RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1)) + 12800 Inverse Square Root (0 to 64000) Analog Output 0 to 20 mA RAWC = ((OUT - LSCO1) * 64000/(HSCO1 - LSCO1))2 / 64000 Inverse Square Root (12800 to 64000) Analog Output 4 to 20 mA RAWC = ((OUT - LSCO1) * 51200/(HSCO1 - LSCO1))2 / 51200 + 12800 Inverse Linear (14080 to 64000) Analog Output 2 to 10 V dc RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1)) + 14080 Inverse Square Root (14080 to 64000) Analog Output 2 to 10 V dc RAWC = ((OUT - LSCO1) * 49920/ (HSCO1 - LSCO1))2 / 49920 + 14080 Analog Output for Intelligent Positioner Linear (0 to 65535) x = (y - LSCO1) * 65535/(HSCO1-LSCO1) Linear (-32768 to 32767) x = (y - LSCO1) * 65535/(HSCO1-LSCO1) - 32768 Linear (0 to 32767) x = (y - LSCO1) * 32767/(HSCO1-LSCO1)

AOUT parameters Parameter

Meaning

PERIOD

block execution interval (PERIOD=1 for 0.5 sec interval)

SCO

signal conditioning (0 = no conditioning)

MEAS

input signal to be processed by the block

HSCI1, LSCI1

upper/lower limits for meas (only in displays)

HOLIM, LOLIM

upper/lower limits for the output (used in clamping)

EO1

engineering units (e.g. “m^3/h”)

OSV

output span variance (used in clamping)

OUT

block output (conditioned, scaled and clamped value)

Control scheme

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

ment, are used to compute its output, the manipulated variable, based on user-set or adaptively tuned values of the tuning parameters – proportional band, integral time, derivative time, delay time, and setpoint relative gain. The feedforward capability can be used to decouple interacting loops, such as a slow level control cascading to a fast flow control, in addition to compensating for measured load upsets.

PID controller (block PIDA) Loads

FBTUNE Extender Block Supervisory Setpoint

Ramp, Limit

Remote Setpoint

Limit

FFTUNE Extender Block PIDA Block

Bias

Limit

Local Setpoint

Multiplicative Input

Local

LR

SE

Enable

Scale

Scale

+

+

Remote Disable

Manual Compensator Measurement

Filter

Feedback Control Algorithm

x B A/B

+ A

+

Output Alarms Limit

Output

Auto Track

Feedback Deviation Alarms Measurement Alarms

Figure 93-1. PIDA Functional Diagram

PID controller (block PIDA) Parameter

Meaning

MEAS

measurements

SPT

set point

ERROR

control error SPT-MEAS

MODOPT

controller type

OUT

controller output

PBAND

proportional gain (in percent)

INT

integral time (minutes)

DERIV

derivative time (minutes)

MODOPT MODOPT

Controller type

1

P

u=

2

I

1 u = (r − y) Is

3

PD

4

PI

5

PID

Equation

100 (r − y) P

100 (r − (1 + Ds)y) P ! " 100 1 u= + 1 (r − y) P Is !! " ! " " 100 1 1 u= +1 r+ + 1 (1 + Ds)y P Is Is

u=

PIDA parameters Parameter

Meaning

SPHLIM, SPLLIM

upper/lower limits on the setpoint

HSCI1, LSCI1

upper/lower limits of the measurements

HSCO1, HOLIM, LSCO1, LOLIM

upper/lower limits of control action

HSCO1, HOLIM, LSCO1, LOLIM

upper/lower limits of control action

LIMOPT

anti-windup setting (use LIMOPT=1)

EI1, EO1

engineering units of the measurements and control action

FBK

integral feedback to prevent windup

BCALCI

initial value of the control action

PID controller (block PIDA)

PID controller (block PIDA)

Connecting the signals

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

Parameter path • General syntax: - COMPOUND:BLOCK.PARAMETER

• If within of the same compound: - :BLOCK.PARAMETER

• Example: - ZASOBNIK.HLADINA.PNT - :REGULATOR.OUT

Measurements - Controller connection

Controller - Output connection

FoxSelect

FoxView

Assigning displays

Manipulating parameters

Control system

Setpoint

Input

Input processing

Controller

Plant

Output processing

Output

This block provides dual-operand efficiency in several mathematical and logical instructions, resulting in as much as a three-to-one reduction in the length of your program relative to the same calculations performed in a CALC block program. The CALCA block does not support the clamping of real outputs, whereas the CALC block does. With this exception, programs written for the CALC, MATH, or LOGIC blocks will execute in the CALCA block without change. The configuration process allows you to program the block by entering a series of up to 50 programming steps. Each program step is represented by a parameter string of up to 16 characters. The CALCA block inputs and outputs are shown in Figure 15-1.

CALCA block

8 Boolean Outputs

16 Boolean Inputs 8 Real Inputs 2 Integer Inputs 2 Long Integer Inputs

Advanced Calculation Program

4 Real Outputs 6 Integer Outputs 2 Long Integer Outputs

(up to 50 steps; configurable)

Program Error Step Error

Figure 15-1. CALCA Block I/O Diagram

The differences between the CALCA, CALC, MATH, and LOGIC blocks are summarized in Table 15-1.

CALCA parameters Parameter

Meaning

PERIOD

execution interval

RI01 to RI08

8 real inputs

BI01 to BI16

16 binary inputs

II01 to II02

2 integer inputs

M01 to M24

24 real memory registers

RO01 to RO04

4 real outputs

BO01 to BO08

8 binary outputs

IO01 to IO06

6 integer outputs

PERROR, STERR

program error, step error number

Single liquid tank ! √ " 1 h˙ = q−k h F

h = (q - k*sqrt(h))/F + h

Instruction-based programming

x = a*b*(c + d) STEP01

ADD c d

the result is stored into the accumulator

Instruction-based programming

x = a*b*(c + d) STEP01 STEP02

ADD c d MUL b

takes the value stored in the accumulator, multiplies it with “b” and stores the result back into the accumulator hence, the value of the accumulator is overwritten!!!

Instruction-based programming

x = a*b*(c + d) STEP01 STEP02 STEP03

ADD c d MUL b MUL a

takes the value stored in the accumulator, multiplies it with “a” and stores the result back into the accumulator hence, the value of the accumulator is overwritten!!!

Instruction-based programming

x = a*b*(c + d) STEP01 STEP02 STEP03 STEP04

ADD MUL MUL OUT

c d b a RO01

write the value currently stored in the accumulator into the output memory address

Instruction-based programming

x = (a+b)*(c + d) STEP01

ADD c d

the result is stored into the accumulator

Instruction-based programming

x = (a+b)*(c + d) STEP01 STEP02

ADD c d OUT M01

we need to store the result into a temporary memory, since we only have one single accumulator

Instruction-based programming

x = (a+b)*(c + d) STEP01 STEP02 STEP03

ADD c d OUT M01 ADD a b

the result is stored into the accumulator

Instruction-based programming

x = (a+b)*(c + d) STEP01 STEP02 STEP03 STEP04

ADD OUT ADD MUL

c d M01 a b M01

multiply the value of the accumulator by the value stored in M01 and write the result back into the accumulator

Instruction-based programming

x = (a+b)*(c + d) STEP01 STEP02 STEP03 STEP04 STEP05

ADD OUT ADD MUL OUT

c d M01 a b M01 RO01

Instruction-based programming

h = (q - k*sqrt(h))/F + h STEP01 STEP02 STEP03 STEP04 STEP05 STEP06 STEP07 STEP07 STEP08

IN RO01 SQRT MUL RI02 OUT M01 SUB RI01 M01 OUT M01 DIV M01 RI03 ADD RO01 OUT RO01

Address Variable RI01

q

RI02

k

RI03

F

RO01

h

Value :PRIETOK.OUT

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03)

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01

MUL RI01 RI03

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03

MUL RI01 RI03 ADD RI02 OUT M01

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04

MUL ADD OUT ADD

RI01 RI03 RI02 M01 RI02 RI03

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04 STEP05

MUL RI01 RI03 ADD RI02 OUT M01 ADD RI02 RI03 SQRT

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04 STEP05 STEP06

MUL RI01 RI03 ADD RI02 OUT M01 ADD RI02 RI03 SQRT OUT M02

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04 STEP05 STEP06 STEP07 STEP08

MUL RI01 RI03 ADD RI02 OUT M01 ADD RI02 RI03 SQRT OUT M02 DIV M01 M02 OUT M03

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04 STEP05 STEP06 STEP07 STEP08 STEP09

MUL RI01 RI03 ADD RI02 OUT M01 ADD RI02 RI03 SQRT OUT M02 DIV M01 M02 OUT M03 SUB RI01 M03

Instruction-based programming

RO01 = RI01 - (RI02 + RI01*RI03) / sqrt(RI02+RI03) STEP01 STEP02 STEP03 STEP04 STEP05 STEP06 STEP07 STEP08 STEP09 STEP10

MUL RI01 RI03 ADD RI02 OUT M01 ADD RI02 RI03 SQRT OUT M02 DIV M01 M02 OUT M03 SUB RI01 M03 OUT RO01

Instruction-based programming

RO01 = abs(RI01-RI02) + (RI02 + RI03)/2 STEP01 STEP02 STEP03 STEP04 STEP05 STEP06 STEP07 STEP08

SUB ABS OUT ADD OUT DIV ADD OUT

RI01 RI02 M01 RI02 RI03 M02 M02 2 M01 M02 RO01

CALCA block

CALCA block