TIA DI 8x24VDC HS Counter per Cyclic Interrupt einlesen

Garog

Level-1
Beiträge
197
Reaktionspunkte
32
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe an einer ET200SP Station zwei Module vom Typ 6ES7 131-6BF00-0DA0 stecken.
Dabei nutzen wir die 4 HS Zähler auf den Karten.

Nun möchte ich per Cyclic Interrupt OB alle 100 ms den aktuellen Wert der Zähler auslesen. Immer wieder aufs neue, nicht den kumulierten Werten.
Im großen ist mir die Funktion der Karte klar.
Über die ersten 4 Ausgangsbytes jedes Kanals kann ich den Ladewert angeben welche ich mit den ersten beiden Bits vom 5. Byte als Startwert festlegen kann. Das 4. Bit, also %Q4.3, öffnet das SW Tor, wobei er mir auch korrekterweise meinen Startwert übernimmt.
Nun möchte ich aber gerne das er mir den Zählwert auch alle 100ms zurücksetzt. Den Ladewert in den Startwert übernehmen, tut er leider nur, wenn ich das SW Tor schließe und dann wieder öffne, was ja zwei "Zyklen" bräuchte.
Wert einlesen, Zähler zurücksetzten, 100ms warten, Wert einlesen, Zähler zurücksetzen... ihr wisst schon ;)

Anregungen dazu, wie ich das lösen kann ?

[Edit] und nein ich möchte nicht den Zählerwert einfach aufsummieren und die Differenz vom Aufruf davor und vom jetzigen Wert ermitteln sowie beim Überlauf mit aufpassen, auch wenn es schön einfach wäre, hoffe ich doch das die Karte mir da irgend eine Lösung bietet ;)
 
Zuletzt bearbeitet:
Wollte mich auch schon mal mit der Karte beschäftigen...

Würde auch glauben mit...
SLOT = 0
LD_SLOT = 3

dann sollte an LD_STS_SLOT eine Rückmeldung kommen.


Scheint aber laut Handbuch tatsächlich nicht möglich sein, den Startwert während dem Betrieb zu laden.
Handbuch zur Karte - Parameter LD_SLOT schrieb:
Wenn die Ladeaufforderung LD_SLOT = 011B eingetragen ist und das SW-Tor geöffnet wird,beginnt jeder Zählvorgang mit dem Startwert. Wenn eine andere Ladeaufforderung eingetragenist und das SW-Tor geöffnet wird, wird bei jedem Start des Zählvorgangs mit dem aktuellenZählwert weitergezählt. Beide Fälle gelten auch bei parametriertem HW-Tor und solange,bis das SW-Tor geschlossen wird.
Wenn ich den Satz richtig entziffere scheint der Ladebefehl nur beim Tör-Öffnen angenommen zu werden.
Ich denke da wirst du die Herrn vom Siemens selber fragen müssen ob dass so möglich ist wie du das gerne hättest.

Ich selber hätte mir wahrscheinlich auch das Delta durch Software gebildet. Beim Laden/Reseten über die Hardware und der Zeit die das eventuell braucht,
könnte womöglich das ein oder andere Zählereignis verloren gehen.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Aktuell habe ich es auch über die SW so gemacht. Die Kanäle auf "weiterzählen" gestellt, wenn ein Grenzwert erreicht wird. Wobei er dann bei dem jeweils anderen Grenzwert, in meinem Fall 0, wieder anfängt zu zählen.

Code:
//sollte es einen Überlauf gegeben haben
IF #Counter < #Speicher THEN
    //dann diesen mit beachten
    #Zählwert := (2147483647 - #Speicher) + #Counter;
ELSE
    //Differenz ermitteln
    #Zählwert := #Counter - #Speicher;
END_IF;


//aktuellen Wert wegspeichern
#Speicher := #Counter;

Ist ja auch nicht wirklich schlimm.

Request an Siemens habe ich gerade eben auch schon geschrieben, mal gucken was dabei raus kommt.
 
Vermelde das Ergebnis des Requests hier bitte, würde mich interessieren da ich die Karte auch demnächst wo einsetze.
 
Tja, Siemens halt.

Die Antwort
"Alle Beispiele welche wir den Kunden zur Verfügung stellen, sind im Online Support ersichtlich Suchen sie dort nach passenden Programmen für sie.
https://support.industry.siemens.com/

Programm Unterstützung sind kostenpflichtig, da sie die Zeitliche Begrenzung übertreten.
Wenn es ihr Wunsch ist, das wir sie beim Programmieren unterstützen, so können sie einfach auf diese Mail Antworten. Ich werde den Case gerne weitergeben an die Service line Für Rückfragen stehen wir Ihnen gerne zur Verfügung."


Eine scharfe Mail von mir später.
"Wir haben die Anweisung, das Programmier Unterstützungen zu verrechnen sind. Daher meine Antwort mit den Informationen über unsere Service Line."
 
Zurück
Oben