Sie sind auf Seite 1von 33

DAY 3

SESSION 2

FUNCTION BLOCK DIAGRAM (FBD)


PROGRAMMING I

6 – 10 December 2010
ADD PFD ROUTINE

1. Right Click on main


program and choose New
Routine

2. Write New Routine


name and choose
Function Block Diagram
for its type

3. Open the new routine

6 – 10 December 2010
CREATE TAGS

1. Right Click on Program


Tags and choose New
Tag
2. Write a name, select
data type, scope, and
style for the tag

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

The Input Reference value does not change


until the next scan execution of the routine

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

Check the Vis Pin


I for Input
O for Output

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

• Click Output pin of the First element (A)


• Then Click input pin of the other element (B)
• Green Dots show a valid connection point

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

If a group of blocks are in a loop, the controller cannot determine


which block to execute first. In other words, it cannot resolve the loop.

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

TONR_03 TONR ...


TONR ... Timer On Delay with Reset
0
Timer On Delay with Reset
TimerEnable ACC
0 0 0
BOOLEAN_1 TimerEnable ACC PRE DN
0
PRE DN Reset
Reset

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

IO Wiring Connection : LES_01


LES ...

Less Than (A<B)


0.0 0
A SourceA Dest B

1-C3 SourceB 1-A3


100
100

Any name, use to connect


programs in different sheets
in a subroutine

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

Alarm Limit Value Alarm Status

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

If set, Output is limited to


between InEUMin and InEUMax.

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

If SelectorIn is set Output = In2


If SelectorIn is clear Output = In1

Input1

Input2

Selector

Output

6 – 10 December 2010
D. BIT INSTRUCTION
1. OSRI (One Shot Rise with Input)

2. OSFI (One Shot Falling with Input)

6 – 10 December 2010
E. TIMER/COUNTER INSTRUCTION
(1)
1. TONR (Timer On Delay With Reset)
TONR_01

TONR ...

Timer On Delay with Reset


0 0
PULSE1_ALARM TimerEnable ACC
0
PRE DN HORN
1000
1000 Reset

0
RESET_ALARM

Each scan that TimerEnable is set, the TONR instruction


increments the ACC value until the ACC value reaches the PRE
value. When ACC = PRE, the DN parameter is set

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

Integer/Real Tag Boolean Tag

2. GRT (Greater Than)


3. LEQ (Les Than or Equal to)
4. GRT (Greater Than or Equal to)
5. EQU (Equal to)

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

Out = In1 AND In2 AND In3 AND In4


In 1 In 2 Output
1 1 1
1 0 0
0 1 0
0 0 0
6 – 10 December 2010
H. MOVE/LOGICAL INSTRUCTION
(2)
2. BOR (Boolean Or)
Out = In1 Or In2 Or In3 Or In4 Or In5 Or In6 Or
In7 Or In8
In 1 In 2 Output
1 1 1
1 0 1
0 1 1
0 0 0
3. BNOT (Boolean Not)
Out = Not In
In Output
1 0
0 1

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

7. RESD (Reset Dominant)

6 – 10 December 2010
NEXT
SESSION 3

FUNCTION BLOCK DIAGRAM (FBD)


PROGRAMMING II

6 – 10 December 2010

Das könnte Ihnen auch gefallen