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

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

Thema: Gibt es einen Interrupt?????

  1. #1
    Registriert seit
    28.09.2008
    Beiträge
    53
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forumgemeinde

    Ich habe mal eine Frage. Gibt es bei dem MFD4 Panel von Klöckner und Möller oder überhaupt bei einer SPS einen Interrupt den man Programmieren kann? Es geht mir darum das er bei einem bestimmten Zustand einer Variablen das Programm unterbricht und dann den Interrupt ausführt.

    z.Bsp. Wenn eine Bool Variable TRUE wird, dass er sofort als Vorrang eine Email absendet und wenn das erledigt ist in seinem Hauptprogramm wieder an der ausstiegsstelle einsteigt und es weiter abarbeitet.

    Ich weiß das es das bei Prozessoren gibt und die kann man durch eine Interrupt Service Routine einstellen und programmieren.

    Über Antworten würde ich mich sehr freuen.


    MFG Dennis
    Zitieren Zitieren Gibt es einen Interrupt?????  

  2. #2
    Registriert seit
    19.11.2006
    Beiträge
    1.346
    Danke
    6
    Erhielt 254 Danke für 231 Beiträge

    Standard

    Wieso benötigst du einen Interrupt? Ein SPS-Programm wird ja eh zyklisch abgearbeitet ("von oben nach unten", jeden Zyklus von neuem).
    Für deine E-Mail-Aufgabe würde ich einfach einen Abschnitt im Programm reservieren, in ST z.B.:
    Code:
    IF bVariable THEN
      (* -hier E-Mail Versand einfügen- *)
    END_IF
    und fertig is der Lack.

    Wenn das restliche Programm während dieser Interrup-Bedingung absolut nicht weiter ausgeführt werden darf, kann man es z.B. so verriegeln:
    Code:
    IF NOT bVariable THEN
      (* - Hauptprogram *)
    ELSE
      (* -hier E-Mail Versand einfügen- *)
    END_IF
    (Aber solche Verriegelungen bergen evtl. auch Gefahren!)

  3. #3
    Registriert seit
    28.09.2008
    Beiträge
    53
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Trinitaucher

    Du verstehst jetzt nicht was ich meine. Jetzt stell dir mal vor du hast ein Programm in ST mit über 500 Zeilen Code. Deine IF Anweisung für das Abschalten einer Maschine steht jetzt in Zeile 125. Dein Programmablauf ist gerade drüberweggelaufen über diese Zeile 125 und jetzt drückt jemand den Schalter abschalten. Was würde passieren. Nichts weil er an der Stelle vorbei ist. erst wenn er wieder bei Zeile 125 angekommen ist wird er die IF Anweisung ausführen. Und so kann es zum Beispiel sein das lebensbedrohende Sachen zu spät ausgelöst werden. Darum meine Frage nach einem Interrupt bei der SPS. Diese gibt es zum Beispiel bei jedem Prozessor den du im Laden kaufen kannst. Zum Beispiel auch in deinem Computerprozessor.

    MFG Dennis

  4. #4
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Als Interrupt ansatz kann man die Taskkonfiguration verwenden:

    Ressourcen->Taskkonfiguration (rechte Maustaste: Objekt bearbeiten)

    Taskkonfiguration (rechte Maustaste: Task anhängen)

    Namen vergeben
    Typ auf Ereignisgesteuert ändern
    Ereignis eintragen (Bool variable)
    Priorität vergeben (sollte dann höher sein als der zu unterbrechende Task)

    ---
    Dies unterbricht aber noch nicht sicher den Ablauf Deines "Hauptprogramms". Was ich allerdings bei einer SPS eh als kritisch betrachte.
    If you open your Mind too much, your Brain will fall out.

  5. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.527 Danke für 1.286 Beiträge

    Standard

    @dennish
    Sicherlich hast du recht, sicher ist aber auch, wenn deine Zykluszeit deutlich unter 100ms ist,
    spielt das für derartige Funktionen (Stop Taster, E-Mail versenden) imho keine Rolle.

    Bei Codesys generell gibt es ereignisgesteuerte Tasks,
    mit denen sollte sich sowas realisieren lassen.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von dennish23 Beitrag anzeigen
    ... Und so kann es zum Beispiel sein das lebensbedrohende Sachen zu spät ausgelöst werden. Darum meine Frage nach einem Interrupt bei der SPS.
    Für lebensbedrohende Sachen ist dein Programm vielleicht auch nicht der zuständige Ansprechpartner ...
    Ansonsten siehe MSB ... wie lang ist denn ein Zyklus bei deinem Programm, dass du da Probleme erwartest ...

    Gruß
    LL

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

    Standard

    Zitat Zitat von dennish23 Beitrag anzeigen
    Hallo Trinitaucher

    Du verstehst jetzt nicht was ich meine. Jetzt stell dir mal vor du hast ein Programm in ST mit über 500 Zeilen Code. Deine IF Anweisung für das Abschalten einer Maschine steht jetzt in Zeile 125. Dein Programmablauf ist gerade drüberweggelaufen über diese Zeile 125 und jetzt drückt jemand den Schalter abschalten. Was würde passieren. Nichts weil er an der Stelle vorbei ist. erst wenn er wieder bei Zeile 125 angekommen ist wird er die IF Anweisung ausführen. Und so kann es zum Beispiel sein das lebensbedrohende Sachen zu spät ausgelöst werden. Darum meine Frage nach einem Interrupt bei der SPS. Diese gibt es zum Beispiel bei jedem Prozessor den du im Laden kaufen kannst. Zum Beispiel auch in deinem Computerprozessor.

    MFG Dennis
    Dazu muß ich aber sagen, daß du offensichtlich noch nicht so ganz verstanden hast, was eine SPS darstellt und wie sie genau arbeitet. Denn eines ist eine SPS nicht, ein Home-PC, auch wenn eine Beckhoff durchaus in einem drinstecken kann. Zusätzlich kommt noch dazu, daß für lebensbedrohliche/lebensgefährlich Dinge ohnehin spezielle zusätzliche Maßnahmen nötig sind, also Sicherheitsabschaltungen, PNOZ, Sicherheits-SPS etc. Bei den erreichbaren Zykluszeiten einer SPS, ich sag mal im schlechtesten Falle 100ms, wird also jede Zeile im SPS-Programm alle 100ms abgearbeitet. Das reicht für 98% der Anwendungen aus. Für den Rest benötigt man dann andere oder zusätzliche Hardware. Klar, ein schnell fahrender Servo, rasiert alles ab, was im Wege steht, aber dafür hat der Servo dann i.d.R. extra Sicherheitseingänge, um ihn zum stehen zu bringen und natürlich auch Endlagenüberwachung etc. Für die S7 gibt es noch spezielle E-Baugruppen die Interruptfähig sind. Damit kann man dann auch noch schneller reagieren. Aber zum Faxversand ???
    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

  8. #8
    Registriert seit
    28.09.2008
    Beiträge
    53
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal für die Tatkräftige unterstützung bei meinem Problem.

    Nun ist die Frage bei der Ereignisgesteuerten Variante, ob dort die Werte nur als BOOL Variable eingetragen werden können oder auch wenn ich ein bestimmtes BYTE oder INT habe.

    Eine IF schleife kann ich ja einfach schreiben das ist nicht das problem nur ob das Ereignisgesteuerte auch für einen bestimmten Wert einer Variablen zutrifft zum Bespiel wenn ich den Wert 21 in einer Variable stehen habe soll dann ein Ereignis gesteuert werden. Auch habe ich eben mal festgestellt das die Variablen global sein müssen für eine Ereignisgesteuertes Ereignis.

    MFG Dennis

  9. #9
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Zitat Zitat von dennish23 Beitrag anzeigen
    Danke erstmal für die Tatkräftige unterstützung bei meinem Problem.

    Nun ist die Frage bei der Ereignisgesteuerten Variante, ob dort die Werte nur als BOOL Variable eingetragen werden können oder auch wenn ich ein bestimmtes BYTE oder INT habe.

    Eine IF schleife kann ich ja einfach schreiben das ist nicht das problem nur ob das Ereignisgesteuerte auch für einen bestimmten Wert einer Variablen zutrifft zum Bespiel wenn ich den Wert 21 in einer Variable stehen habe soll dann ein Ereignis gesteuert werden. Auch habe ich eben mal festgestellt das die Variablen global sein müssen für eine Ereignisgesteuertes Ereignis.

    MFG Dennis
    IF ist KEINE Schleife sondern eine Verzweigung.

    Code:
    IF myWert >= 21 THEN
      SchickeEmail();
      myWert := 0;
    ELSE
      (* Haupprogramm *)
      ;
    END_IF;
    If you open your Mind too much, your Brain will fall out.

  10. #10
    Registriert seit
    28.09.2008
    Beiträge
    53
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Jetzt jeder nachdem anderen

    @Ralle

    Mein Panel ist eine Master SPS wo viele andere SPS-Anlage über TCP angeschlossen sind. Diese Varibalen von den SPS-Anlagen werden alle übermittelt zur Master SPS. Also als sogenanntes SCADA-System. Nun hat das Panel auch Aufgaben. Es ist zum Beispiel für die Uhrzeit verantwortlich das alle im System sich befindenen SPS-Anlage die gleiche zeit haben. Das heißt ich kann die Uhrzeit im Panel stellen mit der Hilfe der SysLibRtc. Dies braucht auch eine gewisse Zeit die ich ja in der Taskkonfiguration einstellen kann. Auch hat das Panel die Aufgabe eine Fehlerdatei zu erstellen und zu beschreiben. Auch dieses braucht seine Zeit. Nun ist das Panel mit einem der beiden Sachen beschäftigt und es kommt ein Fehler als Signal von einer SPS-Anlage. Nun ist eine SPS ja nicht Multitasting fähig wie manch Lebewesen. Zwinker. Das heißt es führt seine derzeitige Arbeit aus und macht dann weiter. Nun ist es mir aber Wichtig das die SPS sofort den Fehler abarbeitet und dann sich wieder ihrer Fehlerdatei zuwendet. Das ist ja das Problem warum es mir geht. Das Panel ist als Hauptinstrument in meiner Anlage für viel Dinge zuständig. Aber halt sind diese Dinge in Unterschiedlichen Prioritäten anzuarbeiten. Mit Hilfe der Taskkonfig kann ich allerdings ja nicht erreichen (zumindest ist es mir noch nicht bewußt) das wenn meine Variable 21 ist dann genau das der Befehl wäre für eine Handlung (z.Bsp. Email senden)


    @Zotos

    Das ist mir ja klar das ich das so machen kann mit der IF-Schleife nur wenn die IF Schleife erst in zeile 500 steht braucht das Programm eine Weile bis es dort ankommt. Und darum könnte es dafür mittlerweile wieder zu spät sein das das Signal dann wenn das Programm in der Zeile 500 ankommt nicht mehr da ist, aber zwischendurch da war und die SPS das nicht mitbekommen hat. Ist also eine Fehlerquelle meiner Meinung.


    @ Larry Laffer

    Was ist ein MSB. Hab es hier in der Suche eingegeben aber kein Erfolg außer mein Beitrag.


    MFG "allen" Dennis

Ähnliche Themen

  1. Gibt es einen wandler von Profibus zu DMX
    Von Rossi im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 08.07.2011, 09:17
  2. Antworten: 12
    Letzter Beitrag: 31.07.2006, 16:39
  3. Gibt es einen S7-200 Softwaresimulator?
    Von waro-msr im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 22.06.2006, 12:58
  4. Gibt es einen 13-Bit Scalierer ??
    Von Gerd im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 04.08.2004, 12:33
  5. Gibt es einen Verteilerblock für Profibus DP ?
    Von JensPipka im Forum Feldbusse
    Antworten: 6
    Letzter Beitrag: 25.05.2004, 20:11

Lesezeichen

Berechtigungen

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