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

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

Thema: Weckalarm OB 32

  1. #1
    Registriert seit
    20.07.2012
    Beiträge
    108
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    hier kurz die CPU : IM151-8F PN/DP CPU , 6es7 151-8fb01-0ab0

    benutze den Weckalarm OB 32 für eine Zyklische Messung. Er wird alle 60 Sekunden 1 mal aufgerufen und liefert einen Integerwert. Dieser Wert wird im weiteren Programm benutzt. Soweit so gut, der OB funktioniert und das Programm auch.

    zum Problem :
    1. Der Wertebereich des OB 32 liegt im Bereich von 1 ... 60000 ms. Welche Möglichkeiten habe ich diesen OB auf z.B 100 000 ms zu programmieren ? ( siehe Bild im Anhang )
    2. Gibt es vllt. andere OBs die einen höheren Wertebereich haben die ich verwenden könnte ?


    Freundliche Grüße


    Jeremy
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Weckalarm OB 32  

  2. #2
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Nimm nen Zähler und zähle ihn im OB32 hoch.
    Oder nimm den Uhrzeitalarm (OB10) -> minütlich, stündlich, monatlich....

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  3. #3
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Brauchst Du denn wirklich den Weckalarm?. Normalerweise sind SPS-Zyklen nicht länger als 20ms. Lass doch einfach einen Timer laufen, und ruf alle 10s den Baustein für die Messung einmalig auf.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  4. #4
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    100s meint Tigerente...
    Code:
    U T1
    =M x.y
    
    UN T1
    L S5t#100s
    SE T1
    
    U M x.y
    CC "Dein OB32-Ersatz"
    Geändert von borromeus (20.11.2012 um 14:55 Uhr)

  5. #5
    Jeremy3 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.07.2012
    Beiträge
    108
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @ wolder

    1.Wie genau soll man mit dem Zähler genau 100 s programmieren ?

    2.Wird der zähler nicht einfach nur einmal hoch oder runterzählen wenn man ihn im
    OB 32 aufruft ?

    3. Falls das so wirklich geht frage ich mich was mit dem OB 1 dann passiert wenn
    im OB 32 diese 100 Sekunden gezählt werden ? Wird dieser 100 sekunden lang nicht
    mehr bearbeitet ?.

    @ wolder

    Kann man mit dem Uhrzeitalarm denn 100 s einprogrammieren oder nur minütlich,
    stündlich oder monatlich wie du es schreibst ?

    ------------------------------------------------------------------------------

    @ Tigerente1974

    Das mit dem Timer habe ich eig als erstes ausprobiert gehabt.
    Ich habe mir sogar ein Taktsignal selber über Timer programmiert. Das
    funktioniert auch ganz gut. So bekomme ich auch die 100 s eingestellt.

    1. Aber mein Programm soll nur 1 mal jede 100 s aufgerufen werden, einen Messwert
    Berechnen und noch zusätzlich einen Integerwert ausspucken in Abhängigkeit des
    Messwertes. Wie Soll ich das ohne einen Interrupt machen , also ohne Weckalarm
    oder sonst was ? Vor allem frage ich mich wie das im OB 1 funktionieren soll wenn
    du selber sagst das der SPS Zyklus nicht länger wie 20 ms ist.

    Wenn ich das einfach nur in dem OB 1 machen würde über einen FB würde das
    Programm einen falschen Integerwert liefern da der Baustein während des taktes
    einfach schon viel zu oft im OB 1 aufgerufen wird und der Integerwert ins
    unermässliche steigt bzw. fällt. Das hatte ich schon mal ausprobiert.
    Falls ich dich falsch verstehen sollte Bitte einfach aufklären.

    ------------------------------------------------------------------------------


    @ borromeus

    Danke für den Code und die Verbesserung. Das löst aber leider mein Problem noch nicht
    Geändert von Jeremy3 (21.11.2012 um 10:08 Uhr)

  6. #6
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Jeremy,

    aufgrund Deiner Fragen kann man davon ausgehen, dass Dir eine SPS nicht ganz klar ist.
    Seis drum, hier wird Dir geholfen.
    Schreib mal was Du eigentlich machen möchtest!

    Warum ein bedingter Programmaufruf alle 100s Dein Problem nicht löst verstehe ich nicht, weil genau das wolltest Du ja im OB32 mit 100000ms bezwecken.

    Edit: es ist ja egal ob der OB1 alle 100s einen Baustein aufruft oder das "Betriebssystem" der SPS einen Weck- OB. Was denkst Du ist da anders?
    Geändert von borromeus (21.11.2012 um 10:14 Uhr)

  7. #7
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Zitat Zitat von Jeremy3 Beitrag anzeigen

    @ Tigerente1974

    Das mit dem Timer habe ich eig als erstes ausprobiert gehabt.
    Ich habe mir sogar ein Taktsignal selber über Timer programmiert. Das
    funktioniert auch ganz gut. So bekomme ich auch die 100 s eingestellt.

    1. Aber mein Programm soll nur 1 mal jede 100 s aufgerufen werden, einen Messwert
    Berechnen und noch zusätzlich einen Integerwert ausspucken in Abhängigkeit des
    Messwertes. Wie Soll ich das ohne einen Interrupt machen , also ohne Weckalarm
    oder sonst was ? Vor allem frage ich mich wie das im OB 1 funktionieren soll wenn
    du selber sagst das der SPS Zyklus nicht länger wie 20 ms ist.

    Wenn ich das einfach nur in dem OB 1 machen würde über einen FB würde das
    Programm einen falschen Integerwert liefern da der Baustein während des taktes
    einfach schon viel zu oft im OB 1 aufgerufen wird und der Integerwert ins
    unermässliche steigt bzw. fällt. Das hatte ich schon mal ausprobiert.
    Falls ich dich falsch verstehen sollte Bitte einfach aufklären.
    Ich bin mittlerweile sicher, Du brauchst keinen OB. Du kannst es mit dem Timer lösen wie von mir vorgeschlagen. Du musst eben nur dafür sorgen, dass der Bausteinaufruf nur 1x passiert.

    Der Code von borromeus erfüllt das aber.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  8. #8
    Jeremy3 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.07.2012
    Beiträge
    108
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Versteh ich euch Richtig. Den Taktsignal einfach auf den Freigabeeingang EN des entsprechenden FC drauflegen ( der vorher bei mir in meinem Weckalarm drin war ) und dann wird er auch wirklich nur einmal aufgerufen sobald das Taktsignal kommt ? Wenn das wirklich so einfach geht dann wäre das perfekt. Probiere es gleich mal später aus.

    Wird dieser Freigabeeingang im Falle das man ihn nicht Benutzt automatisch auf True gesetzt ? Wahrscheinlich ja ? Sonst würden alle meine fbs und fcs im ob 1 nicht funktionieren . Bitte um kurze Bestätigung.

    Freundliche Grüße

    Jeremy

  9. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Der Takt muss eine Flanke sein....schau:
    der OB1 läuft ständig... der arbeitet alle Befehle und Bausteinaufrufe ab, wenn er fertig ist fängt er von vorne an.
    Je nach Programmlänge und CPU Geschwindigkeit ergibt sich eine Zykluszeit.
    Wenn Du nun alle zB 100s vom OB1 einen Baustein EINMAL aufrufen willst, musst Du dafür sorgen, dass das Bit, das den Aufruf erzeugt eben nur einen Zyklus lang da ist.
    Sprich, Du hast quasi 99,99 Sekunden den Zustand Null und dann für einen Zyklus lang Eins.

  10. #10
    Jeremy3 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    20.07.2012
    Beiträge
    108
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    habe das wie oben beschrieben ausprobiert. Es funktioniert : ). Vielen dank Leute. Mir war nicht bewusst das man im OB 1 über eine positive Flanke einfach nen FC nur einmal aufrufen kann über den Freigabeeingang, da ich diesem nie Beachtung geschenkt habe und dachte man bräuchte dafür diesen Weckalarm. Herzlichen Dank an euch alle ! Es hat bisher mal wunderbar geklappt.

    Also ist es in der Tat so das dieser Freigabeeingang standartmäßig auf TRUE gesetzt ist und sobald man ihn ansteuert dieser einen TRUE Wert erst abwartet um den Baustein zu bearbeiten. Über eine positive Flanke kann man ihn sogar während eines SPS Zyklus auf diese Weise auch nur einmal aufrufen. Falls jmd nicht mit meiner Schlussfolgerung einverstanden ist Bitte korrigieren : ).

    Danke nochmal an euch alle !

Ähnliche Themen

  1. Weckalarm wird nicht bearbeitet
    Von Uwe16 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 19.04.2012, 16:49
  2. Weckalarm
    Von StGo im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 15.03.2012, 10:02
  3. Warum schnelle Zähler in Weckalarm OB
    Von BSE im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 03.03.2011, 00:18
  4. Weckalarm ändern
    Von thomasgull im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 18.11.2010, 19:57
  5. Weckalarm von FB bestimmen [SCL]
    Von dewenni im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 07.08.2007, 11:49

Lesezeichen

Berechtigungen

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