Anzahl der gesetzten Eingänge zählen

Snap

Level-1
Beiträge
13
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forengemeinde!

bin auf diese Forum gestoßen, weil ich ein Problem im Moment nur sehr umständlich in den Griff bekomme und hoffe es gibt vielleicht eine einfache Lösung. Das Problem habe ich mit einer S7-200 224XP. Wie kann ich die Anzahl der gesetzten digitalen Eingänge ermitteln?

Danke schonmal im voraus !
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zotos !

Danke für die schnelle Antwort. Leider ist die S7-200 nicht ganz so flexibel wie die 300 oder 400. Aber ich versuch mal die Ideen auf 'ne 200 umzurubeln. Oder hat jemand ne schnelle Lösung?
 
Hallo Zotos,

der Tip mit der Schiebeoperation war genial ! Hier die Lösung, auch etwas umständlich, aber funzt 100% !

LD Immer_ein
MOVB EB2, VB204
MOVB 16#0, VB205

LD Immer_ein
FOR VW202, 1, 8

LD Immer_ein
SLB VB204, 1
U Überlauf_unzulässig
INCB VB205

NEXT

Danke nochmal !

Snap
 
Entweder du überspringst für jeden nicht gesetzten Eingang einen Addierbefehl:
LDN E0.0
JUMPC m0
+I Anzahl,1
m0:LDN E0.1
JUMPC m1
+I Anzahl,1
m1:

oder du legst eine Tabelle an bei der das Muster eines Eingangsbytes als Adresse dient und die Tabelle die gesetzten Bits enthält:
Tabelle:
0:0
1:1
2:1
3:2
4:1
5:2
6:2
7:3
8:1
9:2
10:2
usw.
BTI EB0,MW0
ITD MW0,MD4
+D MD4,pointer auf Anfang der Tabelle // habe die Schreibweise für 200 nicht im Kopf
MOV [MD4],Ergebnis // habe die Schreibweise für die 200 nicht im Kopf

Für viele (n) Eingänge wird die Tabelle schnell zu umfangreich (2^n Einträge), allerdings liefert sie das Ergebnis immer mit 4 Operationen, während die erste Methode für n Eingänge 2*n Operationen braucht. Ein Kompromiß wäre, mit einer Tabelle für 8 Eingänge (256 Einträge) zu arbeiten und die Operationen für jedes Eingagnsbyte auszuführen:

BTI EB0,MW0
ITD MW0,MD4
+D MD4,pointer auf Anfang der Tabelle // habe die Schreibweise für 200 nicht im Kopf
MOV [MD4],Ergebnis // habe die Schreibweise für die 200 nicht im Kopf
BTI EB1,MW0 //nächstes Eingangsbyte
ITD MW0,MD4
+D MD4,pointer auf Anfang der Tabelle // habe die Schreibweise für 200 nicht im Kopf
+D [MD4],Ergebnis // habe die Schreibweise für die 200 nicht im Kopf
 
Zuletzt bearbeitet:
Na ja, da hab ich das Fahrrad mal eben neu erfunden:rolleyes:
Vielen Dank an fleißigen Tipgeber !

Der Snap
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Forengemeinde!

bin auf diese Forum gestoßen, weil ich ein Problem im Moment nur sehr umständlich in den Griff bekomme und hoffe es gibt vielleicht eine einfache Lösung. Das Problem habe ich mit einer S7-200 224XP. Wie kann ich die Anzahl der gesetzten digitalen Eingänge ermitteln?

Danke schonmal im voraus !

Mich interessiert einfach mal, für WAS man die "Anzahl der gesetzten digitalen Eingänge ermitteln" muß/ kann / sollte ?

Welche Idee steckt dahinter ?

______________________________________________________________

Aus meiner Sicht ergibt sich noch kein Sinn darin, die Anzahl!! der gesetzten Ausgänge zu kennen.
Ich denke z.Zt., daß die erwartete Anzahl der Ausgänge stimmig sein könnte...
Woher weiß ich aber, wenn 'nur' die Anzahl der gesetzten Ausgänge stimmt, ob es auch die 'richtigen' Ausgänge sind ?
 
@mega_ohm
Ich habe derartige Funktion bisher z.B. (eigentlich nur) bei Absauganlagen benutzt,
Du hast als Eingang z.B. 30 Ein-Meldungen von Maschinen / Anlagen die du Absaugst, und je nach Anzahl der Maschinen,
wird ein anderer Drehzahlsollwert des Ventilators benötigt.

Mfg
Manuel
 
So ähnlich ist mein Anwendungsfall auch. Ich überwache die Verdichterstufen von Kältemittelverdichtern. Wenn eine bestimmte Anzahl von Verdichtern einer Maschine läuft und die Kaltwasservorlauftemperatur nicht absinkt, muss die Folgemaschine zugeschaltet werden. Die Kältemaschine legt aber willkürlich (nach Betriebsstunden der Einzelverdichter) fest, welche Verdichter zugeschaltet werden. Genause wird bei Unterschreitung einer bestimmten Verdichterzahl die Folgemaschine wieder abgeschaltet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@mega_ohm
Ich habe derartige Funktion bisher z.B. (eigentlich nur) bei Absauganlagen benutzt,
Du hast als Eingang z.B. 30 Ein-Meldungen von Maschinen / Anlagen die du Absaugst, und je nach Anzahl der Maschinen,
wird ein anderer Drehzahlsollwert des Ventilators benötigt.

Mfg
Manuel

Erst einmal einen fetten DANK dafür, daß Du mir mal ein Anwendungsbeispiel genannt hast.
Ich hatte ja das Problem, den Sinn der Übung (Zählen der Ausgänge) nicht nachvollziehen zu können.

Nun bin ich ja bekanntermaßen Betriebselektriker, also "lufttechnisch" recht unbedarft. Ich kann also nur auf Erfahrungen aus meinem Arbeitsbereich zurückgreifen.
In dem Unternehmen, in dem ich angestellt bin, wurden anfänglich auch dezentrale Absauganlagen installiert. (Mit FU's für die Antriebsregelung)
Nachdem die ersten FU's defekt gingen, auf die Schnelle (in einer Nachtschicht) kein Ersatz möglich war... habe ich eine 2-Punkt- Regelung (als 'Notlösung' eine Dahlander mit Abfrage der Unterdruckmessung) "zurechtgestrickt".
Das 1. Ergebnis: Diese Regelung ist seitdem aktuell
2. Ergebnis: Die Arbeitsklima-/ Umweltwerte haben sich meßbar verbessert. (unser Betrieb wird ständig auf Emissionswerte [Feinstaub-/Zunderbelastung] von Fremdfirmen überwacht. Die Meßwerte werden auch der BG komprimiert zugeführt)
Eine Aussage der Maschinisten ist, daß seit dieser 'Notlösung' mehr Staub/Zunder abgesaugt wird und weniger 'Stuben-u. Revierreinigen' angesagt ist. (Es sind meine Erfahrungswerte !!!)
Das läßt für mich folgende Schlußfolgerung zu:
Bei Absauganlagen muß immer ein lastunabhängiger Unterdruck erzeugt werden, um Leitungswege (Widerstände) zu überwinden. Fällt dieser 'Mindest'-unterdruck reicht nach meiner Erfahrung, die max. Leistung der Anlage. Die Mindestleistung habe ich einfach mal (es war ja eigentlich eine Notlösung) mit dem in der Elektrik üblichen Gleichzeitigkeitsfaktor angenommen.

In dem, von Dir genannten Fall würde ich eher 30 Eingänge für "Unterdruck-Prüfung" (z.b. mittels Klappen und einem Endschalter od. Ini) "verbraten" als die Ausgänge zu zählen.
In der von mir vorgeschlagenen Lösung wüßte ich konkret, daß die Lüfter angesteuert, nicht ausgefallen sind (defekt) und das die benötigte Saugleistung vorhanden ist.

Es war ein Beispiel, welches Du erwähnt hast. Das habe ich erkannt.

Ich bin für den Beitrag "Ausgänge zählen" trotzdem sehr dankbar. Er erweitert die Möglichkeiten (und meine Erkenntnis)
Für eine Fehlermeldung (z.b. bei der Ansteuerung von Ventilen, Kältemasch. etc.) könnte man nach einer Laufzeit prüfen, wieviele Ausgänge immer noch gesetzt sind. Diese Ausgänge sind dann "nur" noch gesetzt, weil die eigentlichen Abschaltbedingungen nicht erreicht wurden.
Die Fehlermeldung könnte also dann folgendermaßen aussehen:
"Laufzeitfehler Aggregat 1, 5,.. "
(ebenso gut könnte man die Fehler natürlich auch vorher 'sammeln', aber manchmal könnte es einfacher sein, daß Ergebnis [also die Ausgänge]abzufragen)

Mfg mega_ohm
 
Hallo,

ich hatte Dank der jetzigen Konjunkturlage mal wieder Zeit über ein Thema etwas länger nachzudenken.
Wer den FC braucht kann ihn gerne nutzen.

Viele Grüße

BS
 

Anhänge

  • FC_ZAEHLEN_BITs.txt
    9,4 KB · Aufrufe: 56
Zurück
Oben