-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.

Beiträge anzeigen-Menü

Beiträge - gravieren

#361
Hallo Hugo

Ist es möglich, einen "geschützten Bereich" auf dem Forum einzurichten.


Zugriff nur für z.b.  Bets-Tester, Tester, Entwickler  ?


Karl
#362
Anmerkung.


CoDeSys ist auch nicht Problemlos   ;)

http://forum.3s-software.com/viewtopic.php?t=550


#363
Hi Hugo


Zitatnun wenn dem wirklich so ist das siemens hier nicht der iec61131 folgt dann werden eineige unserer time und date funktionen nicht auf siemens funktionieren.
Durchaus möglich, beim testen werden wir es festellen.

Zitatich frage mich ob es dann überhaupt sinn macht siemens zu supporten?
Wenn einige Bereiche NICHT funktinieren sollten, werden diese angepasst.(Siemens-Kompatibel)

Ich denke, mann sollte auf Siemens NICHT verzichten.

Hintergründe:
Enorm hohe Verbreitung von Siemens-Steuerungen.
Fehlende Quellcode-Verfügbarkeit von etlichen "Packeten"
Mischbetrieb von Siemens und CoDeSys möglich.
(Für Industrie-Maschinen verwenden wir Siemens, für den GLT-Bereich CoDeSys.)
(Aufgrund von OSCAT und OSCAT-S7 wachsen diese Systeme zusammen)
(Der Bekanntheitsgrad deiner Bibliothek KANN nur steigen.)


P.S.  Linus Thorwald (Linux)  lässt sich durch so kleine Probleme NICHT erschrecken.
Du und Daniel werden hierfür SICHERLICH Lössungen finden.
Ich werde weiterhin die OSCAT-S7 testen.
Nach Beendigung der Tests kann ich auf deine Anfrage nach WebVisu nachkommen.


Karl
#364
Hi Hugo


Zitateine beschreibung ist aber im handuch
Stimmt, arbeite jedoch oft OHNE Handbuch.


Danke.

#365
Hi Hugo

Bei der OSCAT-S7 kommt jedoch "-1ms" heraus.

(* @PATH := '\/engineering\/measurements' *)
(* @SYMFILEFLAGS := '2048' *)
FUNCTION_BLOCK cycle_time
TITLE = 'cycle_time'
//
// this function block measures the cycle time and displays the last, min and max cycle time of the current task.
// the resolution is 1ms.
// the cycles output is a dword counter which counts the cycles.
// a rst pulse on the input will reset all data.
//
VERSION : '1.1'
AUTHOR  : hugo
NAME    : CYCLE
FAMILY  : MEASURE

VAR_INPUT
    rst : BOOL;
END_VAR
VAR_OUTPUT
    ct_min : TIME := t#0s;
    ct_max : TIME := t#0s;
    ct_last : TIME;
    systime : TIME;
    sysdays : INT;
    cycles : DWORD;
    tcycles AT cycles : DINT;
END_VAR
VAR
    last_cycle : TIME;
    tx: TIME;
    init: BOOL;
END_VAR



(*
    version 1.1 12 dec 2006
    programmer  hugo
    tested BY       hans
*)

tx :=TIME_TCK() - last_cycle;
IF rst THEN
    ct_min := t#0s - t#1ms;
    ct_max := t#0ms;
    cycles := 0;
ELSIF last_cycle > t#0s THEN
    IF tx < ct_min THEN ct_min := tx;
    ELSIF tx > ct_max THEN ct_max := tx;
    END_IF;
    ct_last := tx;
ELSIF ct_min = t#0s THEN
    ct_min := t#0s - t#1ms;
END_IF;
IF init THEN
    systime := systime + tx;
        IF systime >= t#1d THEN
            systime := systime - t#1d;
            sysdays := sysdays + 1;
        END_IF;
END_IF;
init := TRUE;
last_cycle := last_cycle + tx;
tcycles := tcycles + 1;

(* hm 12.12.2006        rev 1.1

added cycles output, a dword cycle counter.

*)
END_FUNCTION_BLOCK



Oder hat sich da ein Tippfehler eingeschlichen  ?

#366
Hi

In der LIB dieser Funktion fehlen die Beschreibung und die Versionsangabe.

#367
Hi

Bei der Funktion cycle-time  wird bei RST die Variable ct_min
auf  (   ct_min := t#0s - t#1ms;  )  gesetzt.

Das dürfte etwa  -1ms  sein.


Ich habe etliche Optimierungen meines Pogrammes gemacht,
die min-Zyklus-Zeit wurde nie kleiner.   ;)

Sollte die Vorbesetzung mit z.b. 2000 ms erfolgen  ?


Die Zykluszeit beim nächsten Durchlauf wird bestimmt kleiner.

#368
Hi

Wird Plain Text auch angeboten  (V 1.5)   ?


#369
Hallo Hugo


Die Funktion    "sign_r"  wurde angepasst.   (Verbesserte Steuerungskompatibilität)


Kann die Funktion "sign_i"   auch angepasst werden  ?


P.S.   sign_r  ist leichter zu lesen und "komptibler"
#370
Hi Hugo


Meine E-Mail     info@magnia.de


#371
Hallo Hugo


Wie gesagt bin ich am austesten der OSCAT-S7.





Module FACT

IF x >= 0 AND x < 8 THEN
fact := 1;
i := 2;
WHILE x < i DO
fact := fact * i;
END_WHILE;
ELSE fact := -1;
END_IF;


Es wird eine Endlosschleife erzeugt.
In der "While" sollte  die Anweisung   "i := i + 1;"  stehen.




#372

Wäre super, ansonsten in der Version 1.6    ;)


#373
Hi Hugo


ZitatUnter Step 7 fehlen die Funtionen   cot  und acot.
Diese sollten auch unter CoDeSys geschrieben werden.

Optional mit den Name z.b.   _cot   und   _acot    falls auf dem Controllersystem bereits vorhanden.


1. Ich denke, dass möglicherweise NICHT alle COntroller über diese Funktion verfügen.
2. Die Basis der OSCAT-S7  sind deine Module, Erweiterungen/Ergänzungen sollten von dir kommen.


Danke dir Hugo



Karl
#374
Hi

Ich bin beim testen von FT_PID.   (OSCAT-S7)


Es sollten bereits sinnvolle Werte vorbesetzt werden !

D.h.    Wert an actual und set_point   danach sollte sich schon was "rühren".


Vorschlag:

KP      := 1.0;
TN      := T#10s;
TV      := T#1s;
limit_L  := 0.0;
limit_H := 100.0;


Um keinen Frust aufkommen zu lassen.  (Für unbedarfte Anwender)



P.S.  
Ohne Angabe von Parametern:
Beim Start "rührt" sich nichts, weil  limit_l und limit_h 0.0 sind.



Karl
#375
Hi Hugo

Ist neben gen_sin  auch ein Sägezahngenerator geplant  ?


Wie in Util.lib     (Fehlt natürlich unter OSCAT-S7  )

Karl