Step 7 Istgeschwindigkeit aus FM-450

Naja, wie soll ich das jetzt mal "ebend" testen. Davon mal abgesehen, ich weiß gar nicht ob wir ein Oszi mal so eben da haben im Betrieb. Sicher irgendwo aber wie gut das dann ist. Mal ganz davn abgesehen, dass ich seit Jahren so ein Teil nicht mehr in der Hand hatte und gar nicht weiß wie ich da die Geberkanäle anschliessen müsste.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die GeberSignale müssten doch an den ZählerKarten ankommen, da könntest Du zumindest anfangen, Dich (vermutlich relativ unbeschwerlich) mit einem unbekannten Oszi anzufreunden ;o)
Welche Anforderungen stellen denn die Geber an die BetriebsSpannung? Wenn Du das weisst, möglichst in GeberNähe nachmessen - oder sind die Kabel dorthin recht kurz? Ist evtl. sogar schon eine JustageMöglichkeit für die BetriebsSpannung vorhanden?
 
Falls da irgendeine außer Kontrolle geratene indirekte Adressierung reinpfuscht: versuche mal eine andere DB-Nummer für die Kanal-DB

Ist Dein FC CNT_CTRL aktuell?
In meiner FMx50LIB: FC0 CNT_CTRL V3.0 vom 25.01.2006 12:15:33, 540 Bytes Arbeitsspeicher
FM Configuration Packages für Step7 ...

Hast Du irgendwie Fehleranzeigen des FC CNT_CTRL? Hast Du schon mal den FC_DIAG_INF aufgerufen?

Direktzugriff auf Peripherieadressen der FM450-1:
Kanal 1: CH_ADR = MOD_ADR
Kanal 2: CH_ADR = MOD_ADR + 32

PED[CH_ADR + 0] ACT_LOAD Aktueller Ladewert
PED[CH_ADR + 4] ACT_CNTV Aktueller Zählwert
PEW[CH_ADR + 8] DA_ERR_W Datenfehler-Wort
PEB[CH_ADR + 10] OT_ERR_B Bedienfehler-Byte
PEB[CH_ADR + 11] Bit .4: DATA_ERR Datenfehler-Bit

Was Siemens im FM450-1-Handbuch wohl damit meint?
Die FC CNT_CTRL kann im Zyklus oder alternativ in einem zeitgesteuerten Programm einmal pro Zähler aufgerufen werden. Der Aufruf im Alarmprogramm ist nicht zulässig.
Ich interpretiere das so: nicht zulässig ist Aufruf in Prozessalarmen OB4x und Fehler-Alarmen OB8x... Aufruf in zyklischen Weckalarmen OB3x sollte zulässig sein.

Eine FM450-1 habe ich noch nicht gehabt, bei FM350-1 rufe ich den CNT_CTRL.. im OB1 auf. Will ich den Zählerstand in einem OB3x/OB4x wissen, dann lese ich direkt das PED des Zählwertes. Ich lasse alle Kanäle endlos frei laufen und setze die nie auf Anfangswerte zurück, weil dabei Impulse verloren gehen können.
Programmbeispiel: Zählerstandübernahme zu einer relativen Position ohne daß der Überlauf stört

Harald
 
Im DB der FM gibt es ja die Rückmeldung STS_RUN

Ist ja leider von BigS wieder nicht ordentlich dokumentiert... Geht der bei Stillstand auch auf False oder macht der da vielleicht die gleichen Mucken im 250ms Intervall?

Ich würde jetzt einmal interpretieren, das der nur True ist, solange der "interne Zähler Aufnahmebereit ist"
Dann musst du nur noch die Ursache dafür finden, im Stillstand kann das Phänomen ja auch auftreten, nur merkst du es dann nicht direkt ;)

MfG Fabsi
 
Ich hab euch mal ein Bild gemacht, mit dem Signal STS_RUN / TvRM FM Zähler läuft im Bild:

laeuft.jpg

@Harald
Ich deute die Sache auch so, dass der FC für den Counter entweder im OB1 oder im OB3X aufgerufen werden kann, alles andere würde auch kaum Sinn ergeben. Ich konnte den Fall, dass er im echten Stillstand auf true geht ohne dass sich die Impulszahl ändern nicht finden. Allerdings war er mal 3s auf true obwohl er nur ein Impuls (Erschütterung) gezählt hat. Naja ich guck mal morgen dann wissen wir mehr.

Anbei noch. Der Instandhalter hat mir gesagt, dass die ermittelte Länge aus dem Zähler wohl relativ genau ist. Heißt bei 1000m Produkt messen wir um die 1000m +/- 10m am Ende. Man, das echt ein hartes Rätzel :(.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Clyde82,
in der pdf finde ich nur eine einzige Stelle zum Thema STS_RUN
"43.0 | STS_RUN | BOOL | FALSE | Status Zähler arbeitet (S. 102)"
und habe noch nichts darüber gefunden, was mit "Zähler arbeitet" wirklich ausgesagt wird.
Ich gehe jedoch davon aus, dass dieses StatusBit keinesfalls pulsieren sollte - Dein Zähler darf und muss doch pausenlos die hereinkommenden Impulse zählen und Du steuerst nur, wann Du den Zählerstand liest. Woher kommt das Pulsieren? Das kann doch eigentlich nur aus Deiner Ansteuerung des FC resultieren.

Der ca.-250-ms-Takt hängt also nicht mit der Drehzahl zusammen. Und einen direkten Zusammenhang mit dem Pulsieren des Signals "Zähler arbeitet" kann ich überhaupt nicht erkennen.

In Hinblick auf die Genauigkeit Deiner Messung: es gehen regelmässig Impulse verloren. Die fehlen doch bei der Ermittlung der Länge/Wege/Positionen genau so, wie bei der Berechnung der Geschwindigkeit! Mag sein, dass der Fehler noch in der geforderten Toleranz liegt, aber ein grosser Trost ist das nicht - wenn doch bei jedem ca. 5. Lesezugriff die Anzahl der Impulse halb so gross ist, wie sie sein sollte, fehlen Dir im Durchschnitt ca. 10% der Impulse. Wenn trotzdem der Fehler der damit "gemessenen" Länge 1% nicht überschreitet, so muss noch ein weiterer Fehler da sein, der den 10%-Fehler recht gut ausbügelt. Schlupf kann es nicht sein, sonst würden noch mehr Impulse "fehlen". Also irgendwie zu viele Impulse? Selbst, wenn die Geber 1024 Striche statt 1000 hätten, würde das nicht annähernd genügen, das Ausbügeln zu erklären. 300 mm Durchmesser und die Kreiszahl Pi passen? Hmmm. Sehr, sehr merkwürdig.

Oder es fehlen keine Impulse, aber dann erfolgen die Zugriffe auf die Zählerstände tatsächlich in den "regelmässig unregelmässigen" Abständen (ca.) 50 ms - 50 ms - 50 ms - 50 ms - 25 ms u.s.w..

Verwendest Du ausser dem 50-ms-WeckAlarm noch einen oder mehrere weitere[n] WeckAlarm[e] für was auch immer?
 
Man, das echt ein hartes Rätzel :(.
Weiteres herumstochern:
Hast Du mal versucht, den Zählerstand (PED...) im OB1 abzufragen?
Hast Du mal getestet den OB3x mit Aufrufintervall 100 ms oder 200 ms?
Du könntest mal bei jedem Aufruf des OB3x den Stand des Systemtimers SFC64 "TIME_TCK" mitschreiben, um zu sehen ob die Aufrufe des OB3x ordnungsgemäß gleichmäßig stattfinden.

Welche FM450-1 hast Du genau? Eine alte 450-1AP00 oder die neuere überarbeitete Karte 450-1AP01, wo Siemens "vorsichtshalber" ;) die Möglichkeit von Firmware-Updates eingebaut hat?
Welche CPU genau hast Du? (Bestellnummer und Firmware-Version)

Was sagt der Siemens Support zu Deinem Phänomen?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In Deinem Bild 3 in #6 stellst Du bei U_D_LGTH die Länge der Nutzdatenschnittstelle mit 16 ein. Bei der FM450-1 und FC CNT_CTRL soll/muß da 32 eingestellt werden.
Warum schreibst Du im Kommentar und im Name des DB "FM350"? :confused:
Sind die Bilder von Deinem Programm in der S7-400?

Harald
 
Hi,

zuerst bzgl. Haralds frage. In Post #20 hatte ich dies bereits verdeutlicht. Ich hab 2 Geber einen an einer ET200 mit FM350 via Profibus und einen an einer FM450 direkt im Rack der S7 400 CPU. Beide mit dem selben Verhalten. Ja die Adressen beider Geber sind ausserhalb des Prozessabbildes.

Ich konnte heute etwas testen, aber nicht soviel wie ich wollte, da ich noch eine Inbetriebnahme fertig machen musste. Allerdings waren uns 2 Sachen aufgefallen, die falsch waren. Zum einen haben wir einen 24V Geber hatten aber auch A nicht, B nicht und N nicht angeschlossen, was man aber nur bei 5V Gebern tut. Weiterhin haben wir gesehen, dass der Geber nur bis <120kHz arbeitet und in der Hardware 200kHz eingestellt war. Aber selbst die Korrekturen haben keinen Erfolg gebracht. Wir haben auch mal N abgeklemmt, auf 2 fach Auswertung umgestellt und immer noch keine Besserung. Leider konnten wir nicht im Feld mit dem Oszi messen, aber ein Ersatzgeber vom selben Typ hat zumindest im Oszi bei einer Auflösung von 5ms kein ungewöhnliches Verhalten gezeigt. Wir wollten den Geber tauschen, allerdings bekamen wir kurzfristig das Stück Welle von der Passfeder nicht ab.

Wir haben uns geeinigt, dass der Instandhalter uns eine weitere FM350 besorgt und wir nächste Woche diese an unserer Versuchs-SPS verbauen und dort unseren Ersatzgeber mal anschließen. Müssen nur mal gucken, ob wir ein geeignetes Antriebsaggregat finden, womit wir den Geber betreiben können. Ich überleg schon, ob ich in meiner alten Lego Kiste meiner Eltern den Motor von Lego-Technik mal rauskrame und guck ob er noch läuft, aber ich glaube der hatte 12V.

Ich hatte auch noch getestet, dass ich den FC CNT_CTRL in den OB1 hole und den Zählerwert zur Wegberechung über PED3204 im OB36 einlese, aber auch das hat nicht geholfen. Was mir auf dem nach Hause weg aber noch eingefallen ist. Der Geber der an der FM 450 hängt ist Impulsgedoppelt auch noch an einer alten S5 in Betrieb. Ich hatte aber keine Zeit mich damit zu beschäftigen, wie genau dort der Weg berechnet wird bzw. wie überhaupt die S5 den Geber einliest. Wollte ich morgen in Ruhe mal gucken, ob ich eventuell dort einen Vergleich anstellen kann, weil die S5 auch mit auf dem selben Messwertsystem verbunden ist.
 
Zuletzt bearbeitet:
Zum einen haben wir einen 24V Geber hatten aber auch A nicht, B nicht und N nicht angeschlossen, was man aber nur bei 5V Gebern tut.
Hat der 24-V-Geber denn die /A-, /B-, /N-Anschlüsse? Dann offen lassen.
Wo angeschlossen?
Laut pdf ist beim Anschluss eines 5-V-Gebers lediglich der MasseAnschluss "1M" (Klemme 14) identisch mit dem beim Anschluss eines 24-V-Gebers.
Code:
Beispiel Zähler 1 (FM450-1):                    
                    
Inkrementeller 5-V-Geber             
[COLOR=#0000ff]14    1M        Masse Geberversorgung        
[/COLOR]15    DC5,2V    Geberversorgung 5,2 V        
 5    A         Gebersignal A        
 6    /A        Gebersignal /A        
 7    B         Gebersignal B        
 8    /B        Gebersignal /B        
 9    N         Gebersignal N        
10    /N        Gebersignal /N        
             
Inkrementeller 24-V-Geber              
[COLOR=#0000ff]14    1M        Masse Geberversorgung        
[/COLOR]16    DC24V     Geberversorgung 24 V        
11    A*        Gebersignal A *        
12    B*        Gebersignal B *        
13    N*        Gebersignal N *

Weiterhin haben wir gesehen, dass der Geber nur bis <120kHz arbeitet und in der Hardware 200kHz eingestellt war.
Mit "in der Hardware 200kHz eingestellt" meinst Du die Einstellung der ZählerKarte "Eingangsverzögerung für 24-V-Zahleingänge: typisch 1 µs (max. Frequenz: 200 kHz, Mindest-Impulsbreite: 2,5 µs)"?
Sollte so bleiben - nicht langsamer machen.

Wir haben auch mal N abgeklemmt, auf 2 fach Auswertung umgestellt und immer noch keine Besserung.
N kann man abklemmen, aber auch durch Parametrierung unwirksam machen.

Ich hatte auch noch getestet, dass ich den FC CNT_CTRL in den OB1 hole und den Zählerwert zur Wegberechung über PED3204 im OB36 einlese, aber auch das hat nicht geholfen.
Ich würde es mal versuchen, den FC nach dem Hochlaufen gar nicht mehr zu durchlaufen. Er soll also noch die Chance erhalten, die Parametrierung der Karte(n) nach Deinen Vorgaben durchzuführen, aber, wenn Du per PED3204 im OB36 ausliest, nicht mehr "dazwischenfunken" können.
Das ist wahrscheinlich ziemlich "blauäugig", aber eben nur als "VerzweiflungsTat" gedacht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

die "Verdrahtungsfehler" waren an der FM350-1, da sieht es etwas anders aus:
wiring.jpg

Es waren 7,9 und 11 auch angeschlossen. Ob das jetzt tatsächlich ein Fehler war, kann so nicht mal sagen. Es war eher überflüssig da es kein Unterschied gemacht hat ob die Nicht-Signale da nun aufliegen oder nicht. Die FM scheint die Anschlüsse bei 24V Einstellung gar nicht auszuwerten und ich bekam auch keinen Parametrierfehler gemeldet.

Den CNT_CTRL zu deaktivieren, die Idee hatte ich auch schon und hat auch nicht geholen.

Ich wollte jetzt mal gucken, ob der Impuls gedoppelte Geber in der S5 das selbe verhalten hat wie in der S7.

Das mit den 200kHz versteh ich dann wohl nicht richtig. In der Geberbeschreibung steht irgendwas von <120kHZ. Ist das unabhängig von dem was man für die FM auswählt?
 
Zuletzt bearbeitet:
Nebenbei, mal ne ganz blöde Frage. Ich hab den FC CNT_CTRL bei mir im Programm als FC0. Das ist nicht wie in der S5, dass der 0-Baustein / Adresse für indirekte Adressierung genutzt wird, ODER?
 
Das mit den 200kHz versteh ich dann wohl nicht richtig. In der Geberbeschreibung steht irgendwas von <120kHZ. Ist das unabhängig von dem was man für die FM auswählt?
Die beiden Werte (Geber und ZählerKarte) müssen nicht identisch sein. Jeder für sich - und damit der kleinere von beiden - gibt an, bis zu welcher Drehzahl maximal fehlerfrei jeder Impuls erkannt und verarbeitet werden kann. Indirekt natürlich, weil die Zahl der Striche pro Umdrehung des Gebers einen ganz wesentlichen Faktor darstellt. Doppelt so viele Striche z.B. bedeutet, die Position wird doppelt so genau erfasst, ABER die maximale Drehzahl, mit der man dann (feherfrei) arbeiten kann, halbiert sich.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nebenbei, mal ne ganz blöde Frage. Ich hab den FC CNT_CTRL bei mir im Programm als FC0. Das ist nicht wie in der S5, dass der 0-Baustein / Adresse für indirekte Adressierung genutzt wird, ODER?
Jain. Der FC0 könnte auch in S5 indirekt adressiert werden (mit B DWx oder B MW x), wenn es denn bei S5 überhaupt FCs gäbe ;o) Nur der DB 0 im Online-Projekt macht bei S5 Probleme, da er vom Anwender nicht benutzt werden darf (das System parkt hier die Liste der Bausteine).
Für Dich ist das Thema irrelevant.

PS:
Der "0-Baustein" muss in der S5 kein "real existierender" sein, wenn man einen Baustein indirekt adressieren will. Er wird nur "hingeschrieben" und es wird die BausteinNr adressiert, die im MW bzw. DW steht.

PPS:
Bei S5 gab es noch einen (zweiten) DB0 und zwar im "Offline-Projekt": dort standen die Angaben für den SchriftFuss bei Ausdrucken.
 
Zuletzt bearbeitet:
WICHTIGER NACHTRAG

Ich hab gerade bei der FM 450 wo ich bereits erwähnt hatte, dass der Wert impulsgedoppelt auf der S5 liegt die beiden Signale mal verglichen und musste dabei feststellen, dass das Problem was ich hier die ganze Zeit beschriebe nur bei der FM 350 vorhanden ist. Die Sprünge die ich in meiner Ungläubigkeit bei der FM 450 gesehen habe sind einfach aus den wenigen Impulsen der Rolle pro Umdrehung zurückzuführen. Sprich wenn meine Anlage 170 m/min fährt misst diese Rolle differenzen von 28 Impulsen alle 50ms und es kommt 170 m/min raus. Wenn er jetzt aber nur 27 IMP misst sind das direkt 5 m/min Unterschied.

Ich habe inzwischen mal die FM350 von CNT_CTRL auf CNT_CTL1 umgestellt, aber das hat mir auch nicht geholfen. Jetzt ist natürlich die Frage, kann es sein, dass der Profibuszyklus mir da irgendwie in die Suppe spuckt? Da ich es nicht weiß, bräuchte ich taktsynchronen Betrieb, eventuell?

Ich änder mal den Titel des Threads und mache einen Vermerk im ersten Post.
 
Zuletzt bearbeitet:
Sprich wenn meine Anlage 170 m/min fährt misst diese Rolle differenzen von 28 Impulsen alle 50ms und es kommt 170 m/min raus. Wenn er jetzt aber nur 27 IMP misst sind das direkt 5 m/min Unterschied.
Auf dieses "Problem" hatte Dich Harald schon in #2 hingewiesen.
Deine Listen mit den Differenzen der ZählerStände (zuletzt inkl. der ZählerStände) sagen aber etwas ganz anderes aus! Da ging es nicht um ±1 Impuls Unterschied von einer MessPeriode zur nächsten, sondern um ca. 230 (immerhin -50% bei den Differenzen). Waren diese Listen denn "frei erfunden"?
Zum Thema der ProfiBusZyklen kann ich nur spekulieren. Ich denke, das kann eine Erklärung dafür sein, dass Du ZählerStände im programmierten 50-ms-Takt geliefert bekommst, die "vor Ort" nicht wirklich im 50-ms-Takt ausgelesen wurden.

PS:
Was meinst Du mit "ImpulsVerdopplung"? ImpulsVervielfachung (aus Sinus-/Cosinus-förmigen GeberSignalen) oder nur das "Aufsplitten" auf zwei Empfänger oder das Auswerten von doppelt sovielen Flanken pro Periode? Da Du bereits 4 Flanken pro Periode auswertest, was willst Du da noch verdoppeln?
 
Zuletzt bearbeitet:
Zurück
Oben