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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Systematik Bits in codesys

  1. #1
    Registriert seit
    04.02.2013
    Beiträge
    271
    Danke
    12
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, gibt es bei einer codesys runtime auch Systemtakt Bits, wie die taktmerker bei Siemens?
    Geändert von SY50 (27.02.2015 um 23:08 Uhr)
    Zitieren Zitieren Systemtakt Bits in codesys  

  2. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Mir ist nichts derartiges im Standard Codesys bekannt. Es kann aber sein, dass einer der Hardware Hersteller so etwas für seine PLC mit in die Firmware gepackt hat.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

  3. #3
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Alle 50ms ein Byte um 1 erhöhen und schon hat man seine 8 Taktmerker Bits.
    Völlig unnötig soetwas hardwaremäßig fest zu rammeln, vorallem weil es so nur feste Teiler gibt und man sich sowieso alle anderen Frequenzen zurecht basteln muss.
    Sänd from mei Kombjudder mitse Dastadurr.

  4. #4
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Vielleicht ne dumme Frage, aber wozu braucht man das (bei Siemens) ?

  5. #5
    Registriert seit
    07.06.2007
    Beiträge
    143
    Danke
    2
    Erhielt 24 Danke für 24 Beiträge

    Standard

    Hi Sy50,

    nein gibt es nicht, aber es gibt die Bibliothek "util.lib" da ist ein "blink" FB drin. Den kannst du aufrufen und deinen Takt vorgeben. Du kannst im Prinzip jeden Takt abbilden sofern die Zeitvorgaben im Taskkontext sinnvoll sind. z.B. solltest du nicht eine Task mit 2s aufrufen und den Blink FB mit 10ms blinken lassen das wäre quatsch.

    @max203: Siemensprogrammierer nutzen das z.B.: um zyklisch irgend einen Zustand abzuprüfen oder ganz einfach die rote Lampe bei Fehler blinken lassen ala:

    U Error
    U M0.0
    = Lampe an

    hier ist das Merkerbyte 0 als Taktmerker definiert. M0.0 bis M0.7 haben eine feste Frequenz bzw. 1Hz, 2Hz,...

    Ich hoffe geholfen zu haben.

    Gruße excelite

    Edit: Von harten Zählern wie vorgeschlagen, die jeden Zyklus hochzuzählen würde ich absehen da du im Falle, dass dein Code wiederverwendet werden soll immer beachten musst, dass die Task gleich aufgerufen wird wie beim letzten Mal. Außerdem kann es bei der Entwicklung eines Projektes dazu kommen dass Codeteile von einer Task ausgelagert werden in eine andere und dann der Ablauf nicht mehr sinnvoll arbeitet da nun eine andere Basis gilt.
    OK es gibt Funktionen die dir die aktuelle Taskzeit zurückgeben und du könntest das berücksichtigen beim hochzählen,... aber das macht alles kompliziert. Außerdem funktioniert das nicht bei Freewheel/freilaufenden Tasks.

    ==> Beste Lösung: Blink FB nehmen oder selbst einen FB schreiben falls man die Bibliothek nicht verwenden möchte.
    Geändert von excelite (03.03.2015 um 00:23 Uhr) Grund: was vergessen
    Zitieren Zitieren Blink FB aus util.lib  

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.288
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard

    Zitat Zitat von mac203 Beitrag anzeigen
    Vielleicht ne dumme Frage, aber wozu braucht man das (bei Siemens) ?
    Zur Zeitersparnis beim Erstellen der fast immer benötigten Blink-Bits. Außerdem gibt es nicht wenige Programmierer, welche die einfache Lösung mit dem 8-Bit-Zähler nicht kennen und die Aufgabe furchtbar umständlich lösen.
    Außerdem sind die Systemtakt-Bits viel Zeit-genauer als mit Timern erstellte und zueinander phasenstarr. Vergleichbar genaue Taktbits kann man nicht mit Blink-FB in freilaufenden Task erzeugen sondern muß sie in Task mit festem Aufrufraster erzeugen. Und da wird es auch schon wieder komplizierter als einfach fertige Taktbits zu nutzen.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    15.08.2011
    Beiträge
    383
    Danke
    2
    Erhielt 73 Danke für 71 Beiträge

    Standard

    Vielen Dank.
    Es amüsiert doch immer wieder, wie "seltsam" bei Siemens manches gelöst ist.
    Aber stimmt natürlich, ohne feste Zykluszeit wirds schwer einen solchen Blinker zu realisieren...
    Bin da zu sehr in der komfortablen CoDeSys Welt verwurzelt....

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

    Standard

    Jo bei Siemens ist so ein Taktmerker sicher noch sinnvoll weil der Standardzyklus nicht isochron ist. Viele Steuerungen (die meisten ?) arbeiten aber mittlerweile mit festen Taskzyklen deren Jitter max. im 2 stelligem µs Bereich liegt. Da funktionieren Timer schon recht genau.
    Sänd from mei Kombjudder mitse Dastadurr.

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

    Standard

    Hallo,
    ich habe eine Funktion entwickelt die den Siemens Taktmerker recht genau und Recourcenschonend nachbildet (100,200,400,500,800,1000,1600,2000 ms) die funktioniert auch in freilaufenden Tasks, da die unterschiedlichen Zykluszeiten ausgeglichen werden. Funktioniert auch in der Simulation mit 65ms Zykluszeit!!! Allerdings ist dann der 100ms Takt relativ unterschiedlich ca. +- 30ms
    Bei Interesse bitte Posten dann kann ich die Lib ja mal zum Testen einstellen.
    Gruß

  10. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.288
    Danke
    932
    Erhielt 3.320 Danke für 2.682 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von HeHo Beitrag anzeigen
    Hallo,
    ich habe eine Funktion entwickelt die den Siemens Taktmerker recht genau und Recourcenschonend nachbildet (100,200,400,500,800,1000,1600,2000 ms) die funktioniert auch in freilaufenden Tasks, da die unterschiedlichen Zykluszeiten ausgeglichen werden. Funktioniert auch in der Simulation mit 65ms Zykluszeit!!! Allerdings ist dann der 100ms Takt relativ unterschiedlich ca. +- 30ms
    Bei Interesse bitte Posten dann kann ich die Lib ja mal zum Testen einstellen.
    Gruß
    Ich habe Interesse, den Quelltext zu sehen, mit dem man "die Siemens Taktmerker recht genau und Recourcenschonend nachbildet" in freilaufenden Tasks.
    Zeige uns den doch mal bitte.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ä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
  •