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

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

Thema: msec genaue Impulse

  1. #1
    Registriert seit
    21.07.2005
    Beiträge
    222
    Danke
    54
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!
    Zykluszeit der CPU wandert so zwischen 20 und 70 ms. Ich bräuchte aber einen ziemlich genauen Impuls von 35ms (5ms auf oder ab soll nicht das Problem sein)
    Ist es möglich genaue Impulse zu erzeugen, die kürzer als die Zykluszeit sind.
    L.G.
    Zitieren Zitieren msec genaue Impulse  

  2. #2
    Registriert seit
    11.04.2008
    Ort
    Bayern
    Beiträge
    523
    Danke
    26
    Erhielt 67 Danke für 67 Beiträge

    Standard

    OB 35 könnte dir helfen

  3. #3
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Hallo,

    der Organisationsbaustein "OB35" würde sich hierfür anbieten. In der Hardwarekonfig kann das Aufrufintervall eingestellt werden.

    Der OB35 unterbricht dann das zyklische Programm "OB1" im eingestellten Zeitraster.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  4. #4
    Registriert seit
    19.06.2005
    Ort
    in Bayern ganz oben
    Beiträge
    1.360
    Danke
    188
    Erhielt 372 Danke für 290 Beiträge

    Standard

    Zitat Zitat von netmaster Beitrag anzeigen
    OB 35 könnte dir helfen
    Ups war einer schneller.

    Gruss Daniel
    Erfahrung ist eine nützliche Sache. Leider macht man sie immer erst kurz nachdem man sie brauchte...

    OSCAT.lib Step 7

    Open Source Community for Automation Technolgy

    SPS-Forum Chat (Mibbit) | SPS-Forum Chat (MIRC)

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Ich habe sowas im OB35 noch nicht gemacht, aber könnte es nicht folgendes Problem geben:

    Mal angenommen er hat eine normale DO32 Ausgangsbaugruppe von A0.0 bis A3.7.
    Damit im OB35 der Ausgang auch sofort gesetzt wird, müsste man direkt auf das Peripherieword/byte zugreifen. Also L B#16#01, T PAB 0 um A0.0 zu setzen.
    Damit man die anderen Ausgänge noch verwenden kann, müsste man den zu schreibenden Wert noch mit dem Wert des Prozessabbildes verknüpfen.

    Ich frage mich aber, welcher Wert wird am Ende des OB1 (bzw. am Anfang bei neueren CPUs) auf das PAB 0 geschrieben, wenn ich im Programm nicht auf A0.0 zugegriffen habe, sondern nur im OB35 über das PAB?

    Oder denke ich gerade zu kompliziert...

  6. #6
    Registriert seit
    05.06.2006
    Ort
    PLZ 97xxx
    Beiträge
    276
    Danke
    31
    Erhielt 44 Danke für 36 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    Ich habe sowas im OB35 noch nicht gemacht, aber könnte es nicht folgendes Problem geben:

    Mal angenommen er hat eine normale DO32 Ausgangsbaugruppe von A0.0 bis A3.7.
    Damit im OB35 der Ausgang auch sofort gesetzt wird, müsste man direkt auf das Peripherieword/byte zugreifen. Also L B#16#01, T PAB 0 um A0.0 zu setzen.
    Damit man die anderen Ausgänge noch verwenden kann, müsste man den zu schreibenden Wert noch mit dem Wert des Prozessabbildes verknüpfen.

    Ich frage mich aber, welcher Wert wird am Ende des OB1 (bzw. am Anfang bei neueren CPUs) auf das PAB 0 geschrieben, wenn ich im Programm nicht auf A0.0 zugegriffen habe, sondern nur im OB35 über das PAB?

    Oder denke ich gerade zu kompliziert...

    das kannst du so machen für Ausgang A0.0:

    Code:
    L AW 0           // Zustand der Ausgänge laden
    L W#16#0100     // Maske A0.0 (High und Lowbyte beachten
    OW                  // mit OW Bits zusammenfassen
    T AW 0           // auf die Ausgänge schreiben
    T PAW 0          // sofort an die Peripherie schreiben
    das kann man sich auch sparen glaub ich zumindest:
    T AW 0 // auf die Ausgänge schreiben
    Geändert von Sarek (21.07.2009 um 19:47 Uhr)

  7. Folgender Benutzer sagt Danke zu Sarek für den nützlichen Beitrag:

    klauserl (21.07.2009)

  8. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard

    Zitat Zitat von Sarek Beitrag anzeigen
    das kannst du so machen für Ausgang A0.0:

    Code:
    L AW 0           // Zustand der Ausgänge laden
    L W#16#0100     // Maske A0.0 (High und Lowbyte beachten
    OW                  // mit OW Bits zusammenfassen
    T AW 0           // auf die Ausgänge schreiben
    T PAW 0          // sofort an die Peripherie schreiben
    das kann man sich auch sparen glaub ich zumindest:
    T AW 0 // auf die Ausgänge schreiben
    ah, klar, einfach zusätzlich auf AW schreiben, dann wird der Wert aus dem letzten OB35 Aufruf einfach nochmal geschrieben.
    Direkt AW 0 wird nicht gehen. Dann ist man ja wieder von der Zykluszeit abhängig.

  9. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von Thomas_v2.1 Beitrag anzeigen
    ah, klar, einfach zusätzlich auf AW schreiben, dann wird der Wert aus dem letzten OB35 Aufruf einfach nochmal geschrieben.
    Direkt AW 0 wird nicht gehen. Dann ist man ja wieder von der Zykluszeit abhängig.
    Korrekt. Wichtig wäre auch noch nachzusehen, ob die DO dieser Baugruppe schnell genug sind. Bei 35 ms sollten sie es noch sein, aber nachschauen schützt vor bösen Überraschungen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  10. #9
    Registriert seit
    10.05.2005
    Beiträge
    2.005
    Danke
    220
    Erhielt 234 Danke für 205 Beiträge

    Standard

    Hi

    Code:
     
    L AW 0           // Zustand der Ausgänge laden
    L W#16#0100     // Maske A0.0 (High und Lowbyte beachten
    OW                  // mit OW Bits zusammenfassen
    T AW 0           // auf die Ausgänge schreiben
    T PAW 0          // sofort an die Peripherie schreiben
    Retorische Frage.

    Der OB35 wird gemäß obigen Code aufgerufen.
    OB1 läuft schon z.b. 2 ms.
    AW0 wird abgefragt und gesetzt. (OB35)
    Im OB1 wird aufgrund einer Verknüpfung gelöscht.

    Sodann sind AW0 von OB35 und OB1 unterschiedlich.
    Kurzes flacker inbegriffen. ( PAW-Schreiben und PAA am Zyklusende)



    Ich denke, das komplette AW sollte in diesem Fall nur von OB35 verwendet werden.

    Oder habe ich hier einen Denkfehler.
    Karl

  11. #10
    Registriert seit
    29.03.2004
    Beiträge
    5.797
    Danke
    144
    Erhielt 1.707 Danke für 1.239 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von gravieren Beitrag anzeigen
    Ich denke, das komplette AW sollte in diesem Fall nur von OB35 verwendet werden.
    Das gilt doch generell für alle Ausgänge würde ich sagen. A0.0 darf in dem Fall an keiner anderen Stelle geschrieben werden. Das gesamte Byte/Wort genausowenig.

    Ich sehe aber gerade dass es extra SFCs dafür gibt (SFC 79 / SFC 80):
    Zitat Zitat von Step 7 online Hilfe
    Beschreibung

    Ein Aufruf der SFC 79 "SET" (set range of outputs) hat folgende Wirkung:

    · Das über die Parameter N und SA selektierte Bitfeld im Peripheriebereich wird gesetzt.

    · Die zugehörigen Bits im Prozeßabbild der Ausgänge werden ebenfalls gesetzt, unabhängig davon, ob sie in einem Teilprozeßabbild der Ausgänge liegen.
    ...
    Hört sich so an als ob der das gleiche macht wie der Code-Schnipsel von Sarek. In die SFC kann man ja leider nicht reingucken.

Ähnliche Themen

  1. Suche genaue Anleitungen zu NCI
    Von Misch im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 22.11.2009, 10:53
  2. Impulse Verarbeiten
    Von fi1988 im Forum Simatic
    Antworten: 46
    Letzter Beitrag: 27.03.2008, 19:59
  3. HW Config - kann genaue S7-CPU nicht finden
    Von Celera im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 11.12.2007, 21:00
  4. FB 58 Genaue Definition der einzelnen Werte
    Von Lars Bizare im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 08.11.2005, 10:37
  5. Impulse
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 26.08.2003, 16:57

Lesezeichen

Berechtigungen

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