Step 7 Zähler-Baugruppe FM350-2 nur ich erhalte nur Zählerwerte beim Start und bei Stopp (S7-Classic)

PeterGötz

Level-1
Beiträge
48
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Zunächst vorbereitend im OB100 Baugruppenadresse und Kanal-Adresse setzten.
// Init FM350-2 Baugruppenadresse
L L#0
L W#16#150 // E/A 336
T "Counter".Zaehl.MOD_ADR
SLW 3
T "Counter".Zaehl.CH_ADR // 336 * 8 = 2688 dez
im Handbuch steht: "Die Daten im Zähler-DB sind erst dann gültig, wenn das Bit CHECKBACK_SIGNALS.PARA im Zähler-DB gesetzt ist. Dann ist auch die Anlaufkoordinierung erfolgt." Das Checkback-bit wird vom Baustein gesetzt, somit sollte die Parametrierung OK sein. Was das mit der Kanal-Adresse (CH-ADR) zu tun hat, und diese das stets 8-Fache der Baugruppen E/A - Startadresse ist bleibt mir verborgen. Steht eben derart im Handbuch auf Seite 51 drin.

In meinem Fall liegt die Datenstruktur des Zählers im DB16.

Aufruf des Counter-Bausteines:
CALL "CNT2_CTR" // ## Aufruf Counter
DB_NO:=W#16#10 // 16dez, für die lage des Datenbausteines mit der passenden Sturktur (UDT1)

Ich nutze das Software-Tor und kein Hardware Tor.
Ich bekomme von einen Drehgeber Impulse an die Zählerbaugruppe. (Impulse Pegel sind OK, Impulsfrequenz ca. 900Hz) Bei der Baugruppe handelt es sich um eine Siemens FM350-2. Ich bekomme nur an 2 Zeitpunkten Zählwerte aus der Baugruppe gemeldet zum einen wenn ich das Software-Tor Öffne und zum anderen wenn keine Impulse an der Zählerbaugruppe mehr einlaufen. Aber während die Impulse einlaufen bekomme ich keine Zählwerte aus der Zählerbaugruppe gemeldet. Ich möchte jedoch Zyklisch oder mindestens alle 200ms Zählwerte von der Karte erhalten. Die Karte meldet keine Fehler. Hierzu gibt es die Möglichkeit Zähl und Messwerte mit dem beiliegenden Siemens FC CNT2_RD zu lesen. Dies gelingt mir leider nicht, siehe PDF-Anhang.

Kann jemand weiterhelfen, wie ich zyklisch fortlaufend Zählwerte der Siemens Zählerkarte entlocken kann? Gruß Peter
 

Anhänge

  • counterFM350_B01.pdf
    69,3 KB · Aufrufe: 24
Hallo,

wenn das Modul in der Hardware richtig parametriert wird,
also bei mir immer "Zählen endlos" und "Zähler auf 0 setzen, bei Tor schliessen",
kann man die oder den Zähler über PEW und die Hardwareadressen einlesen !

Gruß
 
Ja da steht so im Handbuch. Wenn ich auf die Hardware-Adressen zugreife, verhalten diese sich ebenso wie die Check-Back Signals.user_Stat_Wordx Werte. Diese und auch die Hardware-Adressen werden während des Zählens bei mir einfach nicht aktualisiert. Nur dann wenn keine Zählimpulse mehr kommen, bekomme ich einen neuen Zählwert gemeldet.
 
Sorry Zeitverschiebung, bin in Mexiko, dass ich mich erst jetzt zurückmelde. Ich will den Zähler noch nicht einmal setzen. Er kann bei 0 Anfangen, (oder sonst wo). Hier die HW-Konfig.
1651976780681.jpeg

Hier den DB16 ausgewählt, ist jedoch nicht nötig, da diese DB-Nr. beim Bausteinaufruf ja bekannt gegeben wird.
1651976873579.jpeg

Auswahl Drehgeber an Kanal 4. (Ich hatte zuerst Kanal0 ging aber genauso wie schlecht wie Eingangs beschrieben, danach auf Kanal 4 umverdrahtet)
1651977127776.jpeg
Restliche Kanäle sind Werkseinstellungen


Betriebsart. Hier hatte ich schon etliches ausprobiert, aber ich bekommen stets wie Eingangs im Scan sichtbar nur 2 Zählwerte, bei Zähler start und wenn Motor stoppt und keine Zählwerte mehr liefert.
1651977215316.jpeg

Alarme und Ausgänge verwende ich nicht, ich will nur zyklisch die Zählwerte.
1651977350186.png

Bin seit 4 TAGEN an dem Problem. Habe schon sehr viele Konfigurationen Probiert, Zähler verhält sich jedoch stets gleich. Eigentlich müsste ich Drehgeber 2 Fach einstellen, da ich Spur A und Spur B habe. Mein 2Kanal Oszi, zeigt saubere um 90° versetzte Eingangsflanken an. Der Zähler erkennt dann auch die Motordrehrichtung, gibt aber eben nur 2 Zählwert aus, beim Zählerstart und beim Motor Stopp und nicht Zyklisch. Auch wenn ich mir über EA + 8 Byte über den Direkt zugriff, so bekomme ich auch nur 2 Zählwerte bei jedem Motorlauf, egal wie lange ich den Motor laufen lasse.


Die Kanäle sind folgendermaßen parametriert, auch hier habe ich schon viel ausprobiert.
1651977627605.png

Hatte schon Dword, und Kanal 1 bis 4 als User-Type... aber immer nur Einzelzähler, keine Dosierzähler da ich keine Dosierung benötige.
Immer das gleiche Verhalten.

Offensichtlich ist bei dir dein Zähler DB der DB11.
Gruß Peter aus Mexiko von der Baustelle.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo wenn Du direkt auf PEW zugreifst funktioniert
das nur mit 4 Kanäle, ich weiß nicht genau aber ich denke
dass nur Kanal 0-3 so funktioniert. Die Initialsierung im OB100
habe ich gar nicht. Ich würde mal wieder auf Kanal 0 umverdrahten.
Mein Zähler DB ist nicht 11 sondern 5 !

Kanaele.jpg
 
Hallo Peter,

was hast Du denn für einen Drehgeber, also für was für eine
Spannung, ich hoffe doch 24V DC Signale !

Gruß

Jürgen
 
Das Eintragen der Baugruppenadresse in den Zähler-DB würde ich nicht im OB100 machen, sondern in jedem Zyklus. Das Eintragen der Kanaladresse ist nicht nötig (ich weiß nicht ob das womöglich stört?). Und man kann den Code auch besser verstehbar gestalten:
Code:
L 336                      // E-Adresse von HW Konfig
T "Counter".Zaehl.MOD_ADR
SLW 3                      // 336 --> P#336.0
T "Counter".Zaehl.CH_ADR   // 336 * 8 = 2688

Schau mal hier: https://www.sps-forum.de/threads/hilfe-bei-einer-fm350-2.93493/post-701582
Da findest Du einen fertigen Komplett-Code in AWL zum Einlesen aller 8 Kanäle der FM350-2, und zusätzlich die Nutzung der 8 E + 8 A der Baugruppe als normale Digital-E/A, und die Verwendung des Ausgang 8 als rudimentäre Diagnose-LED, weil die FM350-2 keine LEDs für die Eingänge hat.

Harald
 
Zuletzt bearbeitet:
Zurück
Oben