oscat.lib > oscat.lib fuer Step 7

FT_PROFILE

<< < (2/3) > >>

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