Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Logikeditor Berechnungsfunktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS - √ - Logikeditor Berechnungsfunktion

    Hallo zusammen,

    ich stehe gerade auf dem Schlauch, habe lange nichts mehr an meinem System programmiert und jetzt will ich mit zwei analogen Eingängen 4 Kommunikationsobjekte mit Messwerten versorgen.
    D.h. ein Analogeingang gibt an um welchen Messwert es sich handelt, der andere Analogeingang übergibt den eigentlichen Messwert der mathematisch aufbereitet werden muss.

    Mein Problem ist, wie stelle ich mit dem Logikeditor dar, durch welche der Mathematikfunktionen der Analogwert 2 durchgeschickt werden muss?
    Aus meiner Bereichsauswertung Analog eins bekomme ich ja jeweils nur eine 1 als Wert. Ich habe schon ein Hilfsobjekt eingeführt was mittels Befehl den Zustand 1 bis 4 annehmen kann, aber das hilft mir irgendwie auch nicht.

    Die Lösung ist bestimmt trivial, aber ich komme nicht drauf, muss mich immer wieder ist diese Art der Programmierung reinfinden.

    Danke
    Angehängte Dateien

    #2
    Um eine Antwort zu bekommen, solltest Du vielleicht erklären, was die Kriterien für Deinen Analogwert 2 sind und was Du mit der Kurvenfunktion bezweckst.

    Kommentar


      #3
      Erstmal danke für die Antwort.

      Die mathematische Verarbeitung des Analogwertes2 ist unerheblich für die Problemstellung. Als Beispiel: wenn der Analogwert1 im ersten Bereichsfenster liegt, dann soll der Analogwert2 +2 gerechnet werden. Wenn der Analogwert1 im zweiten Bereichsfenster liegt dann soll er Analogwert2 durch 3 geteilt werden.... usw. .. Die Kurvenfunktion kann durch jede beliebige mathematische Funktion ausgetauscht werden.

      Kommentar


        #4
        Verstehe... dann setz doch für den Analogwert 2 einfach sperren vor die mathematische Funktion, die durch die Auswertesignale von Wert 1 entsprechend freigegeben werden.

        Kommentar


          #5
          Ich glaube dass es dafür ohne speziellen Baustein keine saubere Lösung gibt da man ja nicht wissen kann in welcher Reihenfolge die Telegramme verarbeitet werden.

          Leider kann man im HS eine Sequenzierung der Signale nur über die Zeit machen.

          Habe schon öfters über einen Baustein dazu nachgedacht aber noch nicht realisiert.

          Die Idee:
          • 8 Dateneingänge
          • 8 Daten Ausgänge
          • Bitmaske der Dateneingänge die zwingend in einer Datengruppe erscheinen müssen
          • Zeitfenster in Sekunden
          • Zeitoffset für jeden Ausgang
          Funktionsweise:

          Wenn der Baustein einen Datenpunkt der Bitmaske empfängt (also einen zwingenden) startet er das Zeitfenster. Sind alle zwingenden Dateneingänge der Bitmaske innerhalb des Zeitfensters empfangen worden werden sie der Reihe nach versendet wo bei ein Zeitoffset gegeben werden kann um sicher zu gehen dass die Daten geoordnet verarbeitet werden.

          Offset Beispiel: 0,0,1,0,1,0,0,0,0

          Hier wird nach dem erhalt del letzten zwingenden Datenpunktes die Datenpunkte 1&2 sofort gesendet, nach einer Sekunde dann 3&4 und nach einer weiteren Sekunde die restlichen.

          Gruss,
          Gaston

          Kommentar


            #6
            Sperre klingt gut, mit welchem Logikbaustein würdest du das machen?

            Ein neuer Baustein ist zwar eine gute Idee, würde aber meine Programmierkenntnisse etwas übersteigen.... :-(

            Kommentar


              #7
              Der Logikbaustein für eine Sperre heißt "Sperre"... nicht so schwer zu finden.

              Kommentar


                #8
                Das mit der Sperre ist reines Glücksspiel.

                Kommentar


                  #9
                  Danke für eure Ideen, die Sperre hat mich zumindest auf eine andere Idee gebracht, welche allem Anschein nach auch funktioniert. Und zwar habe ich 4 Zustandshilfsobjekte eingeführt, welche bei richtigem Bereich Analog 1 jeweils auf 1 gesetzt werden. Dann habe ich den Baustein Auswahlschalter entdeckt, damit kann man ein Telegramm auf einen Ausgang lenken. Sofern also das Hilfsobjekt 1 ist, wird der Analogwert 2 auf den richtigen Ausgang1 gelenkt ansonsten ist das Hilfsobjekt 0 und damit kann das Telegramm den Baustein nicht passieren. Nach erfolgreichem Durchlauf wird das jeweilige Hilfsobjekt wieder 0 gesetzt. Auch eine kleine Telegrammverzögerung habe ich für den Analogwert2 noch eingebaut, da ansonsten der Zustand noch nicht richtig gesetzt war.

                  Irgendwie finde ich es zwar sehr umständlich aber wenigstens funktioniert es.

                  Logik siehe Anhang
                  Angehängte Dateien

                  Kommentar

                  Lädt...
                  X