FB33 Teach Value Store Sort Dependent With Copy Function

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

SIMATIC

FB33 - <offline>
"Wert+/- teach Sorte+Copy" Teach value store sort dependent with copy function
Name: TestFB Family: Param
Author: Delatour Version: 0.1
Block version: 2
Time stamp Code: 09/27/2011 03:55:42 PM
Interface: 03/10/2005 10:56:41 AM
Lengths (block/logic/data): 01196 00898 00002

Name Data Type Address Initial Value Comment


IN 0.0
Release_Adjustment Bool 0.0 FALSE
Plus Bool 0.1 FALSE
Minus Bool 0.2 FALSE
Minute_J_N Bool 0.3 FALSE
Cycle_10Hz Bool 0.4 FALSE
Take_over_value Bool 0.5 FALSE
Take_over_Sort Bool 0.6 FALSE
Transf_A_B Bool 0.7 FALSE
Sort_Number Byte 1.0 B#16#0
New_Value Word 2.0 W#16#0
Min_Limit Int 4.0 0
Max_Limit Int 6.0 0
Inkrement Int 8.0 0
Soll_S Word 10.0 W#16#0
Quelle_A Word 12.0 W#16#0
Ziel_B Word 14.0 W#16#0
OUT 0.0
Actual_Dez Word 16.0 W#16#0
Actual_Timer Word 18.0 W#16#0
Value_fuer_S Word 20.0 W#16#0
Value_fuer_A Word 22.0 W#16#0
Value_fuer_B Word 24.0 W#16#0
IN_OUT 0.0
STAT 0.0
HM_FP_Sortenber Bool 26.0 FALSE
HM_FP_Plus Bool 26.1 FALSE
HM_FN_Plus Bool 26.2 FALSE
HM_FP_Minus Bool 26.3 FALSE
HM_FN_Minus Bool 26.4 FALSE
HM_FP_10Hz Bool 26.5 FALSE
HM_FN_Wert_Ueb Bool 26.6 FALSE
HM_FP_Transfer Bool 26.7 FALSE
FP_Sortenbernahme Bool 27.0 FALSE
FP_Plus Bool 27.1 FALSE
FN_Plus Bool 27.2 FALSE
FP_Minus Bool 27.3 FALSE
FN_Minus Bool 27.4 FALSE
FP_10Hz Bool 27.5 FALSE
FN_Wert_Uebern Bool 27.6 FALSE
FP_Transfer Bool 27.7 FALSE
Zaehlen_10Hz Bool 28.0 FALSE
Zaehlen_Zyklus Bool 28.1 FALSE
Zeitzaehler Byte 29.0 B#16#0

Seite von
SIMATIC

Name Data Type Address Initial Value Comment


Aktuel_KF_alt Word 30.0 W#16#0
Zeitbasis Word 32.0 W#16#0
Zeitwert Word 34.0 W#16#0
Soll_S_alt Word 36.0 W#16#0
Quelle_A_alt Word 38.0 W#16#0
Ziel_B_alt Word 40.0 W#16#0
Werte_Sorte Array [1..99] Of Word 42.0
TEMP 0.0
Zwischenspeicher Word 0.0

Block: FB33

Network: 1 Sortenummer --> Index

L #Sort_Number
L 99
>I // Sorte Nr zu hoch --> 99
JC M011
L #Sort_Number
L 1
<I // Sorte Nr zu niedrig --> 1
JC M011
L #Sort_Number

M011: NOP 0
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR

Network: 2 Wert holen bei Sortübernahme

A #Take_over_Sort
FP #HM_FP_Sortenber
= #FP_Sortenbernahme
//
AN #FP_Sortenbernahme
AN #FP_Transfer
JC M021
L DIW [AR1,P#42.0]
T #Actual_Dez
T #New_Value
M021: NOP 0

Network: 3 Flanken Bilden

AN #Release_Adjustment
JC M072
//
A #Plus
FP #HM_FP_Plus
= #FP_Plus
A #Plus
FN #HM_FN_Plus
= #FN_Plus
A #Minus
FP #HM_FP_Minus
= #FP_Minus
A #Minus
FN #HM_FN_Minus
= #FN_Minus
A #Cycle_10Hz
FP #HM_FP_10Hz
= #FP_10Hz
A #Take_over_value
FN #HM_FN_Wert_Ueb
= #FN_Wert_Uebern

Seite von
SIMATIC

Network: 4 Zaehltakt ermitteln

O #Plus
O #Minus
JC M041
L 0
T #Zeitzaehler
JU M042
M041: NOP 0
AN #FP_10Hz
JC M042
L #Zeitzaehler
L 1
+I
T #Zeitzaehler
M042: NOP 0
L #Zeitzaehler
L 5
>I
A #FP_10Hz
= #Zaehlen_10Hz
//
L #Zeitzaehler
L 50
>I
= #Zaehlen_Zyklus

Network: 5 Neuen Wert übernehmen

L #New_Value
T #Actual_Dez
// Max Grenze prüfen
L #Max_Limit
<I
JC M151
T #Actual_Dez
M151: NOP 0
// Min Grenze prüfen
L #Actual_Dez
L #Min_Limit
>I
JC M161
T #Actual_Dez
M161: NOP 0

NOP 0

Network: 6 Hochzaehlen

ON #Plus
JC M051
AN #FP_Plus
AN #Zaehlen_10Hz
JC M051
L #Actual_Dez
L #Inkrement
AN #Zaehlen_Zyklus
JC M053
L #Actual_Dez
L 10
M053: +I
T #Actual_Dez
L #Max_Limit
<I
JC M051
T #Actual_Dez
M051: NOP 0

Seite von
SIMATIC

Network: 7 Runterzaehlen

ON #Minus
JC M061
AN #FP_Minus
AN #Zaehlen_10Hz
JC M061
L #Actual_Dez
L #Inkrement
AN #Zaehlen_Zyklus
JC M063
L #Actual_Dez
L 10
M063: -I
T #Actual_Dez
L #Min_Limit
>I
JC M061
T #Actual_Dez
M061: NOP 0

Network: 8 Wert in Zeit Format umwandeln

M072: NOP 0

L #Actual_Dez
L #Aktuel_KF_alt
==I
JC M081

L #Actual_Dez
T DIW [AR1,P#42.0]

L 0
T #Zeitbasis

L #Actual_Dez
T #Aktuel_KF_alt

AN #Minute_J_N //Wenn Minuten dann Zeit mal 60


JC M084
L 60
*I
M084: NOP 0

T #Zeitwert
M083: L 999
<=I
JC M082
L #Zeitbasis
L W#16#1000
+I
T #Zeitbasis
L #Zeitwert
L 10
/I
T #Zeitwert
JU M083
M082: NOP 0
L #Zeitwert
ITB
L #Zeitbasis
+I
T #Actual_Timer
M081: NOP 0

Network: 9 Transfer von Quelle A nach Ziel B

A #Transf_A_B
FP #HM_FP_Transfer
= #FP_Transfer
//
AN #FP_Transfer
JC M091
// AR1 Rechnen
L #Quelle_A
L 99
>I // Sorte Nr zu hoch --> 99
JC M092

Seite von
SIMATIC

L #Quelle_A
L 1
<I // Sorte Nr zu nidrieg --> 1
JC M092
L #Quelle_A

M092: NOP 0
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR
L DIW [AR1,P#42.0]
T #Zwischenspeicher

// AR1 Rechnen
L #Ziel_B
L 99
>I // Sorte Nr zu hoch --> 99
JC M093
L #Ziel_B
L 1
<I // Sorte Nr zu nidrieg --> 1
JC M093
L #Ziel_B

M093: NOP 0
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR
// Wert von A nach B transferieren
L #Zwischenspeicher
T DIW [AR1,P#42.0]
M091: NOP 0

Network: 10 Wert A für Anzeige

L #Quelle_A
T #Quelle_A_alt
// AR1 Rechnen
L #Quelle_A
L 99
>I // Sorte Nr zu hoch --> 99
JC M102
L #Quelle_A
L 1
<I // Sorte Nr zu nidrieg --> 1
JC M102
L #Quelle_A

M102: T #Quelle_A
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR
// Wert von A nach Anzeige
L DIW [AR1,P#42.0]
T #Value_fuer_A

Network: 11 Wert B für Anzeige

L #Ziel_B
T #Ziel_B_alt
// AR1 Rechnen
L #Ziel_B
L 99
>I // Sorte Nr zu hoch --> 99
JC M112
L #Ziel_B
L 1
<I // Sorte Nr zu nidrieg --> 1
JC M112
L #Ziel_B

M112: T #Ziel_B
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR
// Wert von B nach Anzeige
L DIW [AR1,P#42.0]

Seite von
SIMATIC

T #Value_fuer_B

Network: 12 Wert S für Anzeige

L #Soll_S
T #Soll_S_alt
// AR1 Rechnen
L #Soll_S
L 99
>I // Sorte Nr zu hoch --> 99
JC M132
L #Soll_S
L 1
<I // Sorte Nr zu nidrieg --> 1
JC M132
L #Soll_S

M132: T #Soll_S
L 1
-I
SLW 4
LAR1 // Adressen register für Sorte NR
// Wert von S nach Anzeige
L DIW [AR1,P#42.0]
T #Value_fuer_S

Network: 13 Grenzen prüfen

L #Actual_Dez
// Max Grenze prüfen
L #Max_Limit
<I
JC M141
T #Actual_Dez
M141: NOP 0
// Min Grenze prüfen
L #Actual_Dez
L #Min_Limit
>I
JC M142
T #Actual_Dez
M142: NOP 0

Seite von

You might also like