Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Themen - Quasi

Seiten: [1]
1
Hallo liebe Leute,

ich fange grad an mit SCL zu programmieren und möchte wieder mal die o.g. Funktion nutzen. (TIA V13 Prof. SP1, Upd.7 unter Win7-64)  CPU ist eine S7-1214C, Dabei komme ich an einer Stelle nicht weiter. Beim Aufruf der Funktion LINEAR_INT in einem SCL-FB fehlt mir der Rückgabewert, spricht das Rechenergebnis der Funktion. Beim Übersetzen gibt es die Fehlermeldung "Die Funktion gibt einen Wert zurück" - ja wo denn?
Folgendes wird im SCL-Editor dargestellt:

"LINEAR_INT"(X := #Dummy, XY := "DB_Stützpunkte".XY, Pts := 9);    // "LINEAR_INT" ist mit Wellenlinie unterstrichen mit Info "..Funktion stimmt nicht mit formalen Parametern überein.."
                                                                                                             // ... wo ist der Ausgangs-/Return-Wert ? bzw. wo und wie gehört er da noch hin?
"LINEAR_INT"(X:=_real_in_, XY:=_struct_in_, Pts:=_int_in_);             // nackter Aufruf

Bei Nutzung der Fkt. in FUP ist der ENO- und Ret_Val-Ausgang da... und die Funktion tut dort auch ihren Dienst.

Ich habe schon div. Versuche unternommen die Ausg.-Variable "Ret-Val" in verschiedensten Versionen in den SCL-Aufruf nachzudefinieren, jedoch ohne Erfolg.
Ist bei der Übersetzung der OSCAT-Bibliothek bei mir was schief gelaufen?
Wie bekomme ich den Ausgangswert der LINEAR_INT-Berechnung unter SCL?

Gruß, Jörg

2
oscat.lib fuer Step 7 / sporadisches Anlaufproblem mit FT_AVG's
« am: 05. Dezember 2010, 11:09:19 »
Hi,
ich bin dabei ein kleines Projekt mit Verwendung der FT_AVG-Funktion (V3.11) zur Mittelwertbildung zu erstellen. Es sind 5 Meßwerte, die z.T. auch negativ werden können. In einem FB werden nacheinander - mit ein bischen Logik dazwischen -  5x der FB23 aufgerufen, jeder mit eigenem DB. Funktioniert soweit auch ganz gut - aber eben nicht zuverlässig.
Ein Problem ist das bei Änderung der Anzahl "n" diese nicht richtig in die Funktionen übernommen werden, d.h. der betreffende Ausgang gibt dann dauerhaft falsche Werte aus. Stelle ich "n" wieder auf den vorherigen Wert zurück, stimmt der Ausgang wieder. Das habe ich damit behoben, das ich mit externer Logik bei Änderung der Anzahl "n" einen kurzer Resetimpuls an "RST" gebe.

Zweites, größeres Problem: Manchmal - nach dem Einschalten der SPS (313C) - gibt der eine oder andere FT_AVG "nan" aus. Selbst bei Verwendung eines Anlauf-Timers, der den Reset-Eingang für 2s aktiviert, passiert das manchmal. Habe ich hier einen Denkfehler bei der Verwendung der Funktion?
Oder muß ich die 5x FT-AVG-Fkt. im Anlauf-OB initialisieren?
Den Eingang "E" wird dabei über einen einstellb. Taktgeber mit pos. Flanke getriggert (derzeit 5Hz) und bei Systemstart mit dem o.g. Anlauftimer für 2s aktiviert.
Ich habe auch schon versucht die FT_AVG's zeitlich versetzt nacheinander und mit 100ms Abstand über ein Schieberegister-Bit an "RST"  zu initialisieren.
Selbes unzuverlässiges Anlaufproblem... :(
Ich könnte jetzt zwar zeitgesteuert einen zusätzlichen Resetimpuls erzeugen um so die sporadischen Anlaufprobleme zu beseitigen aber ich denke das muß auch anders gehen.
Hat jemand den entscheidenden Tipp für mich?

Nachtrag: in der Online-Beobachtung des gestörten, zugehörigen IDBs sieht man schön wie die Meßwerte nach Takt eingelagert werden, n-Zähler läuft durch, Ausgang AVG zeigt jedoch DW#16#FFFFFFFF
Gruß, Quasi

3
oscat.lib fuer Step 7 / Verständnisproblem bei AOUT, AOUT1
« am: 25. März 2010, 09:09:44 »
 Hi,
ich habe neulich versucht einen Funktionsgenerator unter S7 mit der Oscat-Lib aufzubauen. Das soll dann auf einer 314IFM laufen. Hat auch alles soweit gut funktioniert bis auf den Analogausgang den ich mit AOUT bzw AOUT1 machen wollte. Ist zwar alles gut beschrieben - ich bekomme es aber einfach nicht hin. Beim Datenformat für den Analogausgang heisst es bei S: Bit15: Vorzeichen, dann 12 Datenbits und der Rest (Bit 2...0) mit 0 aufgefüllt. So habe ich es bei AOUT1 eingestellt und nach Fehlschlag viele Varianten durchprobiert. Der Eingang bekommt von einer Rampenfunktion REAL 0.0 - 100.0 vorgegeben wird zyklisch durchlaufen. Hi- & Low- Beschaltung am AOUT1-Modul habe ich auf 100.0 bzw 0.0 eingestellt und auch verschieden variiert. Der Ausgang machte zwar mal was aber nur in der letzten Stelle von f auf 8, sonst alles auf "f". ???
Erwartet hatte ich eine Funktion wie der FC106 "UNSCALE". (Der funktioniert problemlos...)
Wo liegt mein Fehler? Hat jemand vielleicht eine funktionierende Konfig. als Bsp.?
Jörg

Seiten: [1]