oscat.lib > oscat.lib fuer Step 7
FT_PROFILE
dalbi:
Hi,
eine Möglichkeit wäre es den Werte-DB mittels SFC20 BLKMOV direkt in den Instanz-DB zu kopieren.
Beispiel als AWL-Quelle:
--- Code: ---DATA_BLOCK DB 1
TITLE =
VERSION : 0.1
STRUCT
VALUE_0 : REAL ; //Value 0
Wertepaare : ARRAY [1 .. 7 ] OF //Wertepaare
STRUCT
_TIME : TIME ; //Time
_VALUE : REAL ; //Value
END_STRUCT ;
END_STRUCT ;
BEGIN
VALUE_0 := 0.000000e+000;
Wertepaare[1]._TIME := T#0MS;
Wertepaare[1]._VALUE := 0.000000e+000;
Wertepaare[2]._TIME := T#0MS;
Wertepaare[2]._VALUE := 0.000000e+000;
Wertepaare[3]._TIME := T#0MS;
Wertepaare[3]._VALUE := 0.000000e+000;
Wertepaare[4]._TIME := T#0MS;
Wertepaare[4]._VALUE := 0.000000e+000;
Wertepaare[5]._TIME := T#0MS;
Wertepaare[5]._VALUE := 0.000000e+000;
Wertepaare[6]._TIME := T#0MS;
Wertepaare[6]._VALUE := 0.000000e+000;
Wertepaare[7]._TIME := T#0MS;
Wertepaare[7]._VALUE := 0.000000e+000;
END_DATA_BLOCK
FUNCTION FC 1 : VOID
TITLE =
VERSION : 0.1
VAR_TEMP
tRET_VAL : INT ;
END_VAR
BEGIN
NETWORK
TITLE =
// Kopiert die Daten aus dem DB1 mit der Länge von 56 Byte
// in den Instanz-DB DB206
CALL SFC 20 (
SRCBLK := DB1.Wertepaare,
RET_VAL := #tRET_VAL,
DSTBLK := P#DB206.DBX18.0 BYTE 56);//"IDB_FT_PROFILE" ab time_1
CALL FB 206 , DB 206 (
value_0 := DB1.DBD 0);
END_FUNCTION
DATA_BLOCK DB 206
TITLE =
AUTHOR : tobias
FAMILY : AUTOMAT
VERSION : 0.0
FB 206
BEGIN
K := 1.000000e+000;
O := 0.000000e+000;
M := 1.000000e+000;
E := FALSE;
value_0 := 0.000000e+000;
time_1 := T#0MS;
value_1 := 0.000000e+000;
time_2 := T#0MS;
value_2 := 0.000000e+000;
time_3 := T#0MS;
value_3 := 0.000000e+000;
time_10 := T#0MS;
value_10 := 0.000000e+000;
time_11 := T#0MS;
value_11 := 0.000000e+000;
time_12 := T#0MS;
value_12 := 0.000000e+000;
time_13 := T#0MS;
value_13 := 0.000000e+000;
Y := 0.000000e+000;
RUN := FALSE;
ET := T#0MS;
tx := T#0MS;
edge := FALSE;
state := B#16#0;
ta := T#0MS;
tb := T#0MS;
t_0 := T#0MS;
temp := 0.000000e+000;
va := 0.000000e+000;
vb := 0.000000e+000;
END_DATA_BLOCK
--- Ende Code ---
Gruss Daniel
astro9481:
Ja das ist mir klar wie ich die werte dahin bekomme.
War vielleicht ein wenig blöd ausgedrückt.
Es geht um folgendes.
Ich will einmal die Sollkurve und einmal die Istkurve anzeigen. Die Istkurve wollte ich über den OB35 zyklisch alle 10ms aufnehmen und die werte dann anzeigen. Also Panel wird ein MP377 eingesetzt. Jetzt wll ich allerdings wenn ich sollwerte vorgebe z.B 1000ms=100mbar, 2000ms=200mbar, 4000ms=200mbar, 6000ms=400mbar usw usw, das diese Werte in der richtigen skalierung zu einander liegen, also das ich die kurven auch übereinander legen kann. also müssen mir die zwischenschritte ja errechnet werden und eben falls in ein Array geschrieben werden.
Hoffe mein Problem ist jetzt erkannt.
Gruss marco
dalbi:
Hi,
schau Dir mal die Funktion der bitgetriggerten Kurven an, vielleicht ist es das was Du suchst.
http://support.automation.siemens.com/WW/view/de/21913875
Gruss Daniel
astro9481:
Hallo,
ich bin erst jetzt wieder zum weiteren testen gekommen. Also mit den bitgetriggerten Kurven bin ich eh schon am rumbasteln. Aber das Problem was ich habe, die Reale Kurve möchte ich im 10ms Takt aufzeichen, wobei ich die Sollwertkurve nur anhand von 20 Wertepaaren eingeben will. Das dann der FT_Profile abfährt. Wie bekomme ich diese unterschiedlichen Wert in eine Tabelle.Ich muss maximal 16s aufzeichen, somit ergibt sich bei 10ms auflösung 1600 Werte. Die Istwerte ist nicht das Problem, die Speicher ich im DB und lese die ein. Aber wenn ich jetzt die Sollwerte vorgebe hab ich ja nur 20werte aber halt auch den Zeitwert.
Und hier ist das Problem. Ich habe mehrer ansätze das Problem zu lösen:
1. Gibt es eine Funktion wo ich eine Kurve zeichnen kann wo ich X und Y Wert vorgebe?
2. Ich muss die zwischenschritte der Sollkurve errechnen lassen, wo ich noch nciht genau weiss wie ich das anstelle?!?
Hat vielleicht noch jemand eine andere Idee.
Gruss Marco
kp_volley:
Hallo,
ich bin neu hier und möchte gerne den Baustein FB 206 (FT_PROFILE) verwenden.
Ich möchte damit ein Drehzalprofil von 0-100% erstellen.
Leider stimmt der Wert Y am Ausgang gar nicht mit den Vaules ein, die ich als In-Parameter eingegeben habe..
Ich habe das Gefühl, der Baustein zählt einfach irgendwie :-/
Hat jemand eine Idee, was ich falsch mache bzw. kann mir jemand genauer erklären, wie der Baustein arbeitet bzw. verwendet werden muss.
(Das PDF zur Libary hilft mir nicht wirklich weiter..)
Vielen Dank schon mal!
LG
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln