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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zeit-Funktion

  1. #1
    Registriert seit
    26.05.2011
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn eine Lichtschranke genau auf der Höhe "Oberkante des zu schneidenden Blockes" positioniert ist, und somit der Lichtstrahl ständig zwischen unterbrochen und frei wechselt:

    unterbrochen - frei - unterbrochen - frei - unterbrochen ......

    entsteht ein flackerndes Eingangssignal in die SPS.

    Wie kann ich ein solches Flackern des in die SPS eingehenden Signales durch die Programmierung rausfiltern, damit der Kasten sich nicht ständig zwischen zwei Höhen hin und her bewegt.
    Ich Programmiere mit CoDeSys in der Sprache "strukturierter Text" und hoffe ihr könnt mir bei der Lösung des Problems in genau dieser Sprache behilflich sein.

    Danke
    Geändert von JohnJRambo (10.06.2011 um 10:10 Uhr)
    Zitieren Zitieren Zeit-Funktion  

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

    Standard

    Die Antwort hast Du Dir mit der Thread-Überschrift doch schon selbst gegeben.

  3. #3
    Registriert seit
    13.06.2008
    Beiträge
    182
    Danke
    15
    Erhielt 25 Danke für 22 Beiträge

    Standard

    Hallo!

    Was willst du jetzt genau wissen?

    Wie man das umsetzen soll?
    Wie man eine Timer-Instanz (Ein-, Ausschalt-Verzögerung, Impuls) in Strukturiertem Text aufruft?
    Oder ein Code Beispiel für die Ablaufsteuerung (Einlauf, Höhe ermitteln, Trichter positionieren, sägen, Trichter hochfahren...)

    Gruß L.T.

  4. #4
    Registriert seit
    13.05.2011
    Beiträge
    16
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,
    kannst du das nicht so lösen wenn dein Laser ein mal unterbricht mit einer Negativen Flanke dort stehen bleibt?
    Dann hast du die Höhe für den Block und kannst deine Absaugung positionieren. Nach dem der Block durchgefahren ist bekommst du deine Positive Flanke - damit wieder in die Grundstellung und die Ermittlung der höhe geht erneut los.

    Bezw. wenn es so nicht lösbar ist da du nicht jedes mal von einer Grundstellung runterfährst und du nicht weißt ob der Block dann dort ist,
    wäre es möglich das unterbrochen - frei - unterborchen mit einen CTU oder CTUD mitzuzählen. Wenn es z.B. 3 mal unterbrochen wurde das Ausgangsword somit 3 ist. Das du dann auf der Gepeicherten höhe deinen Sauger Positionierst. Sobald dein Laser dann wieder eine Positive Flanke bekommt Beispiel:"IF CTUD_Zähler1.WordVar (oder direkt zählerausgang) = 3 and NOT laser_var THEN ....."

    Vielleicht hilft dir das als denkanreiz.
    Mehr ist so früh morgens nicht drin - sorry.

    LG

  5. #5
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Wenn im Lichtgitter mehrere Lichtschranken sind, die einzeln in die SPS geführt sind, oder wenn die Anzahl der unterbrochenen Lichtschranken in die SPS eingelesen wird, kannst Du der Steuerung eine Hysterese verpassen.
    Also:
    Hochfahren wenn eine bestimmte Lichtschranke unterbrochen wird und runterfahren erst dann wenn eine bestimmte andere Lichtschranke darunter wieder frei wird.
    Durch die Wahl des Abstandes der beiden Lichtschranken kannst Du Deine Dreipunktregelung (das ist es nämlich) mehr oder weniger beruhigen, ohne das Zeitverhalten der Regelung bei wirklich erforderlichen Bewegungen zu verlangsamen.

    Mit Timern würde ich das nur dann lösen, wenn diese Möglichkein nicht besteht,denn dann wird die Regelung träger.

    Gruß
    Erich

  6. #6
    JohnJRambo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.05.2011
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ein Code Beispiel für die Ablaufsteuerung würde mir sehr helfen!
    Auch weiß ich nicht wie man eine Zeitfunktion in st aufruft.

    Das mit der Lichtschranke sieht so aus, das es ein analoges Ausgangssignal liefert. Je höher das Ausgangssignal um so mehr Lichtschranken sind unterbrochen und um so höher ist das Schnittgut.

    Wenn jetzt allerdings die Oberkante des Schnittguts genau am Lichtstrahl liegt, entsteht das wie schon im vorherigen Beitrag erwähnte flackern. In diesem Fall sollte der Kasten in der Höheren der beiden Positionen stehen bleiben ohne sich ständig in der Höhe zu verstellen

    Wie kann so ein Programm in st konkret aussehen?
    Geändert von JohnJRambo (10.06.2011 um 10:11 Uhr)
    Zitieren Zitieren Beispiel in st  

  7. #7
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Wenn ein Analogwert vom Lichtgitter kommt ist es auch leicht.
    Nochmal: Nicht über Timer, sondern schalten mit Hysterese.
    Also:
    Wenn ein oberer Schaltpunkt überschritten wird hochfahren, wenn ein unterer Schaltpunkt unterschritten wird runterfahren, dazwischen stehen bleiben.
    Das sind zwei Vergleiche und das wars. Wo ist das Problem?
    Fang mal an und zeig den Kode, wenn es dann an einer bestimmten Stelle klemmt wird Dir hier sicher weiter geholfen.
    Gruß
    Erich
    Geändert von LargoD (27.05.2011 um 10:31 Uhr) Grund: Tippfehler

  8. #8
    Registriert seit
    01.03.2008
    Beiträge
    487
    Danke
    3
    Erhielt 43 Danke für 39 Beiträge

    Standard

    hallo,

    ich gehe davon aus das es ungefähr so aussieht:
    LS1=10cm
    LS2=20cm
    LS3=30cm
    LS4=40cm
    LS5=50cm
    usw..

    Wenn die LS3 aus ist und dann die LS4 kommt dann lässt du einfach einen counter auf die Position 40cm fahren. Alle 200ms 1 cm oder so. Dann kann es zwar sein, das deine Absaugung ständig hoch und runter schwenkt, aber so ist das halt.

    Eventuell muß die Absaugung nach oben schneller fahren als runter, damit es keine Kollision gibt.
    Zu berücksichtigen ist natürlich auch, wie schnell sich deine Absaugung bewegen lässt. Ausprobieren hoch und runter und dann umrechnen...

    Bis dann...

    MfG CAS
    www.cas-solution.de

    Alles geregelt...


    Weltraumflug in den USA zu gewinnen!
    Kratze hier ▒▒▒▒▒▒▒▒▒▒▒▒ mit einer Münze,
    und finde heraus, ob Du der Gewinner bist!

  9. #9
    JohnJRambo ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    26.05.2011
    Beiträge
    8
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    saege:=input_1

    FOR ABS differenz > 5 DO
    hoehe_wabenscheibe:=input_2*a (*input_2 = analoges Ausgangssignal des messenden Lichtvorhangs; a = konstanter Faktor bzw. durch Formel zu ersetzen*)
    hoehe_ist:=input_3*b (*input_3 = Poti Motor; b = konstanter Faktor bzw. durch Formel zu ersetzen*)
    differenz:= hoehe_Wabenscheibe - hoehe_ist
    stellsignal:=differenz*c (*c = konstanter Faktor bzw. durch Formel zu ersetzen*)
    END_FOR

    END_IF
    Geändert von JohnJRambo (08.06.2011 um 10:55 Uhr)

  10. #10
    Registriert seit
    23.10.2009
    Beiträge
    391
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe Deinen Aufbau noch nicht verstanden.
    Was ist input_3 = Poti Motor?
    Ist das ein Motorpoti?
    Oder ein Sollwertpoti für einen Motor, das vom Bediener verstellt wird?
    Oder, oder oder.
    Gruß
    Erich

Ähnliche Themen

  1. funktion SPS
    Von SheepLord im Forum Stammtisch
    Antworten: 19
    Letzter Beitrag: 19.12.2010, 18:20
  2. Antworten: 2
    Letzter Beitrag: 22.05.2010, 10:37
  3. Antworten: 8
    Letzter Beitrag: 13.07.2008, 11:23
  4. Antworten: 8
    Letzter Beitrag: 15.03.2007, 09:25
  5. Neue Funktion: Zeit im Forum
    Von Markus im Forum Stammtisch
    Antworten: 7
    Letzter Beitrag: 12.03.2007, 09:13

Lesezeichen

Berechtigungen

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