Session 2: Function Block Diagram (FBD) Programming I
Session 2: Function Block Diagram (FBD) Programming I
SESSION 2
6 – 10 December 2010
ADD PFD ROUTINE
6 – 10 December 2010
CREATE TAGS
6 – 10 December 2010
ADD A SHEET IN ROUTINE
1 2
1. Click the icon
2. Type a sheet description
6 – 10 December 2010
FUNCTION BLOCK DATA FLOWS
6 – 10 December 2010
FUNCTION BLOCK ELEMENT
6 – 10 December 2010
LATCHING DATA
6 – 10 December 2010
FUNCTION BLOCK INSTRUCTION
BAR
Navigation button
Navigation button IO Instruction of FB Instruction
of FB Instruction FB Instruction
Element Group
Navigation button
of Element Group
6 – 10 December 2010
ADD INSTRUCTION TO SHEET
1. Select
2. Drag
3. Drop
6 – 10 December 2010
CONNECT ELEMENT(1)
1. Show or Hide a Pin
TONR_01
TONR ...
1. Click button to show
Timer On Delay with Reset
0 the block properties
TimerEnable ACC
0
PRE DN
Reset
2. Check to show the
pin, and Uncheck to hide
the pin
6 – 10 December 2010
EXAMPLE OF SHOWING A PIN
SCL_01
SCL ...
SCL_01 Scale
0.0
SCL ... In Out
0
Scale InRawMax MaxAlarm
0
0.0 InRawMin MinAlarm
In Out
Check the Vis Pin InEUMax
InEUMin
Limiting
6 – 10 December 2010
CONNECT ELEMENT(1)
1. Show or Hide a Pin
TONR_01
TONR ... 1. Click button to show the
Timer On Delay with Reset block properties
0
TimerEnable ACC
0
PRE DN
2. Check to show the pin, and
Reset
Uncheck to hide the pin
6 – 10 December 2010
CONNECT ELEMENT(2)
2. Wire Element Together
A B
Green Dots
6 – 10 December 2010
CONNECT ELEMENT(3)
3. Assume Data Available
Resolve a loop
TONR_04
TONR_03 TONR ...
TONR ... Timer On Delay with Reset
Timer On Delay with Reset 0
TimerEnable ACC
BOOLEAN_1
0
TimerEnable ACC
LOOP
0
PRE DN
0
PRE ERRORReset
DN
0
Reset
6 – 10 December 2010
ASSUME DATA AVAILABLE
To define a wire as an input, right-click the wire and choose
Assume Data Available.
TONR_04
This input pin uses the output that block 2 produced on the
previous scan.
6 – 10 December 2010
TOGGLE BIT
Example:
Toggle Switch_0
1. Right Click on IO Block
Instruction, choose
Monitor “Switch_0”
2. Program Tag Window
Shown
3. Right Click on the tag,
choose Toggle bit
6 – 10 December 2010
MONITOR VALUE
1. From FBD Window 2. From Program Tag
Window
ALM_04
ALM ...
Alarm
0
In HHAlarm
0
HAlarm
0
LAlarm
0
LLAlarm
0
ROCPosAlarm
0
ROCNegAlarm
6 – 10 December 2010
FUNCTION BLOCK
INSTRUCTION
6 – 10 December 2010
A. IO REFERENCE & IO WIRING
CONNECTION
IO Reference :
2#0000_0000
In_Ref_test Out_Ref_test
Tagname
6 – 10 December 2010
B. PROCESS INSTRUCTION (1)
1. Alarm
ALM_01
Device Tagname
ALM ...
0
LV001 Alarm
0
In HHAlarm
90 0
90 HHLimit HAlarm
70 0
70 HLimit LAlarm
0
LLimit LLAlarm
30 0
30 LLLimit ROCPosAlarm
10 0
10 Deadband ROCNegAlarm
6 – 10 December 2010
B. PROCESS INSTRUCTION (2)
2. SCL
Device Tagname (Raw
SCL_01
Data) Device Tagname
SCL ... (Scale Data)
0 Scale
LV001
0.0
In Out LV001_SCL
4096
4096 InRawMax
0
0 InRawMin
InEUMax
100
100 InEUMin
0
0 Limiting
1
1
6 – 10 December 2010
C. SELECT INSTRUCTION
SEL (Select) SEL_01
SEL ...
Select
0 0.0
LV001 In1 Out LV001_VAL
0
0 In2
0
LALL001 SelectorIn
Input1
Input2
Selector
Output
6 – 10 December 2010
D. BIT INSTRUCTION
1. OSRI (One Shot Rise with Input)
6 – 10 December 2010
E. TIMER/COUNTER INSTRUCTION
(1)
1. TONR (Timer On Delay With Reset)
TONR_01
TONR ...
0
RESET_ALARM
6 – 10 December 2010
E. TIMER/COUNTER INSTRUCTION
(2)
2. CTUD (Counter Up/Down)h CTUD_01
0 CTUD ...
LALL001
Count Up/Down
0
CUEnable ACC
1000 0
1000 CDEnable DN HORN
PRE
0
RESET_ALARM Reset
CUEnable
Reset
Preset
ACC
DN
6 – 10 December 2010
F. COMPARE INSTRUCTION
1. LES (Les Than) LES_01
LES ...
0 Less Than (A<B)
PT001
0
SourceA Dest RESULT_BOOL
0
PT002 SourceB
6 – 10 December 2010
G. MATH. INSTRUCTION
1. ADD ADD_01
ADD ...
Add
0 0.0
SOURCE_1 SourceA Dest RESULT_INT
SourceB
0
SOURCE_2
2. SUB (Subtract)
3. MUL (Multiply)
4. DIV (Divide)
5. ABS (Absolute)
6 – 10 December 2010
H. MOVE/LOGICAL INSTRUCTION
(1)
1. BAND (Boolean And)
BAND_02
0 BAND ...
BOOLEAN_1
Boolean And
0 0
BOOLEAN_2 In1 Out RESULT_BOOL
In2
0
BOOLEAN_3 In3
In4
0
BOOLEAN_4
6 – 10 December 2010
H. MOVE/LOGICAL INSTRUCTION
(3)
4. BXOR (Boolean Exclusive OR)
In1 XOR In2 = {Not (In1 AND In2)} AND (In1 OR In2)
In 1 In 2 Output
1 1 0
1 0 1
0 1 1
0 0 0
6 – 10 December 2010
H. MOVE/LOGICAL INSTRUCTION
(4)
5. DFF(D Flip Flop)
DFF_01
0 DFF ...
BOOLEAN_1
D Flip Flop
0 0
CLEAR_1 D Q RESULT_BOOL
0
Clear QNot
0
CLOCK_1 Clock
When Clock goes from cleared to set, the DFF instruction sets
Q = D. When Clear is set, Q is cleared.
Clock
Clear
Q
6 – 10 December 2010
H. MOVE/LOGICAL INSTRUCTION
(5)
SET D_01
6. SETD (Set Dominant)
SETD ...
0 Set Dominant
BOOLEAN_1
0
Set Out RESULT_BOOL
0 0
BOOLEAN_2 Reset OutNot
When Set is set, Out is set. When Reset is set and Set is
cleared, Out is cleared. Set has precedence over Reset
Set
Reset
Out
6 – 10 December 2010
NEXT
SESSION 3
6 – 10 December 2010