Schnelle Impulszählung über Profibus ab ET200S

swisscrane

Level-1
Beiträge
87
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle.
Ich hab da eine Anwendung welche bis anhin über eine 16Di Alarm Karte mittels Prozessalarm sehr schnelle Impulse gezählt hat. Insgesammt pro Minute 3000 Positive und 3000 negative Flanken welche den Prozessalarm auslösen.
Diese wurden im OB40 gezählt und ausgewertet.
Jetzt soll diese Anwendung über eine IM151 HF mit einer 4DIHF Karte erfasst werden.

Bei den kleineren Touren funktioniert es, jedoch nicht mehr bei voller Umdrehungszahl.
Habe bereits die Übertragunsrate auf 12MBit gesetzt was eine kleine verbesserung gebracht hat.
Siemens war bei der Projektierung der Meinung das es mit der Karte ginge, sprich sie könne das gleiche wir die 16DI Alarm.
Kann sein das durch den Unterschied das bei der 16DI für den Prozessalarm die Positiven und Negativen Flanken genutz werden können, und bei der 4DI nur die Positiven.
 
Hallo Swisscrane,
wenn ich das richtig lese, bekommst du unter umständen alle 10ms ein Impuls und verzweigst in die Alarmbearbeitung, ob das so günstig ist....?

Dazu brauchst du eine sehr schnelle CPU (oder wenig Programm) und einen schnellen Bus der mit wenig Teilnehmer last.

Wenn du nur Impulse Zählen möchtest ist es vielleicht besser eine Zählkarte zu nutzen.

gruß Helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe noch einmal nachgeschaut, die Baugruppen können nur steigende Flanken. Damit haben wir auch Problemme.

Wir machen es so das wir WIN_AC nutzen die ist sehr schnell und dann die Eingangsverzögerung herabsezten. So können wir auf die Alarmbearbeitung verzichten.

gruß Helmut
 
Was ist Win_AC

Hallo Reparatur.
Das mit der Alarmbearbeitung war mir beim alten System auch nicht von Vorteil.
Hat jedoch funktioniert, da wir relativ wenig Programm haben und keinen Bus.
Was ist Win_Ac
Wie funktioniert es.
Zur Zählung benötige ich die Signale auch noch einzel zur Richtungserkennung.
Sie werde doppelt geladen und gegeneinander ausgewertet.
Habe noch einmal nachgeschaut, die Baugruppen können nur steigende Flanken. Damit haben wir auch Problemme.

Wir machen es so das wir WIN_AC nutzen die ist sehr schnell und dann die Eingangsverzögerung herabsezten. So können wir auf die Alarmbearbeitung verzichten.

gruß Helmut
 
WinAC ist eine Soft-SPS die auf PC Systemen läuft, damit bekommen wir kurze Zykluszeiten <1ms. Für unsere Anwendungen brauchen wir somit keine Alarmbearbeitung mehr, was bei normalen CPU's bis 317 erforderlich ist.

Jetzt nochmal machst du den mehr als Zählen, wenn nicht nimm eine Zählbaugruppe:
Code:
6ES7 138-4DA04-0AB0 C
 
Zählermodul, 24 V/100 kHz für
einmalig-, endlos- und periodisch
Zählen, unterstützt Taktsynchronität

Das macht die sache vielleicht wesentlich einfacher und genauer für dich.

gruß Helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja wir machen mehr als Zählen.

Ich hol mal kurz etwas aus.
Bei uns sitzt ein Flansch auf einer Motorabgangswelle. Auf dem Umfang ist ein Schaltbild eingefräst welches in einem 1/4 vertieft ist. Aussen um diesen Flansch sind zwei Näherungssensoren im Abstand von 90° angereit.
Diese beiden Signale werden erfast doppelt geladen als Merker und gegeneinader in pro Drehrichtung je 4 Nw ermittelt in welcher Richtung der Motor dreht.
Gleichzeitig wird das Ergebnis aus diesen 4 Nw in einer Richtung Addiert und in die andere Subtrahiert.
Dies ergibt pro Umdrehung 4 Zähler welche dann zur ermittlung der Geschwindigkeit benötigt werden.
Für die Geschwindigkteit wird mit einem V-Impuls von 500ms die Differenz des Zählerstandes ermittelt.
Das ganze sitzt auf einem Baukran und ist für das Schwenken verantwortlich.
Kann ich den bei der Zähler Karte die Signale nicht einzeln abzapfen und den Zähler für den Speed nehmen?
 
Hallo Swisscrane
So wie sich das für mich darstellt ist das einen normale Wegerfassung, also was du eigendlich brauchst. Wenn du den Weg einmal hast, kannst du daraus ziemlich einfach die Geschwindigkeit errechnen. Also noch einmal meinen Rat nimm die Zählbaugruppe, ist ein wenig Teurer aber für deine Aufgabe genau das richtige. Die Baugruppe erkennt selber die Richtung, ist wesentlich genauer da zyklus unabhängig. Es kann nicht passieren das mal ein Impuls verloren geht, was bei der Alarmbearbeitung durchaus vorkommen kann und in deinen fall wahrscheinlich auch schon passiert.

Die Baugruppe kann aber nur eine Betriebsart, diese wird in der Hardware Konfig vorgegeben. Also nicht Wegerfassen, Frequenzmessung oder Zählen gleichzeitig.

Wir machen es wie gesagt, Wegerfassung mit dem Weg der in einer bestimmten Zeit (vielleicht sekunden Takt) verfahren wurde die Geschwindgikeit in der CPU errechnen.

gruß Helmut
 
Conter sollte gehen. Laut Siemens

Hallo Helmut. Danke für deinen Tip mit dem Counter.
Laut Siemens sollte es für meine Anwendung gehen. Ein kleiner Rest Unsicherheit besteht noch, da wir mit zwei unabhängigen Sensoren arbeiten.
Bekomme den Counter am Dienstag.
Mal schauen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Zähler vorladen.

Hätte da noch kurz ne Frage wie ich den Zähler vorladen kann.
Das schnall ich nicht.
Hab die Anleitung vor und zurück gelesen.
Liegt warscheinlich an mir und nicht an der Anleitung.
Was muss ich mit Load_Val machen.
Wie muss der Ladebefehl aussehen.
 
morgen swisscrane,
so ähnlich mache ich es....
Code:
[INDENT]U     #IN_REF_SET
FN    #Merker.FM_Ref
SPBN  REF      
L     #IN_Bezugspunkt             
T     #Zaehler.Ausgang.Ladewert
SET   
=     #Zaehler.Ausgang.LOAD_VAL
[/INDENT]REF:  NOP   0
[INDENT]O     #Zaehler.Eingang.STS_LOAD
R     #Zaehler.Ausgang.LOAD_VAL
[/INDENT]

gruß Helmut
 
Zum sicher sein.

Guten Tag Helmut.
Nur das ich da richtig liege.
Du löst mittels einem Merker und Flanke
das laden des Ladewertes aus.
Anschliessend Transferierst es auf die Ladebyte des Counters?
Brauche ich hier ewentuell noch das PAD?
Dann setzt du das Ladebit
Mit der Rückmeldung das dass Laden läuft resetest
du das Ladebit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...ja du brauchst das entsprechende PAD. Aber vielleicht legst du dir ein UDT an wo die ganzen Werte d.h. Eingangs bzw. Ausgangswerte umgeladen werden.
Diesen UDT kanst du dir dann in einer FB Instanz oder einen Global-DB ablegen, so hast du bei deiner arbeit mit der Baugruppe immer alle Daten...

gruß Helmut
 
Will nicht richtig gehen.

Ich bin leider kein AWL Guru.
haber hier mal meinen Code.
Es setzt mir den Zählerstand auf 0.
Ich möchte ihn jedoch später remanent machen.
Beim Code sollte es laut mir den aktuellen Zählerstand aus dem DB wieder frisch laden.
U "M 4.3"
FN M 151.5
SPBN nol
L "Counter Daten".Zaehlerstand_counter
T "Counter Daten".Ladewert_counter
L "Counter Daten".Ladewert_counter
T PAD 268
SET
S DB9.DBX 21.0 //LOAD_VAL
L DB9.DBW 21
T PAW 273
nol: NOP 0
L PED 272
T "Counter Daten".Status_counter
O DB9.DBX 4.0 //STS_LOAD
R DB9.DBX 21.0 //LOAD_VAL


Vielleicht findest du den Fehler ja.
 
...ich denke mit deinen Code mußt du natürlich ein wenig "schwanger gehen".... mit dem Remanent das mache ich auch ich lade einfach die letzte Ist-position beim CPU anlauf um und setzte einmal den Zähler neu, klappt wunderbar...ABER, pass auf du mußt daran denken wenn der bediener einfach den Hauptschalter ausschaltet, ist es so das die Dezentrale Peripherie schneller von der Spannung ist wie deine CPU, d.h. von deiner Zählkarte kommt "0", wird gespeichert und das würdest du beim nächsten einschalten wieder überschreiben. Da muß du dir etwas einfallen lassen...Ich mache es so das der bediener die Maschine runterfahren muß, so ähnlich wie bei Windows herunterfahren, dann wird im OB1 am anfang über ein Merker "BEB" ausgeführt, das Programm wird nicht mehr durchlaufen und somit wird dann kein falscher Wert abgespeichert...

Code:
[INDENT]U     "001-CPU_Start"
SPBN  BA
L     #Zaehler.Eingang.Wert
T     #Zaehler.Ausgang.Ladewert
SET   
 =     #Zaehler.Ausgang.SW_GATE
=     #Zaehler.Ausgang.LOAD_VAL
[/INDENT]BA:   NOP   0

gruß helmut
 
Zuviel Werbung?
-> Hier kostenlos registrieren
schwanger?

Besten Dank.
So ähnlich hatte ich mir das auch gedacht.
Jedoch ist dies ein Baukran. Der wird nicht zuerst runtergefahren.
Dafür wird er eigentlich nur sehr selten am Hauptschalter ausgeschaltet.
Lass es dann wohl beim Reset bleiben.

Nur so für mich als newbee.
Wie meintest du das mit dem Schwanger?
 
...keine Angst, bei uns sagen wir wenn man über eine sache mal nachdenken soll oder möchte, geh damit mal schwanger (trag Sie aus...:rolleyes:)

...Damit du nicht in verlegenheit kommst mit deinem Startwert kannst, du es ja vielleicht so machen das du bei stillstand der Achse nach einer bestimmten Zeit (200ms) mit einer Flanke den Wert speicherst...das macht es vielleicht beherschbar...

gruß Helmut
 
Zurück
Oben