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

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

Thema: Systematik Bits in codesys

  1. #11
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo harald,
    bin heute abend(nachts) wieder an meinem entwicklungsrechner
    werde dann mal ein demoprojekt posten

    gruß

  2. #12
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Teil 1:
    um und auf ist ein pulsgenerator der einen 100ms impuls liefert.
    der impuls muss aber im durchschnitt!!! passen.
    anbei eine meiner funktionen die genau das macht,
    man kann den durchschnittlichen pulsinterval angeben

    der rest zum taktmerker ist nur bitlogik und in ST ein zweizeiler!

    gruß

    Code:
    FUNCTION_BLOCK _ah_Pulse_Gen
    VAR_INPUT
        tmsec : DWORD;
    END_VAR
    VAR_OUTPUT
        Q : BOOL;
    END_VAR
    VAR
        finit : BOOL;
        t_old : BYTE;
        t_sum : DWORD;
    END_VAR
    VAR_TEMP
        t_now : BYTE;
    END_VAR
    
    (*
    version 1.0    6. mar. 2013
    programmer     horst
    tested by    ???
    
    Die Funktion startet mit einer positiven Flanke und erzeugt alle angegebenen Millisekunden wieder eine Flanke
    wobei die Zykluszeiten ausgeglichen werden. D.h.z.B. 100+1 Impulse zu 100ms ergeben auch 10 Sekunden;-)  
    *)
    (* @END_DECLARATION := '0' *)
    
    
    t_now    := TIME_TO_BYTE(TIME());
    t_sum    := t_sum + SEL(finit, tmsec,t_now - t_old);
    t_old    := t_now;
    
    Q    := t_sum >= tmsec;
    
    IF Q THEN
        t_sum := t_sum - tmsec;
        finit := TRUE;
    END_IF;
    
    END_FUNCTION_BLOCK

  3. Folgender Benutzer sagt Danke zu HeHo für den nützlichen Beitrag:

    PN/DP (12.03.2015)

  4. #13
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Anbei die LIB mit 2 Funktionen.
    Hoffe es ist selbsterklärend.
    bei der Datei einfach das .zip weglöschen.

    gruß

    HeHo_Util_1.lib.zip
    Zitieren Zitieren HeHo_Util_1.lib  

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

    HaraldT (13.04.2017)

  6. #14
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Zitat Zitat von HeHo Beitrag anzeigen
    Anbei die LIB mit 2 Funktionen.
    Hoffe es ist selbsterklärend.
    bei der Datei einfach das .zip weglöschen.
    Schade, daß man um die paar Byte Lib zu sehen erst hunderte Megabyte Software installieren muß.

    Ist Dein Programm in ST? Kannst Du das einfach als Textdatei hier hochladen oder direkt posten? Oder ein Bild von dem Quelltext, damit man einen Überblick über den Code bekommt?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #15
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    gelöscht weil doppelt
    Geändert von HeHo (12.03.2015 um 09:32 Uhr)

  8. #16
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    habe gestern schon die kernfunktion und eben wieder als code im post eingestellt!!!
    aber ich bekomme die meldung das es erst vom admin freigeschalten werden muss?!?

  9. #17
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    nochmal als *.txt anhang

    kernstück ist die funktion die es ermöglicht alle xx millisekunden eine flanke
    zu generieren wobei zykluszeiten ausgeglichen werden müssen.
    mit der funktion wird ein 100ms takt erzeugt und der rest auf den "taktmerker"
    ist nur noch "bitlogik" und in ST ein zweizeiler.
    in der realität sind die 100ms zykluszeitabhängig aber der durchschnitt passt.

    _AH_PULSE_GEN.txt
    Zitieren Zitieren FUNCTION_BLOCK _ah_Pulse_Gen  

  10. #18
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Ah, OK, Du summierst die Zeitdauer des vergangenen freien Zyklus. Die Taktzeit schwankt dann also um bis zu einer Zykluszeit, was aber nicht schlimm ist, weil die Taktmerker ja auch so schwankend abgefragt werden.

    Und wie sieht der Zweizeiler aus zur Erzeugung der 8 Taktmerkerbits (100, 200, 400, 500, 800, 1000, 1600, 2000 ms)?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #19
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    b_500, xtakt : byte;

    b_500 := (b_500 OR MUX(b_500 AND 2#0000_0111, 2#0101_0011, 0))+1;
    xtakt := (((xtakt OR 2#0010_1000)+1) AND 2#0101_0111) OR (b_500 AND 2#1010_1000);

    PS: feedback erwünscht

  12. Folgender Benutzer sagt Danke zu HeHo für den nützlichen Beitrag:

    PN/DP (10.07.2015)

  13. #20
    Registriert seit
    18.10.2013
    Beiträge
    17
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ah, OK, Du summierst die Zeitdauer des vergangenen freien Zyklus. Die Taktzeit schwankt dann also um bis zu einer Zykluszeit, was aber nicht schlimm ist, weil die Taktmerker ja auch so schwankend abgefragt werden.
    wobei aber die mehrzeit für die nächste periode berücksichtigt wird

    horst

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 07.04.2015, 13:50
  2. tool MW in Bits
    Von screwdriver im Forum HMI
    Antworten: 5
    Letzter Beitrag: 22.05.2012, 09:27
  3. Systematik beim Programmieren...
    Von anne im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 12.07.2011, 19:59
  4. Bits im DB 42 zählen
    Von tanja im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 24.07.2007, 17:28
  5. Codesys Bits, Byte, Word und DWord
    Von Znarf im Forum Sonstige Steuerungen
    Antworten: 16
    Letzter Beitrag: 03.05.2007, 13:36

Lesezeichen

Berechtigungen

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