Step 7 CFC-Programmierung

Jeremy3

Level-1
Beiträge
116
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich würde gerne verschiedene Bits und Realwerte zu einer Variable zusammenfügen. Gibt es da, bezüglich CFC , Bausteine die verschiedene Daten zu einer Struktur zusammenfügen oder einem String z.b ?

Freundliche Grüße

Jeremy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok, und wie sieht es in AWL oder FUP aus. Gibt es da eine Möglichkeit eine Funktion oder Funktionsbaustein zu erstellen der die Daten sammelt oder vllt sogar etwas vorgefertigtes ?

Freundliche Grüße

Jeremy
 
Nein, Strukturen und arrays gibt es in cfc erstmal nicht.
um das "erstmal" näher zu spezifizieren:
Seit der PCS7-APL-Bibliothek gibt es in CFC auch Strukturen. Ich habe aber noch keine "Freigabe" gesehen, das diese Funktionalität auch unter Step7+CFC verwendet werden kann. Weiterhin kenne ich auch keine Anleitung dafür.
Auf jeden Fall ist das aber eine Überlegung wert, deshalb habe ich jetzt mal unter Step7 5.5 eine CFC-Version von der PCS7-DVD installiert (CFC 8.0 SP2 Upd1 z.B.) und siehe da, ich kann eigene Strukturen verwenden.
wie mache ich das:
siehe PCS7-APL-Styleguide: http://support.automation.siemens.com/WW/view/de/65601446 ab Seite 44
Du musst eigene Bausteine schreiben mit folgender Ein/Ausgangsdeklaration:
Code:
// Struktur Analogwert
PV: STRUCT
Value : REAL := 0.0; // Value
ST : BYTE := 16#80; // Signal Status
END_STRUCT
Das folgende Beispiel zeigt die Zuweisung einer Struktur:
// Zuweisung
PV.Value := X1 + X2;
PV.ST := 16#78;
Die Frage stellt sich nur, ob das schon mit der für Step7 zugelassenen CFC-Version 8.0 SP0 Upd0 auch schon funktioniert.
Eine schöne Sache, evtl. frag ich da Siemens mal nach einer Freigabe für die nächsten Projekte an.
Gruß.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte gerne verschiedene Bits und Realwerte zu einer Variable zusammenfügen und diese dann an ein DB übertragen. Damit hätte ich dann nur einen AUsgang und nicht so viele . Benutze Step 7 version 5.5 mit mit CFC v 6.1 mit SP1.
Also muss man sich extra eine SCL Funktion schreiben für so eine einfache Sache ?

Freundliche Grüße

Jeremy
 
Ich möchte gerne verschiedene Bits und Realwerte zu einer Variable zusammenfügen und diese dann an ein DB übertragen. Damit hätte ich dann nur einen AUsgang und nicht so viele . Benutze Step 7 version 5.5 mit mit CFC v 6.1 mit SP1.
Also muss man sich extra eine SCL Funktion schreiben für so eine einfache Sache ?
Hmm, erstmal muss ich mich etwas korrigieren, STRUCT funktioniert auch schon mit älteren CFC-Versionen (ob auch schon 6.1 weiss ich aber nicht), hat nur irgendwie niemand genutzt. Vermutlich weil man das nicht ordentlich zur Visu bekommt (neu ist nämlich das Attribut S7_xm_c)

Du kannst verschiedene Variablen in einer STRUCT-Variable zusammenfassen. Nur gibt's dafür keinen fertigen Baustein, welcher die Zusammenführung macht, da ja die Struktur beliebig aussehen kann.

Du musst Dir also, am besten in SCL, nen Baustein schreiben, welcher die einzelnen Elemente als Eingang hat und die Struktur als Ausgang. Diesen Baustein kannst Du dann in CFC "reinziehen" und die Signale dranhängen. An den Ausgang solltest Du dann hoffentlich das DB-Element dranhängen können, wenn es die selbe Struktur hat.
 
Man kann zwar Strukturen in CFC zwischen Bausteinen verschalten, aber man kann nicht aus dem CFC-Plan heraus auf Strukturelemente zugreifen.
Hat man beispielsweise in einem DB ein Struct das eine Integervariable beinhaltet, kann man diesen Wert nicht z.B. mit einem MUL_I Bastein direkt im CFC-Plan verschalten. Zumindest war das bei CFC 7.1 noch so. Wenn man das machen will muss man die DB-Absolutadresse angeben, und das möchte man eigentlich vermeiden.

Wie man auf die Idee kommt der hier gewünschte Spezialbaustein ist in CFC integriert sein könnte ist mir schleierhaft. Wenn man ein einziges mal eine nackte CFC-Installation in Step7 gestartet hat, dürfte einem sofort auffallen dass dort nur absolut elementare Bausteine (und nicht mal vollständig, SEL_I nur als Beispiel) für Basisfunktionen mitgeliefert werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zumindest war das bei CFC 7.1 noch so.

Ist auch immer noch so, mit der Ausnahme der PCS/-APL-Strukturen. Dort kannst Du den Value aus der Struktur (Value und ST) direkt verschalten. Also z.B. kann Du an den Add04 (APL) direkt den ADD_R (CFC) dranhängen. Der Add04 hat ne Structur der ADD_R nicht.

Gruß.
 
Hallo

gibt es in diese Richtung schon was neues?

Ich habe Step7 V5.5 CFC V8.0 SP4 CPU314

Ich lese über ein CP eine ET200 aus und schreibe die Werte in DB Struct, nun kann ich diese nicht im CFC verrwenden ohne diese in ein zwischen DB zu schreiben.


Grüße
 
Zurück
Oben