Signalwechsel erkennen

  • Moin,


    ich würde gerne bei einigen (~30) $IN und $OUT den Wechsel von TRUE auf FALSE (und anders herum) im Hintegrund mitschreiben. Die Frage ist: Wie erkenne ich einen Signalwechsel? Aufgrund der Menge an Signalen kommen Interrupts nicht in Frage. Zumal ich dann systembedingt eine (unerwünschte) Priorisierung mit drin hätte. Mit fällt aktuell nur ein Vergleich in der SPS.SUB ein.



    Geht das auch eleganter? :/


    Gruß

    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

  • Schritt für Schritt zum Roboterprofi!
  • Liegen die Eingänge (Ausgänge) hintereinander?

    Könnte dann Signalgruppe erstellen, diese im Submit zyklisch einlesen und mir B_EXOR vergleichen mit letzteingelesenem.

    Anhand des Wertes ist auch feststellbar, welches Signal sich änderte.

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • Nein, liegen sie leider nicht. Die sind kreuz und quer verteilt. Da es teilweise Vorgabe vom Kunden ist, kann ich die auch nicht so sortieren, wie ich es bräuchte. X/


    Ich habe auch eben festgestellt, daß das mit der SPS.SUB keine gute Idee ist. Wenn aus der SPS.SUB gerade ein Signalwechsel geschrieben und gleichzeitig aus dem Roboterprogramm heraus etwas anderes geschrieben wird, kommt das Logbuch durcheinander:


    Code
    LogBook[2]={Time[] "05.12. 14:20:31:00",String[] "GRUNDST_FAHREN()"}
    LogBook[3]={Time[] "05.12. 14:20:34:00",String[] "PROGRAMMABLAUF()"}
    LogBook[4]={Time[] "------------------",String[] "    FREIGABE_ABLAGE = TRUE-------------------------------------------------"}
    LogBook[5]={Time[] "05.12. 14:20:34:00",String[] "  Schrittzaehler = 8010"}


    In Zeile 4 steht (m)ein Delimiter. Den schreibe ich direkt nach einem Eintrag ins Logbuch, damit ich auf den ersten Blick sehe, wo der letzte Eintrag steht. Während der geschrieben wurde, wurde aus der SPS.SUB das Signal FREIGABE_ABLAGE geschrieben. Zu genau diesem Zeitpunkt war der Index aber noch auf 4, Nach der Erhöhung des Index durch das Roboterprogramm hat der Zeitstempel für den Signalwechsel den Eintrag für LogBook[5] überschrieben. :/


    Gruß

    Jörn

    In der Theorie sind Theorie und Praxis identisch. In der Praxis nicht.

  • Das Ganze über Arrays lösen?

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden