TIA Aufruf von Digitalen Eingängen im Weckalarm OB

Beiträge
53
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hello @ All,

Ich hab mal eine Frage:
Digitale Eingänge [%I1.4 - INI Drehzahlmessung Rührwerk] werden doch zyklisch am Anfang der Programmroutine (OB1) abgefragt, und am Ende des Programm's werden dann die Digitalen Ausgänge beschrieben (Korrigiert mich wenn ich Falsch liege). Sonst würden ja die "schnellen Zählerkarten" keinen Sinn ergeben...
Macht es Sinn diesen Eingang in einem Weckalarm OB aufzurufen?

Hintergrund:
Ein Kollege hat das mal so gemacht für eine Drehzahlberechnung... Und ich bin der Meinung das das so nicht funktionieren kann.
Entweder ist das so Genial das ich es nicht verstehe, oder absoluter Mist.
Im Anhang mal ein paar Bilder:
OB32: 1ms
OB33: 2s
OB33: 2s

Bin mal auf Eure Meinung gespannt
LG aus Niedersachsen
 

Anhänge

  • OB32.PNG
    OB32.PNG
    18,8 KB · Aufrufe: 44
  • OB33.PNG
    OB33.PNG
    37,2 KB · Aufrufe: 44
  • OB34.PNG
    OB34.PNG
    6,7 KB · Aufrufe: 44
Zuviel Werbung?
-> Hier kostenlos registrieren
Klar kann man Eingänge auch seltener oder häufiger als im OB1 verarbeiten. Man muß nur beachten, daß der Wert des Eingangs im Prozessabbild (PAE) in der Regel (Ausnahme TPA) von der Aktualisierung vor dem letzten Aufruf des OB1 stammt. Will man schneller als im OB1 verarbeiten und braucht den ganz aktuellen Wert des Eingangs, dann muß man den Eingang aus der Peripherie lesen.

Harald
 
Die erste Frage ist, wieviele Impulse kommen denn ca. pro Sekunde?
In diesem Falle wohl nicht wirklich Kritisch. Das Rührwerk mach Lt. Hersteller 150U/min bei 50HZ (Ist ein Druckluft angesteuertes RührwerK (was immer das mit 50Hz zu tun hat???))
Demnach bin ich bei ca alle 800ms ein Impuls. Also nicht wirklich Kritisch.

Aber ich habe jetz kein Wort verstanden was du mir sagen willst...
 
Klar kann man Eingänge auch seltener oder häufiger als im OB1 verarbeiten. Man muß nur beachten, daß der Wert des Eingangs im Prozessabbild (PAE) in der Regel (Ausnahme TPA) von der Aktualisierung vor dem letzten Aufruf des OB1 stammt. Will man schneller als im OB1 verarbeiten und braucht den ganz aktuellen Wert des Eingangs, dann muß man den Eingang aus der Peripherie lesen.

Harald
Das bedeutet dann was?
 
In diesem Falle wohl nicht wirklich Kritisch. Das Rührwerk mach Lt. Hersteller 150U/min bei 50HZ (Ist ein Druckluft angesteuertes RührwerK (was immer das mit 50Hz zu tun hat???))
Demnach bin ich bei ca alle 800ms ein Impuls. Also nicht wirklich Kritisch.
Du unterstellst anscheinend, dass Dir die Drehzahl mit einem Signal geliefert wird, das pro Umdrehung 1-mal auftritt?
Das kann sein so sein, muss es aber nicht.

Entscheidend, um jeden Impuls mit der PLC sicher aufschnappen zu können:
- jeder Impuls muss länger sein als der Takt, in dem das Signal abgefragt wird UND
- jede Pause zwischen zwei Impulsen muss länger sein als der Takt, in dem das Signal abgefragt wird.
Der Takt, in dem der Eingang abgefragt wird, kann die PLC-ZyklusZeit sein, wenn der Eingang im zyklischen Progamm abgefragt wird, kann aber auch ein anderer Takt sein, z.B. ein WeckAlarm. Das Abfragen des Eingangs im ProzessAbbild macht aber nur im OB1-Takt Sinn.

Die kürzere der beiden Zeiten (ImpulsLänge und Länge der ImpulsPausen) entscheidet darüber, welche Frequenz maximal verarbeitet werden kann.
Die Situation wird entschärft, wenn die Länge der Impulse und die Länge der ImpulsPausen bei der höchsten auftretenden Frequenz gleich lang sind.
Wie viele Impulse z.B. pro Umdrehung auftreten, ist ein weiteres Kriterium/Problem.
Es macht ja einen Unterschied, ob alle 2ms ein Signal für 0,1ms kommt oder ob alle 800ms ein Signal für 10ms kommt.
Und es nützt einem gar nichts, wenn die Pause zwischen 2 Impulsen z.B. 800 ms beträgt, aber die Länge der Impulse nur 0,1 ms.
Um keinen Impuls zu "übersehen", müssen in den ExtremFällen kurze Impulse zwischen langen Pausen genauso sicher erkannt werden wie kurze Pausen zwischen langen Impulsen!
 
In diesem Falle wohl nicht wirklich Kritisch. Das Rührwerk mach Lt. Hersteller 150U/min bei 50HZ (Ist ein Druckluft angesteuertes RührwerK (was immer das mit 50Hz zu tun hat???))
Demnach bin ich bei ca alle 800ms ein Impuls. Also nicht wirklich Kritisch.

Aber ich habe jetz kein Wort verstanden was du mir sagen willst...
Ein paar Dinge zu diesem Thema:

1. Die Periodendauer des Impulses (Taktes) ist nur bedingt interessant, da für
die Betrachtung der Eingangsgeschwindigkeit die Impulsdauer und die
Pausendauer einzeln zu betrachten sind.
2. Die kürzere der Beiden Zeiten gibt dabei Auskunft über die maximale Eingangsfre
die verarbeitet werden dieser nurmuß (von der SPS). Ggf Oszilloskopemessung.
d.H. z.B. Impusdauer ist 10 ms und Pausendauer ist 790 ms so ist mit den 10 ms zu rechnen.
3. Die Frequenzberechnung geschieht (in diesem Falle) aus der Imulsdauer:
1000 [ms] / 10 [ms] = 100 [Hz]
4. Die Bemessung des Eingangsinterrupts bzw. Zykluszeit solle immer mit dem
doppelten Wert erfolgen. Also 5 ms oder 200 Hz.
Ist nun die Regelzykluszeit (OB1) kürzer als 5 ms, so können aufwendige
Interrups entfallen und es kann mit ganz normalen E/A- Befehlen
gearbeitet werden.
5. Bei all diesen Betrachtungen darf aber nicht vergessen werden, dass
auch die Eingangsgeschwindigkeit verarbeiten müssen.
In unserem Beispiel sicher kein Problem, jedoch kann es ab unter ca. 2 ms zu
problemen (je nach Baugruppe / siehe Datenblatt) kommen.
Auch eine Einbindung über BUS-Aufbau ist zu prüfen, da diese sich ebenfalls
negativ auswirken kann.

Sollte doch ein Interrupt (Wechalarm) benötigt werden, so sollte dieser
nur so schnell wie nötig eingestellt werden (Im Beispiel: 5 ms).

Die Begründung liegt in der Tatsache, dass häufige Interruptaufrufe
das Hauptprogramm "ausbremsen".
Ausserdem müssen die Hardwarevoraussetzungen trotzdem gegeben sein.

HINWEIS: Dieses Thema relativiert sich beim Einsatz einer 1200 er Stauerung,
da Diese von Haus aus schnelle Eingänge / Zähler OnBoard haben (bis 40 kHz).


Gruß

A.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kurzer Nachtrag:

Im Interruptbetrieb kann nicht mit Standard-Prozessabbild gearbeitet werden.

Also entweder Periperie direkt Laden und Maskieren (geht nicht Bitweise) oder
spezielle TPA's (Teilprozessabbilder) einrichen.

Gruß

A.
 
Klar kann man Eingänge auch seltener oder häufiger als im OB1 verarbeiten. Man muß nur beachten, daß der Wert des Eingangs im Prozessabbild (PAE) in der Regel (Ausnahme TPA) von der Aktualisierung vor dem letzten Aufruf des OB1 stammt. Will man schneller als im OB1 verarbeiten und braucht den ganz aktuellen Wert des Eingangs, dann muß man den Eingang aus der Peripherie lesen.

Harald

zugegeben zu S5-Zeiten habe ich solche Dinge auch gemacht und Sie funktionieren auch
(Z.B. Centronics-Anschaltung).

Da es dabei aber sehr auf die zeitliche Aufteilung im Ablauf ankommt und es nachteilhaft sein kann
wenn später jemand Programmteile erweitert würde ich eher davon abraten.
 
z.B. eine Temperaturregelung muss man nicht alle 50ms machen, insbesondere wenn vielleicht nur alle 250ms ein neuer Temperatur-Istwert kommt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antworten :)

Es ging mir Hauptsächlich um die Ausführung wie mein Kollege das mal programmiert hat. Da er den Eingang als boolsche Variable im OB32 (1ms) aufgerufen hat und dann merkwürdige dinge im OB33 und OB34 macht.

Ich denke das kann man deutlich einfacher realisieren.

DANKE @ ALL
 
Zurück
Oben