Hauptmenü

FT_PROFILE

Begonnen von mg, 26. April 2009, 12:35:20

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

mg

... der Stromausfall der Steuerung ist nicht berücksichtigt. Oder mache ich da was falsch?

hugo

nein stromausfall ist in ft_profile nicht berücksichtigt

martin.k

Hi mg,

sei so nett und erstelle mal einen Beitrag im Abschnitt "Anwendungsbeispiele / Application Examples" in dem Du zeigt was Du mit FT_Profile machst.
Ich habe den Text im Handbuch gelesen, aber trotz dem Ofenbeispiel nicht verstanden.

DANKE
Martin

astro9481

Hallo,

ich weiss der Beitrag ist schon ein wenig älter, aber ich habe da auch noh ein paar fragen zum FT_POFILE.

Ich wollte ihn benutzen um Sollwerte an ein Druckregelventil vorzugeben.
Sind die Werte in Abhängigkeit der zeit irgendwo abelegt? In dem Datenbaustein finde ich dazu nichts. Ich würde nämlich gerne die Sollwerte UND die Istwerte in einem Diagramm anzeigen. Dafür bräuchte ich die Werte aber. Ich könnte natürlich die Werte alle beim ersten Zyklus mitschreiben, aber ich wüde gerne sehen wie sich die Kurve verändert wenn ich die Daten eingebe. Schön wäre z.B. ein Array wo alle werte im 100ms takt drin stehen oder so.

Als SPS habe ich für dieses Proekt eine S7-300. Ich würde auch gerne mal in den Baustein reingucken, aber der Buastein ist ja aus dem SCL übersetzt, somit erkennt man da recht wenig. Gibt es evtl auch den Baustein in SCL, das ich mir den mal angucken kann. Vielleicht kann ich mir den ja auch selber anpassen. Ich bräuchte eigentlich auch mehr als 13 Wertepaare.



Mfg M.Plum

astro9481

So ich habe den Baustein jetzt so geändert das 20 Werte vorgegeben werden können. Das klappt auch alles soweit. Hat denn vielleicht einer eine Idee wie man die Werte evtl vorher in ein Array oder so schreiben kann. Damit ich alle Werte hintereinander stehen habe.

Gruss Marco

Sehe gerade das ich im falschen Forum bin. Soll ich einen neuen Beitrag aufmachen im S7 Forum?

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:
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


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

kp_volley

Noch eine Aktualisierung:

Laut meiner Beobachtung in der Variablentabelle braucht der Baustein immer genau 18sec um am Ausgang Y den Wert von Value_1 hochzuzählen.

Also
1. ist mein eingegebener Zeitwert antscheinend egal, weil der Baustein immer 18 sec braucht
2. geht es danach nicht mehr weiter, also nach Erreichen von Value 1

Nochmal meine Frage: Was muss ich machen, damit der Baustein korrekt funktioniert?