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

Ergebnis 1 bis 9 von 9

Thema: Zähler CTUD aus der Standard.lib, tastzeiten der Eingänge?!

  1. #1
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe mir eine kleine Jalousiesteuerung programmiert, die einen CTUD zur Positionsbestimmung nutzt.
    Dieser ist für das hochfahren und das Runterfahren jeweils aktiv und zählt über Pulse hoch, bzw. runter.
    (Die Pulse werden nur als Flanke weitergegeben an den Zähler).

    Diese Pulse kommen in sehr kurzen Abständen (am liebsten 10ms, wegen Genauigkeit) doch leider "bekommt der Zähler die Impulse so nicht mit".
    Stelle ich den Abstand zwischen den Pulsen hoch auf 50ms kommen schon "mehr" an, aber immer noch nicht alle.
    Ich denke daher, dass es eine Grenze geben muss bis zu welcher der CTUD noch arbeitet, habe diese aber nirgends herausfinden können.

    Vielleicht kennt diese jemand und/oder kann mir sogar einen anderen Zähler empfehlen.

    Im Notfall baue ich selbst einen, würde dennoch gerne einen Fertigen nehmen.

    Danke und Grüße,
    Flo
    Zitieren Zitieren Zähler CTUD aus der Standard.lib, tastzeiten der Eingänge?!  

  2. #2
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    502
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    Eins vorneweg: Ich kann Deine Frage nicht konkret beantworten, ABER:

    wie generierst Du die Impulse? Wenn die über einen Eingang kommen könnte das Nadelöhr auch dort liegen. Die meisten Eingänge haben eine maximale Frequenz (= Abtastrate) - für die Mitsubishi-Steuerungen hatten wir damals spezielle High-Speed-Eingangskarten für solche Fälle.

    Vielleicht hilft Dir das als Denkansatz

    Viele Grüße und
    schönes Wochenende

    Christian
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  3. #3
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    750
    Danke
    27
    Erhielt 165 Danke für 143 Beiträge

    Standard

    Wenn ich mich recht erinnere, haben die Zählerbausteine der Standard-Lib eine integrierte Flankenauswertung für die Zählimpulse. Wenn Du im 10 ms-Takt zählen willlst, darf Dein Programm also nur höchstens 5 ms pro Zyklus benötigen.

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

    Standard

    Ich kann da nur zustimmen.

    Ich sehe zwei begrenzende Tatsachen:
    - Abtastrate der Task
    - Abtastrate der Eingänge

    Mir wäre neu, dass die Bausteine der Standard.lib nicht z.B. auch mit 50µs betrieben werden könnten.
    10 ms sollte also keine Herausforderung darstellen.

  5. #5
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    hier mal noch der angesprochene Programmausschnitt:

    Code:
    IF (xBlind_Up_Button OR xBlind_Up_Global OR  Instanz1_RS.Q1) AND NOT blind_limit_top THEN
    xBlind_UP:= TRUE;
    Blind_Going_Up:= TRUE;
    ELSIF (xBlind_Down_Button OR xBlind_Down_Global OR Instanz2_RS.Q1) AND NOT blind_limit_bottom THEN
    xBlind_DOWN:= TRUE;
    Blind_Going_Down:= TRUE;
    ELSE
    xBlind_UP:= FALSE;
    xBlind_DOWN:= FALSE;
    Blind_Going_Up:= FALSE;
    Blind_Going_Down:= FALSE;
    END_IF;
    
    
    Instanz1_BLINK(    ENABLE:=     Blind_Going_Up,
                        TIMELOW:=     T#50ms,
                        TIMEHIGH:=    T#50ms,
                        OUT=>            Pulse_Blink1 );
    
    Instanz2_BLINK(    ENABLE:=     Blind_Going_Down,
                        TIMELOW:=     T#50ms,
                        TIMEHIGH:=    T#50ms,
                        OUT=>            Pulse_Blink2 );
    
    Instanz1_R_TRIG(CLK:= Pulse_Blink1, Q=>rising_flank_count_up );
    Instanz1_F_TRIG(CLK:= Pulse_Blink1, Q=>falling_flank_count_up );
    
    Instanz2_R_TRIG(CLK:= Pulse_Blink2, Q=>rising_flank_count_Down );
    Instanz2_F_TRIG(CLK:= Pulse_Blink2, Q=>falling_flank_count_Down);
    
    Instanz1_CTUD(
        CU:= rising_flank_count_up OR falling_flank_count_up,
        CD:= rising_flank_count_down OR falling_flank_count_down,
        RESET:=FALSE,
        LOAD:= FALSE,
        PV:= 840,
        QU=> blind_limit_top,
        QD=> blind_limit_bottom,
        CV=> blind_current_position);
    Fragt mich nicht warum ich es teilweise so sinnlos programmiert habe Ist schon etwas älter.
    Aber im Grunde sehe ich spontan keinen Grund, warum der Zähler nicht zählen sollte.

    Der Taks wird zyklisch mit T#5ms aufgerufen.
    "xBlind_Up_Button" und "xBlind_Up_Global OR" sind beides boolsche VAR_INPUT wobei "Button" mit einem Taster belegt ist also einer %IX und "Global" eine Variable aus der Visu ist.

    Der Puls funktioniert beim Online Test, der Zähler zählt aber nicht wie er soll.

    PS: Teste es momentan NUR in der Simulation, also ohne PLC.(Problem?)

    Nutze eine WAGO 750-880.

    Grüße,
    Flo

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

    Standard

    Bei diesem "komischen" Simulations-Modus bin ich nicht sicher, wie schnell die Task dann wirklich läuft....und vor allem deterministish.
    Der Entwicklungs-PC ist ja dann für das Echtzeitverhalten zuständig.

    Aber um das alles auszuschließen, könntest du doch einfach mal nur ein kleines Programm mit den CTUD laufen lassen oder?

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

    Standard

    Hast du mal geschaut ob die beiden Variablen Blind_Going_Up und Blind_Going_Down zufällig mal gleichzeitig gesetzt sind?

    Ansonsten könntest du probehalber mal den CTUD in 2 Counter (CTU und CTD) trennen und schauen ob die richtig zählen.

    Läuft die Simulation auf der Wago oder auf deinem PC?
    Sänd from mei Kombjudder mitse Dastadurr.

  8. #8
    Avatar von KingHelmer
    KingHelmer ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Momentan läuft die Simu auf meinem Rechner hier. Habe gerade nicht die Möglichkeit an der WAGO zu testen.
    Ich hatte allerdings schon häufiger Probleme mit der Simulation, vielleicht erspare ich uns einen Haufen Spekulation, wenn ich einfach versuche, am Ende der Woche das Programm mal auf der SPS zum laufen zu bringen.

    Melde mich spätestens dann wieder!

    Flo

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jo vieleicht zerspucken dir ein paar Energiesparoptionen die Zykluszeit des Simulators. Bei Beckhoff reagiert die Runtime ja auch sehr empfindlich drauf.
    Sänd from mei Kombjudder mitse Dastadurr.

Ähnliche Themen

  1. Antworten: 48
    Letzter Beitrag: 10.05.2016, 10:39
  2. Step7 CFC Zähler CTUD
    Von DI87 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 22.03.2013, 09:55
  3. Antworten: 1
    Letzter Beitrag: 30.12.2010, 09:30
  4. Signale aus der Anlage; Reihenfolge auf der Klemmleiste
    Von Anonymous im Forum Schaltschrankbau
    Antworten: 3
    Letzter Beitrag: 17.12.2005, 11:21
  5. Hilfe bei der Ermittlung der Eingänge
    Von Anonymous im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 09.12.2003, 13:38

Stichworte

Lesezeichen

Berechtigungen

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