Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 30

Thema: Eigene Bibliothek, Zeitfunktionen u.a.

  1. #11
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... naja ... die TON und TOF kommen ja schon aus dem System ... und wenn ich mir z.B. bei Siemens den Inhalt der Instanz dieser "Bausteine" so ansehe ...

  2. #12
    Avatar von JanB1
    JanB1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard

    Ich arbeite an meinem Arbeitsplatz halt vor allem mit Wago, respektive CoDeSys. Dort sind auch die Standardfunktionen (TON und TOF) in einer Bibliothek abgelegt die man auch einfach deaktivieren kann. Ich hab grad nirgends n TIA Portal, kannst du mir den Inhalt dieser Bausteine mal zeigen?

  3. #13
    Registriert seit
    27.07.2012
    Ort
    AUT
    Beiträge
    480
    Danke
    84
    Erhielt 159 Danke für 90 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    Man benutze die Flanke eines sich periodisch ändernden Signals ... z.B. 1Hz.
    mit jeder positiven oder negativen Flanke wird der Timerwert inkrementiert - bei 1Hz also Sekundenweise
    man kann auch jede positive und negative Flanke benutzen und hat somit 2Hz ... 0,5s Zähler
    Und wo bekommst du ohne Timer das 1Hz Signal her? EDIT: Außerdem sind die 0,5 s Genauigkeit wohl noch schlechter als die 2zykl...

    Zitat Zitat von vierlagig Beitrag anzeigen
    bei der Lösung mit der Auswertung der Zykluszeit? hast du min. 1xZykluszeit, kleiner ist nur schwer zu realisieren. 10s TON angenommen, die Addition der letzen gemessenen Zykluszeit ergibt 9,998s, der nächste Zyklus darf also max. 2ms dauern, hat aber 10ms in Anspruch genommen, liegt man formell schon mal 8ms daneben. dazu kommt die Laufzeit von Auswertung zu Auswertung, bei der Annahme durchschnittlicher Zyklus 10ms, hat man die Auswertungen in der Regel im Abstand von durchschnittlich 10ms ... also 1xZykluszeit ... (der Wert des vorhergehenden Zyklus steht synchron, zu Beginn des neuen Zyklusses zur Verfügung und wird nicht aktualisiert)
    Da war ich wohl zu ungenau, ich würde meinen Timer mit kostanter Zykluszeit aufrufen, damit kommt das im Endeffekt auf die Lösung raus die du mit dem 1HZ Takt beschrieben hast. Damit wird die Genauigkeit imho irgendwo <1 Zykluszeit sein.

    Zitat Zitat von vierlagig Beitrag anzeigen
    Und die Erfahrung lehrt mich, dass man mit <2xZykluszeit durchaus gut liegt und für die Mehrzahl der Anwendungen ist das auch vollkommen ausreichend.
    ACK
    Regards NRNT

  4. #14
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    In CODESYS V2 sind die Funktionen der Standard.lib direkt im Laufzeitsystem implementiert. In V3 sind die Funktionen in ST implementiert.
    Und den Code sollte man sich auch anschauen können.

    Man kann das aber genauso auch in der 2.3 machen. Alles was man dazu braucht ist ein Timetick mit fester Auflösung.
    Den liefert in CODESYS der (nicht so ganz öffentliche) TIME-Operator.

    Für TON sieht das zum Beispiel folgendermassen aus.

    Code:
    FUNCTION_BLOCK TON
    (*
        Timer on delay.
        Q is TRUE, PT milliseconds after IN had a rising edge.
    *)
    VAR_INPUT
        IN: BOOL;    (* starts timer with rising edge, resets timer with falling edge *)
        PT: TIME;    (* time to pass, before Q is set *)
    END_VAR
    VAR_OUTPUT
        Q: BOOL;    (* is TRUE, PT seconds after IN had a rising edge *)
        ET: TIME;    (* elapsed time *)
    END_VAR
    VAR
        M: BOOL;            (* internal variable *)
        StartTime: TIME;    (* internal variable *)
    END_VAR
    
    IF (IN) THEN
        IF (NOT M) THEN
            (* Start Timer *)
            STARTTIME := TIME();
        END_IF
        IF (NOT Q) THEN
            (* Timer is running *)
            ET := TIME() - STARTTIME;
            IF (ET >= PT) THEN
                Q := TRUE;
                ET := PT;
            END_IF
        END_IF
    ELSE
        (* Reset everything *)
        Q := FALSE;
        ET := t#0s;
    END_IF
    M := IN;
    Bernhard Werner
    3S-Smart Software Solutions (CODESYS)

  5. Folgender Benutzer sagt Danke zu Werner29 für den nützlichen Beitrag:

    JanB1 (12.08.2014)

  6. #15
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard

    Ich habe es jetzt sogar geschafft eine Standard-Intern.lib hochzuladen.
    Die Lib im Archiv sollte sich einfach mit CODESYS öffnen lassen und enthält die gesamte Standard.lib als ST-Code enthalten.
    Ich übernehme keinerlei Verantwortung für den Inhalt, das Ding wurde vor Jahren mal geschrieben und ist komplett ungetestet.
    Angehängte Dateien Angehängte Dateien
    Bernhard Werner
    3S-Smart Software Solutions (CODESYS)

  7. #16
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    ... und ungefähr so ähnlich stelle ich es mir vor, dass es in STEP7 auch funktioniert ...

  8. #17
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    ... und ungefähr so ähnlich stelle ich es mir vor, dass es in STEP7 auch funktioniert ...
    Was meinst du? Werners Aussage?
    Ich übernehme keinerlei Verantwortung für den Inhalt, das Ding wurde vor Jahren mal geschrieben und ist komplett ungetestet.

  9. Folgender Benutzer sagt Danke zu MasterOhh für den nützlichen Beitrag:

    vierlagig (12.08.2014)

  10. #18
    Avatar von JanB1
    JanB1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.08.2014
    Ort
    Basel
    Beiträge
    208
    Danke
    23
    Erhielt 20 Danke für 19 Beiträge

    Standard

    Vielen, vielen, vielen Dank Werner. Haha, so sollte das funktionieren. Jetzt kann ich das doch noch so machen wie ich mir das vorgestellt habe.

    Dass es eine solche time() funktion gibt wusst ich nicht. Das macht das ganze natürlich deutlich einfacher. Ich werd mich mal dran setzen und einen TON, einen TOF, einen TONOF (Ein- und Auschschaltverzögerung kombiniert), ein STON (Saving Timer - OFF Delay) sowie noch einige andere Funktionen erstellen. Wenn ihr wollt kann ich das Ergebnis dann hier hochladen, ich rechne damit dass ich das morgen Abend in etwa fertig haben sollte.
    Geändert von JanB1 (12.08.2014 um 19:56 Uhr)

  11. #19
    Registriert seit
    16.11.2007
    Beiträge
    179
    Danke
    11
    Erhielt 53 Danke für 39 Beiträge

    Standard

    Schau doch mal bei www.oscat.de in deren Lib ist schon vieles quellcodeoffen drin für CoDeSys und S7,

    da brauchs´t nicht nochmal alles neu erfinden .

    Grüße Jan

  12. #20
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von MasterOhh Beitrag anzeigen
    Was meinst du? Werners Aussage?
    Genau ... auf den Beitrag habe ich mich bezogen ...
    Das war mir nicht klar, dass das mißverständlich verstanden werden konnte ...

Ähnliche Themen

  1. eigene Visualisierungsobjekte als Bibliothek abspeichern
    Von carki im Forum CODESYS und IEC61131
    Antworten: 18
    Letzter Beitrag: 19.07.2013, 17:36
  2. Eigene Bibliothek öffnen
    Von zergi im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 15.12.2010, 14:55
  3. Eigene FB und FC in die Bibliothek einfügen
    Von Duffdunker im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 26.11.2008, 15:41
  4. Eigene FC´s in Bibliothek
    Von Deep Blue im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 18.06.2007, 10:10
  5. WinCC Flexible und eigene Bibliothek
    Von Waelder im Forum HMI
    Antworten: 0
    Letzter Beitrag: 14.11.2005, 10:32

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •