Zählen mit Prozessalarm

Andy_speedy

Level-1
Beiträge
71
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich zähle eine Stückzahl mit Hilfe eines Eingangs, dem OB40 und dem Prozessalarm.
Stelle ich aber die Eingangsverzögerung auf 0,1 dann stimmt meine Stückzahl nicht mehr.
Hat einer eine Idee womit das zusammen hängt und was man da tun muss?
mit einer Eingangsverzögerung von 3 geht es, nur ist das ja dann langsam.
Hier noch der ob40:
Netzwerk1:
U L 8.3
= "M 0.5"

Netzwerk2:
L #OB40_IO_FLAG
L B#16#54
<>I
SPB ENDE

L #OB40_MDL_ADDR
L 0
<>I
SPB ENDE

U "Einschaltung"
U "Stückzahlzähler Frei"
SPBN m001

L "DB 33".stat6
L 1
+I
T "DB 33".stat6

L "DB 33".stat7
L 1
+D
T "DB 33".stat7
m001: NOP 0

U "Einschaltung"
SPBN nich

L "DB 33".stat45111
L 1
+I
T "DB 33".stat45111
nich: NOP 0
 
Zuletzt bearbeitet:
Ich zähle eine Stückzahl mit Hilfe eines Eingangs, dem OB40 und dem Prozessalarm.
Stelle ich aber die Eingangsverzögerung auf 0,1 dann stimmt meine Stückzahl nicht mehr.
Hat einer eine Idee womit das zusammen hängt und was man da tun muss?
mit einer Eingangsverzögerung von 3 geht es, nur ist das ja dann langsam.
Grundsätzlich gilt:
Ist der Alarm-OB noch nicht fertig wenn von demselben Kanal ein erneuter Aufruf ansteht, wird der neue Alarm verworfen.
Erfolgt der Aufruf durch einen anderen Kanal wird dieser anschließend bearbeitet.

Was ist das für eine Eingangsverzögerung?
Zeiteinheit?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ist "Einschaltung" und/ oder "Stückzahlzähler Frei" ein Eingang der auch deinen Prozessalarm auslöst?
Dann musst du am Anfang des OB's das dementsprechende PEW bzw PEB laden und die Bits die du benötigst herausfiltern damit du die aktuellen Zustände deiner Eingänge hast und nicht die vom Prozessabbild.

godi
 
Ist "Einschaltung" und/ oder "Stückzahlzähler Frei" ein Eingang der auch deinen Prozessalarm auslöst?

Sind Merker die ich im Programm setze. Mein Eingang ist der E0.4.
Wie kann ich den direkt abfragen?

Was ist das für eine Eingangsverzögerung?
Zeiteinheit?
das sind die die ich in der HW-Konfig einstelle.
Eingansverzögerung [ms]/Spannunsart.
also 3 ms (DC) bzw. 0,1 ms [DC]
 
Was du auch versuchen kannst ist, im OB40 auswerten das ein Alarm
aufgetreten ist, einfach einen Merker im OB40 setzen. Das zählen dann
im OB1 indem du den Alarmmerker abfragst und den entsprechenden
Eingang, hast du den Impuls gezählt, setzt du deinen Alarmmerker zurück.
Wenn die Alarme so schnell hintereinander kommen das Signale verschluckt
werden, ist der eine Alarmbearbeitung mit dem OB40 zum zählen nicht so
geeignet, da macht dann eine Zählbaugruppe mehr sinn.

Den E0.4 kannst du ganz normal abfragen auch wenn er als Alarm
Eingang parametriert ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen,

hier ein Beispiel wie wir das mit einem Zähler
der über Frequenzimplus zählte gemacht haben.

Auch wie Godi geschrieben hat
" PEW bzw PEB laden und die Bits die du benötigst herausfiltern "

Grüße,
 

Anhänge

  • OB40.jpg
    OB40.jpg
    50,4 KB · Aufrufe: 58
Hallo
Du schreibst, die Stückzahl stimmt nicht mehr. Ist sie zu gross oder zu klein?
Wenn er mit der kleineren Zeit zu viel zählt, kann es sein, dass der Eingang "prellt", und Du dies alles mitzählst. Ansonsten das was die Vorschreiber schon ausführten mal durchdenken.
Thomas
 
Stelle ich aber die Eingangsverzögerung auf 0,1 dann stimmt meine Stückzahl nicht mehr.
Wie "stimmt meine Stückzahl nicht mehr"? Wird zuviel gezählt oder zuwenig?

Netzwerk1:
U L 8.3
= "M 0.5"
Wozu soll das gut sein? M0.5 wird 1 wenn E0.3 den Prozessalarm ausgelöst hat.

Mein Eingang ist der E0.4.
Wie kann ich den direkt abfragen?

Code:
Netzwerk2:
[COLOR="Blue"]//prüfen, ob E0.4 den Prozessalarm ausgelöst hat[/COLOR]
      L     #OB40_IO_FLAG
      L     B#16#54                 [COLOR="Blue"]//Eingangsbaugruppe PE...[/COLOR]
      <>I   
      SPB   ENDE

      L     #OB40_MDL_ADDR
      L     0                       [COLOR="Blue"]//Modul PE0[/COLOR]
      <>I   
      SPB   ENDE

[COLOR="Blue"]      L     #OB40_POINT_ADDR
      UD    DW#16#10000000          //00010000_00000000_00000000_00000000 = E0.4
      SPZ   ENDE

//E0.4 hat den Alarm ausgelöst (steigend oder fallend)

      L     PEW    0
      UW    W#16#1000               //00010000_00000000 = E0.4
      SPZ   ENDE

//E0.4 ist jetzt 1 = hat steigend den Alarm ausgelöst[/COLOR]

      U     "Einschaltung"
      U     "Stückzahlzähler Frei"
      SPBN  m001
[COLOR="Blue"][...][/COLOR]

[COLOR="Red"]ENDE[/COLOR]: NOP   0

Gruß
Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was du auch versuchen kannst ist, im OB40 auswerten das ein Alarm
aufgetreten ist, einfach einen Merker im OB40 setzen. Das zählen dann
im OB1 indem du den Alarmmerker abfragst und den entsprechenden
Eingang, hast du den Impuls gezählt, setzt du deinen Alarmmerker zurück.
Wenn die Alarme so schnell hintereinander kommen das Signale verschluckt
werden, ist der eine Alarmbearbeitung mit dem OB40 zum zählen nicht so
geeignet, da macht dann eine Zählbaugruppe mehr sinn.

Den E0.4 kannst du ganz normal abfragen auch wenn er als Alarm
Eingang parametriert ist.

wenn er das macht hat er ja aber probleme wenn die impulse schneller als die zykluszeit erfolgen
 
wenn er das macht hat er ja aber probleme wenn die impulse schneller als die zykluszeit erfolgen

genau das meinte ich doch dann einen schnellen zähler zu nehmen, mit
dem OB40 zu zählen ist nicht immer die beste lössung. Da können ein
paar € mehr in der Hardware wunder wirken. Zusätzlich ist bestimmt nicht
förderlich alle paar ms den OB40 aufzurufen.

Die von ihn genanten 3000 stück/min, sind sicherlich etwas für eine Zählbaugruppe.
 
leider keine cpu mit technologiefunktionen.

zählerbaugruppe wäre sicher angebracht.
3000/min heisst alle 20ms. nur um einen wert zu addieren sollte das kein problem darstellen.
wie lange steht das bit denn an? (betätigungszeit)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
zählerbaugruppe wäre sicher angebracht.

Das war auch mein Ansatz und so etwas ähnliches hatte ich beim Durchlesen des Thread auch schon erwartet ...

@Andy:
Im Prinzip würde das, was du da vorhast schon gehen - aber nicht mit einer "schlappen" CPU ... :rolleyes:
 
was heist schlappen cpu?
gibt es da was besseres?

Nach oben hin ist immer Platz, aber eine gleichwertige mit
Technologie Funktion wäre hier geeigneter, zb die 314C.
Was hast du den für zykluszeiten und wie ist die zeitliche
Abfolge von deinene teilen, kann es zb sein das diese im
1 ms Bereich einander folgen können oder ist da immer
ein Abstand von 20ms?
 
Zurück
Oben